@redocly/cli 2.71.0 → 2.71.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/THIRD_PARTY_NOTICES +3 -3
  2. package/lib/chunks/{SXIMN47K.js → 25RSTUQA.js} +1 -1
  3. package/lib/chunks/{N37OGNC4.js → 2IUGP2IH.js} +3 -3
  4. package/lib/chunks/{STAMDB3P.js → 2NYYNBAC.js} +1 -1
  5. package/lib/chunks/{YDGFDJ2K.js → 3N7LKSDD.js} +1 -1
  6. package/lib/chunks/4DUOPCYP.js +7 -0
  7. package/lib/chunks/{QAPQYNI3.js → 54EKLNNI.js} +1 -1
  8. package/lib/chunks/5BQNATJZ.js +20 -0
  9. package/lib/chunks/{PF43QQZA.js → 5DW3QRJB.js} +2 -2
  10. package/lib/chunks/{E4MPGN3Z.js → 5SSWNONM.js} +1 -1
  11. package/lib/chunks/{B5KSRXXW.js → 6TCEQRVX.js} +1 -1
  12. package/lib/chunks/{G2M6SQCS.js → 6ZNJ7RDX.js} +2 -2
  13. package/lib/chunks/{YLRH4RVF.js → 7HFLPQAB.js} +2 -2
  14. package/lib/chunks/{JCP37EY3.js → ACAPGKSR.js} +59 -25
  15. package/lib/chunks/ACECCMWJ.js +14 -0
  16. package/lib/chunks/{O37B7ABT.js → AH6ANNYP.js} +1 -1
  17. package/lib/chunks/{EHQY7ZOF.js → B5SUTVG4.js} +1 -1
  18. package/lib/chunks/{HAOBCQWB.js → BE4Z5FOC.js} +10 -8
  19. package/lib/chunks/{TXSBWL3Y.js → BOWZV5S6.js} +1 -1
  20. package/lib/chunks/{IULINGO6.js → BPSWCUZE.js} +1 -1
  21. package/lib/chunks/{V6VNRABV.js → BXXX3ZCV.js} +1 -1
  22. package/lib/chunks/{QMS4UKIK.js → CHX7O5AM.js} +5 -5
  23. package/lib/chunks/{2NVGTELR.js → CJWIDJTB.js} +1 -1
  24. package/lib/chunks/{L4F2ERUL.js → CX76LEFC.js} +1 -1
  25. package/lib/chunks/{WBWCX3LS.js → DORXGE7Z.js} +93 -93
  26. package/lib/chunks/{LD5MEXEL.js → DP3T6VZX.js} +1 -1
  27. package/lib/chunks/{FKKC7G6X.js → DURXFJ7H.js} +1 -1
  28. package/lib/chunks/DVLD4FET.js +20 -0
  29. package/lib/chunks/{MV3ZJ5HR.js → EAFZ6DNQ.js} +1 -1
  30. package/lib/chunks/{LS3G7CUH.js → EBHQXW6Z.js} +1 -1
  31. package/lib/chunks/{RIGQPR2I.js → EO65RJ4Z.js} +1 -1
  32. package/lib/chunks/{T55LQK2H.js → EQOFXQKD.js} +1 -1
  33. package/lib/chunks/FBEEMKTB.js +7 -0
  34. package/lib/chunks/{BU4AMVHN.js → FGJDZKD2.js} +1 -1
  35. package/lib/chunks/G6SB4ZP5.js +7 -0
  36. package/lib/chunks/{LRMOPAZ4.js → GAKWND4S.js} +1 -1
  37. package/lib/chunks/HAGYQ4BK.js +20 -0
  38. package/lib/chunks/{LNEXTJNF.js → HBWCMTP3.js} +1 -1
  39. package/lib/chunks/{2R2CXBRH.js → HWOL3HHR.js} +1 -1
  40. package/lib/chunks/{2UAA6O26.js → ILYXMZRT.js} +1 -1
  41. package/lib/chunks/{NBMSBQEL.js → INGAWMLB.js} +1 -1
  42. package/lib/chunks/{3DMXMP4K.js → IYV7EO2J.js} +1 -1
  43. package/lib/chunks/IZMDARCL.js +22 -0
  44. package/lib/chunks/JOWPA3MJ.js +7 -0
  45. package/lib/chunks/KFQC57GK.js +145 -0
  46. package/lib/chunks/{CZS2ZXJ7.js → KJIUDCYZ.js} +1 -1
  47. package/lib/chunks/{QB6CQ2CV.js → L2O63VRM.js} +1 -1
  48. package/lib/chunks/{MYSYBBIO.js → MH5X2EVH.js} +1 -1
  49. package/lib/chunks/{RLJVKAOL.js → NLAPR7D4.js} +1 -1
  50. package/lib/chunks/O53IFFP3.js +98 -0
  51. package/lib/chunks/{MQUZ5IJ2.js → PBQOGZ5C.js} +1 -1
  52. package/lib/chunks/{BCRM4BTA.js → Q3IJURM3.js} +1 -1
  53. package/lib/chunks/{HHCU6T2V.js → QXBSAWH3.js} +1 -1
  54. package/lib/chunks/QXHFS5G6.js +7 -0
  55. package/lib/chunks/{E3FBSKNS.js → QZJAXPYF.js} +1 -1
  56. package/lib/chunks/{QTGTCBFK.js → RBJCAITC.js} +1 -1
  57. package/lib/chunks/{CN2ZOHYL.js → RBNQC5ZB.js} +1 -1
  58. package/lib/chunks/{2CMKIFTE.js → RNA6JDRC.js} +1 -1
  59. package/lib/chunks/{DHP4BBTH.js → RNL7TC2W.js} +1 -1
  60. package/lib/chunks/{WKDC6LN3.js → RUPTJCF5.js} +1 -1
  61. package/lib/chunks/{YDQCJP4F.js → S6W63XAS.js} +1 -1
  62. package/lib/chunks/{B3GE7EIX.js → TN3JQHMS.js} +1 -1
  63. package/lib/chunks/TNRIBQHV.js +7 -0
  64. package/lib/chunks/TZROZMVE.js +20 -0
  65. package/lib/chunks/{TR67FYLT.js → U7KIB7CD.js} +1 -1
  66. package/lib/chunks/{EFB2YVY2.js → UMN7TKTH.js} +2 -2
  67. package/lib/chunks/{VXD5O25A.js → V34D5CUU.js} +1 -1
  68. package/lib/chunks/{SBHCUK5I.js → W2CABGMW.js} +1 -1
  69. package/lib/chunks/{MYOQDPQZ.js → WCJ2HAN3.js} +1 -1
  70. package/lib/chunks/{5ECOOGVW.js → WJ3YDHQA.js} +1 -1
  71. package/lib/chunks/{6TE6AFQ3.js → WLI2XLEP.js} +1 -1
  72. package/lib/chunks/{NCDX4IGX.js → X7C43UBI.js} +1 -1
  73. package/lib/chunks/{EH6VW7JO.js → XGPGFZMH.js} +1 -1
  74. package/lib/chunks/{YUEIHUPX.js → XZIK3H6V.js} +1 -1
  75. package/lib/chunks/{P7LM57HK.js → Y3LDWYZD.js} +1 -1
  76. package/lib/chunks/{VJHJJBVN.js → Y5DDX2MU.js} +1 -1
  77. package/lib/chunks/{MT4W54PL.js → YL3LVBZF.js} +1 -1
  78. package/lib/chunks/{O6NMXFEP.js → ZBB6PS6I.js} +1 -1
  79. package/lib/chunks/{NZE22F7Q.js → ZQTHHPK3.js} +2 -2
  80. package/lib/eject-assets/generators/cli/docs.ts +1 -1
  81. package/lib/eject-assets/generators/cli/engine-source.ts +1 -1
  82. package/lib/eject-assets/generators/cli/index.ts +2 -2
  83. package/lib/eject-assets/generators/cli/render.ts +1 -1
  84. package/lib/eject-assets/generators/go/client.ts +1 -1
  85. package/lib/eject-assets/generators/go/descriptor.ts +1 -1
  86. package/lib/eject-assets/generators/go/index.ts +2 -2
  87. package/lib/eject-assets/generators/go/models.ts +7 -2
  88. package/lib/eject-assets/generators/go/naming.ts +1 -1
  89. package/lib/eject-assets/generators/go/operations.ts +1 -1
  90. package/lib/eject-assets/generators/go/pagination.ts +1 -1
  91. package/lib/eject-assets/generators/go/types.ts +1 -1
  92. package/lib/eject-assets/generators/mock/faker.ts +17 -9
  93. package/lib/eject-assets/generators/mock/index.ts +4 -3
  94. package/lib/eject-assets/generators/mock/render.ts +128 -9
  95. package/lib/eject-assets/generators/mock/sample.ts +87 -4
  96. package/lib/eject-assets/generators/mock/values.ts +1 -1
  97. package/lib/eject-assets/generators/php/client.ts +1 -1
  98. package/lib/eject-assets/generators/php/descriptor.ts +10 -1
  99. package/lib/eject-assets/generators/php/index.ts +2 -2
  100. package/lib/eject-assets/generators/php/models.ts +8 -3
  101. package/lib/eject-assets/generators/php/naming.ts +1 -1
  102. package/lib/eject-assets/generators/php/operations.ts +11 -6
  103. package/lib/eject-assets/generators/php/pagination.ts +3 -2
  104. package/lib/eject-assets/generators/php/types.ts +12 -2
  105. package/lib/eject-assets/generators/python/client.ts +1 -1
  106. package/lib/eject-assets/generators/python/descriptor.ts +1 -1
  107. package/lib/eject-assets/generators/python/index.ts +3 -3
  108. package/lib/eject-assets/generators/python/models.ts +9 -3
  109. package/lib/eject-assets/generators/python/naming.ts +1 -1
  110. package/lib/eject-assets/generators/python/operations.ts +6 -5
  111. package/lib/eject-assets/generators/python/pagination.ts +1 -1
  112. package/lib/eject-assets/generators/python/types.ts +1 -1
  113. package/lib/eject-assets/generators/swr/index.ts +2 -2
  114. package/lib/eject-assets/generators/swr/render.ts +1 -1
  115. package/lib/eject-assets/generators/tanstack-query/index.ts +2 -2
  116. package/lib/eject-assets/generators/tanstack-query/render.ts +6 -5
  117. package/lib/eject-assets/generators/transformers/index.ts +2 -2
  118. package/lib/eject-assets/generators/transformers/render.ts +34 -7
  119. package/lib/eject-assets/generators/typescript/banner.ts +1 -1
  120. package/lib/eject-assets/generators/typescript/client.ts +1 -1
  121. package/lib/eject-assets/generators/typescript/descriptor.ts +1 -1
  122. package/lib/eject-assets/generators/typescript/index.ts +2 -2
  123. package/lib/eject-assets/generators/typescript/inline-runtime.ts +1 -1
  124. package/lib/eject-assets/generators/typescript/operation-signature.ts +1 -1
  125. package/lib/eject-assets/generators/typescript/operation-types.ts +1 -1
  126. package/lib/eject-assets/generators/typescript/operations.ts +1 -1
  127. package/lib/eject-assets/generators/typescript/response-headers.ts +1 -1
  128. package/lib/eject-assets/generators/typescript/type-guards.ts +1 -1
  129. package/lib/eject-assets/generators/typescript/types.ts +1 -1
  130. package/lib/eject-assets/generators/zod/index.ts +2 -2
  131. package/lib/eject-assets/generators/zod/schemas.ts +1 -1
  132. package/lib/eject-assets/skills/go-generator/SKILL.md +3 -0
  133. package/lib/eject-assets/skills/mock-generator/SKILL.md +22 -0
  134. package/lib/eject-assets/skills/php-generator/SKILL.md +9 -2
  135. package/lib/eject-assets/skills/python-generator/SKILL.md +6 -0
  136. package/lib/eject-assets/skills/tanstack-query-generator/SKILL.md +2 -1
  137. package/lib/eject-assets/skills/transformers-generator/SKILL.md +4 -0
  138. package/lib/eject-assets/skills/typescript-generator/SKILL.md +5 -0
  139. package/lib/index.js +5 -5
  140. package/lib/skills/redocly-cli/SKILL.md +20 -1
  141. package/package.json +1 -1
  142. package/lib/chunks/2Y7MGFQS.js +0 -105
  143. package/lib/chunks/BPDHBW3N.js +0 -7
  144. package/lib/chunks/EWU57NBY.js +0 -20
  145. package/lib/chunks/GKXY6U4S.js +0 -145
  146. package/lib/chunks/GMGZQR6Q.js +0 -7
  147. package/lib/chunks/JM7BMZLD.js +0 -13
  148. package/lib/chunks/K6VR5YNF.js +0 -22
  149. package/lib/chunks/M6UVHV6D.js +0 -7
  150. package/lib/chunks/O72R3AD4.js +0 -20
  151. package/lib/chunks/RZ3FGCBT.js +0 -20
  152. package/lib/chunks/SBT63VHF.js +0 -7
  153. package/lib/chunks/UW4UC7ZI.js +0 -9
  154. package/lib/chunks/VQRJE4I2.js +0 -7
  155. package/lib/chunks/WACZWFKN.js +0 -19
  156. package/lib/chunks/WJXIZZA6.js +0 -7
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{a,b,c}from"./YUEIHUPX.js";import"./HAOBCQWB.js";import"./3DMXMP4K.js";import"./EFB2YVY2.js";import"./JCP37EY3.js";import"./WZXA5XPB.js";import"./WBWCX3LS.js";import"./NEWT5A6S.js";import"./LD5MEXEL.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{b as typescriptDocs,a as typescriptGenerator,c as typescriptSample};
@@ -1,13 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{e as T,k as y}from"./LD5MEXEL.js";import{join as q}from"node:path";var a=" ";function j(r){return`transform${y(r)}`}var C="type __Writable<T> = { -readonly [K in keyof T]: T[K] };",A=!1;function D(r){return{text:r,path:[r]}}function W(r,t){return{text:`${r.text}[${JSON.stringify(t)}]`,path:[...r.path,t]}}function d(r,t,n){if(k(r))return!0;switch(r.kind){case"array":return d(r.items,t,n);case"union":return r.members.some(o=>d(o,t,n));case"ref":{if(n.has(r.name))return!1;let o=t.get(r.name);return o!==void 0&&d(o,t,new Set(n).add(r.name))}default:return!1}}function k(r){return r.kind==="scalar"&&r.scalar==="string"&&(r.metadata?.format==="date-time"||r.metadata?.format==="date")}function $(r,t,n){if(k(r))return!0;switch(r.kind){case"array":return $(r.items,t,n);case"record":return $(r.value,t,n);case"object":return r.properties.some(o=>$(o.schema,t,n));case"union":case"intersection":return r.members.some(o=>$(o,t,n));case"ref":{let o=t.get(r.name);return o!==void 0&&!n.has(r.name)?$(o,t,new Set(n).add(r.name)):!1}default:return!1}}function l(r,t,n,o=!1){return o?[`${n}if (${r}) {`,...t(n+a),`${n}}`]:[`${n}if (${r})`,...t(n+a)]}function v(r,t,n=!1){let o=n?B(r):r.text;return u=>[`${u}${o} = ${t};`]}function S(r){return t=>[`${t}${r};`]}function B(r){if(r.path.length<2)return r.text;A=!0;let t={text:r.text.slice(0,r.text.lastIndexOf("[")),path:r.path.slice(0,-1)},n=r.path[r.path.length-1];return`(${t.text} as __Writable<${G(t)}>)[${JSON.stringify(n)}]`}function G(r){let t=`typeof ${r.path[0]}`;for(let n of r.path.slice(1))t=`NonNullable<${t}>[${JSON.stringify(n)}]`;return`NonNullable<${t}>`}function K(r){return r==="data"?"item":`item${Number(r.slice(4))+1}`}function p(r,t,n,o,u,e,s=!1){if(k(t))return l(`typeof ${r.text} === "string"`,v(r,`new Date(${r.text})`,s),e);switch(t.kind){case"ref":return h(r,t.name,n,o,e,s);case"object":{let f=[];for(let c of t.properties)f.push(...b(W(r,c.name),c.schema,n,o,u,e,c.readOnly===!0));return f}case"array":return P(r,t.items,n,o,u,e,s);case"record":return I(r,t.value,n,o,u,e,!0);case"intersection":{let f=[];for(let c of t.members)f.push(...p(r,c,n,o,u,e,s));return f}case"union":return U(r,t.members,n,o,u,e,s);default:return[]}}function U(r,t,n,o,u,e,s=!1){let f=[],c=e+a,x=[];for(let i of t)if(k(i))f.push(...p(r,i,n,o,u,e,s));else if(i.kind==="ref"){if(!$(i,n,o))continue;let w=`${j(i.name)}(${r.text} as ${i.name})`,_=d(i,n,o)?v(r,w,s):S(w);x.push(..._(c))}else x.push(...p(r,i,n,o,u,c,s));return x.length>0&&f.push(...l(`${r.text} && typeof ${r.text} === "object"`,()=>x,e,!0)),f}function h(r,t,n,o,u,e=!1){let s={kind:"ref",name:t};if(!$(s,n,o))return[];let f=`${j(t)}(${r.text})`;return l(r.text,d(s,n,o)?v(r,f,e):S(f),u)}function b(r,t,n,o,u,e,s=!1){if(t.kind==="ref")return h(r,t.name,n,o,e,s);if(t.kind==="object"){let f=p(r,t,n,o,u,e+a);return f.length===0?[]:l(r.text,()=>f,e,!0)}return p(r,t,n,o,u,e,s)}function m(r,t,n,o,u=0){if(k(t))return`new Date(${r})`;if(t.kind==="ref"&&d(t,n,o))return`${j(t.name)}(${r})`;if(t.kind==="array"){let e=t.items.kind==="array"?E(u+1):"v",s=m(e,t.items,n,o,u+1);return s===null?null:`${r}.map(${e} => ${s})`}return null}function E(r){return r<=1?"row":`row${r}`}function P(r,t,n,o,u,e,s=!1){let f=t.kind==="array"?E(1):"v",c=m(f,t,n,o,1);return c!==null?l(`Array.isArray(${r.text})`,v(r,`${r.text}.map(${f} => ${c})`,s),e):t.kind==="ref"?$(t,n,o)?l(`Array.isArray(${r.text})`,S(`${r.text}.forEach(${j(t.name)})`),e):[]:I(r,t,n,o,u,e,!1)}function I(r,t,n,o,u,e,s){if(s){let i={text:`${r.text}[__k]`,path:[...r.path,"__k"]},w=m(i.text,t,n,o);if(w!==null){let _=k(t)?`typeof ${i.text} === "string"`:`Array.isArray(${i.text})`;return l(r.text,O=>[`${O}for (const __k of Object.keys(${r.text}))`,...l(_,J=>[`${J}${i.text} = ${w};`],O+a)],e)}}let f=K(u),c=p(D(f),t,n,o,f,e+a+a);if(c.length===0)return[];let x=s?`Object.values(${r.text})`:r.text;return l(s?r.text:`Array.isArray(${r.text})`,i=>[`${i}${x}.forEach(${f} => {`,...c,`${i}});`],e)}function R(r,t){let n=r.name,o=D("data"),u=r.schema.kind==="ref"?h(o,r.schema.name,t,new Set,a):p(o,r.schema,t,new Set,"data",a);return[`export const ${j(r.name)} = (data: ${n}): ${n} => {`,...u,`${a}return data;`,"};"].join(`
8
- `)}function M(r,t){let n=new Map(r.schemas.map(f=>[f.name,f.schema])),o=r.schemas.filter(f=>$(f.schema,n,new Set));if(o.length===0)return"";let u=o.map(f=>T(f.name)).join(", ");A=!1;let e=o.map(f=>R(f,n));return[`import type { ${u} } from ${JSON.stringify(t.sdkModule)};`,...A?[C]:[],...e].join(`
9
-
10
- `)}var X=({model:r,output:t,banner:n,emit:o})=>{let u=M(r,{sdkModule:`./${t.stem}.${o.importExt??"js"}`});if(u==="")return[];let e=n.map(s=>`// ${s}`).join(`
11
- `);return[{path:q(t.dir,`${t.stem}.transformers.ts`),content:`${e}
12
-
13
- ${u}`}]};export{X as a};
@@ -1,22 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{a as C}from"./JCP37EY3.js";import{c as w}from"./WBWCX3LS.js";import{a as H,e as q,g as P,h as g,k as E}from"./LD5MEXEL.js";import{join as ae}from"node:path";var j=class{code;constructor(r){this.code=r}};function A(e,r,n={}){let t=new Map(r.map(s=>[s.name,s.schema])),o=k(e,t,new Set,n.dateType??"string");return o===b?null:o}var b=Symbol("cycle");function J(e,r){if(e.kind==="union"){for(let t of e.members){let o=J(t,r);if(o)return o}return}if(e.kind!=="scalar")return;let n=e.metadata?.format;if(n==="binary")return new j("new Blob([])");if(r==="Date"){if(n==="date-time")return new j('new Date("2024-01-01T00:00:00Z")');if(n==="date")return new j('new Date("2024-01-01")')}}function I(e,r){let n=new Map,t=[],o=!1;for(let s of e){if(s.kind==="unknown")continue;let i=G(s,r);if(i?.kind!=="object"){t.push(s);continue}o=!0;for(let a of i.properties){let u=O(a.schema,r,new Set),c=n.get(a.name);(c===void 0||u>=c.rank)&&n.set(a.name,{schema:a.schema,required:a.required||(c?.required??!1),rank:u})}}return o?{merged:{kind:"object",properties:[...n.entries()].map(([s,i])=>({name:s,schema:i.schema,required:i.required}))},rest:t}:{merged:void 0,rest:t}}function G(e,r){let n=new Set,t=e;for(;t?.kind==="ref";){if(n.has(t.name))return;n.add(t.name),t=r.get(t.name)}return t}function O(e,r,n){switch(e.kind){case"literal":return 40;case"enum":return e.values.length===1?40:30;case"union":return Math.max(0,...e.members.map(t=>O(t,r,n)))-1;case"ref":{if(n.has(e.name))return 20;let t=r.get(e.name);return t===void 0?20:O(t,r,new Set(n).add(e.name))}case"null":case"unknown":return 10;default:return 20}}function k(e,r,n,t){let o=J(e,t);if(o)return o;let s=e.metadata,i=a=>a===null?e.kind==="null"||e.kind==="union"&&e.members.some(u=>u.kind==="null"):e.kind==="enum"?e.values.includes(a):e.kind==="literal"?a===e.value:!0;if(s?.example!==void 0&&i(s.example))return s.example;if(s?.default!==void 0&&i(s.default))return s.default;switch(e.kind){case"scalar":return K(e.scalar,s);case"array":{let a=k(e.items,r,n,t);return a===b?[]:[a]}case"object":return Object.fromEntries(e.properties.flatMap(a=>{let u=k(a.schema,r,n,t);return u===b?a.required?[[a.name,null]]:[]:[[a.name,u]]}));case"record":{let a=k(e.value,r,n,t);return a===b?{}:{key:a}}case"enum":return e.values[0];case"literal":return e.value;case"union":{for(let a of e.members){let u=k(a,r,n,t);if(u!==b)return u}return e.members.length>0?b:null}case"intersection":{let{merged:a,rest:u}=I(e.members,r),c=u.map(m=>k(m,r,n,t)).filter(m=>m!==b);if(a){let m=k(a,r,n,t),M=w(m)?m:{};for(let V of c)w(V)&&Object.assign(M,V);return M}let h=c.filter(w);return h.length>0?h.reduce((m,M)=>Object.assign(m,M),{}):c.length>0?c[0]:{}}case"omit":{let a=r.get(e.base);if(!a)return null;let u=k(a,r,n,t);if(w(u)){let c={...u};for(let h of e.keys)delete c[h];return c}return u}case"ref":{if(n.has(e.name))return b;let a=r.get(e.name);if(!a)return null;n.add(e.name);let u=k(a,r,n,t);return n.delete(e.name),u}case"null":case"unknown":return null}}function K(e,r){if(e==="boolean")return!0;if(e==="integer"||e==="number")return 0;switch(r?.format){case"email":return"user@example.com";case"uuid":return"00000000-0000-4000-8000-000000000000";case"date-time":return"2024-01-01T00:00:00Z";case"date":return"2024-01-01";case"uri":case"url":return"https://example.com";default:return"string"}}var f=e=>({kind:"expr",text:e}),d=e=>({kind:"object",entries:e});function l(e){return e.kind==="object"}function D(e,r){return l(e)?d([...e.entries,{spread:r}]):e}var L=" ";function x(e,r){switch(e.kind){case"expr":return e.text;case"wrap":return`${e.before}${x(e.value,r)}${e.after}`;case"array":{if(e.items.length===0)return"[]";let n=r+L;return`[
8
- ${e.items.map((o,s)=>`${n}${x(o,n)}${s===e.items.length-1?"":","}`).join(`
9
- `)}
10
- ${r}]`}case"object":{if(e.entries.length===0)return"{}";let n=r+L;return`{
11
- ${e.entries.map((o,s)=>{let i=s===e.entries.length-1?"":",";if("spread"in o)return`${n}...${o.spread}${i}`;let a=q(o.key)===o.key?o.key:P(o.key);return`${n}${a}: ${x(o.value,n)}${i}`}).join(`
12
- `)}
13
- ${r}}`}}}function U(e,r,n={}){let t=new Map(r.map(s=>[s.name,s.schema])),o=$(e,t,new Set,n.dateType??"string");return o===p?f("null"):o}var p=Symbol("cycle");function $(e,r,n,t){switch(e.kind){case"scalar":return f(Q(e.scalar,e.metadata,t));case"array":{let o=$(e.items,r,n,t);return o===p?f("[]"):W(o)}case"object":return d(e.properties.flatMap(o=>{let s=$(o.schema,r,n,t);return s===p?o.required?[{key:o.name,value:f("null")}]:[]:[{key:o.name,value:s}]}));case"record":{let o=$(e.value,r,n,t);return o===p?f("{}"):d([{key:"key",value:o}])}case"enum":return f(`faker.helpers.arrayElement([${e.values.map(o=>g(o)).join(", ")}] as const)`);case"literal":return f(g(e.value));case"union":{for(let o of e.members){let s=$(o,r,n,t);if(s!==p)return s}return e.members.length>0?p:f("null")}case"intersection":{let{merged:o,rest:s}=I(e.members,r),i=s.map(u=>$(u,r,n,t)).filter(u=>u!==p);if(o){let u=$(o,r,n,t),c=u!==p&&l(u)?u.entries:[],h=i.filter(l).flatMap(m=>m.entries);return d([...c,...h])}let a=i.filter(l);return a.length>0?d(a.flatMap(u=>u.entries)):i[0]??d([])}case"omit":return X(e.base,e.keys,r,n,t);case"ref":{if(n.has(e.name))return p;let o=r.get(e.name);if(!o)return f("null");n.add(e.name);let s=$(o,r,n,t);return n.delete(e.name),s}case"null":case"unknown":return f("null")}}function Q(e,r,n){if(r?.format==="binary")return"new Blob([])";if(e==="boolean")return"faker.datatype.boolean()";if(e==="integer")return`faker.number.int(${F(r)})`;if(e==="number")return`faker.number.float(${F(r)})`;switch(r?.format){case"email":return"faker.internet.email()";case"uuid":return"faker.string.uuid()";case"uri":case"url":return"faker.internet.url()";case"hostname":return"faker.internet.domainName()";case"ipv4":return"faker.internet.ipv4()";case"date-time":return B(n,!1);case"date":return B(n,!0);default:return"faker.lorem.word()"}}function B(e,r){if(e==="Date")return"faker.date.recent()";let n="faker.date.recent().toISOString()";return r?`${n}.slice(0, 10)`:n}function F(e){let r=[...e?.minimum!==void 0?[`min: ${e.minimum}`]:[],...e?.maximum!==void 0?[`max: ${e.maximum}`]:[]];return r.length>0?`{ ${r.join(", ")} }`:""}function W(e){let r=l(e);return{kind:"wrap",before:`faker.helpers.multiple(() => ${r?"(":""}`,value:e,after:`${r?")":""}, { count: 1 })`}}function X(e,r,n,t,o){let s=n.get(e);if(!s)return f("null");let i=$(s,n,t,o);if(i===p||!l(i))return i;let a=new Set(r);return d(i.entries.filter(u=>"spread"in u||!a.has(u.key)))}var Y=" ";function S(e,r,n){return n.mockData==="faker"?U(e,r.schemas,{dateType:n.dateType}):R(A(e,r.schemas,{dateType:n.dateType}))}function Z(e,r){let n=C(e.services);if(n.length===0)return"";let t=[..._(e,r),...r.mockData==="faker"&&r.mockSeed!==void 0?[`faker.seed(${r.mockSeed});`]:[],...e.schemas.map(s=>v(s,e,r)),...n.flatMap(s=>[T(s,e,r),...s.errorResponses.length>0?[N(s,e,r)]:[]]),se(n)];return`import { http, HttpResponse } from 'msw';
14
- ${r.mockData==="faker"?`import { faker } from '@faker-js/faker';
15
- `:""}
16
- ${t.join(`
17
-
18
- `)}`}function _(e,r){return e.schemas.length===0?[]:[`import type { ${e.schemas.map(t=>t.name).sort().join(", ")} } from ${JSON.stringify(r.sdkModule)};`]}function v(e,r,n){let t=E(e.name),o=S(e.schema,r,n),s=e.name,i=l(o),a=x(i?D(o,"overrides"):o,Y),u=i?e.schema.kind==="union"?`${a} as ${s}`:a:`overrides ?? ${a}`,c=i?`Partial<${s}>`:s;return[`export function create${t}(overrides?: ${c}): ${s} {`,`${Y}return ${u};`,"}"].join(`
19
- `)}function y(e){if(!H(e))throw new Error(`Unsafe identifier in mock emission: ${JSON.stringify(e)}`);return e}function T(e,r,n){let o=ne(e,r,n)??"",s=`http.${y(e.method)}(${JSON.stringify(z(e.path))}, () => ${te(e,r,n)})`;return`export const ${y(e.name)}Handler = (${o}) => ${s};`}function N(e,r,n){let t=e.errorResponses[0],s=`() => HttpResponse.json(body ?? ${x(S(t.schema,r,n),"")}, { status })`,i=`http.${y(e.method)}(${JSON.stringify(z(e.path))}, ${s})`;return`export const ${y(e.name)}ErrorHandler = (status: ${ee(e)}, body?: ${re(e)}) => ${i};`}function ee(e){let n=[...new Set(e.errorResponses.filter(t=>typeof t.status=="number").map(t=>t.status))].map(String);return e.errorResponses.some(t=>typeof t.status!="number")&&n.push("number"),n.join(" | ")}function re(e){let r=new Set,n=!1;for(let o of e.errorResponses)o.schema.kind==="ref"?r.add(o.schema.name):n=!0;let t=[...r];return(n||t.length===0)&&t.push("unknown"),t.join(" | ")}function ne(e,r,n){let t=e.successResponses[0];if(!(!t||t.schema.kind==="unknown")){if(t.schema.kind==="ref"){let o=t.schema.name;return`override?: ${l(S(t.schema,r,n))?`Partial<${o}>`:o}`}if(l(S(t.schema,r,n)))return"override?: Record<string, unknown>"}}function te(e,r,n){let t=e.successResponses[0],o=oe(t?.status);if(!t||t.schema.kind==="unknown")return`new HttpResponse(null, { status: ${o} })`;let s=t.schema.kind==="ref"?`create${E(t.schema.name)}(override)`:x(D(S(t.schema,r,n),"override"),"");return`HttpResponse.json(${o===200?s:`${s}, { status: ${o} }`})`}function oe(e){return typeof e=="number"?e:200}function se(e){return`export const handlers = [${e.map(n=>`${y(n.name)}Handler()`).join(", ")}];`}function z(e){return`*${e.replace(/\{([^{}]+)\}/g,":$1")}`}function R(e){return e instanceof j?f(e.code):Array.isArray(e)?{kind:"array",items:e.map(R)}:w(e)?d(Object.entries(e).map(([r,n])=>({key:r,value:R(n)}))):f(g(e))}var ye=({model:e,output:r,banner:n,emit:t})=>{let o=n.map(i=>`// ${i}`).join(`
20
- `),s=Z(e,{sdkModule:`./${r.stem}.${t.importExt??"js"}`,dateType:t.dateType,mockData:t.mockData,mockSeed:t.mockSeed});return s===""?[]:[{path:ae(r.dir,`${r.stem}.mocks.ts`),content:`${o}
21
-
22
- ${s}`}]};export{ye as a};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{a}from"./YLRH4RVF.js";import"./QB6CQ2CV.js";import"./3DMXMP4K.js";import"./EFB2YVY2.js";import"./JCP37EY3.js";import"./WZXA5XPB.js";import"./WBWCX3LS.js";import"./NEWT5A6S.js";import"./LD5MEXEL.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{a as tanstackQueryGenerator};
@@ -1,20 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{c as U}from"./HAOBCQWB.js";import{b as E,c as F,d as V,e as L,f as z,g as ie,h as J,i as ce,j as le}from"./EFB2YVY2.js";import{a as te,c as T,d as N,e as A,g as K,h as B,i as se,j as oe,k as re,l as G,n as ae}from"./UW4UC7ZI.js";var I=T.python,D=class extends te{constructor(){super(" ")}typeName(n){return N(n,{style:"pascal",reserved:I})}memberName(n){let t=N(n,{style:"snake",reserved:I});return{identifier:t,renamed:t!==n}}identifier(n){return N(n,{style:"snake",reserved:I})}identifiers(n,t){return A(n,{style:"snake",reserved:I,taken:t})}constName(n){return N(n,{style:"screaming",reserved:I})}string(n){let t='"';for(let s of n){let r=s.codePointAt(0);s==="\\"?t+="\\\\":s==='"'?t+='\\"':s===`
8
- `?t+="\\n":s==="\r"?t+="\\r":s===" "?t+="\\t":r<32||r===127?t+=`\\x${r.toString(16).padStart(2,"0")}`:r>=55296&&r<=57343?t+=`\\u${r.toString(16).padStart(4,"0")}`:t+=s}return t+'"'}literal(n){return n==null?"None":n===!0?"True":n===!1?"False":typeof n=="number"?String(n):typeof n=="string"?this.string(n):Array.isArray(n)?`[${n.map(s=>this.literal(s)).join(", ")}]`:`{${Object.entries(n).map(([s,r])=>`${this.string(s)}: ${this.literal(r)}`).join(", ")}}`}comment(n){for(let t of G(n))this.line(t===""?"#":`# ${t}`);return this}doc(n){let t=G(n);if(t.length===0)return this;if(t.length===1)return this.line(`"""${t[0]}"""`);this.line(`"""${t[0]}`);for(let s of t.slice(1))this.line(s);return this.line('"""')}};var x=T.python,m=new D;function O(e){return m.typeName(e)}function q(e){let{identifier:n,renamed:t}=m.memberName(e);return{python:n,renamed:t}}function M(e){let n=e.services.flatMap(s=>s.operations),t=A(n.map(s=>s.name),{style:"snake",reserved:x});return n.map((s,r)=>({op:s,ident:t[r]}))}var W=["self","body","headers","timeout","retry","idempotency_key"];function de(e){return m.literal(e)}function fe(e){if(e!==void 0)return{style:e.style,...e.param!==void 0?{param:e.param}:{},...e.nextCursor!==void 0?{next_cursor:e.nextCursor}:{},...e.hasMore!==void 0?{has_more:e.hasMore}:{},...e.nextLink!==void 0?{next_link:e.nextLink}:{},...e.limitParam!==void 0?{limit_param:e.limitParam}:{},...e.items!==void 0?{items:e.items}:{}}}function pe(e,n){let t=new Set;return`[${(e.successResponseHeaders??[]).map(r=>{let a=N(r.name,{style:"snake",reserved:x}),i=a,c=2;for(;t.has(i);)i=`${a}_${c++}`;t.add(i);let p=ae(r.schema,n);return`(${m.string(r.name)}, ${m.string(i)}, ${m.string(p)})`}).join(", ")}]`}function u(e,n="string"){if(se(e))return`Optional[${u(oe(e),n)}]`;switch(e.kind){case"scalar":if(n==="Date"&&e.scalar==="string"){if(e.metadata?.format==="date-time")return"datetime";if(e.metadata?.format==="date")return"date"}return{string:"str",integer:"int",number:"float",boolean:"bool"}[e.scalar];case"array":return`List[${u(e.items,n)}]`;case"record":return`Dict[str, ${u(e.value,n)}]`;case"ref":return O(e.name);case"literal":return`Literal[${m.literal(e.value)}]`;case"enum":return{string:"str",integer:"int",number:"float",boolean:"bool"}[e.scalar];case"union":return`Union[${e.members.map(t=>u(t,n)).join(", ")}]`;case"null":return"None";case"omit":return O(e.base);case"object":case"intersection":case"unknown":return"Any"}}function Q(e,n,t,s,r,a,i,c=!1){let p=A([...n.pathParams,...n.queryParams].map(S=>S.name),{style:"snake",reserved:x,taken:W}),l=n.pathParams.map((S,P)=>({param:S,python:p[P]})),o=n.queryParams.map((S,P)=>({param:S,python:p[n.pathParams.length+P]})),d=l.map(({param:S,python:P})=>`${P}: ${u(S.schema,a)}`),y=L(n)||n.requestBody!==void 0&&z(n.requestBody.contentType),h=n.requestBody?[`body: ${y?"Any":u(n.requestBody.schema,a)}`]:[],b=[...o.map(({param:S,python:P})=>{let j=u(S.schema,a),R=j.startsWith("Optional[")?j:`Optional[${j}]`;return`${P}: ${R} = None`}),"headers: Optional[Dict[str, str]] = None","timeout: Optional[float] = None","retry: Optional[Dict[str, Any]] = None","idempotency_key: Any = None"],_=E(n),k=F(n),v=c?`Envelope[${_===void 0?"None":u(_,a)}]`:k!==void 0?`${r?"AsyncIterator":"Iterator"}[ServerSentEvent]`:s==="result"?"Result":_===void 0?"None":u(_,a),f=r&&k===void 0?"async def":"def",$=r?"await ":"",g=r?"send_async":"send",w=["self",...d,...h,"*",...b].join(", "),Y=c?`${t}_with_headers`:t;e.block(`${f} ${Y}(${w}) -> ${v}:`,()=>{e.doc(c?`Like ${t}(), returning an Envelope with the declared response headers.`:n.summary),e.line(`op = _OPERATIONS["${t}"]`),e.line('auth_headers, auth_query = resolve_auth(op.get("security") or [], self._auth)'),e.line("params: Dict[str, Any] = dict(auth_query)");for(let{param:R,python:C}of o)e.block(`if ${C} is not None:`,()=>{e.line(`params[${m.string(R.name)}] = encode(${C})`)});let S=l.map(({param:R,python:C})=>`${m.string(R.name)}: ${C}`).join(", ");if(e.line(`url = build_url(self._server_url, op["path"], {${S}})`),k!==void 0){let R=k.schema!==void 0&&k.schema.kind!=="unknown"?"json":"text";e.block("def _open(extra_headers: Dict[str, str]):",()=>{e.line('return self._http.stream(op["method"], url, headers={**auth_headers, **(headers or {}), **extra_headers}, params=params, timeout=timeout)')}),e.line(`return ${r?"aiter_sse":"iter_sse"}(_open, data_kind="${R}")`);return}V(n)&&!L(n)&&e.line("form_data, form_files = to_multipart(body)");let P=n.requestBody?L(n)?", **multipart_arguments(body)":V(n)?", data=form_data, files=form_files":z(n.requestBody.contentType)?`, content=body, content_type=${m.string(n.requestBody.contentType)}`:", json_body=encode(body)":"";e.line(`response = ${$}${g}(self._http, self._config, op, url, method=op["method"], headers={**auth_headers, **(headers or {})}, params=params${P}, timeout=timeout, retry=retry, idempotency_key=idempotency_key)`);let j=_===void 0?"None":`decode(${u(_,a)}, _safe_json(response))`;c?(e.block("if not response.is_success:",()=>{e.line("raise ApiError(url, response.status_code, response.reason_phrase, _safe_json(response))")}),e.line(`return Envelope(data=${j}, headers=read_envelope_headers(response, ${pe(n,i)}), response=response)`)):s==="result"?(e.block("if not response.is_success:",()=>{e.line("return Result(data=None, error=_safe_json(response), response=response)")}),e.line(`return Result(data=${j}, error=None, response=response)`)):(e.block("if not response.is_success:",()=>{e.line("raise ApiError(url, response.status_code, response.reason_phrase, _safe_json(response))")}),e.line(_===void 0?"return None":`return ${j}`))}),e.blank()}function me(e,n,t,s,r,a){let i=E(n),c=i===void 0?"Any":u(i,a),p=A([...n.pathParams,...n.queryParams].map(f=>f.name),{style:"snake",reserved:x,taken:W}),l=n.pathParams.map((f,$)=>({param:f,python:p[$]})),o=n.queryParams.map((f,$)=>({param:f,python:p[n.pathParams.length+$]})),d=l.map(({param:f,python:$})=>`${$}: ${u(f.schema,a)}`),y=[...o.map(({param:f,python:$})=>{let g=u(f.schema,a),w=g.startsWith("Optional[")?g:`Optional[${g}]`;return`${$}: ${w} = None`}),"headers: Optional[Dict[str, str]] = None","timeout: Optional[float] = None","retry: Optional[Dict[str, Any]] = None"],h=["self",...d,"*",...y].join(", "),b=s?"AsyncIterator":"Iterator",_=s?"aiter_pages":"iter_pages",k=s?"aiter_items":"iter_items",v=()=>{e.line("base: Dict[str, Any] = {}");for(let{param:g,python:w}of o)e.block(`if ${w} is not None:`,()=>{e.line(`base[${m.string(g.name)}] = encode(${w})`)});let f=s?"async def":"def",$=s?"await ":"";e.block(`${f} _page(page_params: Dict[str, Any]) -> Tuple[Any, Any]:`,()=>{e.line('auth_headers, auth_query = resolve_auth(op.get("security") or [], self._auth)');let g=l.map(({param:w,python:Y})=>`${m.string(w.name)}: ${Y}`).join(", ");e.line(`url = build_url(self._server_url, op["path"], {${g}})`),e.line(`response = ${$}${s?"send_async":"send"}(self._http, self._config, op, url, method=op["method"], headers={**auth_headers, **(headers or {})}, params={**page_params, **auth_query}, timeout=timeout, retry=retry)`),e.block("if not response.is_success:",()=>{e.line("raise ApiError(url, response.status_code, response.reason_phrase, _safe_json(response))")}),e.line("return _safe_json(response), response")})};s?(e.block(`async def ${t}_pages(${h}) -> ${b}[${c}]:`,()=>{e.line(`op = _OPERATIONS["${t}"]`),v(),e.block(`async for page in ${_}(_page, op["pagination"], base):`,()=>{e.line(c==="Any"?"yield page":`yield decode(${c}, page)`)})}),e.blank(),e.block(`async def ${t}_items(${h}) -> ${b}[${r}]:`,()=>{e.line(`op = _OPERATIONS["${t}"]`),v(),e.block(`async for item in ${k}(_page, op["pagination"], base):`,()=>{e.line(r==="Any"?"yield item":`yield decode(${r}, item)`)})})):(e.block(`def ${t}_pages(${h}) -> ${b}[${c}]:`,()=>{e.line(`op = _OPERATIONS["${t}"]`),v(),e.line(c==="Any"?`return ${_}(_page, op["pagination"], base)`:`return (decode(${c}, page) for page in ${_}(_page, op["pagination"], base))`)}),e.blank(),e.block(`def ${t}_items(${h}) -> ${b}[${r}]:`,()=>{e.line(`op = _OPERATIONS["${t}"]`),v(),e.line(r==="Any"?`return ${k}(_page, op["pagination"], base)`:`return (decode(${r}, item) for item in ${k}(_page, op["pagination"], base))`)})),e.blank()}function he(e){return ie(e).map(t=>t.kind==="literal"?m.string(t.value):q(t.name).python).join(" + ")}function ue(e,n){let t=n.servers??[];if(t.length===0)return;let s=new Set;e.block("class Servers:",()=>{e.line('"""The declared servers; variables default to the values from the description."""'),e.blank(),t.forEach((r,a)=>{let i=N(r.description??`server${a+1}`,{style:"snake",reserved:x});s.has(i)&&(i=`${i}_${a+1}`),s.add(i);let c=r.variables.map(p=>`${q(p.name).python}: str = ${m.string(p.default)}`);a>0&&e.blank(),e.line("@staticmethod"),e.block(`def ${i}(${c.join(", ")}) -> str:`,()=>{e.line(`return ${he(r)}`)})})}),e.blank()}function X(e,n,t,s,r,a,i){let c=s?"AsyncClient":"Client",p=s?"httpx.AsyncClient":"httpx.Client";e.block(`class ${c}:`,()=>{e.doc(`${s?"Async ":""}client for ${n.title} (${n.version}).`),e.block(`def __init__(self, server_url: str = ${m.string(a)}, *, auth: Optional[Dict[str, Any]] = None, headers: Optional[Dict[str, str]] = None, timeout: Optional[float] = None, retry: Optional[Dict[str, Any]] = None, middleware: Optional[List[Any]] = None, idempotency_key: Any = None, http_client: Optional[${p}] = None) -> None:`,()=>{e.line("self._server_url = server_url"),e.line("self._auth = auth or {}"),e.line("self._config: Dict[str, Any] = {"),e.indent(()=>{e.line('"headers": headers or {},'),e.line('"timeout": timeout,'),e.line('"retry": retry or {},'),e.line('"middleware": middleware or [],'),e.line('"idempotency_key": idempotency_key,')}),e.line("}"),e.line(`self._http = http_client or ${p}()`)}),e.blank();for(let{op:l,ident:o}of M(n)){Q(e,l,o,t,s,i),F(l)===void 0&&(l.successResponseHeaders?.length??0)>0&&Q(e,l,o,t,s,i,n,!0);let d=r.get(o);if(d!==void 0){let y=E(l),h=ce(y,typeof d.items=="string"?d.items:void 0,n);me(e,l,o,s,h===void 0?"Any":u(h,i),i)}}}),e.blank()}function Z(e){let n=new Map,t=new Set,s=[];for(let{name:a,schema:i}of e.schemas){let c=B(i,e);if(!(c===void 0||!c.cases.every(l=>K(l.schema,e)?.properties.some(o=>o.name===c.property)===!0))){for(let l of c.cases){let o=n.get(l.schemaName);if(o!==void 0&&o.value!==l.value){t.add(l.schemaName);continue}n.set(l.schemaName,{property:c.property,value:l.value})}s.push({name:a,property:c.property,members:c.cases.map(l=>l.schemaName)})}}let r=new Map;for(let a of s)a.members.some(i=>t.has(i))||r.set(a.name,q(a.property).python);for(let a of t)n.delete(a);return{pins:n,unions:r}}function $e(e,n,t,s,r,a,i){let c=r==="pydantic";c||e.line("@dataclass");let p=c?`class ${O(n)}(BaseModel):`:`class ${O(n)}:`;e.block(p,()=>{e.doc(a),c&&(e.line("model_config = ConfigDict(populate_by_name=True)"),e.blank());let l=[...t.filter(d=>d.required),...t.filter(d=>!d.required)],o=[];l.length===0&&e.line("pass");for(let d of l){let{python:y,renamed:h}=q(d.name);h&&!c&&o.push([y,d.name]);let b=h&&c?`alias=${m.string(d.name)}`:void 0,_=i?.property===d.name?`Literal[${m.literal(i.value)}]`:u(d.schema,s);if(d.required){let k=b===void 0?"":` = Field(${b})`;e.line(`${y}: ${_}${k}`)}else{let k=_.startsWith("Optional[")?_:`Optional[${_}]`,v=b===void 0?"None":`Field(default=None, ${b})`;e.line(`${y}: ${k} = ${v}`)}}if(o.length>0){e.blank(),e.line("# Python field name -> wire (JSON) name, for (de)serialization.");let d=o.map(([y,h])=>`"${y}": ${m.string(h)}`).join(", ");e.line(`_field_map: ClassVar[Dict[str, str]] = {${d}}`)}}),e.blank(),e.blank()}function ee(e,n="string",t="dataclass"){let s=new D,{pins:r,unions:a}=t==="pydantic"?Z(e):{pins:new Map,unions:new Map};s.line("from __future__ import annotations"),s.blank(),t==="dataclass"&&s.line("from dataclasses import dataclass"),s.line("from enum import Enum");let i=["Any","AsyncIterator","Dict","Iterator","List","Literal","Optional","Tuple","Union"];t==="dataclass"&&i.splice(2,0,"ClassVar"),a.size>0&&i.unshift("Annotated"),s.line(`from typing import ${i.join(", ")}`),t==="pydantic"&&s.line("from pydantic import BaseModel, ConfigDict, Field"),n==="Date"&&s.line("from datetime import date, datetime"),s.blank(),s.blank();let c=new Map;for(let{name:p,schema:l}of e.schemas){let o=re(l);if(o!==void 0){let d=o.scalar==="string"?"str, Enum":"int, Enum";s.block(`class ${O(p)}(${d}):`,()=>{s.doc(l.description),o.values.forEach((y,h)=>{s.line(`${o.memberNames[h]} = ${m.literal(y)}`)})}),s.blank(),s.blank();continue}if(l.kind==="object"||l.kind==="intersection"){let d=K(l,e);if(d!==void 0){$e(s,p,d.properties,n,t,d.description??l.description,r.get(p));continue}}c.set(p,l)}for(let[p,l]of _e(c)){let o=B(l,e);if(o!==void 0){let h=o.cases.map(b=>`${b.value} -> ${O(b.schemaName)}`).join(", ");s.line(`# Discriminated by "${o.property}": ${h}`)}let d=a.get(p),y=d===void 0?u(l,n):`Annotated[${u(l,n)}, Field(discriminator=${m.string(d)})]`;s.line(`${O(p)} = ${y}`),s.blank()}return s.toString()}function _e(e){let n=[],t=new Set,s=r=>{let a=e.get(r);if(!(a===void 0||t.has(r))){t.add(r);for(let i of H(a))s(i);n.push([r,a])}};for(let r of e.keys())s(r);return n}function H(e){return e.kind==="ref"?[e.name]:e.kind==="array"?H(e.items):e.kind==="record"?H(e.value):e.kind==="union"?e.members.flatMap(H):[]}function ye(e,n){let t=[];for(let{name:s,schema:r}of e.schemas){if(n.has(s))continue;let a=B(r,e);if(a===void 0)continue;let i=a.cases.map(c=>`${m.string(c.value)}: ${O(c.schemaName)}`).join(", ");t.push(`DISCRIMINATORS[${O(s)}] = (${m.string(a.property)}, {${i}})`)}return t}var an={type:"object",properties:{models:{enum:["dataclass","pydantic"],default:"dataclass",description:"Model style: standard-library dataclasses (default, httpx is the only dependency), or pydantic BaseModel classes (adds pydantic)."}},additionalProperties:!1};function ne(e){let n=e.lastIndexOf("/")>=0?"/":"\\",t=e.lastIndexOf(n),s=t>=0?e.slice(0,t+1):"",r=(t>=0?e.slice(t+1):e).replace(/\.[^.]+$/,"");return`${s}${N(r,{style:"snake",reserved:x})}.py`}var cn=({model:e,output:n,banner:t,emit:s,options:r,pagination:a})=>{let i=s.errorMode??"throw",c=s.dateType??"string",p=r?.models??"dataclass",l=p==="pydantic"?Z(e):void 0,o=new D;if(o.line(`# Generated by @redocly/client-generator (python) from "${e.title}" ${e.version}.`),o.line("# Do not edit by hand \u2014 regenerate with `redocly generate-client`."),o.line(p==="pydantic"?"# Requires Python >= 3.9, httpx, and pydantic: pip install httpx pydantic":"# Requires Python >= 3.9 and httpx: pip install httpx"),o.blank(),o.line(ee(e,c,p).trimEnd()),o.blank(),o.blank(),ue(o,e),s.runtime==="module"){o.line("# \u2500\u2500\u2500 Runtime (real modules beside this file, written by the same run) \u2500\u2500\u2500");for(let f of Object.keys(U))o.line(`from ${f.replace(/\.py$/,"")} import *`);o.blank(),o.blank()}else{o.line("# \u2500\u2500\u2500 Embedded runtime (@redocly/client-generator python runtime) \u2500\u2500\u2500");for(let f of Object.values(U)){let $=f.split(`
9
- `).filter(g=>!g.startsWith("from __future__")&&!g.startsWith("from ._")).join(`
10
- `).trim();o.line($),o.blank()}o.blank()}let d=ye(e,new Set(l?.unions.keys()));if(d.length>0){o.line("# Discriminated unions dispatch by their property inside decode().");for(let f of d)o.line(f);o.blank()}o.block("def _safe_json(response: httpx.Response) -> Any:",()=>{o.block("try:",()=>{o.line("return response.json()")}),o.block("except Exception:",()=>{o.line("return None")})}),o.blank();let y=new Map;for(let{op:f,ident:$}of M(e))y.set($,fe(a?.get(f.name)?.spec));o.line("_OPERATIONS = {"),o.indent(()=>{for(let{op:f,ident:$}of M(e)){let g={id:f.specName??f.name,method:f.method.toUpperCase(),path:f.path,...J(f,e).length>0?{security:J(f,e)}:{},...y.get($)!==void 0?{pagination:y.get($)}:{}};o.line(`"${$}": ${de(g)},`)}}),o.line("}"),o.blank(),o.blank();let h=s.serverUrl??e.serverUrl??"";X(o,e,i,!1,y,h,c),X(o,e,i,!0,y,h,c);let b={path:ne(n.path),content:o.toString()};if(s.runtime!=="module")return[b];let _=t.map(f=>`# ${f}`).join(`
11
- `),k=ne(n.path).replace(/[^\\/]+$/,""),v=Object.entries(U).map(([f,$])=>({path:`${k}${f}`,content:`${_}
12
-
13
- ${$.split(`
14
- `).map(g=>g.startsWith("from ._")?g.replace("from ._","from _"):g).join(`
15
- `).trim()}
16
- `}));return[b,...v]};function ge(e,n){let t=ne(n.outputPath).replace(/^.*[\\/]/,"").replace(/\.py$/,""),s=M(n.model).find(a=>a.op.name===e.name)?.ident??N(e.name,{style:"snake",reserved:x}),r=[...e.pathParams.map(a=>{let i=N(a.name,{style:"snake",reserved:x});return`${i}="<${i}>"`}),...e.queryParams.filter(a=>a.required).map(a=>`${N(a.name,{style:"snake",reserved:x})}=...`),...e.requestBody?["body=..."]:[]];return{lang:"python",label:"Python SDK",source:`from ${t} import Client
17
-
18
- client = Client()
19
- result = client.${s}(${r.join(", ")})
20
- `}}var ln=({model:e,output:n,emit:t,pagination:s})=>[{path:n.path.replace(/\.[^.\\/]+$/,".python.md"),content:le(e,{title:`${e.title} Python SDK reference`,frontmatter:t.docsFrontmatter===!0,language:{name:"python",label:"Python",fence:"python",requires:"The SDK needs `httpx`."},sample:r=>ge(r,{model:e,emit:t,outputPath:n.path}),paginated:new Set(s?.keys()??[])})}];export{u as a,ee as b,an as c,cn as d,ge as e,ln as f};
@@ -1,20 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{a as G}from"./HAOBCQWB.js";import{b as j,c as N,d as Q,e as O,f as Z,g as Y,h as X,i as ee,j as ne}from"./EFB2YVY2.js";import{a as H}from"./WZXA5XPB.js";import{a as F,b as W,c as L,d as x,e as _,g as A,h as U,i as z,j as K,k as J,l as D,n as V}from"./UW4UC7ZI.js";var B=L.go,P=class extends F{constructor(){super(" ")}typeName(t){return d(t)}memberName(t){return d(t)}identifier(t){return x(t,{style:"camel",reserved:B})}identifiers(t,n){let r=new Set(n??[]);return t.map(o=>{let s=d(o),a=s;for(let i=2;r.has(a);i++)a=`${s}${i}`;return r.add(a),a})}packageName(t){let n=t.toLowerCase().replace(/[^a-z0-9]/g,"");return n===""||/^[0-9]/.test(n)?"client":n}string(t){let n='"';for(let r of t){let o=r.codePointAt(0);r==="\\"?n+="\\\\":r==='"'?n+='\\"':r===`
8
- `?n+="\\n":r==="\r"?n+="\\r":r===" "?n+="\\t":o<32||o===127?n+=`\\x${o.toString(16).padStart(2,"0")}`:o>=55296&&o<=57343?n+="\\uFFFD":n+=r}return n+'"'}literal(t){return t==null?"nil":typeof t=="boolean"||typeof t=="number"?String(t):typeof t=="string"?this.string(t):Array.isArray(t)?`[]any{${t.map(r=>this.literal(r)).join(", ")}}`:`map[string]any{${Object.entries(t).map(([r,o])=>`${this.string(r)}: ${this.literal(o)}`).join(", ")}}`}comment(t){for(let n of D(t))this.line(n===""?"//":`// ${n}`);return this}doc(t,n){let r=D(n);if(r.length===0)return this;this.line(`// ${t} \u2014 ${r[0]}`);let o=!1;for(let s of r.slice(1)){if(s===""){o||this.line("//"),o=!0;continue}this.line(`// ${s}`),o=!1}return this}layout(t){return ue(fe(t))}toString(){return this.layout(super.toString())}};function d(e){let t=x(e,{style:"pascal",reserved:B});return t.startsWith("_")?`N${t.slice(1)}`:t}function ue(e){return`${e.replace(/\n{3,}/g,`
9
-
10
- `).trimEnd()}
11
- `}function fe(e){let t=e.split(`
12
- `),n=[...t],r=/^(\t+)([A-Za-z_]\w*) (\S+)( `[^`]*`)?$/,o=/^(\t+)([A-Za-z_]\w*) (\S+) = (.+)$/,s=/^(\t+)("(?:[^"\\]|\\.)*":) (.+)$/,a=l=>{if(l.length<2)return;let m=[];for(let{parts:f}of l)f.forEach(($,g)=>{g<f.length-1&&(m[g]=Math.max(m[g]??0,$.length))});for(let{index:f,parts:$,indent:g}of l){let h=$.map((y,b)=>b<$.length-1?y.padEnd(m[b]??0):y);n[f]=g+h.join(" ").trimEnd()}},i=[],u;return t.forEach((l,m)=>{let f=s.exec(l),$=f===null?o.exec(l):null,g=f===null&&$===null?r.exec(l):null,h=g!==null&&!B.has(g[2])?g:null,y=f!==null?"entry":$!==null?"const":h!==null?"field":void 0;if((y===void 0||y!==u)&&(a(i),i=[],u=y),f!==null){i.push({index:m,indent:f[1],parts:[f[2],f[3]]});return}if($!==null){i.push({index:m,indent:$[1],parts:[$[2],$[3],"=",$[4]]});return}if(h!==null){let b=[h[2],h[3]];h[4]!==void 0&&b.push(h[4].trimStart()),i.push({index:m,indent:h[1],parts:b})}}),a(i),n.join(`
13
- `)}var c=new P,v=L.go;function te(e){if(e===void 0)return"client";if(!/^[a-z_][a-z0-9_]*$/.test(e)||v.has(e))throw new H(`goPackage "${e}" is not a valid Go package name: use lowercase letters, digits, and underscores, don't start with a digit, and avoid Go keywords.`);return e}function R(e){let t=new Set,n=[];for(let r of e.services)for(let o of r.operations){let s=d(o.name),a=2;for(;t.has(s);)s=`${d(o.name)}${a++}`;t.add(s),n.push({op:o,ident:s})}return n}function de(e){return Y(e).map(n=>n.kind==="literal"?c.string(n.value):x(n.name,{style:"camel",reserved:v})).join(" + ")}function re(e,t){let n=t.servers??[];if(n.length===0)return;let r=new Set;n.forEach((o,s)=>{let a=`${d(o.description??`server${s+1}`)}URL`;r.has(a)&&(a=`${a}${s+1}`),r.add(a);let i=o.variables.map(l=>`${x(l.name,{style:"camel",reserved:v})} string`),u=o.variables.map(l=>`${x(l.name,{style:"camel",reserved:v})} default: ${c.string(l.default)}`).join(", ");e.line(`// ${a} returns the ${c.string(o.description??o.url)} base URL${u===""?".":` (${u}).`}`),e.block(`func ${a}(${i.join(", ")}) string {`,()=>{e.line(`return ${de(o)}`)},"}"),e.blank()})}function oe(e,t){let n=X(e,t).map(r=>r.map(o=>o.kind==="apiKey"?`{Scheme: ${c.string(o.scheme)}, Kind: "apiKey", Name: ${c.string(o.name)}, In: ${c.string(o.in)}}`:`{Scheme: ${c.string(o.scheme)}, Kind: ${c.string(o.kind)}}`));if(n.length!==0)return`[][]SecuritySpec{${n.map(r=>`{${r.join(", ")}}`).join(", ")}}`}function se(e){return`&PaginationSpec{${[`Style: ${c.string(e.style)}`,...e.param!==void 0?[`Param: ${c.string(e.param)}`]:[],...e.nextCursor!==void 0?[`NextCursor: ${c.string(e.nextCursor)}`]:[],...e.hasMore!==void 0?[`HasMore: ${c.string(e.hasMore)}`]:[],...e.nextLink!==void 0?[`NextLink: ${c.string(e.nextLink)}`]:[],...e.limitParam!==void 0?[`LimitParam: ${c.string(e.limitParam)}`]:[],...e.items!==void 0?[`Items: ${c.string(e.items)}`]:[]].join(", ")}}`}function p(e,t="string"){if(z(e)){let n=p(K(e),t);return n.startsWith("*")||n==="any"?n:`*${n}`}switch(e.kind){case"scalar":if(t==="Date"&&e.scalar==="string"){if(e.metadata?.format==="date-time")return"time.Time";if(e.metadata?.format==="date")return"Date"}return{string:"string",integer:"int64",number:"float64",boolean:"bool"}[e.scalar];case"array":return`[]${p(e.items,t)}`;case"record":return`map[string]${p(e.value,t)}`;case"ref":return d(e.name);case"literal":return typeof e.value=="string"?"string":typeof e.value=="boolean"?"bool":"float64";case"enum":return{string:"string",integer:"int64",number:"float64",boolean:"bool"}[e.scalar];case"omit":return d(e.base);case"union":case"null":case"object":case"intersection":case"unknown":return"any"}}function me(e,t,n,r,o){e.doc(d(t),o),e.block(`type ${d(t)} struct {`,()=>{for(let s of n){let a=d(s.name),i=p(s.schema,r),u=`\`json:"${s.name}"\``;s.required||(!i.startsWith("*")&&!i.startsWith("[]")&&!i.startsWith("map[")&&i!=="any"&&(i=`*${i}`),u=`\`json:"${s.name},omitempty"\``),e.line(`${a} ${i} ${u}`)}},"}"),e.blank()}function I(e,t="string"){let n=new P;n.line("package client"),n.blank(),e.schemas.some(({schema:s})=>U(s,e)!==void 0)&&(n.line('import "encoding/json"'),n.blank());let o=ge(e,t);return t==="Date"&&o.includes("time.Time")&&(n.line('import "time"'),n.blank()),n.line(o),n.toString()}function ge(e,t){let n=new P;for(let{name:r,schema:o}of e.schemas){let s=J(o);if(s!==void 0){let i=s.scalar==="string"?"string":"int64";n.doc(d(r),o.description),n.line(`type ${d(r)} ${i}`),n.blank(),n.block("const (",()=>{let u=new Set;s.values.forEach(l=>{let m=W.pascal(String(l))||"Value",f="";for(let g=2;u.has(m+f);g++)f=String(g);u.add(m+f);let $=d(r)+m+f;n.line(`${$} ${d(r)} = ${c.literal(l)}`)})},")"),n.blank();continue}if(o.kind==="object"||o.kind==="intersection"){let i=A(o,e);if(i!==void 0){me(n,r,i.properties,t,i.description??o.description);continue}}let a=U(o,e);if(a!==void 0){let i=d(r),u=a.cases.map(l=>`${l.value} -> ${d(l.schemaName)}`).join(", ");n.line(`// ${i} is a discriminated union ("${a.property}"): ${u}.`),n.line(`type ${i} = any`),n.blank(),n.line(`// Unmarshal${i} decodes into the member selected by "${a.property}".`),n.block(`func Unmarshal${i}(data []byte) (${i}, error) {`,()=>{n.block("var probe struct {",()=>{n.line(`Discriminant string \`json:"${a.property}"\``)},"}"),n.block("if err := json.Unmarshal(data, &probe); err != nil {",()=>{n.line("return nil, err")},"}"),n.line("switch probe.Discriminant {");for(let l of a.cases)n.block(`case ${c.string(l.value)}:`,()=>{n.line(`var value ${d(l.schemaName)}`),n.line("err := json.Unmarshal(data, &value)"),n.line("return value, err")});n.line("}"),n.line("var fallback any"),n.line("err := json.Unmarshal(data, &fallback)"),n.line("return fallback, err")},"}"),n.blank();continue}n.doc(d(r),o.description),n.line(`type ${d(r)} = ${p(o,t)}`),n.blank()}return n.toString()}function q(e,t){if(t==="string")return e;let n=e.startsWith("*")?`(${e})`:e;return t==="time.Time"?`${n}.Format(time.RFC3339)`:t==="Date"?`${n}.Format("2006-01-02")`:t==="int64"?`strconv.FormatInt(${e}, 10)`:t==="float64"?`strconv.FormatFloat(${e}, 'f', -1, 64)`:t==="bool"?`strconv.FormatBool(${e})`:`fmt.Sprint(${e})`}var $e=["c","ctx","body","params","out","op"];function T(e,t){let n=_(e.pathParams.map(r=>r.name),{style:"camel",reserved:v,taken:$e});return e.pathParams.map((r,o)=>({param:r,go:n[o],type:p(r.schema,t)}))}function he(e,t){let n=new Set;return(e.successResponseHeaders??[]).map(r=>{let o=d(r.name),s=o,a=2;for(;n.has(s);)s=`${o}${a++}`;n.add(s);let i=V(r.schema,t),u={integer:{goType:"*int64",helper:"headerInt64"},number:{goType:"*float64",helper:"headerFloat64"},boolean:{goType:"*bool",helper:"headerBool"},string:{goType:"*string",helper:"headerString"}}[i];return{field:s,name:r.name,...u}})}function E(e,t,n,r,o,s=!1){let a=T(t,r),i=t.queryParams.length>0,u=j(t),l=u===void 0?void 0:p(u,r),m=s?he(t,o):[],f=O(t)||t.requestBody!==void 0&&Z(t.requestBody.contentType);s&&(e.line(`// ${n}Headers carries the declared response headers of ${n}WithHeaders (nil when absent or unparsable).`),e.block(`type ${n}Headers struct {`,()=>{for(let S of m)e.line(`${S.field} ${S.goType}`)},"}"),e.blank());let $=["ctx context.Context",...a.map(({go:S,type:w})=>`${S} ${w}`),...t.requestBody?[`body ${f?"any":p(t.requestBody.schema,r)}`]:[],...i?[`params *${n}Params`]:[]],g=N(t),h=s?l===void 0?`(${n}Headers, error)`:`(${l}, ${n}Headers, error)`:g!==void 0?"func(yield func(ServerSentEvent, error) bool)":l===void 0?"error":`(${l}, error)`,y=S=>s?l===void 0?`return headers, ${S}`:`return out, headers, ${S}`:l===void 0?`return ${S}`:`return out, ${S}`,b=s?`${n}WithHeaders`:n;e.doc(b,s?`Like ${n}, also returning the declared response headers.`:t.summary),e.block(`func (c *Client) ${b}(${$.join(", ")}) ${h} {`,()=>{g===void 0&&l!==void 0&&e.line(`var out ${l}`),s&&e.line(`var headers ${n}Headers`),e.line(`op := operations[${c.string(t.specName??t.name)}]`),e.line("authHeaders, query := resolveAuth(op.Security, c.config.Auth)"),i&&e.block("if params != nil {",()=>{for(let k of t.queryParams){let C=d(k.name);e.block(`if params.${C} != nil {`,()=>{if(k.schema.kind==="array"){let M=p(k.schema.items,r);e.block(`for _, item := range *params.${C} {`,()=>{e.line(`query.Add(${c.string(k.name)}, ${q("item",M)})`)},"}")}else e.line(`query.Set(${c.string(k.name)}, ${q(`*params.${C}`,p(k.schema,r))})`)},"}")}},"}");let S=a.map(({param:k,go:C,type:M})=>`${c.string(k.name)}: ${q(C,M)}`).join(", ");if(e.line(`requestURL := buildURL(c.config.ServerURL, op.Path, map[string]string{${S}})`),g!==void 0){e.block("open := func(extraHeaders map[string]string) (*http.Response, error) {",()=>{e.line("merged := map[string]string{}"),e.block("for key, value := range authHeaders {",()=>{e.line("merged[key] = value")},"}"),e.block("for key, value := range extraHeaders {",()=>{e.line("merged[key] = value")},"}"),e.line("return send(ctx, &c.config, requestSpec{OperationID: op.ID, Method: op.Method, URL: requestURL, Headers: merged, Query: query})")},"}"),e.line(`return iterSSE(open, ${g.schema!==void 0&&g.schema.kind!=="unknown"})`);return}let w=["OperationID: op.ID","Method: op.Method","URL: requestURL","Headers: authHeaders","Query: query"];if(O(t)?(e.line("contentType, reader, stream, err := multipartBody(body)"),e.block("if err != nil {",()=>{e.line(y("err"))},"}"),w.push("Body: reader","Stream: stream","ContentType: contentType")):t.requestBody&&f?(e.line("reader, stream, err := binaryBody(body)"),e.block("if err != nil {",()=>{e.line(y("err"))},"}"),w.push("Body: reader","Stream: stream",`ContentType: ${c.string(t.requestBody.contentType)}`)):t.requestBody&&Q(t)?(e.line("contentType, reader, err := toMultipart(body)"),e.block("if err != nil {",()=>{e.line(y("err"))},"}"),w.push("Body: reader"),w.push("ContentType: contentType")):t.requestBody&&(e.line("payload, err := json.Marshal(body)"),e.block("if err != nil {",()=>{e.line(y("err"))},"}"),w.push("Body: bytes.NewReader(payload)"),w.push(`ContentType: ${c.string(t.requestBody.contentType)}`)),e.line(`resp, err := send(ctx, &c.config, requestSpec{${w.join(", ")}})`),e.block("if err != nil {",()=>{e.line(y("err"))},"}"),e.block("if resp.StatusCode >= 400 {",()=>{e.line(y("apiErrorFrom(resp, requestURL)"))},"}"),s){e.block(`if err := decodeJSON(resp, ${l===void 0?"nil":"&out"}); err != nil {`,()=>{e.line(y("err"))},"}");for(let k of m)e.line(`headers.${k.field} = ${k.helper}(resp.Header, ${c.string(k.name)})`);e.line(l===void 0?"return headers, nil":"return out, headers, nil")}else l===void 0?e.line("return decodeJSON(resp, nil)"):(e.block("if err := decodeJSON(resp, &out); err != nil {",()=>{e.line("return out, err")},"}"),e.line("return out, nil"))},"}"),e.blank()}function ae(e,t,n,r,o,s){let a=T(t,r),i=t.queryParams.length>0,u=["ctx context.Context",...a.map(({go:m,type:f})=>`${m} ${f}`),...i?[`params *${n}Params`]:[]].join(", "),l=()=>{e.line(`op := operations[${c.string(t.specName??t.name)}]`),e.line("base := url.Values{}"),i&&e.block("if params != nil {",()=>{for(let m of t.queryParams){let f=d(m.name);e.block(`if params.${f} != nil {`,()=>{e.line(`base.Set(${c.string(m.name)}, ${q(`*params.${f}`,p(m.schema,r))})`)},"}")}},"}"),e.block("call := func(pageParams url.Values) (any, *http.Response, error) {",()=>{e.line("authHeaders, query := resolveAuth(op.Security, c.config.Auth)"),e.block("for key, values := range pageParams {",()=>{e.block("for _, value := range values {",()=>{e.line("query.Set(key, value)")},"}")},"}");let m=a.map(({param:f,go:$,type:g})=>`${c.string(f.name)}: ${q($,g)}`).join(", ");e.line(`requestURL := buildURL(c.config.ServerURL, op.Path, map[string]string{${m}})`),e.line("resp, err := send(ctx, &c.config, requestSpec{OperationID: op.ID, Method: op.Method, URL: requestURL, Headers: authHeaders, Query: query})"),e.block("if err != nil {",()=>{e.line("return nil, nil, err")},"}"),e.block("if resp.StatusCode >= 400 {",()=>{e.line("return nil, resp, apiErrorFrom(resp, requestURL)")},"}"),e.line("var raw any"),e.block("if err := decodeJSON(resp, &raw); err != nil {",()=>{e.line("return nil, resp, err")},"}"),e.line("return raw, resp, nil")},"}"),e.line("pages := iterPages(call, *op.Pagination, base)")};e.line(`// ${n}Pages iterates ${n} response pages; use with \`for page, err := range\`.`),e.block(`func (c *Client) ${n}Pages(${u}) func(yield func(${o}, error) bool) {`,()=>{l(),e.block(`return func(yield func(${o}, error) bool) {`,()=>{e.block("pages(func(raw any, err error) bool {",()=>{e.line(`var page ${o}`),e.block("if err == nil {",()=>{e.line("err = reencode(raw, &page)")},"}"),e.line("return yield(page, err)")},"})")},"}")},"}"),e.blank(),e.line(`// ${n}Items iterates the items of every ${n} page.`),e.block(`func (c *Client) ${n}Items(${u}) func(yield func(${s}, error) bool) {`,()=>{l(),e.block(`return func(yield func(${s}, error) bool) {`,()=>{e.block("pages(func(raw any, err error) bool {",()=>{e.block("if err != nil {",()=>{e.line(`var zero ${s}`),e.line("return yield(zero, err)")},"}"),e.line("pageItems, _ := resolvePointer(raw, op.Pagination.Items).([]any)"),e.block("for _, item := range pageItems {",()=>{e.line(`var typed ${s}`),e.block("if err := reencode(item, &typed); err != nil {",()=>{e.line("return yield(typed, err)")},"}"),e.block("if !yield(typed, nil) {",()=>{e.line("return false")},"}")},"}"),e.line("return true")},"})")},"}")},"}"),e.blank()}function ie(e){let t=e.split(`
14
- `),n=[],r=!1;for(let o of t)if(!o.startsWith("package ")){if(o.startsWith("import (")){r=!0;continue}if(r){o.startsWith(")")&&(r=!1);continue}o.startsWith("import ")||n.push(o)}return n.join(`
15
- `).trim()}var le=["bytes","context","encoding/base64","encoding/json","errors","fmt","io","math/rand","mime/multipart","net/http","net/url","strconv","strings","time"];function ce(e,t,n,r,o,s){e.line(ie(I(t,r))),e.blank(),re(e,t),s&&(e.line("// \u2500\u2500\u2500 Embedded runtime (@redocly/client-generator go runtime) \u2500\u2500\u2500"),e.line(ie(G)),e.blank()),e.block("type operationMeta struct {",()=>{e.line("ID string"),e.line("Method string"),e.line("Path string"),e.line("Security [][]SecuritySpec"),e.line("Pagination *PaginationSpec")},"}"),e.blank(),e.block("var operations = map[string]operationMeta{",()=>{for(let{op:a,ident:i}of R(t)){let u=a.specName??a.name,l=oe(a,t),m=o.get(i),f=[`ID: ${c.string(u)}`,`Method: ${c.string(a.method.toUpperCase())}`,`Path: ${c.string(a.path)}`,...l!==void 0?[`Security: ${l}`]:[],...m!==void 0?[`Pagination: ${se(m)}`]:[]];e.line(`${c.string(u)}: {${f.join(", ")}},`)}},"}"),e.blank();for(let{op:a,ident:i}of R(t))a.queryParams.length!==0&&(e.block(`type ${i}Params struct {`,()=>{for(let u of a.queryParams){let l=p(u.schema,r);e.line(`${d(u.name)} ${l.startsWith("*")?l:`*${l}`}`)}},"}"),e.blank());e.doc("Client",`Client for ${t.title} (${t.version}).`),e.block("type Client struct {",()=>{e.line("config Config")},"}"),e.blank(),e.block("func New(config Config) *Client {",()=>{e.block('if config.ServerURL == "" {',()=>{e.line(`config.ServerURL = ${c.string(n.serverUrl??t.serverUrl??"")}`)},"}"),e.line("return &Client{config: config}")},"}"),e.blank();for(let{op:a,ident:i}of R(t)){E(e,a,i,r),N(a)===void 0&&(a.successResponseHeaders?.length??0)>0&&E(e,a,i,r,t,!0);let u=o.get(i);if(u===void 0)continue;let l=j(a),m=l===void 0?"any":p(l,r),f=ee(l,u.items,t);ae(e,a,i,r,m,f===void 0?"any":p(f,r))}}var an=({model:e,output:t,banner:n,emit:r,pagination:o})=>{let s=new P,a=r.dateType??"string",i=te(r.goPackage),u=new Map;for(let{op:h,ident:y}of R(e)){let b=o?.get(h.name)?.spec;b!==void 0&&u.set(y,b)}s.line(`// Code generated by @redocly/client-generator (go) from "${e.title}" ${e.version}. DO NOT EDIT.`),s.line("// Regenerate with `redocly generate-client`. Standard library only \u2014 zero dependencies."),s.line(`package ${i}`),s.blank();let l=r.runtime!=="module",m=l?le:(()=>{let h=new P;ce(h,e,r,a,u,!1);let y=h.toString();return le.filter(b=>new RegExp(`\\b${b.split("/").pop()}\\.`).test(y))})();s.block("import (",()=>{for(let h of m)s.line(c.string(h))},")"),s.blank(),ce(s,e,r,a,u,l);let f={path:t.path.replace(/\.[^.\\/]+$/,".go"),content:s.toString()};if(l)return[f];let $=n.map(h=>`// ${h}`).join(`
16
- `),g=G.replace(/^package .*$/m,`package ${i}`);return[f,{path:f.path.replace(/[^\\/]+$/,"runtime.go"),content:`${$}
17
- ${g.trimEnd()}
18
- `}]};function pe(e,t){let n=t.emit.dateType??"string",r=t.emit.goPackage??"client",o=R(t.model).find(u=>u.op.name===e.name)?.ident??d(e.name),s=["ctx",...e.pathParams.map(u=>`"<${x(u.name,{style:"camel",reserved:v})}>"`),...e.requestBody?[`${p(e.requestBody.schema,n)}{ /* \u2026 */ }`]:[],...e.queryParams.length>0?["nil"]:[]],a=`client.${o}(${s.join(", ")})`,i=N(e)!==void 0?`stream := ${a}`:j(e)===void 0?`err := ${a}`:`result, err := ${a}`;return{lang:"go",label:"Go SDK",source:`client := ${r}.New(${r}.Config{})
19
- ${i}
20
- `}}var ln=({model:e,output:t,emit:n,pagination:r})=>[{path:t.path.replace(/\.[^.\\/]+$/,".go.md"),content:ne(e,{title:`${e.title} Go SDK reference`,frontmatter:n.docsFrontmatter===!0,language:{name:"go",label:"Go",fence:"go",requires:"The SDK needs the standard library only."},sample:o=>pe(o,{model:e,emit:n,outputPath:t.path}),paginated:new Set(r?.keys()??[])})}];export{p as a,I as b,an as c,pe as d,ln as e};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{a as l}from"./K6VR5YNF.js";import{a as R,b as u,c as f,d}from"./E3FBSKNS.js";import{d as y,e as G,f as x}from"./O72R3AD4.js";import{c as g,d as S,e as h}from"./RZ3FGCBT.js";import{c as k,d as v,e as b}from"./EWU57NBY.js";import{a as D,b as E,c as q,d as z}from"./WACZWFKN.js";import{a as o}from"./YLRH4RVF.js";import{a,b as p,c as s}from"./YUEIHUPX.js";import"./HAOBCQWB.js";import{a as m}from"./STAMDB3P.js";import{a as i}from"./JM7BMZLD.js";import{a as c}from"./2UAA6O26.js";import"./QB6CQ2CV.js";import{a as I,d as M,e as N}from"./3DMXMP4K.js";import{a as rr,b as er,c as tr,d as or,e as nr,f as ar,g as pr,h as sr,i as mr,j as ir,k as cr}from"./EFB2YVY2.js";import"./JCP37EY3.js";import{a as U}from"./WZXA5XPB.js";import"./WBWCX3LS.js";import"./NEWT5A6S.js";import{e as T,h as j,k as w}from"./LD5MEXEL.js";import{a as _,b as B,c as F,d as J,e as Q,f as H,g as K,h as P,i as V,j as W,k as X,l as Y,m as Z,n as $}from"./UW4UC7ZI.js";import"./RFWIIJFG.js";var A={typescript:{run:a,sample:s,docs:p},zod:{run:m},transformers:{run:i},"tanstack-query":{run:o("react")},"tanstack-query-vue":{run:o("vue")},"tanstack-query-svelte":{run:o("svelte")},"tanstack-query-solid":{run:o("solid")},swr:{run:c},mock:{run:l},cli:{run:u,sample:d,docs:f},python:{run:y,sample:G,docs:x},go:{run:g,sample:S,docs:h},php:{run:k,sample:v,docs:b}},L=Object.fromEntries(Object.entries(D).map(([e,{load:r,...t}])=>[e,{...t,...A[e]}]));function n(){return new Map(Object.entries(L))}function C(e,r,t=n(),O){E(e,r,t,O)}function Er(e,r){let t=r.registry??n();return C(r.generators,r.emit,t,r.outputMode),q(e,{...r,registry:t})}export{cr as AUTHORING_HELPER_NAMES,U as NotSupportedError,_ as Printer,F as RESERVED_WORDS,B as casing,j as codeLiteral,Er as collectGeneratedFiles,H as deref,P as discriminatorCases,Y as docText,X as enumValues,K as flattenAllOf,z as generateClient,$ as headerCoerceType,J as identifierFor,ar as isBinaryContentType,or as isMultipartBody,V as isNullable,nr as isUntypedMultipartBody,er as jsonSuccessSchema,I as operationSignature,mr as paginationItemSchema,rr as paginationRuleFor,w as pascalCase,R as renderComposedCliEntry,ir as renderReferencePage,T as safeIdent,Z as schemaAtPointer,sr as securityRequirements,pr as serverUrlParts,tr as sseResponse,M as tsJsdoc,N as tsType,Q as uniqueIdentifiers,W as unwrapNullable};
@@ -1,9 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- var c=class{indentUnit;lines=[];depth=0;constructor(n=" "){this.indentUnit=n}line(n=""){return this.lines.push(n===""?"":this.indentUnit.repeat(this.depth)+n),this}blank(){return this.line()}indent(n){return this.depth++,n(),this.depth--,this}block(n,t,r){return this.line(n),this.indent(t),r===void 0?this:this.line(r)}toString(){return this.lines.join(`
8
- `)+`
9
- `}};function u(e){return e.replace(/^\+(?=\d)/,"plus ").replace(/^-(?=\d)/,"minus ").replace(/([A-Z]{2,})s(?![a-z])/g,"$1S").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").split(/[^A-Za-z0-9]+/).filter(n=>n!=="").map(n=>n.toLowerCase())}var p=e=>e.charAt(0).toUpperCase()+e.slice(1),f={camel:e=>{let[n,...t]=u(e);return(n??"")+t.map(p).join("")},pascal:e=>u(e).map(p).join(""),snake:e=>u(e).join("_"),screaming:e=>u(e).join("_").toUpperCase()},y={typescript:new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","implements","interface","let","package","private","protected","public","static","yield","await"]),python:new Set(["false","none","true","and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal","not","or","pass","raise","return","try","while","with","yield","match","case","type"]),go:new Set(["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"]),php:new Set(["abstract","and","array","as","break","callable","case","catch","class","clone","const","continue","declare","default","die","do","echo","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","exit","extends","final","finally","fn","for","foreach","function","global","goto","if","implements","include","instanceof","insteadof","interface","isset","list","match","namespace","new","or","print","private","protected","public","readonly","require","return","static","switch","throw","trait","try","unset","use","var","while","xor","yield","true","false","null","int","float","bool","string","void","iterable","object","mixed","never","self","parent"])};function b(e,n={}){let t=f[n.style??"camel"](e),r=t===""?"_":/^[0-9]/.test(t)?`_${t}`:t;return n.reserved?.has(r.toLowerCase())?`${r}_`:r}function m(e,n={}){let t=new Set(n.taken??[]),r=n.style==="snake"||n.style==="screaming"?"_":"";return e.map(s=>{let i=b(s,n),o=i;for(let d=2;t.has(o);d++)o=`${i}${r}${d}`;return t.add(o),o})}function a(e,n){let t=new Set,r=e;for(;r.kind==="ref";){let{name:s}=r;if(t.has(s))return;t.add(s);let i=n.schemas.find(o=>o.name===s);if(i===void 0)return;r=i.schema}return r}function h(e,n){let t=a(e,n);if(t===void 0)return;if(t.kind==="object")return{properties:t.properties,description:t.description};if(t.kind!=="intersection")return;let r=new Map;for(let s of t.members){let i=h(s,n);if(i===void 0)return;for(let o of i.properties)r.set(o.name,o)}return{properties:[...r.values()],description:t.description}}function S(e,n){let t=a(e,n);if(t?.kind!=="union"||t.discriminator===void 0)return;let r=[];for(let{value:s,schemaName:i}of t.discriminator.mapping){let o=a({kind:"ref",name:i},n);if(o===void 0)return;r.push({value:s,schemaName:i,schema:o})}return{property:t.discriminator.propertyName,cases:r}}function k(e){return e.kind==="union"&&e.members.some(n=>n.kind==="null")}function $(e){if(e.kind!=="union"||!k(e))return e;let n=e.members.filter(t=>t.kind!=="null");return n.length===1?n[0]:{...e,members:n}}function A(e){if(e.kind!=="enum")return;let n=m(e.values.map(t=>typeof t=="string"?f.screaming(t):`VALUE_${f.screaming(String(t))}`),{style:"screaming"});return{values:e.values,scalar:e.scalar,memberNames:n}}function j(e){if(!e)return[];let n=e.split(/\r\n|\n|\r/).map(t=>t.trim());for(;n.length>0&&n[0]==="";)n.shift();for(;n.length>0&&n[n.length-1]==="";)n.pop();return n}function g(e,n,t){if(e.kind==="object")return e.properties.find(r=>r.name===n)?.schema;if(e.kind==="record")return e.value;if(e.kind==="array"&&/^(0|[1-9]\d*)$/.test(n))return e.items;if(e.kind==="intersection"){let r;for(let s of e.members){let i=a(s,t);i!==void 0&&(r=g(i,n,t)??r)}return r}}function _(e,n,t){let r=a(e,t);if(!(r===void 0||n!==""&&!n.startsWith("/"))){if(n==="")return r;for(let s of n.slice(1).split("/")){let i=s.replaceAll("~1","/").replaceAll("~0","~"),o=g(r,i,t);if(o===void 0||(r=a(o,t),r===void 0))return}return r}}function l(e,n,t=new Set){if(e.kind==="ref"){if(t.has(e.name))return"string";t.add(e.name);let r=n.schemas.find(s=>s.name===e.name);return r===void 0?"string":l(r.schema,n,t)}if(e.kind==="intersection"){let r=e.members.filter(i=>i.kind!=="unknown");if(r.length===1)return l(r[0],n,t);let s=[...new Set(r.map(i=>l(i,n,new Set(t))))];return s.length===1?s[0]:s.every(i=>i==="integer"||i==="number")?"number":"string"}if(e.kind==="union"){let r=e.members.filter(s=>s.kind!=="null");return r.length===1?l(r[0],n,t):"string"}if(e.kind==="scalar"||e.kind==="enum"){if(e.scalar==="integer")return"integer";if(e.scalar==="number")return"number";if(e.scalar==="boolean")return"boolean"}if(e.kind==="literal"){if(typeof e.value=="number")return Number.isInteger(e.value)?"integer":"number";if(typeof e.value=="boolean")return"boolean"}return"string"}export{c as a,f as b,y as c,b as d,m as e,a as f,h as g,S as h,k as i,$ as j,A as k,j as l,_ as m,l as n};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{b as a,c as b,d as c}from"./E3FBSKNS.js";import"./HAOBCQWB.js";import"./QB6CQ2CV.js";import"./3DMXMP4K.js";import"./EFB2YVY2.js";import"./JCP37EY3.js";import"./WZXA5XPB.js";import"./WBWCX3LS.js";import"./NEWT5A6S.js";import"./LD5MEXEL.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{b as cliDocs,a as cliGenerator,c as cliSample};
@@ -1,19 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{a as ee,b as te,f as ne,g as E,h as re}from"./JCP37EY3.js";import{a as y}from"./WZXA5XPB.js";import{M as W,S as V,c as x,fa as b,ha as Q,oa as Y,q as S,qa as T,r as H,t as J,xa as Z}from"./WBWCX3LS.js";import{b as A,c as G,k as D}from"./LD5MEXEL.js";import{mkdir as ct,readFile as ut,writeFile as dt}from"node:fs/promises";import{dirname as ke,parse as ft,resolve as R,sep as pt}from"node:path";function M(e){return{requires:["typescript"],errorModes:["throw"],load:()=>import("./M6UVHV6D.js").then(t=>({run:t.tanstackQueryGenerator(e)}))}}var U={outputMode:"it always emits one self-contained file",runtime:"the runtime is always embedded in the generated file",argsStyle:"inputs follow the target language's own idiom",importExt:"the generated file has no relative imports"},I={typescript:{load:()=>import("./GMGZQR6Q.js").then(e=>({run:e.typescriptGenerator,sample:e.typescriptSample,docs:e.typescriptDocs}))},zod:{load:()=>import("./TXSBWL3Y.js").then(e=>({run:e.zodGenerator}))},transformers:{requires:["typescript"],dateTypes:["Date"],load:()=>import("./IULINGO6.js").then(e=>({run:e.transformersGenerator}))},"tanstack-query":M("react"),"tanstack-query-vue":M("vue"),"tanstack-query-svelte":M("svelte"),"tanstack-query-solid":M("solid"),swr:{requires:["typescript"],errorModes:["throw"],load:()=>import("./MYSYBBIO.js").then(e=>({run:e.swrGenerator}))},mock:{requires:["typescript"],load:()=>import("./RIGQPR2I.js").then(e=>({run:e.mockGenerator}))},cli:{requires:["typescript","zod"],errorModes:["throw"],load:()=>import("./VQRJE4I2.js").then(e=>({run:e.cliGenerator,sample:e.cliSample,docs:e.cliDocs}))},python:{notApplicable:U,load:()=>import("./BPDHBW3N.js").then(e=>({run:e.pythonGenerator,sample:e.pythonSample,docs:e.pythonDocs,options:e.pythonOptions}))},go:{errorModes:["throw"],notApplicable:U,load:()=>import("./CZS2ZXJ7.js").then(e=>({run:e.goGenerator,sample:e.goSample,docs:e.goDocs}))},php:{errorModes:["throw"],notApplicable:U,load:()=>import("./EHQY7ZOF.js").then(e=>({run:e.phpGenerator,sample:e.phpSample,docs:e.phpDocs}))}};function oe(e,t,n,r){let o=new Set(e);t.goPackage!==void 0&&!o.has("go")&&b.warn(`generate-client: goPackage is ignored \u2014 it declares the Go package clause, and no selected generator uses it (add --generator go).
8
- `),t.telemetry==="on"&&!o.has("typescript")&&b.warn(`generate-client: telemetry is ignored \u2014 the typescript generator writes the telemetry module, and it is not selected (add --generator typescript).
9
- `);let s=t.errorMode??"throw",i=t.dateType??"string";for(let a of e){let c=n.get(a);if(!c)throw new y(`Unknown generator: ${a}`);for(let d of c.requires??[])if(!o.has(d)){let f=[...new Set([d,...e])].map(m=>`--generator ${m}`).join(" ");throw new y(`The "${a}" generator requires the "${d}" generator. Add it, e.g. ${f}.`)}if(c.errorModes&&!c.errorModes.includes(s))throw new y(`The "${a}" generator does not support --error-mode "${s}" (supported: ${c.errorModes.join(", ")}).`);if(c.dateTypes&&!c.dateTypes.includes(i))throw new y(`The "${a}" generator requires --date-type ${c.dateTypes.join(" or ")} (got "${i}") so the runtime values match the generated types.`);let u={...t,outputMode:r};for(let[d,f]of Object.entries(c.notApplicable??{}))u[d]!==void 0&&b.warn(`generate-client: the "${a}" generator ignores ${d} \u2014 ${f}.
10
- `)}}function se(e,t,n){let r=new Map;for(let o of e){let s=t.get(o)?.options,i=n?.[o];if(s===void 0){i!==void 0&&b.warn(`generate-client: the "${o}" generator declares no options, so client.options.${o} is ignored.
11
- `),r.set(o,{});continue}r.set(o,Se(o,s,i))}return r}function Se(e,t,n){if(n!==void 0&&!x(n))throw new y(`The "${e}" generator's options must be a map of option names to values.`);let r=n??{},o=Object.keys(t.properties);if(t.additionalProperties!==!0){for(let i of Object.keys(r))if(!o.includes(i))throw new y(`The "${e}" generator got an unknown option "${i}". Declared options: ${o.join(", ")||"(none)"}.`)}for(let i of t.required??[])if(r[i]===void 0)throw new y(`The "${e}" generator requires the "${i}" option.`);let s={...r};for(let[i,a]of Object.entries(t.properties)){if(s[i]===void 0){a.default!==void 0&&(s[i]=a.default);continue}let c=ve(a,s[i]);if(c!==void 0)throw new y(`The "${e}" generator's "${i}" ${c}.`)}return s}function ve(e,t){if("enum"in e)return e.enum.includes(t)?void 0:`must be one of: ${e.enum.join(", ")}`;if(e.type==="array"){let n=e.items.type;return Array.isArray(t)&&t.every(r=>typeof r===n)?void 0:`must be an array of ${n}`}return typeof t===e.type?void 0:`must be a ${e.type}`}import{isAbsolute as xe,resolve as qe}from"node:path";import{pathToFileURL as Pe}from"node:url";var Oe=function(e,t){return typeof e=="string"&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(n,r,o,s,i){return r?t?".jsx":".js":o&&(!s||!i)?n:o+s+"."+i.toLowerCase()+"js"}):e};async function ae(e,t={}){let n=new Map;for(let a of t.customGenerators??[])ce(n,a);let r=[];for(let a of e)r.push(await ie(a,n,t.configDir));let o=[],s=new Set,i=async a=>{if(!(o.includes(a)||s.has(a))){s.add(a);for(let c of n.get(a).requires??[])(n.has(c)||c in I)&&await i(await ie(c,n,t.configDir));s.delete(a),o.push(a)}};for(let a of r)await i(a);return{selected:o,registry:n}}async function ie(e,t,n){if(t.has(e))return e;let r=I[e];if(r!==void 0){let{load:s,...i}=r;return t.set(e,{...i,...await s()}),e}if(e==="sdk")throw new y('The "sdk" generator is now named "typescript". Update the `generators` list or the --generator flag.');let o=await je(e,n??process.cwd());return ce(t,o),o.name}function ce(e,t){if(!x(t)||typeof t.name!="string"||t.name===""||typeof t.run!="function")throw new y("Invalid custom generator: expected an object with a non-empty string `name` and a `run` function (build one with `defineGenerator`).");if(e.has(t.name))throw new y(`Generator name "${t.name}" collides with an existing generator. Rename the custom generator.`);if(t.requiresGenerator!==void 0){let n=re(E,t.requiresGenerator);if(n===void 0)throw new y(`Generator "${t.name}" declares requiresGenerator "${t.requiresGenerator}", which is not a range we read. Use ^1.2.0, ~1.2.0, >=1.2.0, or an exact version.`);if(!n)throw new y(`Generator "${t.name}" needs @redocly/client-generator ${t.requiresGenerator}; this CLI ships ${E}. Upgrade @redocly/cli if the generator is newer, or update the generator \u2014 \`redocly eject-generator <name> --update\` for an ejected file, or upgrade its package.`)}t.name in I&&b.warn(`generate-client: custom generator "${t.name}" takes over the built-in generator of the same name.
12
- `),e.set(t.name,{run:t.run,sample:t.sample,docs:t.docs,notApplicable:t.notApplicable,options:t.options,requires:t.requires,errorModes:t.errorModes,dateTypes:t.dateTypes})}async function je(e,t){if(J(e))throw new y(`Remote generator modules are not supported \u2014 use a local path or a package name. Got: ${e}`);let n=e.startsWith(".")||xe(e),r=n?Pe(qe(t,e)).href:e;if(n&&e.endsWith(".ts")&&!process.features.typescript)throw new y(`Generator "${e}" is TypeScript, which this Node cannot run directly \u2014 use Node 22.18, 23.6, or newer.`);let o;try{o=await import(Oe(r))}catch(i){throw new y(`Could not load generator "${e}": ${i.message}`)}let s=o.default??o.generator;if(s===void 0)throw new y(`Generator module "${e}" must export a generator (a default export or a \`generator\` export built with \`defineGenerator\`).`);return s}function fe(e){let t=new Set,n=new Set,r=new Map;for(let l of e.securitySchemes){let h=C(l.key,t,n);h!==l.key&&(r.set(l.key,h),L("security scheme",l.key,h,de(l.key,t)),l.key=h)}let o=new Set(ne()),s=new Set(o),i=new Set,a=new Map;for(let l of e.schemas){let h=C(l.name,s,i);h!==l.name&&(a.set(l.name,h),L("schema",l.name,h,de(l.name,o)),l.name=h)}let c=l=>a.get(l)??ue(l),u=l=>r.get(l)??ue(l);for(let l of e.schemas)$(l.schema,c);let d=new Set(s),f=new Set,m=new Set;for(let l of e.services)for(let h of l.operations){let p=m.has(h.name);m.add(h.name);let g=h.name,P=C(h.name,d,f);if(P!==h.name){let j=p?{kind:"duplicate-operation-id"}:o.has(g)?{kind:"reserved"}:s.has(g)?{kind:"schema-collision"}:{kind:"unusable"};L("operation",g,P,j),h.specName=h.name,h.name=P}Ne(h,c),h.security=h.security.map(j=>j.map(u))}}function C(e,t,n){let r=G(e),o=r,s=2;for(;t.has(o)||n.has(D(o));)o=`${r}_${s++}`;return t.add(o),n.add(D(o)),o}function pe(e){for(let t of e.schemas)if(!A(t.name))throw B("schema",t.name);for(let t of e.securitySchemes)if(!A(t.key))throw B("security scheme",t.key);for(let t of e.services)for(let n of t.operations)if(!A(n.name))throw B("operation",n.name)}function B(e,t){return new Error(`Internal error: ${e} name ${JSON.stringify(t)} is not a safe identifier after sanitization.`)}function ue(e){return G(e)}function L(e,t,n,r){let o=JSON.stringify(t),s=JSON.stringify(n),i=r.kind==="duplicate-operation-id"?`two operations share the operationId ${o}; the second is emitted as ${s} \u2014 give each operation a unique operationId to control its method name`:r.kind==="schema-collision"?`${e} ${o} collides with the schema of the same name, so it is emitted as ${s} \u2014 rename the operation or the schema in the description to control its name`:r.kind==="reserved"?`${e} ${o} is a name a generated client already declares, so it is emitted as ${s} \u2014 the reserved set spans every target language, so one schema keeps one name across the SDKs you generate`:`${e} ${o} is not a usable identifier, so it is emitted as ${s}`;b.warn(`generate-client: ${i}.
13
- `)}function de(e,t){return t.has(e)?{kind:"reserved"}:{kind:"unusable"}}function $(e,t){switch(e.kind){case"ref":e.name=t(e.name);break;case"omit":e.base=t(e.base);break;case"array":$(e.items,t);break;case"record":$(e.value,t);break;case"object":for(let n of e.properties)$(n.schema,t);break;case"union":for(let n of e.members)$(n,t);if(e.discriminator)for(let n of e.discriminator.mapping)n.schemaName=t(n.schemaName);break;case"intersection":for(let n of e.members)$(n,t);break}}function Ne(e,t){for(let n of e.pathParams)$(n.schema,t);for(let n of e.queryParams)$(n.schema,t);for(let n of e.headerParams)$(n.schema,t);for(let n of e.cookieParams)$(n.schema,t);e.requestBody&&$(e.requestBody.schema,t);for(let n of[...e.successResponses,...e.errorResponses])$(n.schema,t),n.itemSchema&&$(n.itemSchema,t)}var Ae=["get","post","put","delete","patch","head","options"];function me(e,t){if(!t.startsWith("#/"))throw new y(`External $ref not supported: ${t}`);let n=t.slice(2).split("/").map(o=>o.replace(/~1/g,"/").replace(/~0/g,"~")),r=e;for(let o of n){if(!x(r)&&!Array.isArray(r))throw new y(`Cannot resolve $ref: ${t}`);r=r[o]}if(r===void 0)throw new y(`Cannot resolve $ref: ${t}`);return r}function v(e,t){return S(t)?me(e,t.$ref):t}function N(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function Me(e){let t=e,n={};return typeof t.minimum=="number"&&(n.minimum=t.minimum),typeof t.maximum=="number"&&(n.maximum=t.maximum),typeof t.exclusiveMinimum=="number"?n.exclusiveMinimum=t.exclusiveMinimum:t.exclusiveMinimum===!0&&typeof t.minimum=="number"&&(n.exclusiveMinimum=t.minimum,delete n.minimum),typeof t.exclusiveMaximum=="number"?n.exclusiveMaximum=t.exclusiveMaximum:t.exclusiveMaximum===!0&&typeof t.maximum=="number"&&(n.exclusiveMaximum=t.maximum,delete n.maximum),typeof t.minLength=="number"&&(n.minLength=t.minLength),typeof t.maxLength=="number"&&(n.maxLength=t.maxLength),typeof t.pattern=="string"&&(n.pattern=t.pattern),typeof t.minItems=="number"&&(n.minItems=t.minItems),typeof t.maxItems=="number"&&(n.maxItems=t.maxItems),t.uniqueItems===!0&&(n.uniqueItems=!0),typeof t.format=="string"&&(n.format=t.format),t.deprecated===!0&&(n.deprecated=!0),t.example!==void 0?n.example=t.example:Array.isArray(t.examples)&&t.examples.length>0&&(n.example=t.examples[0]),t.default!==void 0&&(n.default=t.default),Object.keys(n).length>0?n:void 0}function Ie(e,t){let n=e.discriminator;if(!n||typeof n.propertyName!="string")return;let r=[];if(n.mapping)for(let[o,s]of Object.entries(n.mapping))r.push({value:o,schemaName:N(s)});else for(let o of t)if(S(o)){let s=N(o.$ref);r.push({value:s,schemaName:s})}if(r.length!==0)return{propertyName:n.propertyName,mapping:r}}function k(e,t){return t?{...e,metadata:t}:e}function z(e,t){return e?t?{...e,...t}:e:t}function Re(e){return e?e.url.replace(/\{([^{}]+)\}/g,(t,n)=>e.variables?.[n]?.default??t):""}function he(e){let t=e.info?.title??"Api",n=e.info?.version??"0.0.0",r=e.info?.description,o=Re(e.servers?.[0]),s=(e.servers??[]).map(d=>({url:d.url,description:d.description,variables:Object.entries(d.variables??{}).map(([f,m])=>({name:f,default:m.default,description:m.description}))})),i=Be(e),a=Ue(e),c=Le(e,a),u={title:t,version:n,description:r,serverUrl:o,servers:s,services:c,schemas:i,securitySchemes:a};return fe(u),Te(c,i),pe(u),u}function Te(e,t){let n=new Map(t.map(r=>[r.name,r.schema]));for(let r of e)for(let o of r.operations)o.requestBody&&(o.requestBody.schema=Ge(o.requestBody.schema,n))}function Ee(e){let t=e.filter(n=>n.kind!=="unknown");return t.length>0?t:[{kind:"unknown"}]}function Ge(e,t){if(e.kind==="ref"){let n=De(e,t,new Set);return n.length>0?{kind:"omit",base:e.name,keys:n}:e}if(e.kind==="object"){let n=e.properties.filter(r=>!r.readOnly);return n.length===e.properties.length?e:{...e,properties:n}}return e}function De(e,t,n){let r=[],o=s=>{if(s.kind==="ref"){if(n.has(s.name))return;n.add(s.name);let i=t.get(s.name);i&&o(i)}else if(s.kind==="object")for(let i of s.properties)i.readOnly&&!r.includes(i.name)&&r.push(i.name);else if(s.kind==="intersection")for(let i of s.members)o(i)};return o(e),r}function Ue(e){let t=e.components?.securitySchemes;if(!t)return[];let n=[];for(let[r,o]of Object.entries(t)){let s=v(e,o),i=s.type;i==="oauth2"||i==="openIdConnect"?n.push({kind:"bearer",key:r}):i==="http"&&(s.scheme??"").toLowerCase()==="bearer"?n.push({kind:"bearer",key:r}):i==="http"&&(s.scheme??"").toLowerCase()==="basic"?n.push({kind:"basic",key:r}):i==="apiKey"&&s.in==="header"&&typeof s.name=="string"?n.push({kind:"apiKeyHeader",key:r,headerName:s.name}):i==="apiKey"&&s.in==="query"&&typeof s.name=="string"?n.push({kind:"apiKeyQuery",key:r,paramName:s.name}):i==="apiKey"&&s.in==="cookie"&&typeof s.name=="string"&&(b.warn(`generate-client: security scheme "${r}" sends its credential in the Cookie header, which browsers ignore \u2014 cookie auth works only in server-side clients.
14
- `),n.push({kind:"apiKeyCookie",key:r,cookieName:s.name}))}return n}function Ce(e,t,n){let r=e.security??t.security;if(!r)return[];let o=[];for(let s of r){let i=Object.keys(s);i.length!==0&&i.every(a=>n.has(a))&&o.push([...new Set(i)])}return o}function Be(e){let t=e.components?.schemas;return t?Object.entries(t).map(([n,r])=>{if(S(r)){let s=me(e,r.$ref);return{name:n,schema:q(s,`components.schemas.${n}`,e),description:s.description}}let o=q(r,`components.schemas.${n}`,e);return{name:n,schema:o,description:r.description}}):[]}function Le(e,t){let n=new Set(t.map(i=>i.key)),r=[],o=new Set;for(let[i,a]of Object.entries(e.paths??{})){if(!a)continue;let c=v(e,a),u=(c.parameters??[]).map(d=>ye(v(e,d),`paths.${i}.parameters`,e));for(let d of Ae){let f=c[d];f&&(r.push({method:d,path:i,operation:f,pathLevelParams:u}),f.operationId&&o.add(f.operationId))}}return[{name:"Default",operations:r.map(i=>{let a=i.operation.operationId??_e(ze(i.method,i.path),o);return Fe(i.method,i.path,i.operation,a,i.pathLevelParams,e,n)})}]}function ze(e,t){let n=t.split("/").filter(Boolean).map(r=>Ke(r.replace(/[{}]/g,"")));return`${e}${n.join("")}`}function Ke(e){return e.split(/[^A-Za-z0-9]+/).filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join("")}function _e(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}${r++}`;return t.add(n),n}function Fe(e,t,n,r,o,s,i){let a=(n.parameters??[]).map(w=>ye(v(s,w),`paths.${t}.${e}.parameters`,s)),c=new Set,u=[];for(let w of a)c.add(`${w.in}:${w.name}`),u.push(w);for(let w of o)c.has(`${w.in}:${w.name}`)||u.push(w);let d=u.filter(w=>w.in==="path"),f=u.filter(w=>w.in==="query"),m=u.filter(w=>w.in==="header"),l=u.filter(w=>w.in==="cookie"),h=n.requestBody?He(v(s,n.requestBody),`${e} ${t}`,s):void 0,{successResponses:p,successResponseHeaders:g}=Je(n,t,s),P=Ve(n,t,s),j=Ce(n,s,i),F=n["x-redoclyPagination"],X=Xe(p);return{name:r,method:e,path:t,summary:n.summary,description:n.description,pathParams:d,queryParams:f,headerParams:m,cookieParams:l,requestBody:h,successResponses:p,...g===void 0?{}:{successResponseHeaders:g},errorResponses:P,security:j,tags:Array.isArray(n.tags)?n.tags.filter(w=>typeof w=="string"):[],...F!==void 0?{paginationExtension:F}:{},...X===void 0?{}:{sse:X}}}function Xe(e){let t=e.find(o=>o.contentType.split(";")[0].trim().toLowerCase()==="text/event-stream");if(t===void 0)return;let n=t.itemSchema&&t.itemSchema.kind!=="unknown"?t.itemSchema:t.schema.kind!=="unknown"?t.schema:void 0;if(n===void 0)return{dataKind:"text"};let r=n.kind==="object"||n.kind==="ref"||n.kind==="array"||n.kind==="record"||n.kind==="union"||n.kind==="intersection";return{eventSchema:n,dataKind:r?"json":"text"}}function ye(e,t,n){if(!e.in)throw new y(`Parameter ${e.name} at ${t} is missing "in"`);if(!["path","query","header","cookie"].includes(e.in))throw new y(`Unsupported parameter location "${e.in}" for ${e.name} at ${t}`);let r=O(e.schema,`${t}.${e.name}`,n);e.deprecated===!0&&(r={...r,metadata:z(r.metadata,{deprecated:!0})});let o={name:e.name,in:e.in,schema:r,required:!!e.required,description:e.description};if(o.in==="query"){let s=e;(s.style==="form"||s.style==="spaceDelimited"||s.style==="pipeDelimited"||s.style==="deepObject")&&(o.style=s.style),typeof s.explode=="boolean"&&(o.explode=s.explode),typeof s.allowReserved=="boolean"&&(o.allowReserved=s.allowReserved)}return o}function He(e,t,n){let r=e.content??{},o=r["application/json"]??r["application/merge-patch+json"]??r["application/x-www-form-urlencoded"]??r["multipart/form-data"]??Object.values(r)[0];if(!o)return;let s=Object.keys(r).find(a=>r[a]===o),i=O(o.schema,`${t}.requestBody`,n);return{contentType:s,schema:i,required:!!e.required,description:e.description}}function Je(e,t,n){let r=e.responses??{},o=Object.keys(r).filter(m=>/^2\d\d$/.test(m));o.length===0&&(r["2XX"]?o.push("2XX"):r.default&&o.push("default"));let s=o[0];if(!s)return{successResponses:[]};let i=r[s];if(!i)return{successResponses:[]};let a=v(n,i),c=We(a.headers,`paths.${t}.response.${s}`,n),u=a.content;if(!u)return{successResponses:[],...c===void 0?{}:{successResponseHeaders:c}};let d=s==="default"||s==="2XX"?s:Number(s),f=[];for(let[m,l]of Object.entries(u)){let h=O(l.schema,`paths.${t}.response.${s}.${m}`,n),p=l.itemSchema,g=p!==void 0?O(p,`paths.${t}.response.${s}.${m}.itemSchema`,n):void 0;f.push({contentType:m,schema:h,status:d,...g===void 0?{}:{itemSchema:g}})}return{successResponses:f,...c===void 0?{}:{successResponseHeaders:c}}}function We(e,t,n){if(!e)return;let r=[];for(let[o,s]of Object.entries(e)){let i=v(n,s),a={name:o.toLowerCase(),schema:O(i.schema===void 0?void 0:v(n,i.schema),`${t}.headers.${o}`,n)};i.required===!0&&(a.required=!0),r.push(a)}return r.length>0?r:void 0}function Ve(e,t,n){let r=e.responses??{},o=Object.keys(r).filter(a=>/^([45]\d\d|4XX|5XX)$/.test(a));Object.keys(r).some(a=>/^(2\d\d|2XX)$/.test(a))&&r.default&&o.push("default");let i=[];for(let a of o){let c=r[a];if(!c)continue;let d=v(n,c).content;if(!d)continue;let f=a==="default"||a==="4XX"||a==="5XX"?a:Number(a);for(let[m,l]of Object.entries(d)){let h=O(l.schema,`paths.${t}.response.${a}.${m}`,n);i.push({contentType:m,schema:h,status:f})}}return i}function O(e,t,n){return e===void 0||typeof e=="boolean"?{kind:"unknown"}:S(e)?{kind:"ref",name:N(e.$ref)}:q(e,t,n)}function q(e,t,n){let r=Me(e),o=e.oneOf??e.anyOf;if(o){let a=o.map((d,f)=>S(d)?{kind:"ref",name:N(d.$ref)}:q(d,`${t}.[${f}]`,n)),c=Ee(a);if(c.length===1&&c.length<a.length){let d=c[0];return{...d,description:d.description??e.description,metadata:z(r,d.metadata)}}let u=Ie(e,o);return k({kind:"union",members:c,discriminator:u,description:e.description},r)}if(e.allOf){let a=e.allOf.map((u,d)=>S(u)?{kind:"ref",name:N(u.$ref)}:q(u,`${t}.allOf[${d}]`,n)),c=le(e,t,n);if(c.length>0&&a.unshift({kind:"object",properties:c}),a.length===1){let u=a[0];return{...u,description:u.description??e.description,metadata:z(r,u.metadata)}}return k({kind:"intersection",members:a,description:e.description},r)}let s=e.type;if(Array.isArray(s)){let a=s.filter(d=>d!=="null"),c=s.includes("null"),u=a.map(d=>{let f={...e,type:d};if(Array.isArray(f.enum)){let m=f.enum.filter(l=>l!==null);f.enum=m.length>0?m:void 0}return q(f,t,n)});return c&&u.push({kind:"null"}),u.length===1?u[0]:k({kind:"union",members:u,description:e.description},r)}if(e.nullable)return{kind:"union",members:[q({...e,nullable:void 0},t,n),{kind:"null"}],description:e.description};if(e.const!==void 0){let a=e.const;if(typeof a!="string"&&typeof a!="number"&&typeof a!="boolean")throw new y(`Unsupported const value at ${t}: ${JSON.stringify(a)}`);return k({kind:"literal",value:a,description:e.description},r)}if(e.enum){let a=e.enum,c=a.filter(m=>m!==null),u=c.length!==a.length;if(c.length===0)return k({kind:"null",description:e.description},r);let d=Qe(c,t),f=d==="boolean"?{kind:"scalar",scalar:"boolean",description:e.description}:{kind:"enum",values:c,scalar:d,description:e.description};return k(u?{kind:"union",members:[f,{kind:"null"}],description:e.description}:f,r)}let i=s;if(i==="null")return k({kind:"null",description:e.description},r);if(i==="array"){let a=e.items,c=O(a,`${t}.items`,n);return k({kind:"array",items:c,description:e.description},r)}if(i==="object"||e.properties||e.additionalProperties){let a=le(e,t,n),c=e.additionalProperties;if(a.length===0&&c!==!1){let u=O(c,`${t}.additionalProperties`,n);return k({kind:"record",value:u,description:e.description},r)}return k({kind:"object",properties:a,description:e.description},r)}return k(i==="string"||i==="number"||i==="integer"||i==="boolean"?{kind:"scalar",scalar:i,description:e.description}:{kind:"unknown",description:e.description},r)}function Qe(e,t){let n=!1,r=!1,o=!1;for(let s of e)if(typeof s=="string")n=!0;else if(typeof s=="number")r=!0;else if(typeof s=="boolean")o=!0;else throw new y(`Unsupported enum value type at ${t}: ${JSON.stringify(s)}`);return n&&!r&&!o?"string":r&&!n&&!o?"number":o&&!n&&!r?"boolean":"string"}function Ye(e){return!(e.openapi??"").startsWith("3.0")}function le(e,t,n){let r=e.properties??{},o=new Set(e.required??[]),s=Ye(n);return Object.entries(r).map(([i,a])=>{let c=a.readOnly===!0;c&&S(a)&&!s&&b.warn(`generate-client: "${i}" declares readOnly beside a $ref, which OpenAPI ${n.openapi} ignores \u2014 the property stays in request bodies. Inline the schema, wrap the $ref in allOf, or move the description to OpenAPI 3.1.
15
- `);let u=c&&(s||!S(a));return{name:i,schema:O(a,`${t}.${i}`,n),required:o.has(i),description:a.description,...u?{readOnly:!0}:{}}})}function ge(e){let t=K(e),n={...t};delete n.swagger,delete n.host,delete n.basePath,delete n.schemes,delete n.definitions,delete n.securityDefinitions,delete n.consumes,delete n.produces,delete n.parameters,delete n.responses,n.openapi="3.0.3";let r=Ze(t);return r&&(n.servers=r),n.components=et(t),n.paths=ot(t.paths??{},t.consumes??void 0,t.produces??void 0),n}function Ze(e){let t=e.host,n=e.basePath??"",r=(e.schemes??["https"])[0]??"https";if(t)return[{url:`${r}://${t}${n}`}]}function et(e){let t={};e.definitions&&(t.schemas=e.definitions),e.parameters&&(t.parameters=Object.fromEntries(Object.entries(e.parameters).map(([r,o])=>[r,_(o)]))),e.responses&&(t.responses=be(e.responses,void 0));let n=e.securityDefinitions;if(n){let r={};for(let[o,s]of Object.entries(n))r[o]=tt(s);t.securitySchemes=r}return t}function tt(e){switch(e.type){case"basic":return{type:"http",scheme:"basic"};case"apiKey":return{type:"apiKey",name:e.name,in:e.in};case"oauth2":{let t=e.flow==="accessCode"?"authorizationCode":e.flow==="application"?"clientCredentials":e.flow,n={scopes:e.scopes??{}};return e.authorizationUrl&&(n.authorizationUrl=e.authorizationUrl),e.tokenUrl&&(n.tokenUrl=e.tokenUrl),{type:"oauth2",flows:{[t]:n}}}default:return e}}function K(e){if(Array.isArray(e))return e.map(K);if(x(e)){let t={};for(let[n,r]of Object.entries(e))n==="$ref"&&typeof r=="string"?t.$ref=r.replace("#/definitions/","#/components/schemas/").replace("#/parameters/","#/components/parameters/").replace("#/responses/","#/components/responses/"):t[n]=K(r);return t}return e}var nt="application/json",rt="application/json",we=new Set(["name","in","required","description","deprecated","allowEmptyValue","collectionFormat"]);function ot(e,t,n){let r={};for(let[o,s]of Object.entries(e)){let i=s,a={};for(let[c,u]of Object.entries(i)){if(c==="parameters"&&Array.isArray(u)){a.parameters=u.map(_);continue}if(!st(c)){a[c]=u;continue}a[c]=it(u,t,n)}r[o]=a}return r}function st(e){return["get","put","post","delete","options","head","patch"].includes(e.toLowerCase())}function it(e,t,n){let r=e.consumes??t,o=e.produces??n,s=e.parameters??[],i=s.find(f=>f.in==="body"),a=s.filter(f=>f.in==="formData"),c=s.filter(f=>f.in!=="body"&&f.in!=="formData").map(_),u={...e,parameters:c};delete u.consumes,delete u.produces;let d=r?.[0]??nt;if(i)u.requestBody={required:!!i.required,content:{[d]:{schema:i.schema}}};else if(a.length>0){let f={},m=[];for(let p of a)f[p.name]=at(p),p.required&&m.push(p.name);let l={type:"object",properties:f};m.length>0&&(l.required=m);let h=r?.find(p=>p==="multipart/form-data")??r?.[0]??"application/x-www-form-urlencoded";u.requestBody={required:m.length>0,content:{[h]:{schema:l}}}}return e.responses&&(u.responses=be(e.responses,o)),u}function _(e){if(e.$ref!==void 0||e.in==="body"||e.in==="formData")return e;let t={},n={};for(let[r,o]of Object.entries(e))we.has(r)?t[r]=o:n[r]=o;if(t.schema=n,delete t.collectionFormat,e.in==="query"&&n.type==="array"){let r=e.collectionFormat??"csv";r!=="multi"&&(t.style=r==="ssv"?"spaceDelimited":r==="pipes"?"pipeDelimited":"form",t.explode=!1)}return t}function at(e){let t={};for(let[n,r]of Object.entries(e))we.has(n)||(t[n]=r);return t}function be(e,t){let n=t?.[0]??rt,r={};for(let[o,s]of Object.entries(e)){let i=s;if(i.schema===void 0){r[o]=i;continue}let{schema:a,...c}=i;r[o]={...c,content:{[n]:{schema:a}}}}return r}async function $e(e,t,n){let r=t??await T({}),o=await Y({ref:e,config:r,collectSpecData:n}),s=await T({rules:{struct:"error"}}),i=await Z({externalRefResolver:new V,document:o.bundle,config:s}),a=[...o.problems,...i].filter(u=>u.severity==="error");if(a.length>0){let u=a.map(d=>`- ${d.message} (at ${d.location?.[0]?.pointer??e})`).join(`
16
- `);throw new Error(`The API description has ${a.length} error(s):
17
- ${u}`)}let c=o.bundle.parsed;return{document:c,version:Q(c)}}var lt=["Generated by @redocly/client-generator \u2014 do not edit by hand.","Source: OpenAPI description. Re-run `redocly generate-client` to update."];function mt(e,t){let n=[],r=new Set,o=R(ke(t.outputPath)),{dir:s,name:i,ext:a}=ft(t.outputPath),c={path:t.outputPath,dir:s,stem:i,ext:a},u=lt,d=!1;for(let f of t.generators){let m=t.registry.get(f),l={model:e,output:c,banner:u,outputMode:t.outputMode,emit:t.emit,pagination:t.pagination,selected:t.generators,options:t.generatorOptions?.get(f)??{}},h;try{t.emit.docs===!0&&m.docs!==void 0?(h=[...m.run(l),...m.docs(l)],d=!0):h=m.run(l)}catch(p){let g=p instanceof Error?p.message:String(p);throw new Error(`Generator "${f}" failed: ${g}`)}if(!Array.isArray(h)||h.some(p=>typeof p?.path!="string"||p.path===""||typeof p.content!="string"))throw new Error(`Generator "${f}" failed: run() must return an array of { path, content } files.`);for(let p of h){let g=R(o,p.path);if(g!==o&&!g.startsWith(o+pt))throw new Error(`Generator "${f}" failed: file path escapes the output directory: ${p.path}`);if(r.has(g))throw new Error(`Generator conflict: ${p.path} already emitted by an earlier generator`);r.add(g),n.push({path:g,content:p.content})}}return t.emit.docs===!0&&!d&&b.warn(`generate-client: docs is on, but no selected generator writes documentation (${t.generators.join(", ")}).
18
- `),n}function ht(e){for(let t of e.services)for(let n of t.operations){let r=new Set,o=new Set;for(let s of[...n.pathParams,...n.queryParams,...n.headerParams,...n.cookieParams])r.has(s.name)&&o.add(s.name),r.add(s.name);o.size!==0&&b.warn(`generate-client: operation "${n.specName??n.name}" uses ${[...o].map(s=>`"${s}"`).join(", ")} in more than one parameter location. Every SDK sends both, and the SDKs whose methods take one argument per parameter give the later one a suffixed name \u2014 rename it in the description to choose the name yourself.
19
- `)}}function yt(e,t,n,r,o,s,i){let a=[],c=new Set;for(let u of ee(t.services)){let d=gt(e,u.path,u.method);if(c.has(d))continue;c.add(d);let f=r.map(m=>o.get(m)?.sample?.(u,{model:t,emit:n,outputPath:s,pagination:i})).filter(m=>m!==void 0);f.length>0&&a.push({target:d,update:{"x-codeSamples":f}})}if(a.length!==0)return W({overlay:"1.0.0",info:{title:`Code samples for ${t.title}`,version:t.version},actions:a})}function gt(e,t,n){let r=i=>`['${i.replaceAll("\\","\\\\").replaceAll("'","\\'")}']`,o=e.paths?.[t];return`${S(o)&&o.$ref.startsWith("#/")?"$"+o.$ref.slice(2).split("/").map(H).map(r).join(""):`$.paths${r(t)}`}.${n}`}async function nn(e){if(e.output.split(/[\\/]/).some(p=>p==="undefined"||p==="null"))throw new Error(`output path "${e.output}" contains a literal "undefined" or "null" segment \u2014 this looks like an interpolation bug in the caller`);if(e.setup&&/^[a-z][a-z0-9+.-]+:/i.test(e.setup))throw new y(`setup must be a local file path \u2014 remote setup modules are not supported (got: ${e.setup})`);let t=R(e.output),{document:n,version:r}=await $e(e.api,e.config,e.collectSpecData),o=r==="oas2"?ge(n):n,s=he(o);ht(s);let i;if(e.setup){let{bakeSetup:p}=await import("./CQMMUWIJ.js"),g=R(e.configDir??process.cwd(),e.setup);i=p(await ut(g,"utf-8"))}let a=e.generators?.length?e.generators:["typescript"],{selected:c,registry:u}=await ae(a,{customGenerators:e.customGenerators,configDir:e.configDir}),d=te(s,e.pagination),f={serverUrl:e.serverUrl,argsStyle:e.argsStyle,errorMode:e.errorMode,dateType:e.dateType,mockData:e.mockData,mockSeed:e.mockSeed,queryKeyPrefix:e.queryKeyPrefix,telemetry:e.telemetry,setup:i,runtime:e.runtime,importExt:e.importExt,goPackage:e.goPackage,pagination:d,docs:e.docs,docsFrontmatter:e.docsFrontmatter};oe(c,f,u,e.outputMode);let m=se(c,u,e.options),l=mt(s,{outputPath:t,outputMode:e.outputMode??"single",emit:f,pagination:d,generators:c,generatorOptions:m,registry:u});if(e.codeSamples===!0){let p=yt(n,s,f,c,u,t,d);p!==void 0&&l.push({path:t.replace(/\.[^.]+$/,".code-samples.yaml"),content:p})}let h=[];for(let p of l)await ct(ke(p.path),{recursive:!0}),await dt(p.path,p.content,"utf-8"),h.push({path:p.path,bytes:Buffer.byteLength(p.content,"utf-8")});return{outputPath:t,bytes:h.reduce((p,g)=>p+g.bytes,0),files:h}}export{I as a,oe as b,mt as c,nn as d};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __pathDirname } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- var __filename = __fileURLToPath(import.meta.url);
6
- var __dirname = __pathDirname(__filename);
7
- import{a as p,b as q,c as r,d as s,e as t,f as u,g as v,h as w,i as x,j as y,k as z,l as A,m as D,n as E,o as F,p as H,q as I}from"./EFB2YVY2.js";import{a as B,e as C,g as G}from"./JCP37EY3.js";import{a}from"./WZXA5XPB.js";import"./WBWCX3LS.js";import"./NEWT5A6S.js";import{a as b,b as c,c as d,d as e,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m,m as n,n as o}from"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{z as AUTHORING_HELPER_NAMES,G as GENERATOR_VERSION,a as NotSupportedError,b as Printer,d as RESERVED_WORDS,C as WIRING_NAMES,B as allOperations,c as casing,E as constantCase,A as defineClientSetup,H as defineGenerator,g as deref,i as discriminatorCases,m as docText,l as enumValues,h as flattenAllOf,I as generateClient,D as groupSlug,o as headerCoerceType,e as identifierFor,u as isBinaryContentType,s as isMultipartBody,j as isNullable,t as isUntypedMultipartBody,q as jsonSuccessSchema,F as mergeConfig,x as paginationItemSchema,p as paginationRuleFor,y as renderReferencePage,n as resolveSchemaPointer,n as schemaAtPointer,w as securityRequirements,v as serverUrlParts,r as sseResponse,f as uniqueIdentifiers,k as unwrapNullable};