@redocly/cli 2.71.0 → 2.71.2

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 (158) hide show
  1. package/THIRD_PARTY_NOTICES +3 -3
  2. package/lib/chunks/{V6VNRABV.js → 2TG3DP4I.js} +1 -1
  3. package/lib/chunks/{BU4AMVHN.js → 2ZEKFWJQ.js} +1 -1
  4. package/lib/chunks/{LS3G7CUH.js → 3EQNI6CT.js} +1 -1
  5. package/lib/chunks/{TXSBWL3Y.js → 3FR3456Q.js} +1 -1
  6. package/lib/chunks/{VXD5O25A.js → 3VOQMXIZ.js} +1 -1
  7. package/lib/chunks/4H3DPQDW.js +7 -0
  8. package/lib/chunks/4S6LRPCX.js +20 -0
  9. package/lib/chunks/{QB6CQ2CV.js → 5AVTCY6F.js} +1 -1
  10. package/lib/chunks/{JCP37EY3.js → 5CR6AOLY.js} +59 -25
  11. package/lib/chunks/{G2M6SQCS.js → 5HPO77VR.js} +2 -2
  12. package/lib/chunks/6X42UQ3O.js +20 -0
  13. package/lib/chunks/{QTGTCBFK.js → 7GADNOVY.js} +1 -1
  14. package/lib/chunks/{SXIMN47K.js → 7JS7JGWP.js} +1 -1
  15. package/lib/chunks/{EH6VW7JO.js → ADACRYTN.js} +1 -1
  16. package/lib/chunks/{PF43QQZA.js → AXGFQS75.js} +2 -2
  17. package/lib/chunks/{BCRM4BTA.js → AZ5LIJEO.js} +1 -1
  18. package/lib/chunks/{QMS4UKIK.js → BH4FA7AH.js} +5 -5
  19. package/lib/chunks/{MQUZ5IJ2.js → BIS2ZFGS.js} +1 -1
  20. package/lib/chunks/{IULINGO6.js → BOTTA3HA.js} +1 -1
  21. package/lib/chunks/{L4F2ERUL.js → BPJTNQBC.js} +1 -1
  22. package/lib/chunks/CER2D6ZD.js +20 -0
  23. package/lib/chunks/{NZE22F7Q.js → CR5TYFBN.js} +2 -2
  24. package/lib/chunks/{NCDX4IGX.js → CRJEY7P3.js} +1 -1
  25. package/lib/chunks/CZX7WE2R.js +7 -0
  26. package/lib/chunks/{EFB2YVY2.js → DM4EUYBB.js} +2 -2
  27. package/lib/chunks/{NBMSBQEL.js → DWXDCKZ7.js} +1 -1
  28. package/lib/chunks/DZT5NLUB.js +22 -0
  29. package/lib/chunks/{STAMDB3P.js → EHJ3FMW6.js} +1 -1
  30. package/lib/chunks/{O37B7ABT.js → FAFMGLT6.js} +1 -1
  31. package/lib/chunks/{YDQCJP4F.js → FDKY4PGX.js} +1 -1
  32. package/lib/chunks/FRQHCFKP.js +199 -0
  33. package/lib/chunks/{SBHCUK5I.js → GFSMOHUE.js} +1 -1
  34. package/lib/chunks/{YUEIHUPX.js → HMYFTLS7.js} +1 -1
  35. package/lib/chunks/{LNEXTJNF.js → HP7UD4BA.js} +1 -1
  36. package/lib/chunks/{YLRH4RVF.js → HRZLSSOF.js} +2 -2
  37. package/lib/chunks/{TR67FYLT.js → HTFKP5HH.js} +1 -1
  38. package/lib/chunks/{E3FBSKNS.js → I4TK6NG7.js} +1 -1
  39. package/lib/chunks/{VJHJJBVN.js → IQLQH23V.js} +1 -1
  40. package/lib/chunks/{DHP4BBTH.js → J2EPFEBO.js} +1 -1
  41. package/lib/chunks/{RIGQPR2I.js → JO76DPXR.js} +1 -1
  42. package/lib/chunks/{2UAA6O26.js → JOUEVI3E.js} +1 -1
  43. package/lib/chunks/{B5KSRXXW.js → JRVXIEVC.js} +1 -1
  44. package/lib/chunks/{MV3ZJ5HR.js → JZATGVUO.js} +5 -5
  45. package/lib/chunks/KFQC57GK.js +145 -0
  46. package/lib/chunks/{N37OGNC4.js → KJNBOXDI.js} +3 -3
  47. package/lib/chunks/{CN2ZOHYL.js → KLGUZBJO.js} +1 -1
  48. package/lib/chunks/KNMNSDHR.js +7 -0
  49. package/lib/chunks/{3DMXMP4K.js → L325HIGK.js} +1 -1
  50. package/lib/chunks/{MT4W54PL.js → LET2MPMU.js} +1 -1
  51. package/lib/chunks/{2CMKIFTE.js → LKNL5LEV.js} +1 -1
  52. package/lib/chunks/LY6BDOEF.js +7 -0
  53. package/lib/chunks/MJ2NI6MR.js +20 -0
  54. package/lib/chunks/N4GCIKY4.js +8 -0
  55. package/lib/chunks/NXREEI2S.js +98 -0
  56. package/lib/chunks/{6TE6AFQ3.js → OFIQ2EST.js} +1 -1
  57. package/lib/chunks/{CZS2ZXJ7.js → ORWIUECT.js} +1 -1
  58. package/lib/chunks/{T55LQK2H.js → P5T6BIKW.js} +1 -1
  59. package/lib/chunks/{2NVGTELR.js → QTSECOQB.js} +1 -1
  60. package/lib/chunks/{HHCU6T2V.js → QXBSAWH3.js} +1 -1
  61. package/lib/chunks/{EHQY7ZOF.js → QXXAC25O.js} +1 -1
  62. package/lib/chunks/{LD5MEXEL.js → R32HBYOH.js} +1 -1
  63. package/lib/chunks/SSEMMWPY.js +7 -0
  64. package/lib/chunks/T77BOGYV.js +14 -0
  65. package/lib/chunks/{QAPQYNI3.js → TH44RKLO.js} +1 -1
  66. package/lib/chunks/{FKKC7G6X.js → U2F3JOT2.js} +1 -1
  67. package/lib/chunks/{P7LM57HK.js → U4MI7HDM.js} +1 -1
  68. package/lib/chunks/{MYSYBBIO.js → UTEOWLD5.js} +1 -1
  69. package/lib/chunks/{B3GE7EIX.js → UVKUPD4U.js} +1 -1
  70. package/lib/chunks/{HAOBCQWB.js → VJZDR6KS.js} +84 -20
  71. package/lib/chunks/VPTYPV6P.js +7 -0
  72. package/lib/chunks/{E4MPGN3Z.js → W7TN2XCW.js} +1 -1
  73. package/lib/chunks/{2R2CXBRH.js → WO6IIVA3.js} +1 -1
  74. package/lib/chunks/{RLJVKAOL.js → XQEXWC5L.js} +1 -1
  75. package/lib/chunks/{YDGFDJ2K.js → XVS7B4RZ.js} +1 -1
  76. package/lib/chunks/{5ECOOGVW.js → YF4FMOTE.js} +1 -1
  77. package/lib/chunks/{WKDC6LN3.js → YWRFPTTI.js} +1 -1
  78. package/lib/chunks/{MYOQDPQZ.js → Z6GFQV2Y.js} +1 -1
  79. package/lib/chunks/{O6NMXFEP.js → ZXOX7NF2.js} +1 -1
  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/LRMOPAZ4.js +0 -8
  150. package/lib/chunks/M6UVHV6D.js +0 -7
  151. package/lib/chunks/O72R3AD4.js +0 -20
  152. package/lib/chunks/RZ3FGCBT.js +0 -20
  153. package/lib/chunks/SBT63VHF.js +0 -7
  154. package/lib/chunks/UW4UC7ZI.js +0 -9
  155. package/lib/chunks/VQRJE4I2.js +0 -7
  156. package/lib/chunks/WACZWFKN.js +0 -19
  157. package/lib/chunks/WBWCX3LS.js +0 -199
  158. package/lib/chunks/WJXIZZA6.js +0 -7
@@ -4,10 +4,10 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{a as p,b as U,c as F,d as R,e as j}from"./U5DIFWGH.js";import{b as O}from"./QMS4UKIK.js";import{$ as A,_ as $,c as b,da as v,fa as k,k as P,la as d}from"./WBWCX3LS.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{readFileSync as H}from"node:fs";import{mkdir as B,writeFile as D}from"node:fs/promises";import{basename as I,dirname as S,extname as N,isAbsolute as L,relative as x,resolve as f}from"node:path";var V=/^[a-z][a-z0-9+.-]+:/i;function W(e,t){let{setup:i}=e;if(typeof i!="string")return e;if(V.test(i))throw new d(`
7
+ import{a as p,b as U,c as F,d as R,e as j}from"./U5DIFWGH.js";import{b as O}from"./BH4FA7AH.js";import{$ as A,_ as $,c as b,da as v,fa as k,k as P,la as d}from"./FRQHCFKP.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{readFileSync as H}from"node:fs";import{mkdir as B,writeFile as D}from"node:fs/promises";import{basename as I,dirname as S,extname as N,isAbsolute as L,relative as x,resolve as f}from"node:path";var V=/^[a-z][a-z0-9+.-]+:/i;function W(e,t){let{setup:i}=e;if(typeof i!="string")return e;if(V.test(i))throw new d(`
8
8
  \u274C \`client.setup\` must be a local file path \u2014 remote setup modules are not supported.
9
9
  Got: ${i}
10
- `);return L(i)?e:{...e,setup:f(t,i)}}function q(e){return`${e.replace(/[\\/]/g,"_")}.client.ts`}function J(e){if(e.startsWith("//"))return!1;if(e.startsWith("/"))return!0;try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}async function se({argv:e,config:t,collectSpecData:i}){let{AUTHORING_HELPER_NAMES:r,generateClient:m,mergeConfig:n}=await import("./WJXIZZA6.js"),l=t.configPath?S(t.configPath):process.cwd(),o={serverUrl:e["server-url"],outputMode:e["output-mode"],runtime:e.runtime,importExt:e["import-ext"],goPackage:e["go-package"],argsStyle:e["args-style"],errorMode:e["error-mode"],dateType:e["date-type"],mockData:e["mock-data"],mockSeed:e["mock-seed"],docs:e.docs,generators:e.generator?.map(c=>c.startsWith(".")?f(c):c),setup:e.setup===void 0?void 0:W({setup:e.setup},process.cwd()).setup},s=t.resolvedConfig.apis??{},a=Object.keys(s).filter(c=>b(s[c].client)||s[c].clientOutput!==void 0);if(e.api===void 0){if(e.output)throw new d("\n\u274C --output can't target multiple APIs. Set `clientOutput` under each api in redocly.yaml, or pass a single <api>.\n");if(a.length===0)throw new d("\n\u274C No API to generate. Add a `client` block or `clientOutput` under an `apis:` entry, or pass <api> (a file/URL or an `apis:` alias).\n")}let h=await O(e.api===void 0?a:[e.api],t),g={config:t,collectSpecData:i,configDir:l,cliFlags:o,outputFlag:e.output,toolkit:{generateClient:m,mergeConfig:n,helperNames:r},seenOutputs:new Set,composable:[]};for(let c of h)await K(c,g);let w=b(t.resolvedConfig.client)?t.resolvedConfig.client:{};w.cliOutput!==void 0&&e.api===void 0&&g.composable.length>0&&await Q(w.cliOutput,g)}async function K(e,{config:t,collectSpecData:i,configDir:r,cliFlags:m,outputFlag:n,toolkit:l,seenOutputs:o,composable:s}){let{path:a,alias:h}=e,g=h??I(a,N(a)),w=t.forAlias(h),{client:c,clientOutput:E}=w.resolvedConfig,M=W(b(c)?c:{},r),C=l.mergeConfig(M,m);X(C.generators??[],l.helperNames,r);let y=n!==void 0?f(n):E!==void 0?f(r,E):f(r,q(g));if(!y.endsWith(".ts"))throw new d(`
10
+ `);return L(i)?e:{...e,setup:f(t,i)}}function q(e){return`${e.replace(/[\\/]/g,"_")}.client.ts`}function J(e){if(e.startsWith("//"))return!1;if(e.startsWith("/"))return!0;try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}async function se({argv:e,config:t,collectSpecData:i}){let{AUTHORING_HELPER_NAMES:r,generateClient:m,mergeConfig:n}=await import("./CZX7WE2R.js"),l=t.configPath?S(t.configPath):process.cwd(),o={serverUrl:e["server-url"],outputMode:e["output-mode"],runtime:e.runtime,importExt:e["import-ext"],goPackage:e["go-package"],argsStyle:e["args-style"],errorMode:e["error-mode"],dateType:e["date-type"],mockData:e["mock-data"],mockSeed:e["mock-seed"],docs:e.docs,generators:e.generator?.map(c=>c.startsWith(".")?f(c):c),setup:e.setup===void 0?void 0:W({setup:e.setup},process.cwd()).setup},s=t.resolvedConfig.apis??{},a=Object.keys(s).filter(c=>b(s[c].client)||s[c].clientOutput!==void 0);if(e.api===void 0){if(e.output)throw new d("\n\u274C --output can't target multiple APIs. Set `clientOutput` under each api in redocly.yaml, or pass a single <api>.\n");if(a.length===0)throw new d("\n\u274C No API to generate. Add a `client` block or `clientOutput` under an `apis:` entry, or pass <api> (a file/URL or an `apis:` alias).\n")}let h=await O(e.api===void 0?a:[e.api],t),g={config:t,collectSpecData:i,configDir:l,cliFlags:o,outputFlag:e.output,toolkit:{generateClient:m,mergeConfig:n,helperNames:r},seenOutputs:new Set,composable:[]};for(let c of h)await K(c,g);let w=b(t.resolvedConfig.client)?t.resolvedConfig.client:{};w.cliOutput!==void 0&&e.api===void 0&&g.composable.length>0&&await Q(w.cliOutput,g)}async function K(e,{config:t,collectSpecData:i,configDir:r,cliFlags:m,outputFlag:n,toolkit:l,seenOutputs:o,composable:s}){let{path:a,alias:h}=e,g=h??I(a,N(a)),w=t.forAlias(h),{client:c,clientOutput:E}=w.resolvedConfig,M=W(b(c)?c:{},r),C=l.mergeConfig(M,m);X(C.generators??[],l.helperNames,r);let y=n!==void 0?f(n):E!==void 0?f(r,E):f(r,q(g));if(!y.endsWith(".ts"))throw new d(`
11
11
  \u274C output must point at a TypeScript file (ending in .ts).
12
12
  Got: ${y}
13
13
  `);if(o.has(y))throw new d(`
@@ -23,7 +23,7 @@ import{a as p,b as U,c as F,d as R,e as j}from"./U5DIFWGH.js";import{b as O}from
23
23
  `)}catch(u){let _=u instanceof Error?u.message:String(u);throw p.generate_client_error_category=j(_),new d(`
24
24
  \u274C Failed to generate client for ${g}.
25
25
  ${_}
26
- `)}}async function Q(e,{configDir:t,seenOutputs:i,composable:r}){let{renderComposedCliEntry:m}=await import("./SBT63VHF.js"),n=f(t,e);if(!n.endsWith(".ts"))throw new d(`
26
+ `)}}async function Q(e,{configDir:t,seenOutputs:i,composable:r}){let{renderComposedCliEntry:m}=await import("./KNMNSDHR.js"),n=f(t,e);if(!n.endsWith(".ts"))throw new d(`
27
27
  \u274C client.cliOutput must point at a TypeScript file (ending in .ts).
28
28
  Got: ${n}
29
29
  `);if(i.has(n))throw new d(`
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{b as D}from"./QMS4UKIK.js";import{S as C,T as j,fa as $,ha as k,ia as M,ja as S,la as b,p as F,t as R,v as x}from"./WBWCX3LS.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{relative as I,resolve as U}from"node:path";var A=20;async function B({argv:o,config:t,collectSpecData:r}){let[{path:s}]=await D([o.api],t),n=new C(t.resolve),e=await n.resolveDocument(null,s,!0);r?.(e);let i=k(e.parsed),d=F(t.extendTypes(x(i),i),t),p=new Map,u=({source:l,pointer:c},f,N)=>{let v=`${l.absoluteRef}${c}`,y=p.get(v);if(!y){p.set(v,{absoluteRef:l.absoluteRef,pointer:c,types:[f],resolvesTo:N});return}y.types.includes(f)||y.types.push(f),y.resolvesTo||(y.resolvesTo=N)},m={any:{enter(l,{location:c,type:f}){u(c,f.name)}},ref(l,{location:c,type:f},N){u(c,f.name,N.location)}},h={problems:[],specVersion:i,config:t,visitorsData:{}},a=await j({rootDocument:e,rootType:d.Root,externalRefResolver:n});if(S({document:e,rootType:d.Root,normalizedVisitors:M([{severity:"warn",ruleId:"inspect-node-types",visitor:m}],d),resolvedRefMap:a,ctx:h}),o.pointer){let l=W(p,o.pointer,e.source.absoluteRef);o.parents?L(w(p,l,e.source.absoluteRef)):$.output(`${l.types.join(`
7
+ import{b as D}from"./BH4FA7AH.js";import{S as C,T as j,fa as $,ha as k,ia as M,ja as S,la as b,p as F,t as R,v as x}from"./FRQHCFKP.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{relative as I,resolve as U}from"node:path";var A=20;async function B({argv:o,config:t,collectSpecData:r}){let[{path:s}]=await D([o.api],t),n=new C(t.resolve),e=await n.resolveDocument(null,s,!0);r?.(e);let i=k(e.parsed),d=F(t.extendTypes(x(i),i),t),p=new Map,u=({source:l,pointer:c},f,N)=>{let v=`${l.absoluteRef}${c}`,y=p.get(v);if(!y){p.set(v,{absoluteRef:l.absoluteRef,pointer:c,types:[f],resolvesTo:N});return}y.types.includes(f)||y.types.push(f),y.resolvesTo||(y.resolvesTo=N)},m={any:{enter(l,{location:c,type:f}){u(c,f.name)}},ref(l,{location:c,type:f},N){u(c,f.name,N.location)}},h={problems:[],specVersion:i,config:t,visitorsData:{}},a=await j({rootDocument:e,rootType:d.Root,externalRefResolver:n});if(S({document:e,rootType:d.Root,normalizedVisitors:M([{severity:"warn",ruleId:"inspect-node-types",visitor:m}],d),resolvedRefMap:a,ctx:h}),o.pointer){let l=W(p,o.pointer,e.source.absoluteRef);o.parents?L(w(p,l,e.source.absoluteRef)):$.output(`${l.types.join(`
8
8
  `)}
9
9
  `);return}let g=[...p.values()];if(o.summary)V(g);else if(o.type){let l=o.type,c=g.filter(({types:f})=>f.includes(l));if(c.length===0)throw new b(`No nodes of type '${l}'. Run the command with --summary to see the types used in this description.`);o.parents?L(c.flatMap(f=>w(p,f,e.source.absoluteRef)),l):E(c)}else E(g)}function w(o,t,r,s=new Set){let n=`${t.absoluteRef}${t.pointer}`;if(s.has(n))return[[t]];s.add(n);let e=[],i=t.pointer.split("/");for(let p=1;p<i.length;p++){let u=p===1?"#/":i.slice(0,p).join("/");if(u===t.pointer)continue;let m=o.get(`${t.absoluteRef}${u}`);m&&e.push(m)}e.push(t);let d=[];e[0].absoluteRef===r&&e[0].pointer==="#/"&&d.push(e);for(let[p,u]of e.entries()){let m=[...o.values()].filter(a=>a.resolvesTo?.source.absoluteRef===u.absoluteRef&&a.resolvesTo.pointer===u.pointer),h=e.slice(p+1);for(let a of m)d.push(...w(o,a,r,s).map(g=>[...g,...h]))}return d.length?d:[e]}function L(o,t){let r=new Set(o.map(s=>s.map(({types:n})=>t&&n.includes(t)?t:n.join(", ")).join(" \u2192 ")));for(let s of r)$.output(`${s}
10
10
  `)}function W(o,t,r){let[s,n]=t.split("#"),e=s?R(s)?s:U(process.cwd(),s):r,i=o.get(`${e}#${n||"/"}`);if(!i)throw new b(`No node at ${t}. ${z(o,e,`#${n||"/"}`,s)??`Check the pointer, and make sure the file is referenced from ${T(r)}.`}`);return i}function z(o,t,r,s){let n=r.split("/");for(let e=n.length-1;e>=1;e--){let i=e===1?"#/":n.slice(0,e).join("/"),d=o.get(`${t}${i}`);if(!d)continue;let p=n[e].toLowerCase(),u=e===1?"#/":`${i}/`,m=[...o.values()].filter(c=>c.absoluteRef===t&&c.pointer.startsWith(u)&&!c.pointer.slice(u.length).includes("/")),h=m.filter(c=>c.pointer.slice(u.length).toLowerCase().includes(p)),a=(h.length?h:m).map(c=>` ${s}${c.pointer}`),g=a.length-A;g>0&&(a.length=A,a.push(` \u2026and ${g} more`));let l=`The closest node is ${d.types.join(", ")} at ${s}${i}.`;return a.length?`${l} Did you mean:
@@ -0,0 +1,7 @@
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"./DZT5NLUB.js";import{a as R,b as u,c as f,d}from"./I4TK6NG7.js";import{d as y,e as G,f as x}from"./4S6LRPCX.js";import{c as g,d as S,e as h}from"./MJ2NI6MR.js";import{c as k,d as v,e as b}from"./6X42UQ3O.js";import{a as D,b as E,c as q,d as z}from"./CER2D6ZD.js";import{a as o}from"./HRZLSSOF.js";import{a,b as p,c as s}from"./HMYFTLS7.js";import"./VJZDR6KS.js";import{a as m}from"./EHJ3FMW6.js";import{a as i}from"./T77BOGYV.js";import{a as c}from"./JOUEVI3E.js";import"./5AVTCY6F.js";import{a as I,d as M,e as N}from"./L325HIGK.js";import{e as T,h as j,k as w}from"./R32HBYOH.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"./DM4EUYBB.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"./5CR6AOLY.js";import{a as U}from"./WZXA5XPB.js";import"./FRQHCFKP.js";import"./NEWT5A6S.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};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{f as k}from"./EFB2YVY2.js";import{a as B}from"./JCP37EY3.js";import{a as x,e as P,f as v,i as H,j as C,k as p,l as M}from"./LD5MEXEL.js";import{n as N}from"./UW4UC7ZI.js";function y(e){let t=new Map(e.pathParams.map(r=>[r.name,r])),n=[];for(let r of e.path.matchAll(/\{([^{}]+)\}/g)){let s=t.get(r[1]);s!==void 0&&n.push(s)}return n}function I(e){let t=y(e),n=e.queryParams.length>0,r=!!e.requestBody,s=e.headerParams.length>0,o=e.cookieParams.length>0;return{hasQuery:n,hasBody:r,hasHeaders:s,hasCookies:o,hasInputs:t.length>0||n||r||s||o,varsRequired:t.length>0||e.queryParams.some(a=>a.required)||(e.requestBody?.required??!1)||e.headerParams.some(a=>a.required)||e.cookieParams.some(a=>a.required),variablesTypeName:`${p(e.name)}Variables`}}var E=" ";function $(e,t,n){let r=C(e,t);return r===void 0?[]:[`${n}/**`,...H(r).split(`
7
+ import{a as x,e as P,f as v,i as H,j as C,k as p,l as M}from"./R32HBYOH.js";import{f as k}from"./DM4EUYBB.js";import{n as N,o as B}from"./5CR6AOLY.js";function y(e){let t=new Map(e.pathParams.map(r=>[r.name,r])),n=[];for(let r of e.path.matchAll(/\{([^{}]+)\}/g)){let s=t.get(r[1]);s!==void 0&&n.push(s)}return n}function I(e){let t=y(e),n=e.queryParams.length>0,r=!!e.requestBody,s=e.headerParams.length>0,o=e.cookieParams.length>0;return{hasQuery:n,hasBody:r,hasHeaders:s,hasCookies:o,hasInputs:t.length>0||n||r||s||o,varsRequired:t.length>0||e.queryParams.some(a=>a.required)||(e.requestBody?.required??!1)||e.headerParams.some(a=>a.required)||e.cookieParams.some(a=>a.required),variablesTypeName:`${p(e.name)}Variables`}}var E=" ";function $(e,t,n){let r=C(e,t);return r===void 0?[]:[`${n}/**`,...H(r).split(`
8
8
  `).map(s=>`${n} * ${s}`.replace(/ +$/,"")),`${n} */`]}function O(e){return typeof e=="string"?JSON.stringify(e):String(e)}function F(e,t,n){switch(e){case"string":return t?.format==="binary"?"Blob":n==="Date"&&(t?.format==="date-time"||t?.format==="date")?"Date":"string";case"number":case"integer":return"number";case"boolean":return"boolean"}}function j(e){return e.kind==="union"||e.kind==="intersection"||e.kind==="enum"&&e.values.length>1}function c(e,t="string",n=""){switch(e.kind){case"scalar":return F(e.scalar,e.metadata,t);case"ref":return e.name;case"literal":return O(e.value);case"enum":return e.values.map(O).join(" | ");case"null":return"null";case"unknown":return"unknown";case"array":{let r=c(e.items,t,n);return j(e.items)?`(${r})[]`:`${r}[]`}case"record":return`Record<string, ${c(e.value,t,n)}>`;case"object":{if(e.properties.length===0)return"{}";let r=n+E;return`{
9
9
  ${e.properties.flatMap(o=>K(o,t,r)).join(`
10
10
  `)}
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{a as o,c as n}from"./HBUZKWXC.js";import{fa as t}from"./WBWCX3LS.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{spawn as m}from"node:child_process";var j=async({argv:e})=>{t.info(`
7
+ import{a as o,c as n}from"./HBUZKWXC.js";import{fa as t}from"./FRQHCFKP.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{spawn as m}from"node:child_process";var j=async({argv:e})=>{t.info(`
8
8
  Launching eject using NPX.
9
9
 
10
10
  `);let{npxExecutableName:c,sanitize:r,shell:i}=n(),p=r(e.path,o),a=r(e["project-dir"],o);m(c,["-y","@redocly/realm","eject",`${e.type}`,p,`-d=${a}`,e.force?`--force=${e.force}`:""],{stdio:"inherit",shell:i}).on("error",s=>{throw t.info(`Eject launch failed: ${s.message}`),new Error("Eject launch failed.")})};export{j as handleEject};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{a as o,b as t,c as e}from"./HBUZKWXC.js";import{fa as r}from"./WBWCX3LS.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{spawn as p}from"node:child_process";var u=async({argv:n})=>{r.info(`
7
+ import{a as o,b as t,c as e}from"./HBUZKWXC.js";import{fa as r}from"./FRQHCFKP.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{spawn as p}from"node:child_process";var u=async({argv:n})=>{r.info(`
8
8
  Launching translate using NPX.
9
9
 
10
10
  `);let{npxExecutableName:s,sanitize:a,shell:i}=e(),l=a(n["project-dir"],o),c=a(n.locale,t);p(s,["-y","@redocly/realm","translate",c,`-d=${l}`],{stdio:"inherit",shell:i}).on("error",m=>{throw r.info(`Translate launch failed: ${m.message}`),new Error("Translate launch failed.")})};export{u as handleTranslations};
@@ -0,0 +1,7 @@
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 a,d as b}from"./CER2D6ZD.js";import"./R32HBYOH.js";import"./5CR6AOLY.js";import"./WZXA5XPB.js";import"./FRQHCFKP.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";export{b as generateClient,a as runGenerators};
@@ -0,0 +1,20 @@
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"./VJZDR6KS.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"./DM4EUYBB.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"./5CR6AOLY.js";import{a as H}from"./WZXA5XPB.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 a=d(o),s=a;for(let l=2;r.has(s);l++)s=`${a}${l}`;return r.add(s),s})}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 a of r.slice(1)){if(a===""){o||this.line("//"),o=!0;continue}this.line(`// ${a}`),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+) = (.+)$/,a=/^(\t+)("(?:[^"\\]|\\.)*":) (.+)$/,s=i=>{if(i.length<2)return;let m=[];for(let{parts:f}of i)f.forEach(($,g)=>{g<f.length-1&&(m[g]=Math.max(m[g]??0,$.length))});for(let{index:f,parts:$,indent:g}of i){let h=$.map((y,b)=>b<$.length-1?y.padEnd(m[b]??0):y);n[f]=g+h.join(" ").trimEnd()}},l=[],c;return t.forEach((i,m)=>{let f=a.exec(i),$=f===null?o.exec(i):null,g=f===null&&$===null?r.exec(i):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!==c)&&(s(l),l=[],c=y),f!==null){l.push({index:m,indent:f[1],parts:[f[2],f[3]]});return}if($!==null){l.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()),l.push({index:m,indent:h[1],parts:b})}}),s(l),n.join(`
13
+ `)}var u=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 a=d(o.name),s=2;for(;t.has(a);)a=`${d(o.name)}${s++}`;t.add(a),n.push({op:o,ident:a})}return n}function de(e){return Y(e).map(n=>n.kind==="literal"?u.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,a)=>{let s=`${d(o.description??`server${a+1}`)}URL`;r.has(s)&&(s=`${s}${a+1}`),r.add(s);let l=o.variables.map(i=>`${x(i.name,{style:"camel",reserved:v})} string`),c=o.variables.map(i=>`${x(i.name,{style:"camel",reserved:v})} default: ${u.string(i.default)}`).join(", ");e.line(`// ${s} returns the ${u.string(o.description??o.url)} base URL${c===""?".":` (${c}).`}`),e.block(`func ${s}(${l.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: ${u.string(o.scheme)}, Kind: "apiKey", Name: ${u.string(o.name)}, In: ${u.string(o.in)}}`:`{Scheme: ${u.string(o.scheme)}, Kind: ${u.string(o.kind)}}`));if(n.length!==0)return`[][]SecuritySpec{${n.map(r=>`{${r.join(", ")}}`).join(", ")}}`}function se(e){return`&PaginationSpec{${[`Style: ${u.string(e.style)}`,...e.param!==void 0?[`Param: ${u.string(e.param)}`]:[],...e.nextCursor!==void 0?[`NextCursor: ${u.string(e.nextCursor)}`]:[],...e.hasMore!==void 0?[`HasMore: ${u.string(e.hasMore)}`]:[],...e.nextLink!==void 0?[`NextLink: ${u.string(e.nextLink)}`]:[],...e.limitParam!==void 0?[`LimitParam: ${u.string(e.limitParam)}`]:[],...e.items!==void 0?[`Items: ${u.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){let a=n.map(s=>s.writeOnly?{...s,required:!1}:s);e.doc(d(t),o),e.block(`type ${d(t)} struct {`,()=>{for(let s of a){let l=d(s.name),c=p(s.schema,r),i=`\`json:"${s.name}"\``;s.required||(!c.startsWith("*")&&!c.startsWith("[]")&&!c.startsWith("map[")&&c!=="any"&&(c=`*${c}`),i=`\`json:"${s.name},omitempty"\``),e.line(`${l} ${c} ${i}`)}},"}"),e.blank()}function I(e,t="string"){let n=new P;n.line("package client"),n.blank(),e.schemas.some(({schema:a})=>U(a,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 a=J(o);if(a!==void 0){let l=a.scalar==="string"?"string":"int64";n.doc(d(r),o.description),n.line(`type ${d(r)} ${l}`),n.blank(),n.block("const (",()=>{let c=new Set;a.values.forEach(i=>{let m=W.pascal(String(i))||"Value",f="";for(let g=2;c.has(m+f);g++)f=String(g);c.add(m+f);let $=d(r)+m+f;n.line(`${$} ${d(r)} = ${u.literal(i)}`)})},")"),n.blank();continue}if(o.kind==="object"||o.kind==="intersection"){let l=A(o,e);if(l!==void 0){me(n,r,l.properties,t,l.description??o.description);continue}}let s=U(o,e);if(s!==void 0){let l=d(r),c=s.cases.map(i=>`${i.value} -> ${d(i.schemaName)}`).join(", ");n.line(`// ${l} is a discriminated union ("${s.property}"): ${c}.`),n.line(`type ${l} = any`),n.blank(),n.line(`// Unmarshal${l} decodes into the member selected by "${s.property}".`),n.block(`func Unmarshal${l}(data []byte) (${l}, error) {`,()=>{n.block("var probe struct {",()=>{n.line(`Discriminant string \`json:"${s.property}"\``)},"}"),n.block("if err := json.Unmarshal(data, &probe); err != nil {",()=>{n.line("return nil, err")},"}"),n.line("switch probe.Discriminant {");for(let i of s.cases)n.block(`case ${u.string(i.value)}:`,()=>{n.line(`var value ${d(i.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),a=o,s=2;for(;n.has(a);)a=`${o}${s++}`;n.add(a);let l=V(r.schema,t),c={integer:{goType:"*int64",helper:"headerInt64"},number:{goType:"*float64",helper:"headerFloat64"},boolean:{goType:"*bool",helper:"headerBool"},string:{goType:"*string",helper:"headerString"}}[l];return{field:a,name:r.name,...c}})}function E(e,t,n,r,o,a=!1){let s=T(t,r),l=t.queryParams.length>0,c=j(t),i=c===void 0?void 0:p(c,r),m=a?he(t,o):[],f=O(t)||t.requestBody!==void 0&&Z(t.requestBody.contentType);a&&(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",...s.map(({go:S,type:w})=>`${S} ${w}`),...t.requestBody?[`body ${f?"any":p(t.requestBody.schema,r)}`]:[],...l?[`params *${n}Params`]:[]],g=N(t),h=a?i===void 0?`(${n}Headers, error)`:`(${i}, ${n}Headers, error)`:g!==void 0?"func(yield func(ServerSentEvent, error) bool)":i===void 0?"error":`(${i}, error)`,y=S=>a?i===void 0?`return headers, ${S}`:`return out, headers, ${S}`:i===void 0?`return ${S}`:`return out, ${S}`,b=a?`${n}WithHeaders`:n;e.doc(b,a?`Like ${n}, also returning the declared response headers.`:t.summary),e.block(`func (c *Client) ${b}(${$.join(", ")}) ${h} {`,()=>{g===void 0&&i!==void 0&&e.line(`var out ${i}`),a&&e.line(`var headers ${n}Headers`),e.line(`op := operations[${u.string(t.specName??t.name)}]`),e.line("authHeaders, query := resolveAuth(op.Security, c.config.Auth)"),l&&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(${u.string(k.name)}, ${q("item",M)})`)},"}")}else e.line(`query.Set(${u.string(k.name)}, ${q(`*params.${C}`,p(k.schema,r))})`)},"}")}},"}");let S=s.map(({param:k,go:C,type:M})=>`${u.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: ${u.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: ${u.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)"))},"}"),a){e.block(`if err := decodeJSON(resp, ${i===void 0?"nil":"&out"}); err != nil {`,()=>{e.line(y("err"))},"}");for(let k of m)e.line(`headers.${k.field} = ${k.helper}(resp.Header, ${u.string(k.name)})`);e.line(i===void 0?"return headers, nil":"return out, headers, nil")}else i===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,a){let s=T(t,r),l=t.queryParams.length>0,c=["ctx context.Context",...s.map(({go:m,type:f})=>`${m} ${f}`),...l?[`params *${n}Params`]:[]].join(", "),i=()=>{e.line(`op := operations[${u.string(t.specName??t.name)}]`),e.line("base := url.Values{}"),l&&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(${u.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=s.map(({param:f,go:$,type:g})=>`${u.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(${c}) func(yield func(${o}, error) bool) {`,()=>{i(),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(${c}) func(yield func(${a}, error) bool) {`,()=>{i(),e.block(`return func(yield func(${a}, error) bool) {`,()=>{e.block("pages(func(raw any, err error) bool {",()=>{e.block("if err != nil {",()=>{e.line(`var zero ${a}`),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 ${a}`),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,a){e.line(ie(I(t,r))),e.blank(),re(e,t),a&&(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:s,ident:l}of R(t)){let c=s.specName??s.name,i=oe(s,t),m=o.get(l),f=[`ID: ${u.string(c)}`,`Method: ${u.string(s.method.toUpperCase())}`,`Path: ${u.string(s.path)}`,...i!==void 0?[`Security: ${i}`]:[],...m!==void 0?[`Pagination: ${se(m)}`]:[]];e.line(`${u.string(c)}: {${f.join(", ")}},`)}},"}"),e.blank();for(let{op:s,ident:l}of R(t))s.queryParams.length!==0&&(e.block(`type ${l}Params struct {`,()=>{for(let c of s.queryParams){let i=p(c.schema,r);e.line(`${d(c.name)} ${i.startsWith("*")?i:`*${i}`}`)}},"}"),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 = ${u.string(n.serverUrl??t.serverUrl??"")}`)},"}"),e.line("return &Client{config: config}")},"}"),e.blank();for(let{op:s,ident:l}of R(t)){E(e,s,l,r),N(s)===void 0&&(s.successResponseHeaders?.length??0)>0&&E(e,s,l,r,t,!0);let c=o.get(l);if(c===void 0)continue;let i=j(s),m=i===void 0?"any":p(i,r),f=ee(i,c.items,t);ae(e,s,l,r,m,f===void 0?"any":p(f,r))}}var an=({model:e,output:t,banner:n,emit:r,pagination:o})=>{let a=new P,s=r.dateType??"string",l=te(r.goPackage),c=new Map;for(let{op:h,ident:y}of R(e)){let b=o?.get(h.name)?.spec;b!==void 0&&c.set(y,b)}a.line(`// Code generated by @redocly/client-generator (go) from "${e.title}" ${e.version}. DO NOT EDIT.`),a.line("// Regenerate with `redocly generate-client`. Standard library only \u2014 zero dependencies."),a.line(`package ${l}`),a.blank();let i=r.runtime!=="module",m=i?le:(()=>{let h=new P;ce(h,e,r,s,c,!1);let y=h.toString();return le.filter(b=>new RegExp(`\\b${b.split("/").pop()}\\.`).test(y))})();a.block("import (",()=>{for(let h of m)a.line(u.string(h))},")"),a.blank(),ce(a,e,r,s,c,i);let f={path:t.path.replace(/\.[^.\\/]+$/,".go"),content:a.toString()};if(i)return[f];let $=n.map(h=>`// ${h}`).join(`
16
+ `),g=G.replace(/^package .*$/m,`package ${l}`);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(c=>c.op.name===e.name)?.ident??d(e.name),a=["ctx",...e.pathParams.map(c=>`"<${x(c.name,{style:"camel",reserved:v})}>"`),...e.requestBody?[`${p(e.requestBody.schema,n)}{ /* \u2026 */ }`]:[],...e.queryParams.length>0?["nil"]:[]],s=`client.${o}(${a.join(", ")})`,l=N(e)!==void 0?`stream := ${s}`:j(e)===void 0?`err := ${s}`:`result, err := ${s}`;return{lang:"go",label:"Go SDK",source:`client := ${r}.New(${r}.Config{})
19
+ ${l}
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};
@@ -0,0 +1,8 @@
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,la as H}from"./FRQHCFKP.js";import{existsSync as J}from"node:fs";import{open as L,readdir as T,stat as B}from"node:fs/promises";import x from"node:path";var I=new Set([".yaml",".yml",".json"]);async function V(e){let n=[];async function t(r){let o=await T(r,{withFileTypes:!0});for(let s of o){if(s.name.startsWith("."))continue;let i=x.join(r,s.name);if(s.isDirectory()){await t(i);continue}s.isFile()&&I.has(x.extname(s.name).toLowerCase())&&n.push(i)}}return await t(e),n.sort(),n}async function Q(e,n=4096){let t=await L(e,"r");try{let r=Buffer.allocUnsafe(n),{bytesRead:o}=await t.read(r,0,n,0);return r.toString("utf8",0,o)}finally{await t.close()}}function Z(e){return x.resolve(process.cwd(),e)}async function v(e){if(!J(e))throw new H(`Traffic file or folder not found: ${e}`);let n=await B(e);if(n.isFile())return[e];if(!n.isDirectory())return[];let t=[];async function r(o){let s=await T(o,{withFileTypes:!0});for(let i of s){if(i.name.startsWith("."))continue;let a=x.join(o,i.name);if(i.isDirectory()){await r(a);continue}i.isFile()&&t.push(a)}}return await r(e),t.sort(),t}var z="drift.local",q=`http://${z}`;function l(e){return e===z}var F=new Set(["accept","accept-charset","accept-encoding","accept-language","authorization","baggage","cache-control","cdn-loop","cookie","connection","content-length","content-type","dpr","dnt","downlink","ect","forwarded","host","if-match","if-modified-since","if-none-match","if-range","if-unmodified-since","origin","pragma","priority","range","referer","sec-fetch-dest","sec-fetch-mode","sec-fetch-site","sec-fetch-user","sec-gpc","sentry-trace","te","traceparent","tracestate","upgrade","upgrade-insecure-requests","user-agent","via","x-client-trace-id","x-cloud-trace-context","x-correlation-id","x-http-method-override","x-hub-signature","x-hub-signature-256","x-method-override","x-real-ip","x-request-id","x-forwarded-for","x-forwarded-host","x-forwarded-port","x-forwarded-proto"]),j=["cf-","sec-ch-","sec-fetch-","x-amz-","x-amzn-","x-b3-","x-envoy-","x-forwarded-","x-github-"],C=`
8
+ `;function te(e){return e.split(C)}function S(e,n,t){let r=n.toLowerCase(),o=e[r];if(o===void 0){e[r]=t;return}e[r]=r==="set-cookie"?`${o}${C}${t}`:`${o},${t}`}function w(e){if(!c(e)&&!Array.isArray(e))return{};let n={};if(Array.isArray(e)){for(let t of e){if(!c(t))continue;let{name:r,value:o}=t;typeof r=="string"&&o!==void 0&&S(n,r,String(o))}return n}for(let[t,r]of Object.entries(e))if(r!=null){if(Array.isArray(r)){for(let o of r)S(n,t,String(o));continue}S(n,t,String(r))}return n}function m(e){try{return new URL(e)}catch{return new URL(e,q)}}function N(e){return e.length>1&&e.endsWith("/")?e.slice(0,-1):e}function b(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function re(e){let n=[],t=0,r=e.startsWith("/")?e:`/${e}`,s=N(r).split("/").map(i=>{if(!i)return"";let a=[...i.matchAll(/\{([^}]+)\}/g)],h=n.length,f="",p=0,u=0;for(let[y,d]of a.entries()){let R=i.slice(u,d.index);f+=b(R),p+=R.length,n.push(d[1]),u=d.index+d[0].length;let E=a[y+1];if(!E){f+="([^/]+)";continue}let A=i.slice(u,E.index);f+=A?`((?:(?!${b(A)})[^/])+)`:"([^/])"}let g=i.slice(u);return f+=b(g),p+=g.length,n.length===h?t+=2:p>0&&(t+=1),f}).join("/");return{regex:new RegExp(`^${s||"/"}$`),params:n,score:t}}function k(e,n){if(n&&O(e))try{return JSON.parse(n)}catch{return}}function $(e){return e?e.split(";")[0]?.trim().toLowerCase()??"":""}function O(e){let n=$(e);return n==="application/json"||n.endsWith("+json")}function oe(e,n){let t=$(n);if(!t)return e["application/json"]??e["*/*"];if(e[t]!==void 0)return e[t];let[r,o]=t.split("/");if(r&&o){let s=`${r}/*`;if(e[s]!==void 0)return e[s]}return e["*/*"]}function ie(e){let n=new Set,t=[];for(let r of e){let o=r.trim().toLowerCase();o.length!==0&&(o.endsWith("*")?t.push(o.slice(0,-1)):n.add(o))}return{names:n,prefixes:t}}function se(e,n){let t=e.toLowerCase();return t.startsWith(":")||F.has(t)||j.some(r=>t.startsWith(r))?!0:n?n.names.has(t)||n.prefixes.some(r=>t.startsWith(r)):!1}import{createReadStream as W}from"node:fs";import{readFile as D}from"node:fs/promises";import{createInterface as _}from"node:readline";function M(e){if(e!=null){if(typeof e=="string")return e;if(Buffer.isBuffer(e))return e.toString("utf8");if(c(e)||Array.isArray(e))try{return JSON.stringify(e)}catch{return String(e)}return String(e)}}function ge(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function P(e,n){if(e!=null){if(n==="base64"&&typeof e=="string")try{return Buffer.from(e,"base64").toString("utf8")}catch{return e}return M(e)}}function le(e,n,t){let r=e.method?.toUpperCase(),o=e.url;if(!r||!o)return null;let s=w(e.requestHeaders),i=m(o);if(l(i.host)&&s.host)try{i=new URL(`${i.protocol}//${s.host}${i.pathname}${i.search}`)}catch{i=m(o)}let a=e.requestContentType??s["content-type"],h=P(e.requestBody),f={method:r,url:i.toString(),path:i.pathname,query:i.searchParams,protocol:i.protocol,protocolKnown:e.schemeKnown??/^https?:\/\//i.test(o),host:l(i.host)?void 0:i.host||void 0,headers:s,contentType:a,bodyText:h,bodyJson:k(a,h)},p,u=e.responseStatus;if(u!==void 0){let g=w(e.responseHeaders),y=e.responseContentType??g["content-type"],d=P(e.responseBody);p={status:u,statusText:e.responseStatusText,headers:g,contentType:y,bodyText:d,bodyJson:k(y,d)}}return{index:n,source:t,startedAt:e.startedAt,request:f,response:p,raw:e.raw}}async function*me(e){let n=W(e,{encoding:"utf8"}),t=_({input:n,crlfDelay:1/0});for await(let r of t){let o=r.trim();if(o)try{let s=JSON.parse(o);c(s)&&(yield s)}catch{}}}async function*he(e,n){let t=await D(e,"utf8"),r=JSON.parse(t);if(n)for(let o of n.split("."))r=c(r)?r[o]:void 0;if(Array.isArray(r))for(let o of r)c(o)&&(yield o)}function ye(e){return w(e)["content-type"]}function Se(e){return e?.replace(/\/+$/,"")||void 0}function U(e,n){if(!n||n==="/")return e||"/";if(e===n)return"/";if(e.startsWith(`${n}/`))return e.slice(n.length)||"/"}function be(e,n){if(n.startsWith("/"))return U(e.path,n);let t=m(n.includes("://")?n:`http://${n}`);if(!(l(t.host)||e.host!==void 0&&e.host.toLowerCase()!==t.host))return U(e.path,N(t.pathname))}export{V as a,Q as b,Z as c,v as d,l as e,te as f,m as g,N as h,re as i,$ as j,O as k,oe as l,ie as m,se as n,M as o,ge as p,P as q,le as r,me as s,he as t,ye as u,Se as v,be as w};