@redocly/cli 2.71.2 → 2.72.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.
- package/README.md +1 -1
- package/THIRD_PARTY_NOTICES +29 -7
- package/lib/chunks/{AZ5LIJEO.js → 2DXUH2SS.js} +1 -1
- package/lib/chunks/{UYZXI3NO.js → 2X2KHSF3.js} +1 -1
- package/lib/chunks/{BPJTNQBC.js → 42X6IAVM.js} +1 -1
- package/lib/chunks/44US4AGQ.js +13 -0
- package/lib/chunks/{R32HBYOH.js → 4AXMK6B2.js} +1 -1
- package/lib/chunks/4ZCKAKVF.js +199 -0
- package/lib/chunks/{N4GCIKY4.js → 5F7XFPS7.js} +1 -1
- package/lib/chunks/{YF4FMOTE.js → 6234PJEZ.js} +1 -1
- package/lib/chunks/{4H3DPQDW.js → 62SOICN7.js} +1 -1
- package/lib/chunks/{BOTTA3HA.js → 6JFL6L56.js} +1 -1
- package/lib/chunks/{NEWT5A6S.js → 6RTITFQA.js} +1 -1
- package/lib/chunks/{KJNBOXDI.js → 6XDKNFYM.js} +3 -3
- package/lib/chunks/{L325HIGK.js → 76AJ5P4Y.js} +1 -1
- package/lib/chunks/{JRVXIEVC.js → 7HTKK26B.js} +1 -1
- package/lib/chunks/{2TG3DP4I.js → A7XJ7Y3N.js} +1 -1
- package/lib/chunks/AB4FYNJN.js +22 -0
- package/lib/chunks/BJ6Z66KZ.js +7 -0
- package/lib/chunks/{XVS7B4RZ.js → BL2KWYMY.js} +1 -1
- package/lib/chunks/{BIS2ZFGS.js → BTLP7Z6A.js} +1 -1
- package/lib/chunks/{AXGFQS75.js → BXMYSHQY.js} +2 -2
- package/lib/chunks/{JOUEVI3E.js → BY22HEXP.js} +1 -1
- package/lib/chunks/D2BBHPMR.js +7 -0
- package/lib/chunks/{5CR6AOLY.js → D3C6XIMY.js} +3 -3
- package/lib/chunks/{DWXDCKZ7.js → DNDYWJHC.js} +1 -1
- package/lib/chunks/{ORWIUECT.js → E6QTRG6I.js} +1 -1
- package/lib/chunks/EHMG7I34.js +9 -0
- package/lib/chunks/{UTEOWLD5.js → EL6MGCYE.js} +1 -1
- package/lib/chunks/EVCSNWMN.js +7 -0
- package/lib/chunks/{KLGUZBJO.js → FJBULQ4P.js} +1 -1
- package/lib/chunks/{IQLQH23V.js → FLL7MTDS.js} +1 -1
- package/lib/chunks/{CRJEY7P3.js → FM7Y6KMP.js} +1 -1
- package/lib/chunks/{CR5TYFBN.js → FMMOQ6SE.js} +2 -2
- package/lib/chunks/{CZX7WE2R.js → FRC2YJS4.js} +1 -1
- package/lib/chunks/{W7TN2XCW.js → GHJGHHQP.js} +1 -1
- package/lib/chunks/{BH4FA7AH.js → GKPSJEG5.js} +1 -1
- package/lib/chunks/{UVKUPD4U.js → GMMFZFKJ.js} +1 -1
- package/lib/chunks/{MJ2NI6MR.js → GW4PLLFM.js} +1 -1
- package/lib/chunks/{5AVTCY6F.js → HIMEF7J2.js} +1 -1
- package/lib/chunks/{U4MI7HDM.js → HJ5KS42K.js} +1 -1
- package/lib/chunks/{DZT5NLUB.js → HXOTKK2E.js} +1 -1
- package/lib/chunks/{HP7UD4BA.js → IFGXTL5P.js} +1 -1
- package/lib/chunks/{XQEXWC5L.js → IHUHQ7PO.js} +1 -1
- package/lib/chunks/{3FR3456Q.js → IJYEZR53.js} +1 -1
- package/lib/chunks/{JO76DPXR.js → IKSSZYHA.js} +1 -1
- package/lib/chunks/{I4TK6NG7.js → IMNPDC6N.js} +1 -1
- package/lib/chunks/{7JS7JGWP.js → IO7M7MGV.js} +1 -1
- package/lib/chunks/{LY6BDOEF.js → J3TXBQDL.js} +1 -1
- package/lib/chunks/{HRZLSSOF.js → JZV7EL4R.js} +1 -1
- package/lib/chunks/{EHJ3FMW6.js → K6HV4EJS.js} +1 -1
- package/lib/chunks/{OFIQ2EST.js → KVXVR5Y4.js} +33 -33
- package/lib/chunks/{LKNL5LEV.js → L4HVZOFP.js} +1 -1
- package/lib/chunks/{Z6GFQV2Y.js → L5AG5NJZ.js} +1 -1
- package/lib/chunks/{ZXOX7NF2.js → LTJXST6M.js} +1 -1
- package/lib/chunks/MO6NEDYO.js +17 -0
- package/lib/chunks/{FDKY4PGX.js → NDECHUWV.js} +1 -1
- package/lib/chunks/{HMYFTLS7.js → NFGCHP5P.js} +1 -1
- package/lib/chunks/{GFSMOHUE.js → NNBSSORJ.js} +1 -1
- package/lib/chunks/{ADACRYTN.js → OLAN2CVV.js} +1 -1
- package/lib/chunks/{CER2D6ZD.js → OOKU5T7P.js} +7 -7
- package/lib/chunks/{U2F3JOT2.js → OQRUWVII.js} +1 -1
- package/lib/chunks/{WO6IIVA3.js → Q5WCA45H.js} +8 -8
- package/lib/chunks/{6X42UQ3O.js → QGKTPGO7.js} +1 -1
- package/lib/chunks/{DM4EUYBB.js → QQ2PGWE6.js} +2 -2
- package/lib/chunks/QYBWIG5Y.js +59 -0
- package/lib/chunks/{QTSECOQB.js → RC4LK3ZS.js} +2 -2
- package/lib/chunks/{NXREEI2S.js → RL2EIWFM.js} +1 -1
- package/lib/chunks/{4S6LRPCX.js → RQMFL6Q4.js} +1 -1
- package/lib/chunks/S3B562IT.js +7 -0
- package/lib/chunks/{P5T6BIKW.js → SPIFPTTE.js} +1 -1
- package/lib/chunks/SUQ7ZWYJ.js +7 -0
- package/lib/chunks/{VJZDR6KS.js → TFPMT2XD.js} +1529 -4
- package/lib/chunks/{FAFMGLT6.js → TVUYXOSQ.js} +1 -1
- package/lib/chunks/{T77BOGYV.js → UFDBFVRI.js} +1 -1
- package/lib/chunks/{HTFKP5HH.js → UH4Q6U6X.js} +1 -1
- package/lib/chunks/{LET2MPMU.js → UKVHQIBO.js} +1 -1
- package/lib/chunks/{SSEMMWPY.js → VF2YOZ3U.js} +1 -1
- package/lib/chunks/{5HPO77VR.js → VO775J6V.js} +2 -2
- package/lib/chunks/WKBXTA7Y.js +53 -0
- package/lib/chunks/{YWRFPTTI.js → WRGAJXOK.js} +1 -1
- package/lib/chunks/{3EQNI6CT.js → XKENZH7W.js} +1 -1
- package/lib/chunks/{QXXAC25O.js → YB52VXMW.js} +1 -1
- package/lib/chunks/{VPTYPV6P.js → ZSQF6YOF.js} +1 -1
- package/lib/chunks/{TH44RKLO.js → ZYHLWT2C.js} +1 -1
- package/lib/eject-assets/AGENTS.md +1 -1
- package/lib/eject-assets/generators/cli/docs.ts +1 -1
- package/lib/eject-assets/generators/cli/engine-source.ts +1 -1
- package/lib/eject-assets/generators/cli/index.ts +2 -2
- package/lib/eject-assets/generators/cli/render.ts +1 -1
- package/lib/eject-assets/generators/go/client.ts +1 -1
- package/lib/eject-assets/generators/go/descriptor.ts +1 -1
- package/lib/eject-assets/generators/go/index.ts +2 -2
- package/lib/eject-assets/generators/go/models.ts +1 -1
- package/lib/eject-assets/generators/go/naming.ts +1 -1
- package/lib/eject-assets/generators/go/operations.ts +1 -1
- package/lib/eject-assets/generators/go/pagination.ts +1 -1
- package/lib/eject-assets/generators/go/types.ts +1 -1
- package/lib/eject-assets/generators/java/client.ts +66 -0
- package/lib/eject-assets/generators/java/descriptor.ts +72 -0
- package/lib/eject-assets/generators/java/index.ts +245 -0
- package/lib/eject-assets/generators/java/models.ts +362 -0
- package/lib/eject-assets/generators/java/naming.ts +135 -0
- package/lib/eject-assets/generators/java/operations.ts +300 -0
- package/lib/eject-assets/generators/java/pagination.ts +94 -0
- package/lib/eject-assets/generators/java/types.ts +103 -0
- package/lib/eject-assets/generators/mock/faker.ts +1 -1
- package/lib/eject-assets/generators/mock/index.ts +2 -2
- package/lib/eject-assets/generators/mock/render.ts +1 -1
- package/lib/eject-assets/generators/mock/sample.ts +1 -1
- package/lib/eject-assets/generators/mock/values.ts +1 -1
- package/lib/eject-assets/generators/php/client.ts +1 -1
- package/lib/eject-assets/generators/php/descriptor.ts +1 -1
- package/lib/eject-assets/generators/php/index.ts +2 -2
- package/lib/eject-assets/generators/php/models.ts +1 -1
- package/lib/eject-assets/generators/php/naming.ts +1 -1
- package/lib/eject-assets/generators/php/operations.ts +1 -1
- package/lib/eject-assets/generators/php/pagination.ts +1 -1
- package/lib/eject-assets/generators/php/types.ts +1 -1
- package/lib/eject-assets/generators/python/client.ts +1 -1
- package/lib/eject-assets/generators/python/descriptor.ts +1 -1
- package/lib/eject-assets/generators/python/index.ts +2 -2
- package/lib/eject-assets/generators/python/models.ts +1 -1
- package/lib/eject-assets/generators/python/naming.ts +1 -1
- package/lib/eject-assets/generators/python/operations.ts +1 -1
- package/lib/eject-assets/generators/python/pagination.ts +1 -1
- package/lib/eject-assets/generators/python/types.ts +1 -1
- package/lib/eject-assets/generators/swr/index.ts +2 -2
- package/lib/eject-assets/generators/swr/render.ts +1 -1
- package/lib/eject-assets/generators/tanstack-query/index.ts +2 -2
- package/lib/eject-assets/generators/tanstack-query/render.ts +1 -1
- package/lib/eject-assets/generators/transformers/index.ts +2 -2
- package/lib/eject-assets/generators/transformers/render.ts +1 -1
- package/lib/eject-assets/generators/typescript/banner.ts +1 -1
- package/lib/eject-assets/generators/typescript/client.ts +1 -1
- package/lib/eject-assets/generators/typescript/descriptor.ts +1 -1
- package/lib/eject-assets/generators/typescript/index.ts +2 -2
- package/lib/eject-assets/generators/typescript/inline-runtime.ts +1 -1
- package/lib/eject-assets/generators/typescript/operation-signature.ts +1 -1
- package/lib/eject-assets/generators/typescript/operation-types.ts +1 -1
- package/lib/eject-assets/generators/typescript/operations.ts +1 -1
- package/lib/eject-assets/generators/typescript/response-headers.ts +1 -1
- package/lib/eject-assets/generators/typescript/type-guards.ts +1 -1
- package/lib/eject-assets/generators/typescript/types.ts +1 -1
- package/lib/eject-assets/generators/zod/index.ts +2 -2
- package/lib/eject-assets/generators/zod/schemas.ts +1 -1
- package/lib/eject-assets/skills/client-generators/SKILL.md +1 -1
- package/lib/eject-assets/skills/java-generator/SKILL.md +161 -0
- package/lib/index.js +91 -90
- package/lib/skills/redocly-cli/SKILL.md +3 -1
- package/package.json +1 -1
- package/lib/chunks/2ZEKFWJQ.js +0 -13
- package/lib/chunks/3VOQMXIZ.js +0 -7
- package/lib/chunks/7GADNOVY.js +0 -9
- package/lib/chunks/FRQHCFKP.js +0 -199
- package/lib/chunks/J2EPFEBO.js +0 -17
- package/lib/chunks/JZATGVUO.js +0 -53
- package/lib/chunks/KNMNSDHR.js +0 -7
- package/lib/chunks/U5DIFWGH.js +0 -7
|
@@ -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{
|
|
7
|
+
import{d as W}from"./TFPMT2XD.js";import{b as R,c as L,d as z,e as U,f as J,g as ce,h as Q,i as le,j as de}from"./QQ2PGWE6.js";import{a as se,c as B,d as N,e as A,g as G,h as F,i as oe,j as re,k as ae,l as V,n as ie}from"./D3C6XIMY.js";var C=B.python,D=class extends se{constructor(){super(" ")}typeName(n){return N(n,{style:"pascal",reserved:C})}memberName(n){let t=N(n,{style:"snake",reserved:C});return{identifier:t,renamed:t!==n}}identifier(n){return N(n,{style:"snake",reserved:C})}identifiers(n,t){return A(n,{style:"snake",reserved:C,taken:t})}constName(n){return N(n,{style:"screaming",reserved:C})}string(n){let t='"';for(let s of n){let r=s.codePointAt(0);s==="\\"?t+="\\\\":s==='"'?t+='\\"':s===`
|
|
8
8
|
`?t+="\\n":s==="\r"?t+="\\r":s===" "?t+="\\t":r<32||r===127?t+=`\\x${r.toString(16).padStart(2,"0")}`:r>=55296&&r<=57343?t+=`\\u${r.toString(16).padStart(4,"0")}`:t+=s}return t+'"'}literal(n){return n==null?"None":n===!0?"True":n===!1?"False":typeof n=="number"?String(n):typeof n=="string"?this.string(n):Array.isArray(n)?`[${n.map(s=>this.literal(s)).join(", ")}]`:`{${Object.entries(n).map(([s,r])=>`${this.string(s)}: ${this.literal(r)}`).join(", ")}}`}comment(n){for(let t of V(n))this.line(t===""?"#":`# ${t}`);return this}doc(n){let t=V(n);if(t.length===0)return this;if(t.length===1)return this.line(`"""${t[0]}"""`);this.line(`"""${t[0]}`);for(let s of t.slice(1))this.line(s);return this.line('"""')}};var x=B.python,m=new D;function v(e){return m.typeName(e)}function E(e){let{identifier:n,renamed:t}=m.memberName(e);return{python:n,renamed:t}}function q(e){let n=e.services.flatMap(s=>s.operations),t=A(n.map(s=>s.name),{style:"snake",reserved:x});return n.map((s,r)=>({op:s,ident:t[r]}))}var H=["self","body","headers","timeout","retry","idempotency_key"];function fe(e){return m.literal(e)}function pe(e){if(e!==void 0)return{style:e.style,...e.param!==void 0?{param:e.param}:{},...e.nextCursor!==void 0?{next_cursor:e.nextCursor}:{},...e.hasMore!==void 0?{has_more:e.hasMore}:{},...e.nextLink!==void 0?{next_link:e.nextLink}:{},...e.limitParam!==void 0?{limit_param:e.limitParam}:{},...e.items!==void 0?{items:e.items}:{}}}function me(e,n){let t=new Set;return`[${(e.successResponseHeaders??[]).map(r=>{let a=N(r.name,{style:"snake",reserved:x}),i=a,c=2;for(;t.has(i);)i=`${a}_${c++}`;t.add(i);let f=ie(r.schema,n);return`(${m.string(r.name)}, ${m.string(i)}, ${m.string(f)})`}).join(", ")}]`}function y(e,n="string"){if(oe(e))return`Optional[${y(re(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 v(e.name);case"literal":return`Literal[${m.literal(e.value)}]`;case"enum":return{string:"str",integer:"int",number:"float",boolean:"bool"}[e.scalar];case"union":return`Union[${e.members.map(t=>y(t,n)).join(", ")}]`;case"null":return"None";case"omit":return v(e.base);case"object":case"intersection":case"unknown":return"Any"}}function X(e,n,t,s,r,a,i,c=!1){let f=A([...n.pathParams,...n.queryParams].map(O=>O.name),{style:"snake",reserved:x,taken:H}),l=n.pathParams.map((O,w)=>({param:O,python:f[w]})),o=n.queryParams.map((O,w)=>({param:O,python:f[n.pathParams.length+w]})),u=l.map(({param:O,python:w})=>`${w}: ${y(O.schema,a)}`),p=U(n)||n.requestBody!==void 0&&J(n.requestBody.contentType),h=n.requestBody?[`body: ${p?"Any":y(n.requestBody.schema,a)}`]:[],b=[...o.map(({param:O,python:w})=>{let j=y(O.schema,a),M=j.startsWith("Optional[")?j:`Optional[${j}]`;return`${w}: ${M} = None`}),"headers: Optional[Dict[str, str]] = None","timeout: Optional[float] = None","retry: Optional[Dict[str, Any]] = None","idempotency_key: Any = None"],_=R(n),k=L(n),S=c?`Envelope[${_===void 0?"None":y(_,a)}]`:k!==void 0?`${r?"AsyncIterator":"Iterator"}[ServerSentEvent]`:s==="result"?`Result[${_===void 0?"None":y(_,a)}, Any]`:_===void 0?"None":y(_,a),d=r&&k===void 0?"async def":"def",$=r?"await ":"",g=r?"send_async":"send",P=["self",...u,...h,"*",...b].join(", "),K=c?`${t}_with_headers`:t;e.block(`${d} ${K}(${P}) -> ${S}:`,()=>{e.doc(c?`Like ${t}(), returning an Envelope with the declared response headers.`:n.summary),e.line(`op = _OPERATIONS["${t}"]`),e.line('auth_headers, auth_query = resolve_auth(op.get("security") or [], self._auth)'),e.line("params: Dict[str, Any] = dict(auth_query)");for(let{param:I,python:T}of o)e.block(`if ${T} is not None:`,()=>{e.line(`params[${m.string(I.name)}] = encode(${T})`)});let O=l.map(({param:I,python:T})=>`${m.string(I.name)}: ${T}`).join(", ");if(e.line(`url = build_url(self._server_url, op["path"], {${O}})`),k!==void 0){let I=k.schema!==void 0&&k.schema.kind!=="unknown"?"json":"text";e.block("def _open(extra_headers: Dict[str, str]) -> Any:",()=>{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="${I}")`);return}z(n)&&!U(n)&&e.line("form_data, form_files = to_multipart(body)");let w=n.requestBody?U(n)?", **multipart_arguments(body)":z(n)?", data=form_data, files=form_files":J(n.requestBody.contentType)?`, content=body, content_type=${m.string(n.requestBody.contentType)}`:", json_body=encode(body)":"";e.line(`response = ${$}${g}(self._http, self._config, op, url, method=op["method"], headers={**auth_headers, **(headers or {})}, params=params${w}, timeout=timeout, retry=retry, idempotency_key=idempotency_key)`);let j=_===void 0?void 0:y(_,a),M=j===void 0?"None":`cast(${j}, decode(${j}, _safe_json(response)))`;c?(e.block("if not response.is_success:",()=>{e.line("raise ApiError(url, response.status_code, response.reason_phrase, _safe_json(response))")}),e.line(`return Envelope(data=${M}, headers=read_envelope_headers(response, ${me(n,i)}), response=response)`)):s==="result"?(e.block("if not response.is_success:",()=>{e.line("return Result(data=None, error=_safe_json(response), response=response)")}),e.line(`return Result(data=${M}, error=None, response=response)`)):(e.block("if not response.is_success:",()=>{e.line("raise ApiError(url, response.status_code, response.reason_phrase, _safe_json(response))")}),e.line(_===void 0?"return None":`return ${M}`))}),e.blank()}function ue(e,n,t,s,r,a){let i=R(n),c=i===void 0?"Any":y(i,a),f=A([...n.pathParams,...n.queryParams].map(d=>d.name),{style:"snake",reserved:x,taken:H}),l=n.pathParams.map((d,$)=>({param:d,python:f[$]})),o=n.queryParams.map((d,$)=>({param:d,python:f[n.pathParams.length+$]})),u=l.map(({param:d,python:$})=>`${$}: ${y(d.schema,a)}`),p=[...o.map(({param:d,python:$})=>{let g=y(d.schema,a),P=g.startsWith("Optional[")?g:`Optional[${g}]`;return`${$}: ${P} = None`}),"headers: Optional[Dict[str, str]] = None","timeout: Optional[float] = None","retry: Optional[Dict[str, Any]] = None"],h=["self",...u,"*",...p].join(", "),b=s?"AsyncIterator":"Iterator",_=s?"aiter_pages":"iter_pages",k=s?"aiter_items":"iter_items",S=()=>{e.line("base: Dict[str, Any] = {}");for(let{param:g,python:P}of o)e.block(`if ${P} is not None:`,()=>{e.line(`base[${m.string(g.name)}] = encode(${P})`)});let d=s?"async def":"def",$=s?"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 g=l.map(({param:P,python:K})=>`${m.string(P.name)}: ${K}`).join(", ");e.line(`url = build_url(self._server_url, op["path"], {${g}})`),e.line(`response = ${$}${s?"send_async":"send"}(self._http, self._config, op, url, method=op["method"], headers={**auth_headers, **(headers or {})}, params={**page_params, **auth_query}, timeout=timeout, retry=retry)`),e.block("if not response.is_success:",()=>{e.line("raise ApiError(url, response.status_code, response.reason_phrase, _safe_json(response))")}),e.line("return _safe_json(response), response")})};s?(e.block(`async def ${t}_pages(${h}) -> ${b}[${c}]:`,()=>{e.line(`op = _OPERATIONS["${t}"]`),S(),e.block(`async for page in ${_}(_page, op["pagination"], base):`,()=>{e.line(c==="Any"?"yield page":`yield decode(${c}, page)`)})}),e.blank(),e.block(`async def ${t}_items(${h}) -> ${b}[${r}]:`,()=>{e.line(`op = _OPERATIONS["${t}"]`),S(),e.block(`async for item in ${k}(_page, op["pagination"], base):`,()=>{e.line(r==="Any"?"yield item":`yield decode(${r}, item)`)})})):(e.block(`def ${t}_pages(${h}) -> ${b}[${c}]:`,()=>{e.line(`op = _OPERATIONS["${t}"]`),S(),e.line(c==="Any"?`return ${_}(_page, op["pagination"], base)`:`return (decode(${c}, page) for page in ${_}(_page, op["pagination"], base))`)}),e.blank(),e.block(`def ${t}_items(${h}) -> ${b}[${r}]:`,()=>{e.line(`op = _OPERATIONS["${t}"]`),S(),e.line(r==="Any"?`return ${k}(_page, op["pagination"], base)`:`return (decode(${r}, item) for item in ${k}(_page, op["pagination"], base))`)})),e.blank()}function $e(e){return ce(e).map(t=>t.kind==="literal"?m.string(t.value):E(t.name).python).join(" + ")}function ye(e,n){let t=n.servers??[];if(t.length===0)return;let s=new Set;e.block("class Servers:",()=>{e.line('"""The declared servers; variables default to the values from the description."""'),e.blank(),t.forEach((r,a)=>{let i=N(r.description??`server${a+1}`,{style:"snake",reserved:x});s.has(i)&&(i=`${i}_${a+1}`),s.add(i);let c=r.variables.map(f=>`${E(f.name).python}: str = ${m.string(f.default)}`);a>0&&e.blank(),e.line("@staticmethod"),e.block(`def ${i}(${c.join(", ")}) -> str:`,()=>{e.line(`return ${$e(r)}`)})})}),e.blank()}function Z(e,n,t,s,r,a,i){let c=s?"AsyncClient":"Client",f=s?"httpx.AsyncClient":"httpx.Client";e.block(`class ${c}:`,()=>{e.doc(`${s?"Async ":""}client for ${n.title} (${n.version}).`),e.block(`def __init__(self, server_url: str = ${m.string(a)}, *, auth: Optional[Dict[str, Any]] = None, headers: Optional[Dict[str, str]] = None, timeout: Optional[float] = None, retry: Optional[Dict[str, Any]] = None, middleware: Optional[List[Any]] = None, idempotency_key: Any = None, http_client: Optional[${f}] = 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 ${f}()`)}),e.blank();for(let{op:l,ident:o}of q(n)){X(e,l,o,t,s,i),L(l)===void 0&&(l.successResponseHeaders?.length??0)>0&&X(e,l,o,t,s,i,n,!0);let u=r.get(o);if(u!==void 0){let p=R(l),h=le(p,typeof u.items=="string"?u.items:void 0,n);ue(e,l,o,s,h===void 0?"Any":y(h,i),i)}}}),e.blank()}function ee(e){let n=new Map,t=new Set,s=[];for(let{name:a,schema:i}of e.schemas){let c=F(i,e);if(!(c===void 0||!c.cases.every(l=>G(l.schema,e)?.properties.some(o=>o.name===c.property)===!0))){for(let l of c.cases){let o=n.get(l.schemaName);if(o!==void 0&&o.value!==l.value){t.add(l.schemaName);continue}n.set(l.schemaName,{property:c.property,value:l.value})}s.push({name:a,property:c.property,members:c.cases.map(l=>l.schemaName)})}}let r=new Map;for(let a of s)a.members.some(i=>t.has(i))||r.set(a.name,E(a.property).python);for(let a of t)n.delete(a);return{pins:n,unions:r}}function _e(e,n,t,s,r,a,i){let c=t.map(o=>o.writeOnly?{...o,required:!1}:o),f=r==="pydantic";f||e.line("@dataclass");let l=f?`class ${v(n)}(BaseModel):`:`class ${v(n)}:`;e.block(l,()=>{e.doc(a),f&&(e.line("model_config = ConfigDict(populate_by_name=True)"),e.blank());let o=[...c.filter(p=>p.required),...c.filter(p=>!p.required)],u=[];o.length===0&&e.line("pass");for(let p of o){let{python:h,renamed:b}=E(p.name);b&&!f&&u.push([h,p.name]);let _=b&&f?`alias=${m.string(p.name)}`:void 0,k=i?.property===p.name?`Literal[${m.literal(i.value)}]`:y(p.schema,s);if(p.required){let S=_===void 0?"":` = Field(${_})`;e.line(`${h}: ${k}${S}`)}else{let S=k.startsWith("Optional[")?k:`Optional[${k}]`,d=_===void 0?"None":`Field(default=None, ${_})`;e.line(`${h}: ${S} = ${d}`)}}if(u.length>0){e.blank(),e.line("# Python field name -> wire (JSON) name, for (de)serialization.");let p=u.map(([h,b])=>`"${h}": ${m.string(b)}`).join(", ");e.line(`_field_map: ClassVar[Dict[str, str]] = {${p}}`)}}),e.blank(),e.blank()}function ne(e,n="string",t="dataclass"){let s=new D,{pins:r,unions:a}=t==="pydantic"?ee(e):{pins:new Map,unions:new Map};s.line("from __future__ import annotations"),s.blank(),t==="dataclass"&&s.line("from dataclasses import dataclass"),s.line("from enum import Enum");let i=["Any","AsyncIterator","Dict","Iterator","List","Literal","Optional","Tuple","Union","cast"];t==="dataclass"&&i.splice(2,0,"ClassVar"),a.size>0&&i.unshift("Annotated"),s.line(`from typing import ${i.join(", ")}`),t==="pydantic"&&s.line("from pydantic import BaseModel, ConfigDict, Field"),n==="Date"&&s.line("from datetime import date, datetime"),s.blank(),s.blank();let c=new Map;for(let{name:f,schema:l}of e.schemas){let o=ae(l);if(o!==void 0){let u=o.scalar==="string"?"str, Enum":"int, Enum";s.block(`class ${v(f)}(${u}):`,()=>{s.doc(l.description),o.values.forEach((p,h)=>{s.line(`${o.memberNames[h]} = ${m.literal(p)}`)})}),s.blank(),s.blank();continue}if(l.kind==="object"||l.kind==="intersection"){let u=G(l,e);if(u!==void 0){_e(s,f,u.properties,n,t,u.description??l.description,r.get(f));continue}}c.set(f,l)}for(let[f,l]of ge(c)){let o=F(l,e);if(o!==void 0){let h=o.cases.map(b=>`${b.value} -> ${v(b.schemaName)}`).join(", ");s.line(`# Discriminated by "${o.property}": ${h}`)}let u=a.get(f),p=u===void 0?y(l,n):`Annotated[${y(l,n)}, Field(discriminator=${m.string(u)})]`;s.line(`${v(f)} = ${p}`),s.blank()}return s.toString()}function ge(e){let n=[],t=new Set,s=r=>{let a=e.get(r);if(!(a===void 0||t.has(r))){t.add(r);for(let i of Y(a))s(i);n.push([r,a])}};for(let r of e.keys())s(r);return n}function Y(e){return e.kind==="ref"?[e.name]:e.kind==="array"?Y(e.items):e.kind==="record"?Y(e.value):e.kind==="union"?e.members.flatMap(Y):[]}function he(e,n){let t=[];for(let{name:s,schema:r}of e.schemas){if(n.has(s))continue;let a=F(r,e);if(a===void 0)continue;let i=a.cases.map(c=>`${m.string(c.value)}: ${v(c.schemaName)}`).join(", ");t.push(`DISCRIMINATORS[${v(s)}] = (${m.string(a.property)}, {${i}})`)}return t}var cn={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 te(e){let n=e.lastIndexOf("/")>=0?"/":"\\",t=e.lastIndexOf(n),s=t>=0?e.slice(0,t+1):"",r=(t>=0?e.slice(t+1):e).replace(/\.[^.]+$/,"");return`${s}${N(r,{style:"snake",reserved:x})}.py`}var ln=({model:e,output:n,banner:t,emit:s,options:r,pagination:a})=>{let i=s.errorMode??"throw",c=s.dateType??"string",f=r?.models??"dataclass",l=f==="pydantic"?ee(e):void 0,o=new D;if(o.line(`# Generated by @redocly/client-generator (python) from "${e.title}" ${e.version}.`),o.line("# Do not edit by hand \u2014 regenerate with `redocly generate-client`."),o.line(f==="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(ne(e,c,f).trimEnd()),o.blank(),o.blank(),ye(o,e),s.runtime==="module"){o.line("# \u2500\u2500\u2500 Runtime (real modules beside this file, written by the same run) \u2500\u2500\u2500");for(let d of Object.keys(W))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(W)){let $=d.split(`
|
|
9
9
|
`).filter(g=>!g.startsWith("from __future__")&&!g.startsWith("from ._")).join(`
|
|
10
10
|
`).trim();o.line($),o.blank()}o.blank()}let u=he(e,new Set(l?.unions.keys()));if(u.length>0){o.line("# Discriminated unions dispatch by their property inside decode().");for(let d of u)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 p=new Map;for(let{op:d,ident:$}of q(e))p.set($,pe(a?.get(d.name)?.spec));o.line("_OPERATIONS: Dict[str, Dict[str, Any]] = {"),o.indent(()=>{for(let{op:d,ident:$}of q(e)){let g={id:d.specName??d.name,method:d.method.toUpperCase(),path:d.path,...Q(d,e).length>0?{security:Q(d,e)}:{},...p.get($)!==void 0?{pagination:p.get($)}:{}};o.line(`"${$}": ${fe(g)},`)}}),o.line("}"),o.blank(),o.blank();let h=s.serverUrl??e.serverUrl??"";Z(o,e,i,!1,p,h,c),Z(o,e,i,!0,p,h,c);let b={path:te(n.path),content:o.toString()};if(s.runtime!=="module")return[b];let _=t.map(d=>`# ${d}`).join(`
|
|
@@ -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
|
+
var l={},c=new Set(["typescript","zod","tanstack-query","tanstack-query-vue","tanstack-query-svelte","tanstack-query-solid","swr","transformers","mock","cli","python","go","php","java"]),s=/import\s*(?:type\s*)?\{([^}]*)\}\s*from\s*['"]@redocly\/client-generator(?:\/generate)?['"]/g;function _(e,t){let o=new Set(t),r=new Set;for(let i of e.matchAll(s))for(let a of i[1].split(",")){let n=a.trim().replace(/^type\s+/,"").split(/\s+as\s+/)[0].trim();o.has(n)&&r.add(n)}return[...r]}var g=/^\/\/ Ejected from @redocly\/client-generator@([\w.-]+) — the built-in "([a-z-]+)" generator\./;function u(e){let t=e.match(g);if(!(!t||!c.has(t[2])))return{name:t[2],version:t[1]}}function p(e){return e.includes("Invalid pagination configuration")?"pagination":e.includes("Could not load generator")?"generator-load":/^Generator "[^"]+" failed:/.test(e)?"generator-run":e.includes("Unknown generator")||e.includes("does not support")?"not-supported":"other"}var d={};export{l as a,c as b,_ as c,u as d,p as e,d as f};
|
|
@@ -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{c as s}from"./HBUZKWXC.js";import{a as n,b as p}from"./LRRSU5UY.js";import{
|
|
7
|
+
import{c as s}from"./HBUZKWXC.js";import{a as n,b as p}from"./LRRSU5UY.js";import{ka as e}from"./4ZCKAKVF.js";import"./6RTITFQA.js";import"./RFWIIJFG.js";import{spawn as g}from"node:child_process";import{existsSync as l,readFileSync as w}from"node:fs";import P from"node:path";var S=async({argv:r})=>{let{plan:o,port:i}=r,c=r["project-dir"];r.product&&e.warn(`The --product option is deprecated. It still picks the product package; without it, the preview uses the package listed in package.json, or ${n.framework} by default.
|
|
8
8
|
`);let t=r.product||j(c);if(!h(t))throw e.info(`Invalid product ${t}.`),new Error("Project preview launch failed.");let a=p[t],d=n[t];e.info(`
|
|
9
9
|
Launching preview of ${a} ${o} using NPX.
|
|
10
10
|
|
|
@@ -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"./HXOTKK2E.js";import{a as L,b as u,c as f,d}from"./IMNPDC6N.js";import{d as G,e as y,f as v}from"./RQMFL6Q4.js";import{c as x,d as S,e as g}from"./GW4PLLFM.js";import{c as h,d as j,e as k}from"./QGKTPGO7.js";import{c as D,d as b,e as E}from"./AB4FYNJN.js";import{a as q,b as C,c as O,d as U}from"./OOKU5T7P.js";import{a as t}from"./JZV7EL4R.js";import{a as n,b as p,c as m}from"./NFGCHP5P.js";import"./TFPMT2XD.js";import{a as s}from"./K6HV4EJS.js";import{a as c}from"./UFDBFVRI.js";import{a as i}from"./BY22HEXP.js";import"./HIMEF7J2.js";import{a as R,d as z,e as A}from"./76AJ5P4Y.js";import{a as tr,b as ar,c as nr,d as pr,e as mr,f as sr,g as cr,h as ir,i as lr,j as ur,k as fr}from"./QQ2PGWE6.js";import{e as I,h as M,k as N}from"./4AXMK6B2.js";import{a as J,b as Q,c as H,d as K,e as P,f as V,g as W,h as X,i as Y,j as Z,k as $,l as rr,m as er,n as or}from"./D3C6XIMY.js";import{a as F}from"./WZXA5XPB.js";import"./4ZCKAKVF.js";import"./6RTITFQA.js";import"./RFWIIJFG.js";var _={typescript:{run:n,sample:m,docs:p},zod:{run:s},transformers:{run:c},"tanstack-query":{run:t("react")},"tanstack-query-vue":{run:t("vue")},"tanstack-query-svelte":{run:t("svelte")},"tanstack-query-solid":{run:t("solid")},swr:{run:i},mock:{run:l},cli:{run:u,sample:d,docs:f},python:{run:G,sample:y,docs:v},go:{run:x,sample:S,docs:g},php:{run:h,sample:j,docs:k},java:{run:D,sample:b,docs:E}},B=Object.fromEntries(Object.entries(q).map(([e,{load:r,...o}])=>[e,{...o,..._[e]}]));function a(){return new Map(Object.entries(B))}function T(e,r,o=a(),w){C(e,r,o,w)}function Or(e,r){let o=r.registry??a();return T(r.generators,r.emit,o,r.outputMode),O(e,{...r,registry:o})}export{fr as AUTHORING_HELPER_NAMES,F as NotSupportedError,J as Printer,H as RESERVED_WORDS,Q as casing,M as codeLiteral,Or as collectGeneratedFiles,V as deref,X as discriminatorCases,rr as docText,$ as enumValues,W as flattenAllOf,U as generateClient,or as headerCoerceType,K as identifierFor,sr as isBinaryContentType,pr as isMultipartBody,Y as isNullable,mr as isUntypedMultipartBody,ar as jsonSuccessSchema,R as operationSignature,lr as paginationItemSchema,tr as paginationRuleFor,N as pascalCase,L as renderComposedCliEntry,ur as renderReferencePage,I as safeIdent,er as schemaAtPointer,ir as securityRequirements,cr as serverUrlParts,nr as sseResponse,z as tsJsdoc,A as tsType,P as uniqueIdentifiers,Z as unwrapNullable};
|