@redocly/cli 2.66.0 → 2.67.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/lib/chunks/{Q7Y4MUA7.js → 2AJDP47K.js} +1 -1
- package/lib/chunks/{7NPQH3V7.js → 3HSHTOK2.js} +1 -1
- package/lib/chunks/{F7K3O6UM.js → 3SPC2VZI.js} +1 -1
- package/lib/chunks/{K4IZRPJV.js → 4JI4GT6B.js} +35 -35
- package/lib/chunks/{CK2FG2DD.js → 6BJRKKAU.js} +1 -1
- package/lib/chunks/{MOQAQ5M7.js → 7WOMNRDU.js} +1 -1
- package/lib/chunks/{3XQNPUP7.js → 7YY5ECWE.js} +1 -1
- package/lib/chunks/{FTPZZ6BG.js → A3NSKGWO.js} +1 -1
- package/lib/chunks/{4ABWBH3W.js → AENSGZDZ.js} +1 -1
- package/lib/chunks/{PBSA7HOV.js → AL7PXK7F.js} +1 -1
- package/lib/chunks/{B4Z2Z4FS.js → BUQQJCMF.js} +1 -1
- package/lib/chunks/{TLDUEX6A.js → BYO4KBZG.js} +1 -1
- package/lib/chunks/{4WRQYZGD.js → CCZY5XJV.js} +2 -2
- package/lib/chunks/{R3ZIINV3.js → D4U2LEEI.js} +1 -1
- package/lib/chunks/{GLUPJCQU.js → D5A4WCOD.js} +1 -1
- package/lib/chunks/{LJTGHAPA.js → DQZXJA6Q.js} +1 -1
- package/lib/chunks/{AVUOPIXP.js → DTPYQUHR.js} +13 -13
- package/lib/chunks/{4Y4YV5TG.js → EDKRUI6D.js} +1 -1
- package/lib/chunks/{EOXNJQ4F.js → EOCKJNES.js} +1 -1
- package/lib/chunks/{LSFJCPZH.js → EPVPJTXN.js} +1 -1
- package/lib/chunks/{TOBKCE6P.js → F77DQGVI.js} +1 -1
- package/lib/chunks/{EP53BWBM.js → F7DLPPNU.js} +1 -1
- package/lib/chunks/{ROLEKKAB.js → G67BALR7.js} +1 -1
- package/lib/chunks/{RALPAYEE.js → GP5VOB7R.js} +1 -1
- package/lib/chunks/{YVEWM3DE.js → GU34RIUR.js} +1 -1
- package/lib/chunks/{L3SH4LDY.js → H3CWVIT3.js} +1 -1
- package/lib/chunks/{ON2YZD5C.js → HET452FN.js} +1 -1
- package/lib/chunks/{HXPCC4OG.js → HG5B2AKP.js} +1 -1
- package/lib/chunks/{NUBOB7QM.js → HPYQF7FO.js} +2 -2
- package/lib/chunks/{KOEA2NZG.js → HQTUYG5X.js} +2 -2
- package/lib/chunks/{WLLP4IZS.js → HU6QTMHN.js} +1 -1
- package/lib/chunks/{IAAYM25M.js → IHFKHD4E.js} +1 -1
- package/lib/chunks/{BY6DKJ2R.js → IRF3OXDB.js} +1 -1
- package/lib/chunks/{OYDBXGWA.js → IZVG6IUS.js} +1 -1
- package/lib/chunks/{U5IK2ZXU.js → J32G7NQF.js} +4 -4
- package/lib/chunks/{OSFU2PWJ.js → JH6AK2RM.js} +1 -1
- package/lib/chunks/{HKVSCF3J.js → JMYCFXFO.js} +1 -1
- package/lib/chunks/{6KF4UNVM.js → KA43H34P.js} +1 -1
- package/lib/chunks/{W2AAAE7A.js → KHQEQ7SW.js} +1 -1
- package/lib/chunks/{EDTY75R2.js → KIFTQ6KG.js} +1 -1
- package/lib/chunks/{JGSM4NRA.js → KMGFC2JR.js} +1 -1
- package/lib/chunks/{5EHUKG3I.js → LEPQDSTM.js} +1 -1
- package/lib/chunks/{UYF7BOSD.js → LZUYKJND.js} +1 -1
- package/lib/chunks/{PGX27JIK.js → M5FZMXND.js} +1 -1
- package/lib/chunks/{NHOPECWM.js → MLLRCWW6.js} +1 -1
- package/lib/chunks/{FOXOWXSK.js → OKWRNBEY.js} +1 -1
- package/lib/chunks/{4WZNKPF4.js → OLVAP7AA.js} +1 -1
- package/lib/chunks/{ILGMLL46.js → OUNJECS6.js} +1 -1
- package/lib/chunks/{6JHVGOS4.js → PNADRNVV.js} +1 -1
- package/lib/chunks/{NFCO7FU3.js → QPNNEO3Y.js} +1 -1
- package/lib/chunks/{FP63LRP5.js → QT45SNBU.js} +1 -1
- package/lib/chunks/{46YO7ZAG.js → RIJ5NQKJ.js} +1 -1
- package/lib/chunks/{5DD7WY23.js → RV4QSDBS.js} +1 -1
- package/lib/chunks/{IH6TBN5D.js → SR776DY3.js} +1 -1
- package/lib/chunks/TO7JCTX3.js +20 -0
- package/lib/chunks/{DRSH6QBU.js → UNWO4KGQ.js} +1 -1
- package/lib/chunks/{YY44N7JX.js → VEVZJC25.js} +1 -1
- package/lib/chunks/{PVBX7API.js → VJQCED3T.js} +1 -1
- package/lib/chunks/{FHDBQIEB.js → WFKHK77N.js} +1 -1
- package/lib/chunks/{36DQZK3T.js → WH5ELPJC.js} +1 -1
- package/lib/chunks/{QAEXHBKV.js → WHI5PM5X.js} +1 -1
- package/lib/chunks/{YCJL4ZHF.js → WJLUIDSE.js} +1 -1
- package/lib/chunks/{M3VAMERP.js → XZIAEGVZ.js} +1 -1
- package/lib/chunks/{JZPKVDJA.js → XZNJU67S.js} +1 -1
- package/lib/chunks/{E3YDJXL6.js → Y5OFK6NL.js} +1 -1
- package/lib/chunks/{MOGSSUQO.js → YIXIZB5W.js} +1 -1
- package/lib/chunks/{OMDMN4SS.js → YQYR6TIT.js} +1 -1
- package/lib/chunks/YUHXZXUL.js +34 -0
- package/lib/chunks/{VL2MPFWQ.js → ZLAHBPRQ.js} +1 -1
- package/lib/chunks/{USAJ5FBD.js → ZMV5LF7Y.js} +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/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 +4 -4
- 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 +44 -19
- 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/php-generator/SKILL.md +3 -1
- package/lib/eject-assets/skills/python-generator/SKILL.md +2 -1
- package/lib/index.js +5 -5
- package/package.json +1 -1
- package/lib/chunks/FNQMGCDF.js +0 -20
- package/lib/chunks/U7CHKSVN.js +0 -34
|
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'node:path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
var __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a}from"./
|
|
7
|
+
import{a}from"./RV4QSDBS.js";import"./VJQCED3T.js";import"./HU6QTMHN.js";import"./2AJDP47K.js";import"./CCZY5XJV.js";import"./WZXA5XPB.js";import"./4JI4GT6B.js";import"./NEWT5A6S.js";import"./LD5MEXEL.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{a as swrGenerator};
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
var __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as x,b as y,c as g,d}from"./
|
|
7
|
+
import{a as x,b as y,c as g,d}from"./VJQCED3T.js";import{b as P,d as h,e as m}from"./LD5MEXEL.js";import{m as v}from"./UW4UC7ZI.js";import{join as B}from"node:path";function b(e,t){let n=x(e,"tanstack-query");if(n.length===0)return"";let r=t.pagination??new Map;return[I(n,t,r),...n.some(s=>M(s,r))?[j]:[],...n.filter(y).map(s=>F(s,t.queryKeyPrefix)),S(e,n,r,t.queryKeyPrefix,t.argsStyle),...E(n,r)].join(`
|
|
8
8
|
`)}function p(e,t){if(!y(e))return!1;let n=t.get(e.name);return n===void 0||n.spec.style==="link"?!1:n.spec.style!=="body-link"||e.queryParams.length>0}function M(e,t){return p(e,t)&&t.get(e.name)?.spec.style==="body-link"}var j=`/** The query parameters of a next-page link; a repeated key becomes an array. */
|
|
9
9
|
const nextLinkQuery = (link: string) => {
|
|
10
10
|
const query: Record<string, string | string[]> = {};
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
var __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as o,b as t,c as e}from"./HBUZKWXC.js";import{ia as r}from"./
|
|
7
|
+
import{a as o,b as t,c as e}from"./HBUZKWXC.js";import{ia as r}from"./4JI4GT6B.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{spawn as p}from"node:child_process";var u=async({argv:n})=>{r.info(`
|
|
8
8
|
Launching translate using NPX.
|
|
9
9
|
|
|
10
10
|
`);let{npxExecutableName:s,sanitize:a,shell:i}=e(),l=a(n["project-dir"],o),c=a(n.locale,t);p(s,["-y","@redocly/realm","translate",c,`-d=${l}`],{stdio:"inherit",shell:i}).on("error",m=>{throw r.info(`Translate launch failed: ${m.message}`),new Error("Translate launch failed.")})};export{u as handleTranslations};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname as __pathDirname } from 'node:path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
var __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = __pathDirname(__filename);
|
|
7
|
+
import{a as p,b as U,c as F,d as R,e as j}from"./U5DIFWGH.js";import{b as O}from"./RIJ5NQKJ.js";import{ba as $,c as b,ca as A,ga as v,ia as k,l as P,oa as d}from"./4JI4GT6B.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{readFileSync as H}from"node:fs";import{mkdir as B,writeFile as D}from"node:fs/promises";import{basename as I,dirname as S,extname as N,isAbsolute as L,relative as x,resolve as f}from"node:path";var V=/^[a-z][a-z0-9+.-]+:/i;function W(e,t){let{setup:i}=e;if(typeof i!="string")return e;if(V.test(i))throw new d(`
|
|
8
|
+
\u274C \`client.setup\` must be a local file path \u2014 remote setup modules are not supported.
|
|
9
|
+
Got: ${i}
|
|
10
|
+
`);return L(i)?e:{...e,setup:f(t,i)}}function q(e){return`${e.replace(/[\\/]/g,"_")}.client.ts`}function J(e){if(e.startsWith("//"))return!1;if(e.startsWith("/"))return!0;try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}async function se({argv:e,config:t,collectSpecData:i}){let{AUTHORING_HELPER_NAMES:r,generateClient:m,mergeConfig:n}=await import("./D4U2LEEI.js"),l=t.configPath?S(t.configPath):process.cwd(),o={serverUrl:e["server-url"],outputMode:e["output-mode"],runtime:e.runtime,importExt:e["import-ext"],goPackage:e["go-package"],argsStyle:e["args-style"],errorMode:e["error-mode"],dateType:e["date-type"],mockData:e["mock-data"],mockSeed:e["mock-seed"],docs:e.docs,generators:e.generator?.map(c=>c.startsWith(".")?f(c):c),setup:e.setup===void 0?void 0:W({setup:e.setup},process.cwd()).setup},s=t.resolvedConfig.apis??{},a=Object.keys(s).filter(c=>b(s[c].client)||s[c].clientOutput!==void 0);if(e.api===void 0){if(e.output)throw new d("\n\u274C --output can't target multiple APIs. Set `clientOutput` under each api in redocly.yaml, or pass a single <api>.\n");if(a.length===0)throw new d("\n\u274C No API to generate. Add a `client` block or `clientOutput` under an `apis:` entry, or pass <api> (a file/URL or an `apis:` alias).\n")}let h=await O(e.api===void 0?a:[e.api],t),g={config:t,collectSpecData:i,configDir:l,cliFlags:o,outputFlag:e.output,toolkit:{generateClient:m,mergeConfig:n,helperNames:r},seenOutputs:new Set,composable:[]};for(let c of h)await K(c,g);let w=b(t.resolvedConfig.client)?t.resolvedConfig.client:{};w.cliOutput!==void 0&&e.api===void 0&&g.composable.length>0&&await Q(w.cliOutput,g)}async function K(e,{config:t,collectSpecData:i,configDir:r,cliFlags:m,outputFlag:n,toolkit:l,seenOutputs:o,composable:s}){let{path:a,alias:h}=e,g=h??I(a,N(a)),w=t.forAlias(h),{client:c,clientOutput:E}=w.resolvedConfig,M=W(b(c)?c:{},r),C=l.mergeConfig(M,m);X(C.generators??[],l.helperNames,r);let y=n!==void 0?f(n):E!==void 0?f(r,E):f(r,q(g));if(!y.endsWith(".ts"))throw new d(`
|
|
11
|
+
\u274C output must point at a TypeScript file (ending in .ts).
|
|
12
|
+
Got: ${y}
|
|
13
|
+
`);if(o.has(y))throw new d(`
|
|
14
|
+
\u274C Two APIs write to the same path: ${y}.
|
|
15
|
+
Give each api a distinct \`clientOutput\`.
|
|
16
|
+
`);if(o.add(y),C.serverUrl!==void 0&&!J(C.serverUrl))throw new d(`
|
|
17
|
+
\u274C serverUrl must be an absolute URL (https://api.example.com) or a root-relative path (/v1) \u2014 set via --server-url or the \`client\` block in redocly.yaml.
|
|
18
|
+
Got: ${C.serverUrl}
|
|
19
|
+
`);try{k.info(v(`
|
|
20
|
+
Generating client for ${g}...
|
|
21
|
+
`));let u=await l.generateClient({...C,api:a,output:y,config:w,configDir:r,collectSpecData:i}),_=u.files.find(G=>G.path.endsWith(".cli.ts"));if(_!==void 0){let G=C.importExt??"js";s.push({alias:g,cliPath:_.path.replace(/\.ts$/,G==="ts"?".ts":".js")})}for(let G of u.files)o.add(G.path);let z=`Client successfully generated: ${`${u.files.length} ${P("file",u.files.length)}`} (${u.bytes} bytes) at ${$(u.outputPath)}.`;k.info(`
|
|
22
|
+
`+A(z)+`
|
|
23
|
+
`)}catch(u){let _=u instanceof Error?u.message:String(u);throw p.generate_client_error_category=j(_),new d(`
|
|
24
|
+
\u274C Failed to generate client for ${g}.
|
|
25
|
+
${_}
|
|
26
|
+
`)}}async function Q(e,{configDir:t,seenOutputs:i,composable:r}){let{renderComposedCliEntry:m}=await import("./OLVAP7AA.js"),n=f(t,e);if(!n.endsWith(".ts"))throw new d(`
|
|
27
|
+
\u274C client.cliOutput must point at a TypeScript file (ending in .ts).
|
|
28
|
+
Got: ${n}
|
|
29
|
+
`);if(i.has(n))throw new d(`
|
|
30
|
+
\u274C client.cliOutput resolves to a file this run generated: ${n}.
|
|
31
|
+
Give the composed entry its own path.
|
|
32
|
+
`);let l=I(n,N(n)),o=m(r.map(({alias:s,cliPath:a})=>({alias:s,modulePath:`./${x(S(n),a).split("\\").join("/")}`})),l);await B(S(n),{recursive:!0}),await D(n,o,"utf-8"),p.generate_client_composed_apis_count=r.length,k.info(`
|
|
33
|
+
`+A(`Composed CLI written to ${$(x(process.cwd(),n))} \u2014 ${r.map(({alias:s})=>s).join(", ")} behind one \`${l}\` binary.`)+`
|
|
34
|
+
`)}var T=new Set;function X(e,t,i){let r=new Set(p.generate_client_builtin_generators??[]),m=new Set(p.generate_client_toolkit_imports??[]),n=new Set(p.generate_client_ejected_generators??[]),l=p.generate_client_custom_generators_count??0;for(let o of e){if(U.has(o)){r.add(o);continue}if(!T.has(o)&&(T.add(o),l++,o.startsWith(".")||L(o)))try{let s=H(f(i,o),"utf-8");for(let h of F(s,t))m.add(h);let a=R(s);a&&n.add(`${a.name}@${a.version}`)}catch{}}p.generate_client_builtin_generators=[...r],p.generate_client_custom_generators_count=l,p.generate_client_toolkit_imports=[...m],p.generate_client_ejected_generators=[...n]}export{X as collectGeneratorUsage,se as handleGenerateClient};
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
var __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as G}from"./HAOBCQWB.js";import{b as j,c as N,d as Q,e as O,f as Z,g as Y,h as X,i as ee,j as ne}from"./
|
|
7
|
+
import{a as G}from"./HAOBCQWB.js";import{b as j,c as N,d as Q,e as O,f as Z,g as Y,h as X,i as ee,j as ne}from"./2AJDP47K.js";import{a as H}from"./WZXA5XPB.js";import{a as F,b as W,c as L,d as x,e as _,g as A,h as U,i as z,j as K,k as J,l as D,n as V}from"./UW4UC7ZI.js";var B=L.go,P=class extends F{constructor(){super(" ")}typeName(t){return d(t)}memberName(t){return d(t)}identifier(t){return x(t,{style:"camel",reserved:B})}identifiers(t,n){let r=new Set(n??[]);return t.map(o=>{let s=d(o),a=s;for(let i=2;r.has(a);i++)a=`${s}${i}`;return r.add(a),a})}packageName(t){let n=t.toLowerCase().replace(/[^a-z0-9]/g,"");return n===""||/^[0-9]/.test(n)?"client":n}string(t){let n='"';for(let r of t){let o=r.codePointAt(0);r==="\\"?n+="\\\\":r==='"'?n+='\\"':r===`
|
|
8
8
|
`?n+="\\n":r==="\r"?n+="\\r":r===" "?n+="\\t":o<32||o===127?n+=`\\x${o.toString(16).padStart(2,"0")}`:o>=55296&&o<=57343?n+="\\uFFFD":n+=r}return n+'"'}literal(t){return t==null?"nil":typeof t=="boolean"||typeof t=="number"?String(t):typeof t=="string"?this.string(t):Array.isArray(t)?`[]any{${t.map(r=>this.literal(r)).join(", ")}}`:`map[string]any{${Object.entries(t).map(([r,o])=>`${this.string(r)}: ${this.literal(o)}`).join(", ")}}`}comment(t){for(let n of D(t))this.line(n===""?"//":`// ${n}`);return this}doc(t,n){let r=D(n);if(r.length===0)return this;this.line(`// ${t} \u2014 ${r[0]}`);let o=!1;for(let s of r.slice(1)){if(s===""){o||this.line("//"),o=!0;continue}this.line(`// ${s}`),o=!1}return this}layout(t){return ue(fe(t))}toString(){return this.layout(super.toString())}};function d(e){let t=x(e,{style:"pascal",reserved:B});return t.startsWith("_")?`N${t.slice(1)}`:t}function ue(e){return`${e.replace(/\n{3,}/g,`
|
|
9
9
|
|
|
10
10
|
`).trimEnd()}
|
|
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
var __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __pathDirname(__filename);
|
|
7
|
-
import{a as C,b as Z,c as ee,d as Ne,e as te,f as ne,g as Se,h as oe}from"./
|
|
7
|
+
import{a as C,b as Z,c as ee,d as Ne,e as te,f as ne,g as Se,h as oe}from"./3HSHTOK2.js";import{a as Fe,b as De}from"./64G5RPLP.js";import{f as de,g as L,h as ue,i as Ce,l as W,m as h,n as Oe}from"./RIJ5NQKJ.js";import{$ as le,O as pe,S as ce,T as fe,aa as ye,b as me,c as j,ca as u,d as O,h as ae,ia as N,ka as he,o as A,oa as S,r as d,t as v,va as ge,wa as Ae}from"./4JI4GT6B.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import*as U from"node:fs";import*as Ge from"node:path";import{performance as Xe}from"perf_hooks";import*as G from"node:path";import*as R from"node:path";function F(e,t,o){let n=R.resolve(e),r=R.resolve(t);if(r!==n&&!r.startsWith(n+R.sep))throw new S(`Refusing to write "${o}" outside the output directory.`)}import*as we from"node:path";function D(e,t,o,n,r){let m=o?`.${o}`:"",a=we.join(e,t),i=a+m,p=n.get(i.toLowerCase());for(let s=2;n.has(i.toLowerCase());s++)i=`${a}-${s}${m}`;return r&&p&&p!==t&&p.toLowerCase()===t.toLowerCase()&&r.conflicts.push({name:t,collidingName:p,filename:i,pointer:r.pointer}),n.set(i.toLowerCase(),t),i}function $(e,t,o,n,r,m,a){let i={},p=new Map;for(let[s,c]of Object.entries(e||{})){if(d(c))continue;let f=D(n,L(s,r),m,p,{conflicts:a,pointer:`${t}/${v(s)}`});F(o,f,s),i[s]=f}return i}import*as Pe from"node:path";function g(e,t,o={}){Se(e,r=>{if(d(r)&&oe(r.$ref))n(r,"$ref");else if(j(r.discriminator)&&j(r.discriminator.mapping)){let{mapping:m}=r.discriminator;for(let a of Object.keys(m)){let i=m[a];typeof i=="string"&&oe(i)&&n(r.discriminator.mapping,a)}}});function n(r,m){let a=r[m].split("/"),i=a.pop(),p=a[2],s=o[p];if(!s||!s[i])return;let c=A(Pe.relative(t,s[i].filename));c.startsWith(".")||(c="./"+c),r[m]=c}}function Y(e,t,o="warn"){if(o==="off"||e.length===0)return;let n=e.map(({name:r,collidingName:m,filename:a,pointer:i})=>({ruleId:"split",severity:o,message:`${r} and ${m} would share one file on a case-insensitive file system`+(o==="error"?".":`, saving ${r} to ${a}.`),location:[{source:t,pointer:i,reportOnKey:!0}],suggest:[]}));if(Ae(n,{totals:ge(n),command:"split"}),o==="error")throw new S("\u274C Errors encountered while splitting: files not created.")}import*as ie from"node:path";var Ee=["schemas","messages","securitySchemes","parameters","correlationIds","messageTraits","operationTraits","serverBindings","channelBindings","operationBindings","messageBindings"];var xe=["schemas","messages","securitySchemes","servers","serverVariables","parameters","replies","replyAddresses","correlationIds","messageTraits","operationTraits","tags","externalDocs","serverBindings","channelBindings","operationBindings","messageBindings"];function H(e,t){return(t==="async2"?Ee:xe).filter(n=>n in e)}function ve({asyncapi:e,asyncapiDir:t,componentsFiles:o,ext:n,specVersion:r,conflicts:m}){let a=e.components;if(!a)return;let i=ie.join(t,C),p=H(a,r);for(let s of p){let c=ie.join(i,s),f=new Map;for(let l of Object.keys(a[s]||{})){let y=D(c,l,n,f,{conflicts:m,pointer:`#/components/${s}/${v(l)}`});F(t,y,l),o[s]=o[s]||{},o[s][l]={filename:y}}}}import*as be from"node:fs";import*as V from"node:path";import*as P from"node:fs";import*as $e from"node:path";function E(e,t,o){if(!P.existsSync(e)||!P.statSync(e).isDirectory())return;let n=P.readdirSync(e);for(let r of n){let m=$e.join(e,r);P.statSync(m).isDirectory()?E(m,t,o):t(m,e,o)}}function b(e,t,o){if(!ce(e))return;let n=W(e);g(n,t,o),h(n,e)}function Te({channels:e,channelsFiles:t,asyncapiDir:o,outDir:n,componentsFiles:r}){if(e){be.mkdirSync(n,{recursive:!0});for(let m of Object.keys(e)){let a=e[m];if(d(a))continue;let i=t[m];g(a,V.dirname(i),r),h(a,i),e[m]={$ref:A(V.relative(o,i))},E(n,b,r)}}}import*as Be from"node:fs";import*as k from"node:path";import*as ke from"node:fs";function K(e){return e!=="securitySchemes"}function z(e,t){K(t)&&ke.mkdirSync(e,{recursive:!0})}import*as je from"node:fs";function q(e,t){return je.existsSync(e)&&!me(W(e),t)}import*as Re from"node:path";function T(e,t,o){if(!(!j(e)&&!Array.isArray(e))){if(Array.isArray(e)){for(let n of e)T(n,t,o);return}for(let n of Object.keys(e)){let r=e[n];if(n==="$ref"&&typeof r=="string"&&r.startsWith("#/channels/")){let m=r.slice(11),a=m.indexOf("/"),i=a===-1?m:m.slice(0,a),p=a===-1?"":m.slice(a),s=o[i];if(s){let c=A(Re.relative(t,s));e[n]=p?`${c}#${p}`:c}}else T(r,t,o)}}}function _e(e,t){let o=e.components;o&&(O(o[t])&&delete o[t],O(o)&&delete e.components)}function Ie({asyncapi:e,asyncapiDir:t,componentsFiles:o,channelsFiles:n,specVersion:r}){let m=e.components;if(m){let p=function(s){let c=k.join(a,s);z(c,s);for(let f of Object.keys(m?.[s]||{})){let{filename:l}=o[s][f],y=m?.[s]?.[f];g(y,k.dirname(l),o),T(y,k.dirname(l),n),q(l,y)?N.warn(`warning: conflict for ${f} - file already exists with different content: ${u(l)} ... Skip.
|
|
8
8
|
`):h(y,l),delete m?.[s]?.[f]}_e(e,s)},a=k.join(t,C);Be.mkdirSync(a,{recursive:!0}),H(m,r).forEach(p)}}import*as Me from"node:fs";import*as _ from"node:path";function Le({operations:e,operationFiles:t,asyncapiDir:o,outDir:n,componentsFiles:r,channelsFiles:m}){if(e){Me.mkdirSync(n,{recursive:!0});for(let a of Object.keys(e)){let i=e[a];if(d(i))continue;let p=t[a];g(i,_.dirname(p),r),T(i,_.dirname(p),m),h(i,p),e[a]={$ref:A(_.relative(o,p))},E(n,b,r)}}}function We({asyncapi:e,asyncapiDir:t,pathSeparator:o,ext:n,specVersion:r,source:m,fileNameConflictsSeverity:a}){let i=G.join(t,te),p=G.join(t,ne),s=r==="async3"?e.operations:void 0,c={},f=[];ve({asyncapi:e,asyncapiDir:t,componentsFiles:c,ext:n,specVersion:r,conflicts:f});let l=$(e.channels,`#/${te}`,t,i,o,n,f),y=$(s,`#/${ne}`,t,p,o,n,f);Y(f,m,a),Te({channels:e.channels,channelsFiles:l,asyncapiDir:t,outDir:i,componentsFiles:c}),Ie({asyncapi:e,asyncapiDir:t,componentsFiles:c,channelsFiles:l,specVersion:r}),Le({operations:s,operationFiles:y,asyncapiDir:t,outDir:p,componentsFiles:c,channelsFiles:l}),g(e,t,c),h(e,G.join(t,`asyncapi.${n}`))}import*as Q from"node:path";import*as se from"node:path";function X(e){return e?De.filter(t=>K(t)&&Object.keys(e).includes(t)):[]}function Ye(e,t,o,n,r){let{components:m}=e;if(!m)return;let a=se.join(t,C);for(let i of X(m)){let p=se.join(a,i),s=new Map;for(let c of Object.keys(m[i]||{})){let f=D(p,c,n,s,{conflicts:r,pointer:`#/components/${i}/${v(c)}`});F(t,f,c);let l=[];i==="schemas"&&(l=(m[i]?.[c]?.allOf||[]).map(({$ref:y})=>y).filter(ae)),o[i]=o[i]||{},o[i][c]={inherits:l,filename:f}}}}import*as Ke from"node:fs";import*as B from"node:path";import*as J from"node:path";function He(e,t,o,n){if(!e.discriminator)return;let r=`#/${C}/schemas/${t}`,m={};for(let[s,{inherits:c,filename:f}]of Object.entries(n))if(c.indexOf(r)>-1){let l=A(J.relative(J.dirname(o),f));m[s]=l.startsWith(".")?l:"./"+l}if(O(m))return;let a=e.properties[e.discriminator.propertyName],i=a&&a.enum,p=e.discriminator.mapping=e.discriminator.mapping||{};for(let s of Object.keys(m))i&&!i.includes(s)||(p[s]&&p[s]!==m[s]&&N.warn(`warning: explicit mapping overlaps with local mapping entry ${le(s)} at ${u(o)}. Please check it.`),p[s]=m[s])}function Ve(e,t){e.components&&O(e.components[t])&&delete e.components[t],O(e.components)&&delete e.components}function ze(e,t,o){let{components:n}=e;if(n){let a=function(i){let p=B.join(r,i);z(p,i);for(let s of Object.keys(n?.[i]||{})){let{filename:c}=o[i][s],f=n?.[i]?.[s];g(f,B.dirname(c),o),He(f,s,c,o.schemas||{}),q(c,f)?N.warn(`warning: conflict for ${s} - file already exists with different content: ${u(c)} ... Skip.
|
|
9
9
|
`):h(f,c),delete e.components?.[i]?.[s]}Ve(e,i)},r=B.join(t,C);Ke.mkdirSync(r,{recursive:!0}),X(n).forEach(a)}}import*as I from"node:fs";import*as x from"node:path";function re(e,t,o,n,r,m,a=""){if(!e)return;I.mkdirSync(n,{recursive:!0});let i=new Map;for(let p of Object.keys(e)){let s=e[p];if(d(s))continue;let c=t[p];for(let f of Fe){let l=s[f],y=l?.["x-code-samples"]||l?.["x-codeSamples"];if(!(!y||!Array.isArray(y)))for(let w of y){if(w.source&&w.source.$ref)continue;let M=D(x.join(o,"code_samples",ue(w.lang),a+L(p,m)),f,Ce(w.lang).slice(1),i);F(o,M,w.lang),I.mkdirSync(x.dirname(M),{recursive:!0}),I.writeFileSync(M,w.source),w.source={$ref:A(x.relative(n,M))}}}h(s,c),e[p]={$ref:A(x.relative(o,c))},E(n,b,r)}}function qe(e,t,o,n,r,m){let a=Q.join(t,Z),i=Q.join(t,ee),p=e.webhooks||e["x-webhooks"],s="webhooks"in e&&e.webhooks?`#/${ee}`:`#/${Ne}`,c={},f=[];Ye(e,t,c,n,f);let l=$(e.paths,`#/${Z}`,t,a,o,n,f),y=$(p,s,t,i,o,n,f);Y(f,r,m),ze(e,t,c),re(e.paths,l,t,a,c,o),re(p,y,t,i,c,o,"webhook_"),g(e,t,c),h(e,Q.join(t,`openapi.${n}`))}async function ro({argv:e,collectSpecData:t}){let o=Xe.now(),{api:n,outDir:r,separator:m}=e,a=Oe(n);if(!U.existsSync(n))throw new S(`File ${u(n)} does not exist.`);let i=new fe(Ge.resolve(n),U.readFileSync(n,"utf-8")),p=pe(i.body,{filename:n});t?.({parsed:p});let s=he(p);switch(s){case"async2":case"async3":We({asyncapi:p,asyncapiDir:r,pathSeparator:m,ext:a,specVersion:s,source:i,fileNameConflictsSeverity:e["file-name-conflicts-severity"]});break;case"oas3_0":case"oas3_1":case"oas3_2":qe(p,r,m,a,i,e["file-name-conflicts-severity"]);break;case"oas2":throw new S("OpenAPI 2 is not supported by this command.");default:throw new S("File does not conform to the OpenAPI or AsyncAPI Specification. Version is not specified.")}N.info(`\u{1FA93} Document: ${u(n)} ${ye("is successfully split")}
|
|
10
10
|
and all related files are saved to the directory: ${u(r)}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "cli" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator cli --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "cli" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator cli --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "cli" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator cli --update`.
|
|
@@ -86,5 +86,5 @@ export default {
|
|
|
86
86
|
docs: cliDocs,
|
|
87
87
|
requires: ["typescript","zod"],
|
|
88
88
|
errorModes: ["throw"],
|
|
89
|
-
requiresGenerator: '^0.7.
|
|
89
|
+
requiresGenerator: '^0.7.6',
|
|
90
90
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "cli" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator cli --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "go" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator go --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "go" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator go --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "go" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator go --update`.
|
|
@@ -332,5 +332,5 @@ export default {
|
|
|
332
332
|
"argsStyle": "inputs follow the target language's own idiom",
|
|
333
333
|
"importExt": "the generated file has no relative imports"
|
|
334
334
|
},
|
|
335
|
-
requiresGenerator: '^0.7.
|
|
335
|
+
requiresGenerator: '^0.7.6',
|
|
336
336
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "go" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator go --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "go" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator go --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "go" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator go --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "go" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator go --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "go" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator go --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "mock" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator mock --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "mock" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator mock --update`.
|
|
@@ -31,5 +31,5 @@ export default {
|
|
|
31
31
|
name: 'mock',
|
|
32
32
|
run: mockGenerator,
|
|
33
33
|
requires: ["typescript"],
|
|
34
|
-
requiresGenerator: '^0.7.
|
|
34
|
+
requiresGenerator: '^0.7.6',
|
|
35
35
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "mock" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator mock --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "mock" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator mock --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "mock" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator mock --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "php" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator php --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "php" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator php --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "php" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator php --update`.
|
|
@@ -234,5 +234,5 @@ export default {
|
|
|
234
234
|
"argsStyle": "inputs follow the target language's own idiom",
|
|
235
235
|
"importExt": "the generated file has no relative imports"
|
|
236
236
|
},
|
|
237
|
-
requiresGenerator: '^0.7.
|
|
237
|
+
requiresGenerator: '^0.7.6',
|
|
238
238
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "php" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator php --update`.
|
|
@@ -254,9 +254,9 @@ export function renderPhpModels(model: ApiModel, dateType: DateType = 'string'):
|
|
|
254
254
|
`return match ($data[${phpString(cases.property)}] ?? null) {`,
|
|
255
255
|
() => {
|
|
256
256
|
for (const entry of cases.cases) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
);
|
|
257
|
+
const target = { kind: 'ref', name: entry.schemaName } as const;
|
|
258
|
+
const typed = hydration(target, '$data', model, dateType) ?? '$data';
|
|
259
|
+
printer.line(`${phpString(entry.value)} => ${typed},`);
|
|
260
260
|
}
|
|
261
261
|
printer.line('default => $data,');
|
|
262
262
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "php" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator php --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "php" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator php --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "php" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator php --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "php" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator php --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "python" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator python --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "python" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator python --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "python" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator python --update`.
|
|
@@ -247,5 +247,5 @@ export default {
|
|
|
247
247
|
"argsStyle": "inputs follow the target language's own idiom",
|
|
248
248
|
"importExt": "the generated file has no relative imports"
|
|
249
249
|
},
|
|
250
|
-
requiresGenerator: '^0.7.
|
|
250
|
+
requiresGenerator: '^0.7.6',
|
|
251
251
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "python" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator python --update`.
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
enumValues,
|
|
13
13
|
flattenAllOf,
|
|
14
14
|
type PropertyModel,
|
|
15
|
+
type SchemaModel,
|
|
15
16
|
} from '@redocly/client-generator';
|
|
16
17
|
import { PythonPrinter } from '@redocly/client-generator/printers/python';
|
|
17
18
|
|
|
@@ -166,7 +167,7 @@ export function renderPythonModels(
|
|
|
166
167
|
printer.blank();
|
|
167
168
|
printer.blank();
|
|
168
169
|
|
|
169
|
-
const aliases
|
|
170
|
+
const aliases = new Map<string, SchemaModel>();
|
|
170
171
|
for (const { name, schema } of model.schemas) {
|
|
171
172
|
const asEnum = enumValues(schema);
|
|
172
173
|
if (asEnum !== undefined) {
|
|
@@ -198,27 +199,51 @@ export function renderPythonModels(
|
|
|
198
199
|
}
|
|
199
200
|
// Everything else (unions, scalar aliases, records) becomes a module-level alias,
|
|
200
201
|
// emitted AFTER the classes it references so the assignment evaluates.
|
|
201
|
-
aliases.
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
});
|
|
202
|
+
aliases.set(name, schema);
|
|
203
|
+
}
|
|
204
|
+
for (const [name, schema] of sortAliases(aliases)) {
|
|
205
|
+
const cases = discriminatorCases(schema, model);
|
|
206
|
+
if (cases !== undefined) {
|
|
207
|
+
const table = cases.cases
|
|
208
|
+
.map((entry) => `${entry.value} -> ${className(entry.schemaName)}`)
|
|
209
|
+
.join(', ');
|
|
210
|
+
printer.line(`# Discriminated by "${cases.property}": ${table}`);
|
|
211
|
+
}
|
|
212
|
+
const field = unions.get(name);
|
|
213
|
+
const union =
|
|
214
|
+
field === undefined
|
|
215
|
+
? pythonType(schema, dateType)
|
|
216
|
+
: `Annotated[${pythonType(schema, dateType)}, Field(discriminator=${naming.string(field)})]`;
|
|
217
|
+
printer.line(`${className(name)} = ${union}`);
|
|
218
|
+
printer.blank();
|
|
217
219
|
}
|
|
218
|
-
for (const emit of aliases) emit();
|
|
219
220
|
return printer.toString();
|
|
220
221
|
}
|
|
221
222
|
|
|
223
|
+
/** The aliases in emit order: an alias comes after the aliases it names. */
|
|
224
|
+
export function sortAliases(aliases: Map<string, SchemaModel>): Array<[string, SchemaModel]> {
|
|
225
|
+
const order: Array<[string, SchemaModel]> = [];
|
|
226
|
+
const visited = new Set<string>();
|
|
227
|
+
const visit = (name: string): void => {
|
|
228
|
+
const schema = aliases.get(name);
|
|
229
|
+
if (schema === undefined || visited.has(name)) return;
|
|
230
|
+
visited.add(name);
|
|
231
|
+
for (const referenced of findReferencedNames(schema)) visit(referenced);
|
|
232
|
+
order.push([name, schema]);
|
|
233
|
+
};
|
|
234
|
+
for (const name of aliases.keys()) visit(name);
|
|
235
|
+
return order;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/** The named schemas an alias annotation names (objects render as `Any`). */
|
|
239
|
+
function findReferencedNames(schema: SchemaModel): string[] {
|
|
240
|
+
if (schema.kind === 'ref') return [schema.name];
|
|
241
|
+
if (schema.kind === 'array') return findReferencedNames(schema.items);
|
|
242
|
+
if (schema.kind === 'record') return findReferencedNames(schema.value);
|
|
243
|
+
if (schema.kind === 'union') return schema.members.flatMap(findReferencedNames);
|
|
244
|
+
return [];
|
|
245
|
+
}
|
|
246
|
+
|
|
222
247
|
/**
|
|
223
248
|
* `DISCRIMINATORS[Pet] = ("petType", {"cat": Cat, ...})` registration lines, which `decode`
|
|
224
249
|
* dispatches through. A union whose annotation already carries the discriminator is left
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "python" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator python --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "python" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator python --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "python" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator python --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "python" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator python --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "swr" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator swr --update`.
|
|
@@ -33,5 +33,5 @@ export default {
|
|
|
33
33
|
run: swrGenerator,
|
|
34
34
|
requires: ["typescript"],
|
|
35
35
|
errorModes: ["throw"],
|
|
36
|
-
requiresGenerator: '^0.7.
|
|
36
|
+
requiresGenerator: '^0.7.6',
|
|
37
37
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "swr" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator swr --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "tanstack-query" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator tanstack-query --update`.
|
|
@@ -44,5 +44,5 @@ export default {
|
|
|
44
44
|
run: tanstackQueryGenerator('react'),
|
|
45
45
|
requires: ["typescript"],
|
|
46
46
|
errorModes: ["throw"],
|
|
47
|
-
requiresGenerator: '^0.7.
|
|
47
|
+
requiresGenerator: '^0.7.6',
|
|
48
48
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "tanstack-query" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator tanstack-query --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "transformers" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator transformers --update`.
|
|
@@ -42,5 +42,5 @@ export default {
|
|
|
42
42
|
run: transformersGenerator,
|
|
43
43
|
requires: ["typescript"],
|
|
44
44
|
dateTypes: ["Date"],
|
|
45
|
-
requiresGenerator: '^0.7.
|
|
45
|
+
requiresGenerator: '^0.7.6',
|
|
46
46
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "transformers" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator transformers --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.7.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.7.6 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|