@redocly/cli 2.51.1 → 2.52.0

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 (139) hide show
  1. package/README.md +14 -1
  2. package/THIRD_PARTY_NOTICES +17 -4
  3. package/lib/chunks/2LDFGQ7M.js +67 -0
  4. package/lib/chunks/{KXYI4EET.js → 35R6GCFO.js} +1 -1
  5. package/lib/chunks/{4PIDMMUD.js → 7AUMFZDC.js} +1 -1
  6. package/lib/chunks/{CA4BPC77.js → AGENG2WT.js} +1 -1
  7. package/lib/chunks/{OEBWRENF.js → AQFM7XGG.js} +1 -1
  8. package/lib/chunks/{TMULAWFD.js → B4BGW6LX.js} +1 -1
  9. package/lib/chunks/{LWB43R4X.js → BOUAXXEO.js} +3 -3
  10. package/lib/chunks/{SKB7KFUK.js → BQFGD55Z.js} +1 -1
  11. package/lib/chunks/{IPFRJMV6.js → BT6KOTWJ.js} +1 -1
  12. package/lib/chunks/{LE7OKNLO.js → BXFJJ63W.js} +1 -1
  13. package/lib/chunks/{RXUHCIFX.js → CD6HJQ7Z.js} +1 -1
  14. package/lib/chunks/{3JJEI7CJ.js → CQMMUWIJ.js} +99 -95
  15. package/lib/chunks/{XMYTYWHZ.js → E23GS6YK.js} +1 -1
  16. package/lib/chunks/EI27DJLF.js +7 -0
  17. package/lib/chunks/FPLER37P.js +20 -0
  18. package/lib/chunks/{KQJOSAUI.js → GZNSV6XB.js} +1 -1
  19. package/lib/chunks/{NWMTC4AN.js → IULINGO6.js} +1 -1
  20. package/lib/chunks/JCEAJTUA.js +8 -0
  21. package/lib/chunks/{TSB6PODJ.js → JM7BMZLD.js} +1 -1
  22. package/lib/chunks/{6PX2QTPF.js → JQW53OZ2.js} +1 -1
  23. package/lib/chunks/LD5MEXEL.js +10 -0
  24. package/lib/chunks/{2UDYQ5CZ.js → LJ53IMLM.js} +160 -160
  25. package/lib/chunks/MJSI4VHA.js +184 -0
  26. package/lib/chunks/N6O32QAI.js +7 -0
  27. package/lib/chunks/{2OHNINBQ.js → NIDDLLHO.js} +1 -1
  28. package/lib/chunks/{K732KQHY.js → NY4C4KO6.js} +1 -1
  29. package/lib/chunks/{N5SXQI4I.js → O3T4DGBI.js} +1 -1
  30. package/lib/chunks/{6UH63WWT.js → OMNGRJM6.js} +1 -1
  31. package/lib/chunks/P5GXYHU7.js +7 -0
  32. package/lib/chunks/QB32BX35.js +7 -0
  33. package/lib/chunks/QNFSWXWM.js +9 -0
  34. package/lib/chunks/QTYASRSS.js +20 -0
  35. package/lib/chunks/RCG4MSAO.js +7 -0
  36. package/lib/chunks/{TKFA7G4G.js → RUPZTXQ3.js} +1 -1
  37. package/lib/chunks/{WHTCOU4Z.js → RZMAAWKX.js} +1 -1
  38. package/lib/chunks/{NSKVRJLY.js → SEECFWS6.js} +1 -1
  39. package/lib/chunks/SGNOWOE7.js +30 -0
  40. package/lib/chunks/SVJJMDUS.js +18 -0
  41. package/lib/chunks/TPYGW72X.js +7 -0
  42. package/lib/chunks/{CGINWISC.js → TR2ZE2NA.js} +1 -1
  43. package/lib/chunks/{SXKUE52F.js → U7Z4MLK3.js} +1 -1
  44. package/lib/chunks/UKWZHJSE.js +20 -0
  45. package/lib/chunks/{HJYFWIVE.js → UW4UC7ZI.js} +2 -2
  46. package/lib/chunks/{ZYLX724C.js → UXC4J2II.js} +1 -1
  47. package/lib/chunks/WPCGRKTH.js +7 -0
  48. package/lib/chunks/{Y2G2CYSF.js → X6NXBBZT.js} +1 -1
  49. package/lib/chunks/XAKGO2KF.js +11 -0
  50. package/lib/chunks/XMISXGL7.js +105 -0
  51. package/lib/chunks/{B3QINORT.js → Z3H5BHVF.js} +1 -1
  52. package/lib/eject-assets/generators/cli/docs.ts +1 -1
  53. package/lib/eject-assets/generators/cli/engine-source.ts +1 -1
  54. package/lib/eject-assets/generators/cli/index.ts +2 -2
  55. package/lib/eject-assets/generators/cli/render.ts +1 -1
  56. package/lib/eject-assets/generators/go/client.ts +1 -1
  57. package/lib/eject-assets/generators/go/descriptor.ts +1 -1
  58. package/lib/eject-assets/generators/go/index.ts +2 -2
  59. package/lib/eject-assets/generators/go/models.ts +1 -1
  60. package/lib/eject-assets/generators/go/naming.ts +1 -1
  61. package/lib/eject-assets/generators/go/operations.ts +1 -1
  62. package/lib/eject-assets/generators/go/pagination.ts +1 -1
  63. package/lib/eject-assets/generators/go/types.ts +1 -1
  64. package/lib/eject-assets/generators/mock/faker.ts +1 -1
  65. package/lib/eject-assets/generators/mock/index.ts +2 -2
  66. package/lib/eject-assets/generators/mock/render.ts +1 -1
  67. package/lib/eject-assets/generators/mock/sample.ts +1 -1
  68. package/lib/eject-assets/generators/mock/values.ts +1 -1
  69. package/lib/eject-assets/generators/php/client.ts +1 -1
  70. package/lib/eject-assets/generators/php/descriptor.ts +1 -1
  71. package/lib/eject-assets/generators/php/index.ts +2 -2
  72. package/lib/eject-assets/generators/php/models.ts +1 -1
  73. package/lib/eject-assets/generators/php/naming.ts +1 -1
  74. package/lib/eject-assets/generators/php/operations.ts +1 -1
  75. package/lib/eject-assets/generators/php/pagination.ts +1 -1
  76. package/lib/eject-assets/generators/php/types.ts +1 -1
  77. package/lib/eject-assets/generators/python/client.ts +1 -1
  78. package/lib/eject-assets/generators/python/descriptor.ts +1 -1
  79. package/lib/eject-assets/generators/python/index.ts +2 -2
  80. package/lib/eject-assets/generators/python/models.ts +1 -1
  81. package/lib/eject-assets/generators/python/naming.ts +1 -1
  82. package/lib/eject-assets/generators/python/operations.ts +1 -1
  83. package/lib/eject-assets/generators/python/pagination.ts +1 -1
  84. package/lib/eject-assets/generators/python/types.ts +1 -1
  85. package/lib/eject-assets/generators/swr/index.ts +2 -2
  86. package/lib/eject-assets/generators/swr/render.ts +1 -1
  87. package/lib/eject-assets/generators/tanstack-query/index.ts +2 -2
  88. package/lib/eject-assets/generators/tanstack-query/render.ts +1 -1
  89. package/lib/eject-assets/generators/transformers/index.ts +2 -2
  90. package/lib/eject-assets/generators/transformers/render.ts +1 -1
  91. package/lib/eject-assets/generators/typescript/banner.ts +1 -1
  92. package/lib/eject-assets/generators/typescript/client.ts +1 -1
  93. package/lib/eject-assets/generators/typescript/descriptor.ts +1 -1
  94. package/lib/eject-assets/generators/typescript/index.ts +2 -2
  95. package/lib/eject-assets/generators/typescript/inline-runtime.ts +1 -1
  96. package/lib/eject-assets/generators/typescript/operation-signature.ts +1 -1
  97. package/lib/eject-assets/generators/typescript/operation-types.ts +1 -1
  98. package/lib/eject-assets/generators/typescript/operations.ts +1 -1
  99. package/lib/eject-assets/generators/typescript/response-headers.ts +1 -1
  100. package/lib/eject-assets/generators/typescript/type-guards.ts +1 -1
  101. package/lib/eject-assets/generators/typescript/types.ts +1 -1
  102. package/lib/eject-assets/generators/zod/index.ts +2 -2
  103. package/lib/eject-assets/generators/zod/schemas.ts +1 -1
  104. package/lib/index.js +198 -191
  105. package/package.json +1 -1
  106. package/lib/chunks/25O4YORJ.js +0 -14
  107. package/lib/chunks/3A5KYQ7N.js +0 -26
  108. package/lib/chunks/5BMLOFU4.js +0 -20
  109. package/lib/chunks/67BLI5YQ.js +0 -90
  110. package/lib/chunks/6ZHC3PYG.js +0 -7
  111. package/lib/chunks/7SSQGR7O.js +0 -20
  112. package/lib/chunks/AH3V6J6B.js +0 -67
  113. package/lib/chunks/BGIV3YYM.js +0 -19
  114. package/lib/chunks/BJDVYUKU.js +0 -177
  115. package/lib/chunks/CXRHOXPI.js +0 -7
  116. package/lib/chunks/ECZA233J.js +0 -19
  117. package/lib/chunks/EE3PGFTZ.js +0 -16
  118. package/lib/chunks/EOS3ZB2L.js +0 -8
  119. package/lib/chunks/K2X43E7U.js +0 -57
  120. package/lib/chunks/L3TZNNJJ.js +0 -13
  121. package/lib/chunks/LAFBWLA7.js +0 -42
  122. package/lib/chunks/NB54XRRU.js +0 -10
  123. package/lib/chunks/NSIQWNYL.js +0 -7
  124. package/lib/chunks/NYFYWKQQ.js +0 -9
  125. package/lib/chunks/OIVSGFXK.js +0 -18
  126. package/lib/chunks/OKRLSOE5.js +0 -22
  127. package/lib/chunks/OZMIIHFH.js +0 -184
  128. package/lib/chunks/PFYPTG4G.js +0 -7
  129. package/lib/chunks/RBHN62FF.js +0 -7
  130. package/lib/chunks/REFX2EKS.js +0 -13
  131. package/lib/chunks/SGBB4RNM.js +0 -11
  132. package/lib/chunks/SQVG3CEM.js +0 -8
  133. package/lib/chunks/TVJE32GA.js +0 -11
  134. package/lib/chunks/VRWULG7P.js +0 -7
  135. package/lib/chunks/VZCENZBY.js +0 -30
  136. package/lib/chunks/WSOCDFHJ.js +0 -7
  137. package/lib/chunks/Y4BUDNR4.js +0 -14
  138. package/lib/chunks/ZBL4IVEW.js +0 -11
  139. /package/lib/chunks/{UKSQ7B5H.js → 2U6O26CV.js} +0 -0
@@ -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 j}from"./SQVG3CEM.js";import{c as F}from"./UKSQ7B5H.js";import{b as J,c as R,d as T,e as U,f as ne,g as W,h as te}from"./TVJE32GA.js";import"./LWB43R4X.js";import"./PFYPTG4G.js";import"./OZMIIHFH.js";import"./NEWT5A6S.js";import{c as z,d as S,e as x,g as G,h as I,i as Q,j as X,k as Z,n as ee}from"./HJYFWIVE.js";import"./RFWIIJFG.js";var k=z.python,u=new j;function M(e){return u.typeName(e)}function E(e){let{identifier:n,renamed:o}=u.memberName(e);return{python:n,renamed:o}}function C(e){let n=e.services.flatMap(t=>t.operations),o=x(n.map(t=>t.name),{style:"snake",reserved:k});return n.map((t,a)=>({op:t,ident:o[a]}))}var L=["self","body","headers","timeout","retry","idempotency_key"];function oe(e){return u.literal(e)}function se(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.limitParam!==void 0?{limit_param:e.limitParam}:{},...e.items!==void 0?{items:e.items}:{}}}function re(e,n){let o=new Set;return`[${(e.successResponseHeaders??[]).map(a=>{let r=S(a.name,{style:"snake",reserved:k}),l=r,i=2;for(;o.has(l);)l=`${r}_${i++}`;o.add(l);let m=ee(a.schema,n);return`(${u.string(a.name)}, ${u.string(l)}, ${u.string(m)})`}).join(", ")}]`}function h(e,n="string"){if(Q(e))return`Optional[${h(X(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[${h(e.items,n)}]`;case"record":return`Dict[str, ${h(e.value,n)}]`;case"ref":return M(e.name);case"literal":return`Literal[${u.literal(e.value)}]`;case"enum":return{string:"str",integer:"int",number:"float",boolean:"bool"}[e.scalar];case"union":return`Union[${e.members.map(o=>h(o,n)).join(", ")}]`;case"null":return"None";case"omit":return M(e.base);case"object":case"intersection":case"unknown":return"Any"}}function B(e,n,o,t,a,r,l,i=!1){let m=x([...n.pathParams,...n.queryParams].map(P=>P.name),{style:"snake",reserved:k,taken:L}),c=n.pathParams.map((P,v)=>({param:P,python:m[v]})),s=n.queryParams.map((P,v)=>({param:P,python:m[n.pathParams.length+v]})),p=c.map(({param:P,python:v})=>`${v}: ${h(P.schema,r)}`),f=n.requestBody?[`body: ${h(n.requestBody.schema,r)}`]:[],g=[...s.map(({param:P,python:v})=>{let w=h(P.schema,r),A=w.startsWith("Optional[")?w:`Optional[${w}]`;return`${v}: ${A} = None`}),"headers: Optional[Dict[str, str]] = None","timeout: Optional[float] = None","retry: Optional[Dict[str, Any]] = None","idempotency_key: Any = None"],y=R(n),_=T(n),N=i?`Envelope[${y===void 0?"None":h(y,r)}]`:_!==void 0?`${a?"AsyncIterator":"Iterator"}[ServerSentEvent]`:t==="result"?"Result":y===void 0?"None":h(y,r),O=a&&_===void 0?"async def":"def",d=a?"await ":"",$=a?"send_async":"send",b=["self",...p,...f,"*",...g].join(", "),D=i?`${o}_with_headers`:o;e.block(`${O} ${D}(${b}) -> ${N}:`,()=>{e.doc(i?`Like ${o}(), returning an Envelope with the declared response headers.`:n.summary),e.line(`op = _OPERATIONS["${o}"]`),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:A,python:q}of s)e.block(`if ${q} is not None:`,()=>{e.line(`params[${u.string(A.name)}] = encode(${q})`)});let P=c.map(({param:A,python:q})=>`${u.string(A.name)}: ${q}`).join(", ");if(e.line(`url = build_url(self._server_url, op["path"], {${P}})`),_!==void 0){let A=_.schema!==void 0&&_.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 ${a?"aiter_sse":"iter_sse"}(_open, data_kind="${A}")`);return}U(n)&&e.line("form_data, form_files = to_multipart(body)");let v=n.requestBody?U(n)?", data=form_data, files=form_files":", json_body=encode(body)":"";e.line(`response = ${d}${$}(self._http, self._config, op, url, method=op["method"], headers={**auth_headers, **(headers or {})}, params=params${v}, timeout=timeout, retry=retry, idempotency_key=idempotency_key)`);let w=y===void 0?"None":`decode(${h(y,r)}, _safe_json(response))`;i?(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=${w}, headers=read_envelope_headers(response, ${re(n,l)}), response=response)`)):t==="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=${w}, 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(y===void 0?"return None":`return ${w}`))}),e.blank()}function ae(e,n,o,t,a,r){let l=R(n),i=l===void 0?"Any":h(l,r),m=x([...n.pathParams,...n.queryParams].map(d=>d.name),{style:"snake",reserved:k,taken:L}),c=n.pathParams.map((d,$)=>({param:d,python:m[$]})),s=n.queryParams.map((d,$)=>({param:d,python:m[n.pathParams.length+$]})),p=c.map(({param:d,python:$})=>`${$}: ${h(d.schema,r)}`),f=[...s.map(({param:d,python:$})=>{let b=h(d.schema,r),D=b.startsWith("Optional[")?b:`Optional[${b}]`;return`${$}: ${D} = None`}),"headers: Optional[Dict[str, str]] = None","timeout: Optional[float] = None","retry: Optional[Dict[str, Any]] = None"],g=["self",...p,"*",...f].join(", "),y=t?"AsyncIterator":"Iterator",_=t?"aiter_pages":"iter_pages",N=t?"aiter_items":"iter_items",O=()=>{e.line("base: Dict[str, Any] = {}");for(let{param:b,python:D}of s)e.block(`if ${D} is not None:`,()=>{e.line(`base[${u.string(b.name)}] = encode(${D})`)});let d=t?"async def":"def",$=t?"await ":"";e.block(`${d} _page(page_params: Dict[str, Any]) -> Tuple[Any, Any]:`,()=>{e.line('auth_headers, auth_query = resolve_auth(op.get("security") or [], self._auth)');let b=c.map(({param:D,python:P})=>`${u.string(D.name)}: ${P}`).join(", ");e.line(`url = build_url(self._server_url, op["path"], {${b}})`),e.line(`response = ${$}${t?"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")})};t?(e.block(`async def ${o}_pages(${g}) -> ${y}[${i}]:`,()=>{e.line(`op = _OPERATIONS["${o}"]`),O(),e.block(`async for page in ${_}(_page, op["pagination"], base):`,()=>{e.line(i==="Any"?"yield page":`yield decode(${i}, page)`)})}),e.blank(),e.block(`async def ${o}_items(${g}) -> ${y}[${a}]:`,()=>{e.line(`op = _OPERATIONS["${o}"]`),O(),e.block(`async for item in ${N}(_page, op["pagination"], base):`,()=>{e.line(a==="Any"?"yield item":`yield decode(${a}, item)`)})})):(e.block(`def ${o}_pages(${g}) -> ${y}[${i}]:`,()=>{e.line(`op = _OPERATIONS["${o}"]`),O(),e.line(i==="Any"?`return ${_}(_page, op["pagination"], base)`:`return (decode(${i}, page) for page in ${_}(_page, op["pagination"], base))`)}),e.blank(),e.block(`def ${o}_items(${g}) -> ${y}[${a}]:`,()=>{e.line(`op = _OPERATIONS["${o}"]`),O(),e.line(a==="Any"?`return ${N}(_page, op["pagination"], base)`:`return (decode(${a}, item) for item in ${N}(_page, op["pagination"], base))`)})),e.blank()}function ce(e){return ne(e).map(o=>o.kind==="literal"?u.string(o.value):E(o.name).python).join(" + ")}function ie(e,n){let o=n.servers??[];if(o.length===0)return;let t=new Set;e.block("class Servers:",()=>{e.line('"""The declared servers; variables default to the values from the description."""'),e.blank(),o.forEach((a,r)=>{let l=S(a.description??`server${r+1}`,{style:"snake",reserved:k});t.has(l)&&(l=`${l}_${r+1}`),t.add(l);let i=a.variables.map(m=>`${E(m.name).python}: str = ${u.string(m.default)}`);r>0&&e.blank(),e.line("@staticmethod"),e.block(`def ${l}(${i.join(", ")}) -> str:`,()=>{e.line(`return ${ce(a)}`)})})}),e.blank()}function H(e,n,o,t,a,r,l){let i=t?"AsyncClient":"Client",m=t?"httpx.AsyncClient":"httpx.Client";e.block(`class ${i}:`,()=>{e.doc(`${t?"Async ":""}client for ${n.title} (${n.version}).`),e.block(`def __init__(self, server_url: str = ${u.string(r)}, *, 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[${m}] = 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 ${m}()`)}),e.blank();for(let{op:c,ident:s}of C(n)){B(e,c,s,o,t,l),T(c)===void 0&&(c.successResponseHeaders?.length??0)>0&&B(e,c,s,o,t,l,n,!0);let p=a.get(s);if(p!==void 0){let f=R(c),g=te(f,typeof p.items=="string"?p.items:void 0,n);ae(e,c,s,t,g===void 0?"Any":h(g,l),l)}}}),e.blank()}function K(e){let n=new Map,o=new Set,t=[];for(let{name:r,schema:l}of e.schemas){let i=I(l,e);if(!(i===void 0||!i.cases.every(c=>G(c.schema,e)?.properties.some(s=>s.name===i.property)===!0))){for(let c of i.cases){let s=n.get(c.schemaName);if(s!==void 0&&s.value!==c.value){o.add(c.schemaName);continue}n.set(c.schemaName,{property:i.property,value:c.value})}t.push({name:r,property:i.property,members:i.cases.map(c=>c.schemaName)})}}let a=new Map;for(let r of t)r.members.some(l=>o.has(l))||a.set(r.name,E(r.property).python);for(let r of o)n.delete(r);return{pins:n,unions:a}}function pe(e,n,o,t,a,r,l){let i=a==="pydantic";i||e.line("@dataclass");let m=i?`class ${M(n)}(BaseModel):`:`class ${M(n)}:`;e.block(m,()=>{e.doc(r),i&&(e.line("model_config = ConfigDict(populate_by_name=True)"),e.blank());let c=[...o.filter(p=>p.required),...o.filter(p=>!p.required)],s=[];c.length===0&&e.line("pass");for(let p of c){let{python:f,renamed:g}=E(p.name);g&&!i&&s.push([f,p.name]);let y=g&&i?`alias=${u.string(p.name)}`:void 0,_=l?.property===p.name?`Literal[${u.literal(l.value)}]`:h(p.schema,t);if(p.required){let N=y===void 0?"":` = Field(${y})`;e.line(`${f}: ${_}${N}`)}else{let N=_.startsWith("Optional[")?_:`Optional[${_}]`,O=y===void 0?"None":`Field(default=None, ${y})`;e.line(`${f}: ${N} = ${O}`)}}if(s.length>0){e.blank(),e.line("# Python field name -> wire (JSON) name, for (de)serialization.");let p=s.map(([f,g])=>`"${f}": ${u.string(g)}`).join(", ");e.line(`_field_map: ClassVar[Dict[str, str]] = {${p}}`)}}),e.blank(),e.blank()}function Y(e,n="string",o="dataclass"){let t=new j,{pins:a,unions:r}=o==="pydantic"?K(e):{pins:new Map,unions:new Map};t.line("from __future__ import annotations"),t.blank(),o==="dataclass"&&t.line("from dataclasses import dataclass"),t.line("from enum import Enum");let l=["Any","AsyncIterator","Dict","Iterator","List","Literal","Optional","Tuple","Union"];o==="dataclass"&&l.splice(2,0,"ClassVar"),r.size>0&&l.unshift("Annotated"),t.line(`from typing import ${l.join(", ")}`),o==="pydantic"&&t.line("from pydantic import BaseModel, ConfigDict, Field"),n==="Date"&&t.line("from datetime import date, datetime"),t.blank(),t.blank();let i=[];for(let{name:m,schema:c}of e.schemas){let s=Z(c);if(s!==void 0){let p=s.scalar==="string"?"str, Enum":"int, Enum";t.block(`class ${M(m)}(${p}):`,()=>{t.doc(c.description),s.values.forEach((f,g)=>{t.line(`${s.memberNames[g]} = ${u.literal(f)}`)})}),t.blank(),t.blank();continue}if(c.kind==="object"||c.kind==="intersection"){let p=G(c,e);if(p!==void 0){pe(t,m,p.properties,n,o,p.description??c.description,a.get(m));continue}}i.push(()=>{let p=I(c,e);if(p!==void 0){let y=p.cases.map(_=>`${_.value} -> ${M(_.schemaName)}`).join(", ");t.line(`# Discriminated by "${p.property}": ${y}`)}let f=r.get(m),g=f===void 0?h(c,n):`Annotated[${h(c,n)}, Field(discriminator=${u.string(f)})]`;t.line(`${M(m)} = ${g}`),t.blank()})}for(let m of i)m();return t.toString()}function le(e,n){let o=[];for(let{name:t,schema:a}of e.schemas){if(n.has(t))continue;let r=I(a,e);if(r===void 0)continue;let l=r.cases.map(i=>`${u.string(i.value)}: ${M(i.schemaName)}`).join(", ");o.push(`DISCRIMINATORS[${M(t)}] = (${u.string(r.property)}, {${l}})`)}return o}var Ve={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 V(e){let n=e.lastIndexOf("/")>=0?"/":"\\",o=e.lastIndexOf(n),t=o>=0?e.slice(0,o+1):"",a=(o>=0?e.slice(o+1):e).replace(/\.[^.]+$/,"");return`${t}${S(a,{style:"snake",reserved:k})}.py`}var ze=({model:e,output:n,banner:o,emit:t,options:a,pagination:r})=>{let l=t.errorMode??"throw",i=t.dateType??"string",m=a?.models??"dataclass",c=m==="pydantic"?K(e):void 0,s=new j;if(s.line(`# Generated by @redocly/client-generator (python) from "${e.title}" ${e.version}.`),s.line("# Do not edit by hand \u2014 regenerate with `redocly generate-client`."),s.line(m==="pydantic"?"# Requires Python >= 3.9, httpx, and pydantic: pip install httpx pydantic":"# Requires Python >= 3.9 and httpx: pip install httpx"),s.blank(),s.line(Y(e,i,m).trimEnd()),s.blank(),s.blank(),ie(s,e),t.runtime==="module"){s.line("# \u2500\u2500\u2500 Runtime (real modules beside this file, written by the same run) \u2500\u2500\u2500");for(let d of Object.keys(F))s.line(`from ${d.replace(/\.py$/,"")} import *`);s.blank(),s.blank()}else{s.line("# \u2500\u2500\u2500 Embedded runtime (@redocly/client-generator python runtime) \u2500\u2500\u2500");for(let d of Object.values(F)){let $=d.split(`
8
- `).filter(b=>!b.startsWith("from __future__")&&!b.startsWith("from ._")).join(`
9
- `).trim();s.line($),s.blank()}s.blank()}let p=le(e,new Set(c?.unions.keys()));if(p.length>0){s.line("# Discriminated unions dispatch by their property inside decode().");for(let d of p)s.line(d);s.blank()}s.block("def _safe_json(response: httpx.Response) -> Any:",()=>{s.block("try:",()=>{s.line("return response.json()")}),s.block("except Exception:",()=>{s.line("return None")})}),s.blank();let f=new Map;for(let{op:d,ident:$}of C(e))f.set($,se(r?.get(d.name)?.spec));s.line("_OPERATIONS = {"),s.indent(()=>{for(let{op:d,ident:$}of C(e)){let b={id:d.specName??d.name,method:d.method.toUpperCase(),path:d.path,...W(d,e).length>0?{security:W(d,e)}:{},...f.get($)!==void 0?{pagination:f.get($)}:{}};s.line(`"${$}": ${oe(b)},`)}}),s.line("}"),s.blank(),s.blank();let g=t.serverUrl??e.serverUrl??"";H(s,e,l,!1,f,g,i),H(s,e,l,!0,f,g,i);let y={path:V(n.path),content:s.toString()};if(t.runtime!=="module")return[y];let _=o.map(d=>`# ${d}`).join(`
10
- `),N=V(n.path).replace(/[^\\/]+$/,""),O=Object.entries(F).map(([d,$])=>({path:`${N}${d}`,content:`${_}
11
-
12
- ${$.split(`
13
- `).map(b=>b.startsWith("from ._")?b.replace("from ._","from _"):b).join(`
14
- `).trim()}
15
- `}));return[y,...O]};function de(e,n){let o=V(n.outputPath).replace(/^.*[\\/]/,"").replace(/\.py$/,""),t=C(n.model).find(r=>r.op.name===e.name)?.ident??S(e.name,{style:"snake",reserved:k}),a=[...e.pathParams.map(r=>{let l=S(r.name,{style:"snake",reserved:k});return`${l}="<${l}>"`}),...e.queryParams.filter(r=>r.required).map(r=>`${S(r.name,{style:"snake",reserved:k})}=...`),...e.requestBody?["body=..."]:[]];return{lang:"python",label:"Python SDK",source:`from ${o} import Client
16
-
17
- client = Client()
18
- result = client.${t}(${a.join(", ")})
19
- `}}var Je=({model:e,output:n,emit:o,pagination:t})=>[{path:n.path.replace(/\.[^.\\/]+$/,".python.md"),content:J(e,{title:`${e.title} Python SDK reference`,frontmatter:o.docsFrontmatter===!0,language:{name:"python",label:"Python",fence:"python",requires:"The SDK needs `httpx`."},sample:a=>de(a,{model:e,emit:o,outputPath:n.path}),paginated:new Set(t?.keys()??[])})}];export{Je as pythonDocs,ze as pythonGenerator,Ve as pythonOptions,de as pythonSample,h as pythonType,Y as renderPythonModels};
@@ -1,177 +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"./TVJE32GA.js";import{a as h}from"./LWB43R4X.js";import"./PFYPTG4G.js";import"./OZMIIHFH.js";import"./NEWT5A6S.js";import{e as g,h as p,k as y}from"./NB54XRRU.js";import"./HJYFWIVE.js";import"./RFWIIJFG.js";import{join as M}from"node:path";var a=" ";function f(e){return`${y(e)}Schema`}var x=new Map;function u(e,r=x,t=""){return k(w(e,r,t),e)}function w(e,r,t){switch(e.kind){case"scalar":return S(e.scalar,e.metadata);case"object":return b(e.properties,r,t);case"array":return`z.array(${u(e.items,r,t)})`;case"record":return`z.record(z.string(), ${u(e.value,r,t)})`;case"ref":return`z.lazy(() => ${f(e.name)})`;case"literal":return`z.literal(${p(e.value)})`;case"enum":return z(e.values);case"union":return E(e.members,r,t);case"intersection":return e.members.map(n=>u(n,r,t)).reduce((n,o)=>`${n}.and(${o})`);case"null":return"z.null()";case"unknown":return"z.unknown()";case"omit":return q(e.base,e.keys,r,t)}}function S(e,r){switch(e){case"string":return r?.format==="binary"?"z.instanceof(Blob)":"z.string()";case"integer":return"z.number().int()";case"number":return"z.number()";case"boolean":return"z.boolean()"}}function c(e){return g(e)===e?e:JSON.stringify(e)}function b(e,r,t){if(e.length===0)return"z.object({})";let n=t+a;return`z.object({
8
- ${e.map((s,i)=>{let d=u(s.schema,r,n),l=s.required?d:`${d}.optional()`,v=i===e.length-1?"":",";return`${n}${c(s.name)}: ${l}${v}`}).join(`
9
- `)}
10
- ${t}})`}function z(e){return e.every(r=>typeof r=="string")?`z.enum([${e.map(r=>JSON.stringify(r)).join(", ")}])`:`z.union([${e.map(r=>`z.literal(${p(r)})`).join(", ")}])`}function E(e,r,t){let n=e.map(o=>u(o,r,t));return n.length===1?n[0]:`z.union([${n.join(", ")}])`}function q(e,r,t,n){let o=t.get(e);if(o&&o.kind!=="object")return u(m(o,r,t,new Set([e])),t,n);let s=r.map(i=>`${c(i)}: true`).join(", ");return`${f(e)}.omit({ ${s} })`}function m(e,r,t,n){switch(e.kind){case"object":return{...e,properties:e.properties.filter(o=>!r.includes(o.name))};case"union":case"intersection":return{...e,members:e.members.map(o=>m(o,r,t,n))};case"ref":{if(n.has(e.name))return e;let o=t.get(e.name);if(!o)return e;if(o.kind==="object"){let s=r.filter(i=>o.properties.some(d=>d.name===i));return s.length>0?{kind:"omit",base:e.name,keys:s}:e}return m(o,r,t,new Set([...n,e.name]))}default:return e}}function k(e,r){let t=r.metadata;if(!t)return e;let n=e;return r.kind==="scalar"&&r.scalar==="string"&&(t.minLength!==void 0&&(n=`${n}.min(${t.minLength})`),t.maxLength!==void 0&&(n=`${n}.max(${t.maxLength})`),t.pattern!==void 0&&(n=`${n}.regex(new RegExp(${JSON.stringify(t.pattern)}))`)),r.kind==="scalar"&&(r.scalar==="number"||r.scalar==="integer")&&(t.minimum!==void 0&&(n=`${n}.min(${t.minimum})`),t.maximum!==void 0&&(n=`${n}.max(${t.maximum})`),t.exclusiveMinimum!==void 0&&(n=`${n}.gt(${t.exclusiveMinimum})`),t.exclusiveMaximum!==void 0&&(n=`${n}.lt(${t.exclusiveMaximum})`)),r.kind==="array"&&(t.minItems!==void 0&&(n=`${n}.min(${t.minItems})`),t.maxItems!==void 0&&(n=`${n}.max(${t.maxItems})`)),n}function j(e,r){let t=[];for(let n of h(e.services)){if(n.sse!==void 0)continue;let o=n.requestBody,s=o&&o.contentType.toLowerCase().includes("json")?u(o.schema,r,a):void 0,i=n.successResponses.find(l=>l.contentType.toLowerCase().includes("json")),d=i?u(i.schema,r,a):void 0;!s&&!d||t.push({name:n.specName??n.name,request:s,response:d})}return t}function Z(e){let r=e.flatMap(n=>[`${a}${c(n.name)}: {`,...n.request?[`${a}${a}request: z.ZodType;`]:[],...n.response?[`${a}${a}response: z.ZodType;`]:[],`${a}};`]),t=e.map((n,o)=>{let s=[...n.request?[`request: ${n.request}`]:[],...n.response?[`response: ${n.response}`]:[]].join(", "),i=o===e.length-1?"":",";return`${a}${c(n.name)}: { ${s} }${i}`});return["/**"," * Request/response validators by operationId \u2014 powers `zodValidation`, or import one directly."," */","export const operationSchemas: {",...r,"} = {",...t,"};"].join(`
11
- `)}var I=`/** \`request\`/\`response\` validators for one operation (an absent side is not validated). */
12
- export type OperationSchemaSet = { request?: z.ZodType; response?: z.ZodType };
13
-
14
- const schemaIndex: Partial<Record<string, OperationSchemaSet>> = operationSchemas;
15
-
16
- /** One flattened validation problem: the full nested path and a short preview of the value. */
17
- export type ZodViolation = { path: string; message: string; received: string };
18
-
19
- /** A request or response payload failed validation. Requests throw it; response handling is configurable. */
20
- export class ZodValidationError extends Error {
21
- // Declared and assigned in the body, NOT as constructor parameter properties: those
22
- // need a transform, so they break \`node --experimental-strip-types\` for anything
23
- // importing this module (the generated CLI runs that way).
24
- readonly operationId: string;
25
- readonly direction: "request" | "response";
26
- readonly issues: z.ZodError["issues"];
27
- readonly violations: ZodViolation[];
28
-
29
- constructor(
30
- operationId: string,
31
- direction: "request" | "response",
32
- issues: z.ZodError["issues"],
33
- violations: ZodViolation[]
34
- ) {
35
- const detail = violations
36
- .slice(0, 5)
37
- .map((violation) => \`\${violation.path || "(root)"}: \${violation.message} (received \${violation.received})\`)
38
- .join("; ");
39
- const more = violations.length > 5 ? \`; \u2026and \${violations.length - 5} more\` : "";
40
- super(\`\${direction === "request" ? "Request" : "Response"} validation failed for operation "\${operationId}": \${detail}\${more}\`);
41
- this.operationId = operationId;
42
- this.direction = direction;
43
- this.issues = issues;
44
- this.violations = violations;
45
- this.name = "ZodValidationError";
46
- }
47
- }
48
-
49
- // Flatten zod issues into leaf violations. Union branches (zod 3 \`unionErrors\`, zod 4
50
- // nested \`errors\`) are recursed into, so the message names the actual failing fields
51
- // instead of just the union root ("Invalid input").
52
- function flattenIssues(
53
- issues: z.ZodError["issues"],
54
- value: unknown,
55
- base: PropertyKey[] = []
56
- ): ZodViolation[] {
57
- const violations: ZodViolation[] = [];
58
- for (const issue of issues) {
59
- const path = [...base, ...issue.path];
60
- const nested = nestedIssueLists(issue);
61
- if (nested.length > 0) {
62
- for (const sub of nested) violations.push(...flattenIssues(sub, value, path));
63
- } else {
64
- violations.push({
65
- path: path.map(String).join("."),
66
- message: issue.message,
67
- received: preview(valueAt(value, path)),
68
- });
69
- }
70
- }
71
- return violations;
72
- }
73
-
74
- /** The nested issue lists of a union-ish issue, across zod 3 (\`unionErrors\`) and zod 4 (\`errors\`). */
75
- function nestedIssueLists(issue: unknown): Array<z.ZodError["issues"]> {
76
- const candidate = issue as {
77
- unionErrors?: Array<{ issues: z.ZodError["issues"] }>;
78
- errors?: Array<z.ZodError["issues"]>;
79
- };
80
- if (Array.isArray(candidate.unionErrors)) return candidate.unionErrors.map((error) => error.issues);
81
- if (Array.isArray(candidate.errors)) return candidate.errors;
82
- return [];
83
- }
84
-
85
- function valueAt(value: unknown, path: PropertyKey[]): unknown {
86
- let current = value;
87
- for (const key of path) {
88
- if (current === null || typeof current !== "object") return undefined;
89
- current = (current as Record<PropertyKey, unknown>)[key];
90
- }
91
- return current;
92
- }
93
-
94
- /** A short single-line preview of the offending value. NOTE: validation output can surface
95
- * payload data \u2014 route \`onViolation\` to a scrubbed logger when responses may carry secrets. */
96
- function preview(value: unknown): string {
97
- let text: string;
98
- try {
99
- text = JSON.stringify(value) ?? String(value);
100
- } catch {
101
- text = String(value);
102
- }
103
- return text.length > 80 ? \`\${text.slice(0, 77)}\u2026\` : text;
104
- }
105
-
106
- export type ZodValidationOptions = {
107
- /** Validate request bodies before any network call; a failure THROWS (it is the caller's own bug). Default: true. */
108
- request?: boolean;
109
- /** Replace the outgoing body with the parsed result, dropping keys the schema does not declare
110
- * (for strict-DTO servers that 400 on excess properties). Runs request validation. Default: false. */
111
- stripRequestBodies?: boolean;
112
- /** Response drift handling: \`"warn"\` (default) reports via \`onViolation\` and lets the call
113
- * succeed \u2014 a server drifting from its description should not crash the consumer;
114
- * \`"throw"\` fails the call (even on result-mode clients); \`false\` skips response validation. */
115
- response?: "warn" | "throw" | false;
116
- /** Sink for \`"warn"\` mode. Default: \`console.warn\` with the error message. */
117
- onViolation?: (error: ZodValidationError) => void;
118
- };
119
-
120
- /**
121
- * Schema-validation middleware for the generated client: \`use(zodValidation())\`.
122
- * Request bodies are validated before any network call and throw on failure; successful
123
- * JSON responses are validated against the operation's response schema and WARN by
124
- * default (see \`ZodValidationOptions.response\`). Operations without a schema pass
125
- * through untouched. Payloads are never mutated unless \`stripRequestBodies\` is set.
126
- */
127
- export function zodValidation(options: ZodValidationOptions = {}) {
128
- const { request = true, stripRequestBodies = false, response = "warn", onViolation } = options;
129
- const report = onViolation ?? ((error: ZodValidationError) => console.warn(error.message));
130
- return {
131
- onRequest(context: { body?: unknown; operation: { id: string } }): void {
132
- if ((!request && !stripRequestBodies) || context.body === undefined) return;
133
- const schema = schemaIndex[context.operation.id]?.request;
134
- if (!schema) return;
135
- const result = schema.safeParse(context.body);
136
- if (!result.success) {
137
- throw new ZodValidationError(
138
- context.operation.id,
139
- "request",
140
- result.error.issues,
141
- flattenIssues(result.error.issues, context.body)
142
- );
143
- }
144
- // zod object schemas drop undeclared keys during parsing, so the parsed value
145
- // IS the declared shape (intersections keep their own zod semantics).
146
- if (stripRequestBodies) context.body = result.data;
147
- },
148
- async onResponse(incoming: Response, context: { operation: { id: string } }): Promise<void> {
149
- if (response === false || !incoming.ok) return;
150
- const schema = schemaIndex[context.operation.id]?.response;
151
- if (!schema) return;
152
- const contentType = (incoming.headers.get("content-type") ?? "").toLowerCase();
153
- if (!contentType.includes("json")) return;
154
- const payload: unknown = await incoming.clone().json();
155
- const result = schema.safeParse(payload);
156
- if (!result.success) {
157
- const error = new ZodValidationError(
158
- context.operation.id,
159
- "response",
160
- result.error.issues,
161
- flattenIssues(result.error.issues, payload)
162
- );
163
- if (response === "throw") throw error;
164
- report(error);
165
- }
166
- },
167
- };
168
- }`;function $(e){let r=new Map(e.schemas.map(o=>[o.name,o.schema])),t=j(e,r);if(e.schemas.length===0&&t.length===0)return"";let n=['import { z } from "zod";',...e.schemas.map(o=>`export const ${f(o.name)} = ${u(o.schema,r)};`)];return t.length===0?n.join(`
169
-
170
- `):(n.push(Z(t)),`${n.join(`
171
-
172
- `)}
173
- ${I}
174
- `)}var T=({model:e,output:r,banner:t})=>{let n=$(e);if(n==="")return[];let o=t.map(s=>`// ${s}`).join(`
175
- `);return[{path:M(r.dir,`${r.stem}.zod.ts`),content:`${o}
176
-
177
- ${n}`}]};export{T as zodGenerator};
@@ -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
- var e={name:"@redocly/cli",version:"2.51.1",description:"",license:"MIT",bin:{redocly:"bin/cli.js",openapi:"bin/cli.js"},type:"module",engines:{node:">=22.12.0 || >=20.19.0 <21.0.0",npm:">=10"},engineStrict:!0,scripts:{build:"node ./scripts/build.mjs","prepare:publish-dir":"node ./scripts/prepare-publish-dir.mjs","clean:publish-dir":`node -e "require('fs').rmSync('.publish', {recursive:true, force:true})"`},publishConfig:{directory:".publish"},repository:{type:"git",url:"https://github.com/Redocly/redocly-cli.git"},homepage:"https://github.com/Redocly/redocly-cli",keywords:["linter","OpenAPI","Swagger","OpenAPI linter","Swagger linter","AsyncAPI linter","Arazzo linter","oas"],contributors:["Roman Hotsiy <roman@redocly.com> (https://redocly.com/)"],devDependencies:{"@opentelemetry/exporter-trace-otlp-http":"0.219.0","@opentelemetry/resources":"2.8.0","@opentelemetry/sdk-trace-node":"2.8.0","@opentelemetry/semantic-conventions":"1.41.1","@redocly/cli-otel":"0.3.5","@redocly/client-generator":"0.4.5","@redocly/openapi-core":"2.51.1","@redocly/respect-core":"2.51.1","@types/cookie":"0.6.0","@types/har-format":"^1.2.16","@types/react":"^17.0.0 || ^18.2.21 || ^19.2.16","@types/react-dom":"^17.0.0 || ^18.2.7 || ^19.2.3","@types/semver":"^7.5.0","@types/set-cookie-parser":"2.4.10","@types/yargs":"17.0.32",colorette:"^1.2.0",cookie:"^0.7.2",dotenv:"16.4.7",esbuild:"^0.28.0",glob:"^13.0.5",handlebars:"^4.7.9","https-proxy-agent":"^7.0.5",react:"^17.0.0 || ^18.2.0 || ^19.2.7","react-dom":"^17.0.0 || ^18.2.0 || ^19.2.7",redoc:"2.5.3",semver:"^7.5.2","set-cookie-parser":"^2.3.5","styled-components":"6.4.2",typescript:"6.0.2",ulid:"^3.0.1",undici:"^6.28.0",yargs:"17.0.1"}};var{version:s,name:i,engines:c}=e,n=e.devDependencies.redoc,p="sha384-xiEssMQFSpSfLbzRZCGfxxIM5QDb2DTrU6vyoZdp2sV1L6pmOMy6MpTtUoLbpC96";export{s as a,i as b,c,n as d,p as e};
@@ -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 R}from"./SQVG3CEM.js";import{c as L}from"./UKSQ7B5H.js";import{b as J,c as E,d as F,e as W,f as ne,g as B,h as te}from"./TVJE32GA.js";import{c as z,d as w,e as A,g as U,h as C,i as Q,j as X,k as Z,n as ee}from"./HJYFWIVE.js";var k=z.python,f=new R;function O(e){return f.typeName(e)}function q(e){let{identifier:n,renamed:s}=f.memberName(e);return{python:n,renamed:s}}function I(e){let n=e.services.flatMap(t=>t.operations),s=A(n.map(t=>t.name),{style:"snake",reserved:k});return n.map((t,r)=>({op:t,ident:s[r]}))}var T=["self","body","headers","timeout","retry","idempotency_key"];function se(e){return f.literal(e)}function oe(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.limitParam!==void 0?{limit_param:e.limitParam}:{},...e.items!==void 0?{items:e.items}:{}}}function ae(e,n){let s=new Set;return`[${(e.successResponseHeaders??[]).map(r=>{let a=w(r.name,{style:"snake",reserved:k}),c=a,i=2;for(;s.has(c);)c=`${a}_${i++}`;s.add(c);let m=ee(r.schema,n);return`(${f.string(r.name)}, ${f.string(c)}, ${f.string(m)})`}).join(", ")}]`}function y(e,n="string"){if(Q(e))return`Optional[${y(X(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[${y(e.items,n)}]`;case"record":return`Dict[str, ${y(e.value,n)}]`;case"ref":return O(e.name);case"literal":return`Literal[${f.literal(e.value)}]`;case"enum":return{string:"str",integer:"int",number:"float",boolean:"bool"}[e.scalar];case"union":return`Union[${e.members.map(s=>y(s,n)).join(", ")}]`;case"null":return"None";case"omit":return O(e.base);case"object":case"intersection":case"unknown":return"Any"}}function H(e,n,s,t,r,a,c,i=!1){let m=A([...n.pathParams,...n.queryParams].map(N=>N.name),{style:"snake",reserved:k,taken:T}),l=n.pathParams.map((N,S)=>({param:N,python:m[S]})),o=n.queryParams.map((N,S)=>({param:N,python:m[n.pathParams.length+S]})),p=l.map(({param:N,python:S})=>`${S}: ${y(N.schema,a)}`),u=n.requestBody?[`body: ${y(n.requestBody.schema,a)}`]:[],$=[...o.map(({param:N,python:S})=>{let D=y(N.schema,a),j=D.startsWith("Optional[")?D:`Optional[${D}]`;return`${S}: ${j} = None`}),"headers: Optional[Dict[str, str]] = None","timeout: Optional[float] = None","retry: Optional[Dict[str, Any]] = None","idempotency_key: Any = None"],h=E(n),g=F(n),v=i?`Envelope[${h===void 0?"None":y(h,a)}]`:g!==void 0?`${r?"AsyncIterator":"Iterator"}[ServerSentEvent]`:t==="result"?"Result":h===void 0?"None":y(h,a),P=r&&g===void 0?"async def":"def",d=r?"await ":"",_=r?"send_async":"send",b=["self",...p,...u,"*",...$].join(", "),x=i?`${s}_with_headers`:s;e.block(`${P} ${x}(${b}) -> ${v}:`,()=>{e.doc(i?`Like ${s}(), returning an Envelope with the declared response headers.`:n.summary),e.line(`op = _OPERATIONS["${s}"]`),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:j,python:M}of o)e.block(`if ${M} is not None:`,()=>{e.line(`params[${f.string(j.name)}] = encode(${M})`)});let N=l.map(({param:j,python:M})=>`${f.string(j.name)}: ${M}`).join(", ");if(e.line(`url = build_url(self._server_url, op["path"], {${N}})`),g!==void 0){let j=g.schema!==void 0&&g.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="${j}")`);return}W(n)&&e.line("form_data, form_files = to_multipart(body)");let S=n.requestBody?W(n)?", data=form_data, files=form_files":", json_body=encode(body)":"";e.line(`response = ${d}${_}(self._http, self._config, op, url, method=op["method"], headers={**auth_headers, **(headers or {})}, params=params${S}, timeout=timeout, retry=retry, idempotency_key=idempotency_key)`);let D=h===void 0?"None":`decode(${y(h,a)}, _safe_json(response))`;i?(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=${D}, headers=read_envelope_headers(response, ${ae(n,c)}), response=response)`)):t==="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=${D}, 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(h===void 0?"return None":`return ${D}`))}),e.blank()}function re(e,n,s,t,r,a){let c=E(n),i=c===void 0?"Any":y(c,a),m=A([...n.pathParams,...n.queryParams].map(d=>d.name),{style:"snake",reserved:k,taken:T}),l=n.pathParams.map((d,_)=>({param:d,python:m[_]})),o=n.queryParams.map((d,_)=>({param:d,python:m[n.pathParams.length+_]})),p=l.map(({param:d,python:_})=>`${_}: ${y(d.schema,a)}`),u=[...o.map(({param:d,python:_})=>{let b=y(d.schema,a),x=b.startsWith("Optional[")?b:`Optional[${b}]`;return`${_}: ${x} = None`}),"headers: Optional[Dict[str, str]] = None","timeout: Optional[float] = None","retry: Optional[Dict[str, Any]] = None"],$=["self",...p,"*",...u].join(", "),h=t?"AsyncIterator":"Iterator",g=t?"aiter_pages":"iter_pages",v=t?"aiter_items":"iter_items",P=()=>{e.line("base: Dict[str, Any] = {}");for(let{param:b,python:x}of o)e.block(`if ${x} is not None:`,()=>{e.line(`base[${f.string(b.name)}] = encode(${x})`)});let d=t?"async def":"def",_=t?"await ":"";e.block(`${d} _page(page_params: Dict[str, Any]) -> Tuple[Any, Any]:`,()=>{e.line('auth_headers, auth_query = resolve_auth(op.get("security") or [], self._auth)');let b=l.map(({param:x,python:N})=>`${f.string(x.name)}: ${N}`).join(", ");e.line(`url = build_url(self._server_url, op["path"], {${b}})`),e.line(`response = ${_}${t?"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")})};t?(e.block(`async def ${s}_pages(${$}) -> ${h}[${i}]:`,()=>{e.line(`op = _OPERATIONS["${s}"]`),P(),e.block(`async for page in ${g}(_page, op["pagination"], base):`,()=>{e.line(i==="Any"?"yield page":`yield decode(${i}, page)`)})}),e.blank(),e.block(`async def ${s}_items(${$}) -> ${h}[${r}]:`,()=>{e.line(`op = _OPERATIONS["${s}"]`),P(),e.block(`async for item in ${v}(_page, op["pagination"], base):`,()=>{e.line(r==="Any"?"yield item":`yield decode(${r}, item)`)})})):(e.block(`def ${s}_pages(${$}) -> ${h}[${i}]:`,()=>{e.line(`op = _OPERATIONS["${s}"]`),P(),e.line(i==="Any"?`return ${g}(_page, op["pagination"], base)`:`return (decode(${i}, page) for page in ${g}(_page, op["pagination"], base))`)}),e.blank(),e.block(`def ${s}_items(${$}) -> ${h}[${r}]:`,()=>{e.line(`op = _OPERATIONS["${s}"]`),P(),e.line(r==="Any"?`return ${v}(_page, op["pagination"], base)`:`return (decode(${r}, item) for item in ${v}(_page, op["pagination"], base))`)})),e.blank()}function le(e){return ne(e).map(s=>s.kind==="literal"?f.string(s.value):q(s.name).python).join(" + ")}function ie(e,n){let s=n.servers??[];if(s.length===0)return;let t=new Set;e.block("class Servers:",()=>{e.line('"""The declared servers; variables default to the values from the description."""'),e.blank(),s.forEach((r,a)=>{let c=w(r.description??`server${a+1}`,{style:"snake",reserved:k});t.has(c)&&(c=`${c}_${a+1}`),t.add(c);let i=r.variables.map(m=>`${q(m.name).python}: str = ${f.string(m.default)}`);a>0&&e.blank(),e.line("@staticmethod"),e.block(`def ${c}(${i.join(", ")}) -> str:`,()=>{e.line(`return ${le(r)}`)})})}),e.blank()}function K(e,n,s,t,r,a,c){let i=t?"AsyncClient":"Client",m=t?"httpx.AsyncClient":"httpx.Client";e.block(`class ${i}:`,()=>{e.doc(`${t?"Async ":""}client for ${n.title} (${n.version}).`),e.block(`def __init__(self, server_url: str = ${f.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[${m}] = 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 ${m}()`)}),e.blank();for(let{op:l,ident:o}of I(n)){H(e,l,o,s,t,c),F(l)===void 0&&(l.successResponseHeaders?.length??0)>0&&H(e,l,o,s,t,c,n,!0);let p=r.get(o);if(p!==void 0){let u=E(l),$=te(u,typeof p.items=="string"?p.items:void 0,n);re(e,l,o,t,$===void 0?"Any":y($,c),c)}}}),e.blank()}function Y(e){let n=new Map,s=new Set,t=[];for(let{name:a,schema:c}of e.schemas){let i=C(c,e);if(!(i===void 0||!i.cases.every(l=>U(l.schema,e)?.properties.some(o=>o.name===i.property)===!0))){for(let l of i.cases){let o=n.get(l.schemaName);if(o!==void 0&&o.value!==l.value){s.add(l.schemaName);continue}n.set(l.schemaName,{property:i.property,value:l.value})}t.push({name:a,property:i.property,members:i.cases.map(l=>l.schemaName)})}}let r=new Map;for(let a of t)a.members.some(c=>s.has(c))||r.set(a.name,q(a.property).python);for(let a of s)n.delete(a);return{pins:n,unions:r}}function pe(e,n,s,t,r,a,c){let i=r==="pydantic";i||e.line("@dataclass");let m=i?`class ${O(n)}(BaseModel):`:`class ${O(n)}:`;e.block(m,()=>{e.doc(a),i&&(e.line("model_config = ConfigDict(populate_by_name=True)"),e.blank());let l=[...s.filter(p=>p.required),...s.filter(p=>!p.required)],o=[];l.length===0&&e.line("pass");for(let p of l){let{python:u,renamed:$}=q(p.name);$&&!i&&o.push([u,p.name]);let h=$&&i?`alias=${f.string(p.name)}`:void 0,g=c?.property===p.name?`Literal[${f.literal(c.value)}]`:y(p.schema,t);if(p.required){let v=h===void 0?"":` = Field(${h})`;e.line(`${u}: ${g}${v}`)}else{let v=g.startsWith("Optional[")?g:`Optional[${g}]`,P=h===void 0?"None":`Field(default=None, ${h})`;e.line(`${u}: ${v} = ${P}`)}}if(o.length>0){e.blank(),e.line("# Python field name -> wire (JSON) name, for (de)serialization.");let p=o.map(([u,$])=>`"${u}": ${f.string($)}`).join(", ");e.line(`_field_map: ClassVar[Dict[str, str]] = {${p}}`)}}),e.blank(),e.blank()}function G(e,n="string",s="dataclass"){let t=new R,{pins:r,unions:a}=s==="pydantic"?Y(e):{pins:new Map,unions:new Map};t.line("from __future__ import annotations"),t.blank(),s==="dataclass"&&t.line("from dataclasses import dataclass"),t.line("from enum import Enum");let c=["Any","AsyncIterator","Dict","Iterator","List","Literal","Optional","Tuple","Union"];s==="dataclass"&&c.splice(2,0,"ClassVar"),a.size>0&&c.unshift("Annotated"),t.line(`from typing import ${c.join(", ")}`),s==="pydantic"&&t.line("from pydantic import BaseModel, ConfigDict, Field"),n==="Date"&&t.line("from datetime import date, datetime"),t.blank(),t.blank();let i=[];for(let{name:m,schema:l}of e.schemas){let o=Z(l);if(o!==void 0){let p=o.scalar==="string"?"str, Enum":"int, Enum";t.block(`class ${O(m)}(${p}):`,()=>{t.doc(l.description),o.values.forEach((u,$)=>{t.line(`${o.memberNames[$]} = ${f.literal(u)}`)})}),t.blank(),t.blank();continue}if(l.kind==="object"||l.kind==="intersection"){let p=U(l,e);if(p!==void 0){pe(t,m,p.properties,n,s,p.description??l.description,r.get(m));continue}}i.push(()=>{let p=C(l,e);if(p!==void 0){let h=p.cases.map(g=>`${g.value} -> ${O(g.schemaName)}`).join(", ");t.line(`# Discriminated by "${p.property}": ${h}`)}let u=a.get(m),$=u===void 0?y(l,n):`Annotated[${y(l,n)}, Field(discriminator=${f.string(u)})]`;t.line(`${O(m)} = ${$}`),t.blank()})}for(let m of i)m();return t.toString()}function ce(e,n){let s=[];for(let{name:t,schema:r}of e.schemas){if(n.has(t))continue;let a=C(r,e);if(a===void 0)continue;let c=a.cases.map(i=>`${f.string(i.value)}: ${O(i.schemaName)}`).join(", ");s.push(`DISCRIMINATORS[${O(t)}] = (${f.string(a.property)}, {${c}})`)}return s}var Ve={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 V(e){let n=e.lastIndexOf("/")>=0?"/":"\\",s=e.lastIndexOf(n),t=s>=0?e.slice(0,s+1):"",r=(s>=0?e.slice(s+1):e).replace(/\.[^.]+$/,"");return`${t}${w(r,{style:"snake",reserved:k})}.py`}var ze=({model:e,output:n,banner:s,emit:t,options:r,pagination:a})=>{let c=t.errorMode??"throw",i=t.dateType??"string",m=r?.models??"dataclass",l=m==="pydantic"?Y(e):void 0,o=new R;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(m==="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(G(e,i,m).trimEnd()),o.blank(),o.blank(),ie(o,e),t.runtime==="module"){o.line("# \u2500\u2500\u2500 Runtime (real modules beside this file, written by the same run) \u2500\u2500\u2500");for(let d of Object.keys(L))o.line(`from ${d.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 d of Object.values(L)){let _=d.split(`
8
- `).filter(b=>!b.startsWith("from __future__")&&!b.startsWith("from ._")).join(`
9
- `).trim();o.line(_),o.blank()}o.blank()}let p=ce(e,new Set(l?.unions.keys()));if(p.length>0){o.line("# Discriminated unions dispatch by their property inside decode().");for(let d of p)o.line(d);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 u=new Map;for(let{op:d,ident:_}of I(e))u.set(_,oe(a?.get(d.name)?.spec));o.line("_OPERATIONS = {"),o.indent(()=>{for(let{op:d,ident:_}of I(e)){let b={id:d.specName??d.name,method:d.method.toUpperCase(),path:d.path,...B(d,e).length>0?{security:B(d,e)}:{},...u.get(_)!==void 0?{pagination:u.get(_)}:{}};o.line(`"${_}": ${se(b)},`)}}),o.line("}"),o.blank(),o.blank();let $=t.serverUrl??e.serverUrl??"";K(o,e,c,!1,u,$,i),K(o,e,c,!0,u,$,i);let h={path:V(n.path),content:o.toString()};if(t.runtime!=="module")return[h];let g=s.map(d=>`# ${d}`).join(`
10
- `),v=V(n.path).replace(/[^\\/]+$/,""),P=Object.entries(L).map(([d,_])=>({path:`${v}${d}`,content:`${g}
11
-
12
- ${_.split(`
13
- `).map(b=>b.startsWith("from ._")?b.replace("from ._","from _"):b).join(`
14
- `).trim()}
15
- `}));return[h,...P]};function de(e,n){let s=V(n.outputPath).replace(/^.*[\\/]/,"").replace(/\.py$/,""),t=I(n.model).find(a=>a.op.name===e.name)?.ident??w(e.name,{style:"snake",reserved:k}),r=[...e.pathParams.map(a=>{let c=w(a.name,{style:"snake",reserved:k});return`${c}="<${c}>"`}),...e.queryParams.filter(a=>a.required).map(a=>`${w(a.name,{style:"snake",reserved:k})}=...`),...e.requestBody?["body=..."]:[]];return{lang:"python",label:"Python SDK",source:`from ${s} import Client
16
-
17
- client = Client()
18
- result = client.${t}(${r.join(", ")})
19
- `}}var Je=({model:e,output:n,emit:s,pagination:t})=>[{path:n.path.replace(/\.[^.\\/]+$/,".python.md"),content:J(e,{title:`${e.title} Python SDK reference`,frontmatter:s.docsFrontmatter===!0,language:{name:"python",label:"Python",fence:"python",requires:"The SDK needs `httpx`."},sample:r=>de(r,{model:e,emit:s,outputPath:n.path}),paginated:new Set(t?.keys()??[])})}];export{y as a,G as b,Ve as c,ze as d,de as e,Je as f};
@@ -1,16 +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 $,b as i,c,d as a,e as m,f as p}from"./NYFYWKQQ.js";import"./VZCENZBY.js";import"./TVJE32GA.js";import"./LWB43R4X.js";import"./PFYPTG4G.js";import"./OZMIIHFH.js";import"./NEWT5A6S.js";import{k as u}from"./NB54XRRU.js";import"./HJYFWIVE.js";import"./RFWIIJFG.js";import{join as M}from"node:path";function d(t,e){let r=$(t,"swr");if(r.length===0)return"";let s=r.some(i),o=r.some(n=>!i(n));return[...s?['import useSWR from "swr";']:[],...o?['import useSWRMutation from "swr/mutation";']:[],p(r,e.sdkModule,s),...r.flatMap(n=>i(n)?y(n):[k(n)])].join(`
8
-
9
- `)}function f(t,e,r){return`export function use${u(t.name)}(${e}) {
10
- return ${r};
11
- }`}function y(t){let e=c(t),r=e?`vars: ${a(t)}`:"",s=e?`[${JSON.stringify(t.name)}, vars]`:`[${JSON.stringify(t.name)}]`,o=`export const ${t.name}Key = (${r}) => ${s} as const;`,n=`useSWR(${`${t.name}Key(${e?"vars":""})`}, () => ${m(t,"vars",!0)})`,g=e?`vars: ${a(t)}, init?: Omit<RequestOptions, "envelope">`:'init?: Omit<RequestOptions, "envelope">';return[o,f(t,g,n)]}function k(t){let e=c(t)?`(_key: string, { arg }: {
12
- arg: ${a(t)};
13
- }) => ${m(t,"arg",!1)}`:`() => ${m(t,"arg",!1)}`,r=`useSWRMutation(${JSON.stringify(t.name)}, ${e})`;return f(t,"",r)}var h=({model:t,output:e,banner:r,emit:s})=>{let o=d(t,{sdkModule:`./${e.stem}.${s.importExt??"js"}`});if(o==="")return[];let l=r.map(n=>`// ${n}`).join(`
14
- `);return[{path:M(e.dir,`${e.stem}.swr.ts`),content:`${l}
15
-
16
- ${o}`}]};export{h as swrGenerator};
@@ -1,8 +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}from"./OZMIIHFH.js";import{open as C,readdir as N,stat as P}from"node:fs/promises";import d from"node:path";var $=new Set([".yaml",".yml",".json"]);async function D(e){let n=[];async function t(r){let o=await N(r,{withFileTypes:!0});for(let s of o){if(s.name.startsWith("."))continue;let i=d.join(r,s.name);if(s.isDirectory()){await t(i);continue}s.isFile()&&$.has(d.extname(s.name).toLowerCase())&&n.push(i)}}return await t(e),n.sort(),n}async function _(e,n=4096){let t=await C(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 M(e){return d.resolve(process.cwd(),e)}async function K(e){let n=await P(e);if(n.isFile())return[e];if(!n.isDirectory())return[];let t=[];async function r(o){let s=await N(o,{withFileTypes:!0});for(let i of s){if(i.name.startsWith("."))continue;let a=d.join(o,i.name);if(i.isDirectory()){await r(a);continue}i.isFile()&&t.push(a)}}return await r(e),t.sort(),t}var k="drift.local",O=`http://${k}`;function u(e){return e===k}var U=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-"],R=`
8
- `;function Y(e){return e.split(R)}function g(e,n,t){let r=n.toLowerCase(),o=e[r];if(o===void 0){e[r]=t;return}e[r]=r==="set-cookie"?`${o}${R}${t}`:`${o},${t}`}function p(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&&g(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)g(n,t,String(o));continue}g(n,t,String(r))}return n}function f(e){try{return new URL(e)}catch{return new URL(e,O)}}function m(e){return e.length>1&&e.endsWith("/")?e.slice(0,-1):e}function L(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function V(e){let n=[],t=0,r=e.startsWith("/")?e:`/${e}`,s=m(r).split("/").map(i=>{if(!i)return"";let a=i.match(/^\{([^}]+)\}$/);return a?(n.push(a[1]),"([^/]+)"):(t+=2,L(i))}).join("/");return{regex:new RegExp(`^${s||"/"}$`),params:n,score:t}}function l(e,n){if(n&&A(e))try{return JSON.parse(n)}catch{return}}function E(e){return e?e.split(";")[0]?.trim().toLowerCase()??"":""}function A(e){let n=E(e);return n==="application/json"||n.endsWith("+json")}function Q(e,n){let t=E(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 Z(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 v(e,n){let t=e.toLowerCase();return t.startsWith(":")||U.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 q}from"node:fs";import{readFile as B}from"node:fs/promises";import{createInterface as F}from"node:readline";function I(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 se(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 H(e,n){if(e!=null){if(n==="base64"&&typeof e=="string")try{return Buffer.from(e,"base64").toString("utf8")}catch{return e}return I(e)}}function ae(e,n,t){let r=e.method?.toUpperCase(),o=e.url;if(!r||!o)return null;let s=p(e.requestHeaders),i=f(o);if(u(i.host)&&s.host)try{i=new URL(`${i.protocol}//${s.host}${i.pathname}${i.search}`)}catch{i=f(o)}let a=e.requestContentType??s["content-type"],y=H(e.requestBody),T={method:r,url:i.toString(),path:i.pathname,query:i.searchParams,protocol:i.protocol,protocolKnown:e.schemeKnown??/^https?:\/\//i.test(o),host:u(i.host)?void 0:i.host||void 0,headers:s,contentType:a,bodyText:y,bodyJson:l(a,y)},h,x=e.responseStatus;if(x!==void 0){let w=p(e.responseHeaders),S=e.responseContentType??w["content-type"],b=H(e.responseBody);h={status:x,statusText:e.responseStatusText,headers:w,contentType:S,bodyText:b,bodyJson:l(S,b)}}return{index:n,source:t,startedAt:e.startedAt,request:T,response:h,raw:e.raw}}async function*ce(e){let n=q(e,{encoding:"utf8"}),t=F({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*ue(e,n){let t=await B(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 fe(e){return p(e)["content-type"]}function ge(e){return e?.replace(/\/+$/,"")||void 0}function z(e,n){if(!n||n==="/")return e||"/";if(e===n)return"/";if(e.startsWith(`${n}/`))return e.slice(n.length)||"/"}function me(e,n){if(n.startsWith("/"))return z(e.path,n);let t=f(n.includes("://")?n:`http://${n}`);if(!(u(t.host)||e.host!==void 0&&e.host.toLowerCase()!==t.host))return z(e.path,m(t.pathname))}export{D as a,_ as b,M as c,K as d,u as e,Y as f,f as g,m as h,V as i,E as j,A as k,Q as l,Z as m,v as n,I as o,se as p,H as q,ae as r,ce as s,ue as t,fe as u,ge as v,me as w};
@@ -1,57 +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"./UKSQ7B5H.js";import"./NYFYWKQQ.js";import{g as m}from"./VZCENZBY.js";import{k as l,l as c}from"./TVJE32GA.js";import{c as b,d as $}from"./LWB43R4X.js";import"./PFYPTG4G.js";import{V as h}from"./OZMIIHFH.js";import"./NEWT5A6S.js";import"./NB54XRRU.js";import{a as C,b as S}from"./HJYFWIVE.js";import"./RFWIIJFG.js";import{join as y}from"node:path";function g(t){return(t??"").replace(/\s+/g," ").trim().replace(/\\/g,"\\\\").replace(/\|/g,"\\|")}function k(t){return[t.group===void 0?void 0:l(t.group),t.name].filter(Boolean).join(" ")}function R(t,e){return[t,k(e),...e.positionals.map(i=>`<${i.name}>`),...e.flags.filter(i=>i.required).map(i=>`--${i.name} <${i.type}>`),...e.body?[e.body.required?"--json '<json>'":"[--json '<json>']"]:[]].filter(i=>i!=="").join(" ")}function P(t,e){t.line("| Flag | Type | Required | Description |"),t.line("| ---- | ---- | -------- | ----------- |");for(let n of e){let i=[g(n.description),n.enum===void 0?"":`One of ${n.enum.map(r=>`\`${r}\``).join(", ")}.`,n.type==="array"?"Repeat the flag for multiple values.":""].filter(r=>r!=="").join(" ");t.line(`| \`--${n.name}\` | ${n.type} | ${n.required?"yes":"no"} | ${i} |`)}t.blank()}function A(t,e,n){if(t.line(`### \`${k(e)}\``),t.blank(),e.summary!==void 0&&(t.line(g(e.summary)),t.blank()),t.line(`\`${e.method} ${e.path}\``),t.blank(),t.line("```sh"),t.line(R(n.name,e)),t.line("```"),t.blank(),e.positionals.length>0){t.line("| Argument | Description |"),t.line("| -------- | ----------- |");for(let r of e.positionals)t.line(`| \`<${r.name}>\` | ${g(r.description)} |`);t.blank()}e.flags.length>0&&P(t,e.flags);let i=[e.body===void 0?"":`Takes a JSON body${e.body.required?" (required)":""}: \`--json '<json>'\`, \`--json @file.json\`, or \`--json @-\` for stdin.`,e.unsupportedBody===void 0?"":`Takes a \`${e.unsupportedBody}\` body, which the CLI cannot build \u2014 call this operation through the generated client instead.`,e.paginated===!0?"Paginated: `--page-all` follows every page, printing one JSON page per line.":"",e.sse===!0?"Streams server-sent events as one JSON object per line.":"",e.blob===!0?"Returns binary content, so `--output <path>` is required.":""].filter(r=>r!=="");for(let r of i)t.line(r);i.length>0&&t.blank()}function v(t,e){let n=new C;e.frontmatter&&(n.line("---"),n.line(`title: ${e.title}`),n.line("---"),n.blank()),n.line(`# ${e.title}`),n.blank(),n.line(`Generated command-line reference for \`${e.name}\`, produced from the API description by \`redocly generate-client\`.`),n.line("Re-run generation to update it \u2014 this file is not hand-edited."),n.blank(),n.line("## Usage"),n.blank(),n.line("```sh"),n.line(`${e.name} <command> [flags]`),n.line(`${e.name} --help`),n.line(`${e.name} schema <command> # request/response schemas`),n.line("```"),n.blank(),n.line("Install the file under any `bin` name: the command takes that name, and the credential variables below do not change."),n.blank(),n.line("## Global flags"),n.blank(),n.line("| Flag | Description |"),n.line("| ---- | ----------- |");let i=e.schemes.some(o=>o.kind==="bearer");for(let[o,s]of[["--server-url <url>","Override the server URL included in the client."],["--format <json\\|ndjson>","Output format."],["--dry-run","Print the prepared request, credentials redacted, without sending it."],["--page-all","Follow pagination, printing one JSON page per line."],["--output <path>","Write the response body to a file. Required for binary responses."],...i?[["--token <token>","Bearer token, overriding the environment."]]:[],["--json <json\\|@file\\|@->","Request body, inline or from a file or stdin."]])n.line(`| \`${o}\` | ${s} |`);n.blank();let r=c(e.name);if(n.line("## Credentials"),n.blank(),e.schemes.length===0)n.line("The description declares no security schemes, so no credentials are read.");else{n.line("Credentials come from the environment:"),n.blank(),n.line("| Scheme | Variable |"),n.line("| ------ | -------- |");for(let o of e.schemes){let s=o.kind==="bearer"?`\`${r}_TOKEN\` (or \`--token\`)`:o.kind==="basic"?`\`${r}_USERNAME\` and \`${r}_PASSWORD\``:`\`${r}_API_KEY_${c(o.key)}\``;n.line(`| ${o.kind} (\`${o.key}\`) | ${s} |`)}}n.blank(),n.line("## Exit codes"),n.blank(),n.line("| Code | Meaning |"),n.line("| ---- | ------- |");for(let[o,s]of[[0,"success"],[1,"API error (status other than 401 or 403)"],[2,"auth error (401 or 403)"],[3,"validation error"],[4,"usage error (unknown command or flag, bad `--json`)"]])n.line(`| ${o} | ${s} |`);n.blank(),n.line("Errors print one JSON object to stderr, so stdout stays clean for piping."),n.blank();let a=[...new Set(t.map(o=>o.group))];for(let o of a){let s=t.filter(d=>d.group===o);o===void 0?(n.line("## Commands"),n.blank()):(n.line(`## ${o}`),n.blank(),n.line(`Addressed as \`${e.name} ${l(o)} <command>\`.`),n.blank());for(let d of s)A(n,d,e)}return n.toString().replace(/\n{3,}/g,`
8
-
9
- `).trimEnd()+`
10
- `}function w(){return $["cli.ts"]}function x(){return b["cli.ts"]}var E="// Generated by @redocly/client-generator \u2014 do not edit by hand.\n// Source: OpenAPI description. Re-run `redocly generate-client` to update.";function q(t){return S.snake(t).replace(/_/g,"-")}function j(t){let e=t.schema,n=e.kind==="array"?"array":e.kind==="scalar"&&(e.scalar==="integer"||e.scalar==="number")?"number":e.kind==="scalar"&&e.scalar==="boolean"?"boolean":"string";return{name:q(t.name),param:t.name,type:n,required:t.required,...e.kind==="enum"?{enum:e.values.map(String)}:{},...t.description!==void 0?{description:t.description}:{}}}function F(t){let e=t.successResponses;return e.some(n=>n.contentType.toLowerCase().includes("json"))?!1:e.some(n=>n.contentType.startsWith("image/")||n.contentType==="application/octet-stream")}function N(t){return t.successResponses.find(e=>e.contentType.toLowerCase().includes("json"))?.schema}function T(t,e,n){if(n!=="flat")return{};let i=m(t,e.schemas);return"mergeBody"in i&&i.mergeBody?{merged:!0}:{}}function D(t,e,n){return n!=="flat"?{}:"collisions"in m(t,e.schemas)?{argsStyle:"grouped"}:{}}function p(t,e){let n=[];for(let i of t.services)for(let r of i.operations){let a=r.requestBody?.contentType.toLowerCase().includes("json")?r.requestBody:void 0,o=N(r);n.push({...r.tags.length>0?{group:r.tags[0]}:{},name:r.name,...r.summary!==void 0?{summary:r.summary}:{},method:r.method.toUpperCase(),path:r.path,positionals:r.pathParams.map(s=>({name:s.name,type:j(s).type,...s.description!==void 0?{description:s.description}:{}})),flags:r.queryParams.map(j),...a?{body:{required:a.required,...T(r,t,e.argsStyle)}}:{},...a===void 0&&r.requestBody!==void 0?{unsupportedBody:r.requestBody.contentType}:{},...e.pagination?.has(r.name)===!0?{paginated:!0}:{},...D(r,t,e.argsStyle),...r.sse!==void 0?{sse:!0}:{},...F(r)?{blob:!0}:{},...a!==void 0||o!==void 0?{schemas:{...a?{request:a.schema}:{},...o!==void 0?{response:o}:{}}}:{}})}return n}var U=`function isProcessEntry(): boolean {
11
- if (process.argv[1] === undefined) return false;
12
- try {
13
- return realpathSync(fileURLToPath(import.meta.url)) === realpathSync(process.argv[1]);
14
- } catch {
15
- return false;
16
- }
17
- }
18
- if (isProcessEntry()) {
19
- process.exit(await run());
20
- }`;function u(t,e){return JSON.stringify(t,null,e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function f(t){return t.securitySchemes.map(e=>({key:e.key,kind:e.kind==="bearer"||e.kind==="basic"?e.kind:"apiKey"}))}function _(t){return t.group===void 0?`${t.name} (keeps the bare word, so the "${t.name}" group has no help page)`:`${t.name} (run it as "${l(t.group)} ${t.name}")`}function B(t){let e=new Set(t.filter(i=>i.group).map(i=>l(i.group))),n=t.filter(i=>e.has(i.name));n.length!==0&&h.warn(`generate-client: cli reads a leading group name as the group, so ${n.length} operation(s) named after a tag resolve unusually \u2014 rename the operation or the tag: ${n.map(_).join(", ")}.
21
- `)}function M(t,e){let n=p(t,{pagination:e.pagination,argsStyle:e.argsStyle});B(n);let i=f(t),r=`./${e.stem}.${e.importExt}`,a=["client","configure",...e.zodSelected?["use"]:[]];return["#!/usr/bin/env node",E,`import { readFileSync, realpathSync, writeFileSync } from "node:fs";
22
- import { fileURLToPath } from "node:url";`,[`import { ${a.join(", ")} } from "${r}";`,...e.zodSelected?[`import { zodValidation } from "./${e.stem}.zod.${e.importExt}";`]:[]].join(`
23
- `),e.runtime==="module"?`import { invokedName, runCli, type CliCommand, type CliWiring } from "./runtime/cli.${e.importExt}";`:`// \u2500\u2500\u2500 Embedded cli engine (@redocly/client-generator) \u2500\u2500\u2500
24
- `+w(),`export const COMMANDS: CliCommand[] = ${u(n,2)};`,...e.zodSelected?['use(zodValidation(process.argv.includes("--dry-run") ? { response: false } : {}));']:[],`export const wiring: CliWiring = {
25
- name: invokedName(process.argv[1], ${u(e.stem)}),
26
- envPrefix: ${u(c(e.stem))},
27
- client,
28
- ${e.argsStyle==="flat"?` argsStyle: "flat",
29
- `:""} configure,
30
- schemes: ${u(i)},
31
- env: process.env,
32
- stdin: () => readFileSync(0, "utf-8"),
33
- readFile: (path: string) => readFileSync(path, "utf-8"),
34
- writeFile: (path: string, data: Uint8Array) => writeFileSync(path, data),
35
- stdout: (line: string) => console.log(line),
36
- stderr: (line: string) => console.error(line),
37
- };
38
-
39
- /** Run this CLI programmatically; defaults to the process argv. */
40
- export const run = (argv: string[] = process.argv.slice(2)): Promise<number> =>
41
- runCli(COMMANDS, wiring, argv);
42
-
43
- // Re-exported so a composed entry can run these commands without its own runtime copy.
44
- export { runCli };
45
-
46
- // Self-execute only as the process entry, so importing this module is side-effect-safe:
47
- // composed binaries and login-style wrappers import COMMANDS/wiring/run instead of
48
- // editing this generated file.
49
- ${U}`].join(`
50
-
51
- `)+`
52
- `}var ne=({model:t,output:e,banner:n,emit:i,selected:r,pagination:a})=>{let o=M(t,{stem:e.stem,importExt:i.importExt??"js",zodSelected:r?.includes("zod")??!1,pagination:a,argsStyle:i.argsStyle??"grouped",runtime:i.runtime??"inline"}),s={path:y(e.dir,`${e.stem}.cli.ts`),content:o};if(i.runtime!=="module")return[s];let d=n.map(O=>`// ${O}`).join(`
53
- `);return[s,{path:y(e.dir,"runtime","cli.ts"),content:`${d}
54
-
55
- ${x().trim()}
56
- `}]},te=({model:t,output:e,emit:n,pagination:i})=>{let r=v(p(t,{pagination:i}),{title:`${t.title} command-line reference`,frontmatter:n.docsFrontmatter===!0,name:e.stem,schemes:f(t)});return[{path:y(e.dir,`${e.stem}.cli.md`),content:r}]};function re(t,e){let n=p(e.model,{pagination:e.pagination}).find(r=>r.name===t.name);return n===void 0?void 0:{lang:"shell",label:"CLI",source:`npx tsx client.cli.ts ${["client",...n.group?[l(n.group)]:[],n.name,...n.positionals.map(r=>`<${r.name}>`),...n.flags.filter(r=>r.required).map(r=>`--${r.name} <${r.type}>`),...n.body?["--json '<json>'"]:[]].slice(1).join(" ")}
57
- `}}export{te as cliDocs,ne as cliGenerator,re as cliSample};
@@ -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 y,k as A}from"./NB54XRRU.js";import"./HJYFWIVE.js";import"./RFWIIJFG.js";import{join as R}from"node:path";var u=" ";function M(t){return`transform${A(t)}`}var I="type __Writable<T> = { -readonly [K in keyof T]: T[K] };",k=!1;function _(t){return{text:t,path:[t]}}function G(t,r){return{text:`${t.text}[${JSON.stringify(r)}]`,path:[...t.path,r]}}function d(t,r,n){if(x(t))return!0;switch(t.kind){case"array":return d(t.items,r,n);case"union":return t.members.some(e=>d(e,r,n));case"ref":{if(n.has(t.name))return!1;let e=r.get(t.name);return e!==void 0&&d(e,r,new Set(n).add(t.name))}default:return!1}}function x(t){return t.kind==="scalar"&&t.scalar==="string"&&(t.metadata?.format==="date-time"||t.metadata?.format==="date")}function l(t,r,n){if(x(t))return!0;switch(t.kind){case"array":return l(t.items,r,n);case"record":return l(t.value,r,n);case"object":return t.properties.some(e=>l(e.schema,r,n));case"union":case"intersection":return t.members.some(e=>l(e,r,n));case"ref":{let e=r.get(t.name);return e!==void 0&&!n.has(t.name)?l(e,r,new Set(n).add(t.name)):!1}default:return!1}}function $(t,r,n,e=!1){return e?[`${n}if (${t}) {`,...r(n+u),`${n}}`]:[`${n}if (${t})`,...r(n+u)]}function m(t,r,n=!1){let e=n?J(t):t.text;return s=>[`${s}${e} = ${r};`]}function T(t){return r=>[`${r}${t};`]}function J(t){if(t.path.length<2)return t.text;k=!0;let r={text:t.text.slice(0,t.text.lastIndexOf("[")),path:t.path.slice(0,-1)},n=t.path[t.path.length-1];return`(${r.text} as __Writable<${C(r)}>)[${JSON.stringify(n)}]`}function C(t){let r=`typeof ${t.path[0]}`;for(let n of t.path.slice(1))r=`NonNullable<${r}>[${JSON.stringify(n)}]`;return`NonNullable<${r}>`}function W(t){return t==="data"?"item":`item${Number(t.slice(4))+1}`}function g(t,r,n,e,s,o,a=!1){if(x(r))return $(`typeof ${t.text} === "string"`,m(t,`new Date(${t.text})`,a),o);switch(r.kind){case"ref":return w(t,r.name,n,e,o,a);case"object":{let i=[];for(let f of r.properties)i.push(...K(G(t,f.name),f.schema,n,e,s,o,f.readOnly===!0));return i}case"array":return U(t,r.items,n,e,s,o,a);case"record":return b(t,r.value,n,e,s,o,!0);case"intersection":{let i=[];for(let f of r.members)i.push(...g(t,f,n,e,s,o,a));return i}case"union":return B(t,r.members,n,e,s,o,a);default:return[]}}function B(t,r,n,e,s,o,a=!1){let i=[],f=o+u,p=[];for(let c of r)if(x(c))i.push(...g(t,c,n,e,s,o,a));else if(c.kind==="ref"){if(!l(c,n,e))continue;let S=`${M(c.name)}(${t.text} as ${c.name})`,h=d(c,n,e)?m(t,S,a):T(S);p.push(...h(f))}else p.push(...g(t,c,n,e,s,f,a));return p.length>0&&i.push(...$(`${t.text} && typeof ${t.text} === "object"`,()=>p,o,!0)),i}function w(t,r,n,e,s,o=!1){let a={kind:"ref",name:r};if(!l(a,n,e))return[];let i=`${M(r)}(${t.text})`;return $(t.text,d(a,n,e)?m(t,i,o):T(i),s)}function K(t,r,n,e,s,o,a=!1){if(r.kind==="ref")return w(t,r.name,n,e,o,a);if(r.kind==="object"){let i=g(t,r,n,e,s,o+u);return i.length===0?[]:$(t.text,()=>i,o,!0)}return g(t,r,n,e,s,o,a)}function j(t,r,n,e,s=0){if(x(r))return`new Date(${t})`;if(r.kind==="ref"&&d(r,n,e))return`${M(r.name)}(${t})`;if(r.kind==="array"){let o=r.items.kind==="array"?O(s+1):"v",a=j(o,r.items,n,e,s+1);return a===null?null:`${t}.map(${o} => ${a})`}return null}function O(t){return t<=1?"row":`row${t}`}function U(t,r,n,e,s,o,a=!1){let i=r.kind==="array"?O(1):"v",f=j(i,r,n,e,1);return f!==null?$(`Array.isArray(${t.text})`,m(t,`${t.text}.map(${i} => ${f})`,a),o):r.kind==="ref"?l(r,n,e)?$(`Array.isArray(${t.text})`,T(`${t.text}.forEach(${M(r.name)})`),o):[]:b(t,r,n,e,s,o,!1)}function b(t,r,n,e,s,o,a){if(a){let c={text:`${t.text}[__k]`,path:[...t.path,"__k"]},S=j(c.text,r,n,e);if(S!==null){let h=x(r)?`typeof ${c.text} === "string"`:`Array.isArray(${c.text})`;return $(t.text,v=>[`${v}for (const __k of Object.keys(${t.text}))`,...$(h,E=>[`${E}${c.text} = ${S};`],v+u)],o)}}let i=W(s),f=g(_(i),r,n,e,i,o+u+u);if(f.length===0)return[];let p=a?`Object.values(${t.text})`:t.text;return $(a?t.text:`Array.isArray(${t.text})`,c=>[`${c}${p}.forEach(${i} => {`,...f,`${c}});`],o)}function P(t,r){let n=t.name,e=_("data"),s=t.schema.kind==="ref"?w(e,t.schema.name,r,new Set,u):g(e,t.schema,r,new Set,"data",u);return[`export const ${M(t.name)} = (data: ${n}): ${n} => {`,...s,`${u}return data;`,"};"].join(`
8
- `)}function D(t,r){let n=new Map(t.schemas.map(i=>[i.name,i.schema])),e=t.schemas.filter(i=>l(i.schema,n,new Set));if(e.length===0)return"";let s=e.map(i=>y(i.name)).join(", ");k=!1;let o=e.map(i=>P(i,n));return[`import type { ${s} } from ${JSON.stringify(r.sdkModule)};`,...k?[I]:[],...o].join(`
9
-
10
- `)}var Q=({model:t,output:r,banner:n,emit:e})=>{let s=D(t,{sdkModule:`./${r.stem}.${e.importExt??"js"}`});if(s==="")return[];let o=n.map(a=>`// ${a}`).join(`
11
- `);return[{path:R(r.dir,`${r.stem}.transformers.ts`),content:`${o}
12
-
13
- ${s}`}]};export{Q as transformersGenerator};
@@ -1,42 +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 k,b as d,c as g,d as f}from"./NYFYWKQQ.js";import"./VZCENZBY.js";import"./TVJE32GA.js";import"./LWB43R4X.js";import"./PFYPTG4G.js";import"./OZMIIHFH.js";import"./NEWT5A6S.js";import{b as p,d as O,e as u}from"./NB54XRRU.js";import{m as P}from"./HJYFWIVE.js";import"./RFWIIJFG.js";import{join as R}from"node:path";function x(e,t){let n=k(e,"tanstack-query");if(n.length===0)return"";let r=t.pagination??new Map;return[b(n,t,r),...n.filter(d).map(s=>K(s,t.queryKeyPrefix)),j(e,n,r,t.queryKeyPrefix,t.argsStyle),...N(n,r)].join(`
8
- `)}function h(e,t){if(!d(e))return!1;let n=t.get(e.name);return n!==void 0&&n.spec.style!=="link"}function b(e,t,n){let r=[...e.some(a=>h(a,n))?["infiniteQueryOptions"]:[],...e.some(d)?["queryOptions"]:[]],i=[...e.filter(g).map(f),"RequestOptions"].sort().map(a=>`type ${a}`),s=[];return r.length>0&&s.push(`import { ${r.join(", ")} } from "@tanstack/${t.framework}-query";`),s.push(`import { client, ${i.join(", ")} } from "${t.sdkModule}";`),s.join(`
9
- `)}function K(e,t){let n=A(e,t);return g(e)?`export const ${e.name}QueryKey = (vars?: ${f(e)}) =>
10
- vars === undefined ? ([${n}] as const) : ([${n}, vars] as const);`:`export const ${e.name}QueryKey = () => [${n}] as const;`}function A(e,t){return t===void 0?`"${e.name}"`:`${O(t)}, "${e.name}"`}function j(e,t,n,r,i){return`/**
11
- * Build the factories over a specific client instance \u2014 its config, middleware, and
12
- * retry apply to every call (\`createQueryFactories(createClient(OPERATIONS, config))\`).
13
- * The module-level exports below are these factories bound to the generated module's default \`client\`.
14
- */
15
- export const createQueryFactories = (instance: typeof client = client) => ({
16
- `+t.flatMap(a=>{if(!d(a))return[T(a,r)];let o=n.get(a.name);return o!==void 0&&o.spec.style!=="link"?[v(a),Q(e,a,o.spec,i)]:[v(a)]}).join(`,
17
- `)+`
18
- });`}function v(e){let{params:t,keyArg:n,callArgs:r}=q(e);return` ${e.name}Options: (${t}) => queryOptions({
19
- queryKey: ${e.name}QueryKey(${n}),
20
- queryFn: ({ signal }) => instance.${e.name}(${r}, { ...init, signal, envelope: undefined }),
21
- })`}function T(e,t){let n=g(e)?`(vars: ${f(e)}) => instance.${e.name}(vars, { ...init, envelope: undefined })`:`() => instance.${e.name}({}, { ...init, envelope: undefined })`;return` ${e.name}Mutation: (${M}) => ({
22
- mutationKey: [${A(e,t)}] as const,
23
- mutationFn: ${n},
24
- })`}function Q(e,t,n,r){let{params:i,keyArg:s}=q(t),a=u(n.param),o=r==="flat"?`{ ...vars, ${a}: pageParam }`:`{ ...vars, query: { ...vars.query, ${a}: pageParam } }`;return` ${t.name}InfiniteOptions: (${i}) => infiniteQueryOptions({
25
- queryKey: [...${t.name}QueryKey(${s}), "infinite"] as const,
26
- queryFn: ({ pageParam, signal }) => instance.${t.name}(${o}, { ...init, signal, envelope: undefined }),
27
- `+F(e,t,n,r)+" })"}function F(e,t,n,r){let i=w(n.param),s=r==="flat"?C("vars",n.param):`vars.query?.${i}`;if(n.style==="cursor"){let l=n.hasMore===void 0?"":` if (lastPage${y(n.hasMore)} === false) return undefined;
28
- `,m=I(e,t,n.nextCursor),$=m.length===0?` return lastPage${y(n.nextCursor)};
29
- `:` const next = lastPage${y(n.nextCursor)};
30
- return ${m.join(" || ")} ? undefined : next;
31
- `;return` initialPageParam: ${s},
32
- getNextPageParam: (lastPage) => {
33
- `+l+$+` },
34
- `}let a=n.style==="offset"?"lastPageParam + count":"lastPageParam + 1",o=n.style==="offset"?"0":"1";return` initialPageParam: ${s} ?? ${o},
35
- getNextPageParam: (lastPage, _allPages, lastPageParam) => {
36
- const count = ${E(n.items)};
37
- return count === 0 ? undefined : ${a};
38
- },
39
- `}function I(e,t,n){let r=t.successResponses.find(c=>c.contentType.toLowerCase().includes("json")),i=P(r.schema,"",e),s=P(r.schema,n,e),a=n.slice(1).split("/"),o=a.length>1;if(!o&&i?.kind==="object"){let c=i.properties.find(S=>S.name===a[0]);o=c===void 0||!c.required}let l=s?.kind==="union"?s.members:s?[s]:[],m=l.some(c=>c.kind==="null"),$=l.some(c=>c.kind==="scalar"&&c.scalar==="string");return[...o?["next === undefined"]:[],...m?["next === null"]:[],...$?['next === ""']:[]]}var M='init?: Omit<RequestOptions, "envelope">';function q(e){return g(e)?{params:`vars: ${f(e)}, ${M}`,keyArg:"vars",callArgs:"vars"}:{params:M,keyArg:"",callArgs:"{}"}}function w(e){return p(e)?e:`[${u(e)}]`}function C(e,t){return p(t)?`${e}.${t}`:`${e}[${u(t)}]`}function y(e){return e.slice(1).split("/").map(n=>n.replaceAll("~1","/").replaceAll("~0","~")).map((n,r)=>{let i=p(n);return r===0?i?`.${n}`:`[${u(n)}]`:i?`?.${n}`:`?.[${u(n)}]`}).join("")}function E(e){return e===""?"lastPage?.length ?? 0":`lastPage${y(e)}?.length ?? 0`}function N(e,t){return["const defaultFactories = createQueryFactories();",...e.flatMap(r=>d(r)?h(r,t)?[`${r.name}Options`,`${r.name}InfiniteOptions`]:[`${r.name}Options`]:[`${r.name}Mutation`]).map(r=>`export const ${r} = defaultFactories.${r};`)]}function z(e){return({model:t,output:n,banner:r,emit:i,pagination:s})=>{let a=x(t,{argsStyle:i.argsStyle??"grouped",sdkModule:`./${n.stem}.${i.importExt??"js"}`,framework:e,pagination:s,queryKeyPrefix:i.queryKeyPrefix});if(a==="")return[];let o=r.map(l=>`// ${l}`).join(`
40
- `);return[{path:R(n.dir,`${n.stem}.tanstack.ts`),content:`${o}
41
-
42
- ${a}`}]}}export{z as tanstackQueryGenerator};
@@ -1,10 +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 f}from"./HJYFWIVE.js";var o=/^[A-Za-z_$][A-Za-z0-9_$]*$/,u=f.typescript;function m(n){return o.test(n)}function I(n){return o.test(n)&&!u.has(n)}function c(n){let e=n.replace(/[^A-Za-z0-9_$]/g,"_");return(e===""||/^[0-9]/.test(e)||u.has(e))&&(e=`_${e}`),e}var p={"<":"\\u003C",">":"\\u003E","\u2028":"\\u2028","\u2029":"\\u2029"};function s(n){return JSON.stringify(n).replace(/[<>\u2028\u2029]/g,e=>p[e])}function E(n){return o.test(n)&&!u.has(n)?n:s(n)}function b(n,e){let i=c(n),t=i,r=2;for(;e.has(t);)t=`${i}_${r++}`;return e.add(t),t}var L=s;function g(n){if(typeof n=="string")return s(n);if(typeof n=="boolean"||n===null||typeof n=="number")return String(n);if(Array.isArray(n))return`[${n.map(g).join(", ")}]`;let e=Object.entries(n).map(([i,t])=>`${m(i)?i:s(i)}: ${g(t)}`);return e.length===0?"{}":`{ ${e.join(", ")} }`}function d(n){return n.replace(/\*\//g,"*\\/")}function M(n,e){let i=l(n,e);return i.length===0?void 0:i.join(`
8
- `)}function l(n,e){let i=[];return n&&n.trim()&&i.push(...x(S(n))),e&&i.push(...h(e)),i}function h(n){let e=[],i=(t,r)=>{r===void 0?e.push(`@${t}`):e.push(`@${t} ${r}`)};return n.minimum!==void 0&&i("minimum",n.minimum),n.maximum!==void 0&&i("maximum",n.maximum),n.exclusiveMinimum!==void 0&&i("exclusiveMinimum",n.exclusiveMinimum),n.exclusiveMaximum!==void 0&&i("exclusiveMaximum",n.exclusiveMaximum),n.minLength!==void 0&&i("minLength",n.minLength),n.maxLength!==void 0&&i("maxLength",n.maxLength),n.pattern!==void 0&&i("pattern",d(n.pattern)),n.minItems!==void 0&&i("minItems",n.minItems),n.maxItems!==void 0&&i("maxItems",n.maxItems),n.uniqueItems===!0&&i("uniqueItems"),n.format!==void 0&&i("format",n.format),n.deprecated===!0&&i("deprecated"),e}function x(n){let e=0,i=n.length;for(;e<i&&n[e]==="";)e++;for(;i>e&&n[i-1]==="";)i--;return n.slice(e,i)}function _(n){return n[0].toUpperCase()+n.slice(1)}function y(n){let e=n.split(/[-_]/).filter(i=>i.length>0).map((i,t)=>{let r=i.toLowerCase();return t===0?r:r.charAt(0).toUpperCase()+r.slice(1)}).join("");return c(e)}function S(n){return n.replace(/\r\n/g,`
9
- `).split(`
10
- `).map(e=>e.trimEnd())}export{m as a,I as b,c,s as d,E as e,b as f,L as g,g as h,d as i,M as j,_ as k,y as l,S as m};
@@ -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 g,c as f,d as i,e as c,l as o}from"./HJYFWIVE.js";var s=f.php,h=class extends g{constructor(){super(" ")}typeName(r){return i(r,{style:"pascal",reserved:s})}memberName(r){return i(r,{style:"camel",reserved:s})}identifier(r){return i(r,{style:"camel",reserved:s})}identifiers(r,t){return c(r,{style:"camel",reserved:s,taken:t})}string(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}literal(r){return r==null?"null":typeof r=="boolean"||typeof r=="number"?String(r):typeof r=="string"?this.string(r):Array.isArray(r)?`[${r.map(e=>this.literal(e)).join(", ")}]`:`[${Object.entries(r).map(([e,n])=>`${this.string(e)} => ${this.literal(n)}`).join(", ")}]`}comment(r){for(let t of o(r))this.line(t===""?"//":`// ${t}`);return this}doc(r,t,e=[]){let n=o(t);if(n.length===0&&e.length===0)return this;let l=n.length===0?r:`${r} \u2014 ${n.join(" ")}`;if(e.length===0)return this.line(`/** ${l} */`);this.line("/**"),this.line(` * ${l}`),this.line(" *");for(let m of e)this.line(` * ${m}`);return this.line(" */")}};export{h as a};
@@ -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
- import{a as i}from"./VZCENZBY.js";import{V as p}from"./OZMIIHFH.js";function h(t,o){let n=t.services.flatMap(e=>e.operations),r=n.filter(e=>e.sse!==void 0);r.length>0&&p.warn(`generate-client: ${o} skipped ${r.length} server-sent-events operation(s) \u2014 iterate the sdk's exported async generators directly: ${r.map(e=>e.name).join(", ")}.
8
- `);let s=new Set(t.schemas.map(e=>e.name)),a=n.filter(e=>e.sse===void 0&&l(e,s));return a.length>0&&p.warn(`generate-client: ${o} skipped ${a.length} operation(s) whose variables type name collides with a schema \u2014 rename the schema or the operation: ${a.map(e=>e.name).join(", ")}.
9
- `),n.filter(e=>e.sse===void 0&&!l(e,s))}function l(t,o){let n=i(t);return n.hasInputs&&o.has(n.variablesTypeName)}function g(t){return t.method==="get"||t.method==="head"}function m(t){return i(t).hasInputs}function u(t){return i(t).variablesTypeName}function O(t,o,n){let r=[];return i(t).hasInputs?r.push(o):n&&r.push("{}"),n&&r.push("{ ...init, envelope: undefined }"),`${t.name}(${r.join(", ")})`}function x(t,o,n){let r=t.map(e=>e.name).sort(),s=t.filter(m).map(u).sort();return n&&s.push("RequestOptions"),`import { ${[...r,...s.map(e=>`type ${e}`)].join(", ")} } from ${JSON.stringify(o)};`}export{h as a,g as b,m as c,u as d,O as e,x as f};