@povio/openapi-codegen-cli 3.1.0-rc.2 → 3.1.0-rc.3

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/dist/metro.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { r as GenerateFileFormatter } from "./options-CE4Koxof.mjs";
2
2
  import { t as OpenAPICodegenConfig } from "./config-BU7wVf7U.mjs";
3
- import { a as GenerateOpenApiFile } from "./openapi-D9apjIRy.mjs";
3
+ import { a as GenerateOpenApiFile } from "./openapi-BkC5yZ-W.mjs";
4
4
  import { IncomingMessage, ServerResponse } from "http";
5
5
 
6
6
  //#region src/metro/openapi-codegen.plugin.d.ts
@@ -107,18 +107,14 @@ declare function operationKey(method: string, routePath: string): string;
107
107
  declare function toPascalCase(value: string): string;
108
108
  declare function isZodSchema(value: unknown): value is ZodSchema;
109
109
  declare function schemaExportName(moduleName: string, exportName: string, schema: ZodSchema, getSchemaName?: typeof getOpenApiSchemaName): string;
110
+ declare function modelSchemaExportName(exportName: string): string;
110
111
  declare function sharedSchemaExportName(exportName: string): string;
111
112
  declare function collectModelSchemaExports(options: {
112
113
  apiRoot?: string;
113
114
  dbTablesRoot?: string;
114
- getOpenApiSchemaName?: (schema: unknown) => string | undefined;
115
- }): Promise<ModelSchemaExport[]>;
116
- declare function collectApiModelSchemaExports(apiRoot: string, options?: {
117
- getOpenApiSchemaName?: (schema: unknown) => string | undefined;
118
- }): Promise<ModelSchemaExport[]>;
119
- declare function collectModuleModelSchemaExports(apiRoot: string, moduleName: string, options?: {
120
- getOpenApiSchemaName?: (schema: unknown) => string | undefined;
121
115
  }): Promise<ModelSchemaExport[]>;
116
+ declare function collectApiModelSchemaExports(apiRoot: string): Promise<ModelSchemaExport[]>;
117
+ declare function collectModuleModelSchemaExports(apiRoot: string, moduleName: string): Promise<ModelSchemaExport[]>;
122
118
  declare function collectDbTableModelSchemaExports(tablesRoot: string): Promise<ModelSchemaExport[]>;
123
119
  declare function collectDbTableModelSchemaExport(tablesRoot: string, tableName: string): Promise<ModelSchemaExport[]>;
124
120
  declare function toOpenAPIAclRule(rule: string): JsonObject;
@@ -136,11 +132,14 @@ declare function visitZodSchema(schema: ZodSchema, visit: (schema: ZodSchema) =>
136
132
  };
137
133
  }>): void;
138
134
  declare function collectSchemaRegistryRoots(registry: OpenApiSchemaRegistry): Set<AnySchema>;
135
+ declare function modelSchemaNameEntries(modelSchemas: ModelSchemaExport[]): Map<ZodSchema, string>;
136
+ declare function createModelSchemaNameGetter(modelSchemas: ModelSchemaExport[], getSchemaName?: typeof getOpenApiSchemaName): (schema: unknown) => string | undefined;
139
137
  declare function collectReachableModelSchemas(router: AnyContractRouter, options?: {
140
138
  apiRoot?: string;
141
139
  dbTablesRoot?: string;
142
140
  excludedSchemas?: Set<AnySchema>;
143
141
  getOpenApiSchemaName?: (schema: unknown) => string | undefined;
142
+ modelSchemas?: ModelSchemaExport[];
144
143
  }): Promise<OpenApiSchemaRegistry>;
145
144
  declare function compactTagName(value: string): string;
146
145
  declare function getModuleOpenApiController(apiModules: Record<string, TinyOpenApiModule>, moduleName: string): string;
@@ -169,4 +168,4 @@ declare function applyPaginatedItemSchemas(spec: JsonObject): void;
169
168
  declare function toOpenAPI30Document(spec: JsonObject): JsonObject;
170
169
  declare function generateORPCOpenAPISpec(options: GenerateORPCOpenAPISpecOptions): Promise<JsonObject>;
171
170
  //#endregion
172
- export { getStringEnumValues as $, collectModuleModelSchemaExports as A, generateOpenApiFile as B, collectApiModelSchemaExports as C, toPascalCase as Ct, collectDbTableModelSchemaExports as D, collectDbTableModelSchemaExport as E, compactTagName as F, getModuleOpenApiTag as G, getContractProcedureData as H, defineOpenApiSchemas as I, getOperationAction as J, getObjectPropertySchema as K, findComponentEnumNames as L, collectOperationTags as M, collectReachableModelSchemas as N, collectExtraSchemas as O, collectSchemaRegistryRoots as P, getRobodevModuleRoles as Q, findEnumNames as R, asStringArray as S, toOpenAPIAclRule as St, collectContractSchemas as T, getDerivedOperationId as U, getComponentSchemas as V, getModuleOpenApiController as W, getPaginatedItemSchema as X, getOperationController as Y, getProcedureInputSchemaRole as Z, applyOperationMeta as _, schemaExportName as _t, GenerateOpenApiFile as a, isZodSchema as at, applyRobodevModuleExtensions as b, toOpenAPI30Document as bt, GenerateTinyOpenApiFileOptions as c, namedOpenApiOutputSchema as ct, ProcedureMeta as d, namedOpenApiSchema as dt, isContractProcedure as et, TinyOpenApiModule as f, operationKey as ft, applyEnumExtensions as g, schemaComponentRef as gt, addContractSchema as h, routeHasPathParameters as ht, GenerateORPCOpenAPISpecOptions as i, isProcedureMeta as it, collectOperationMeta as j, collectModelSchemaExports as k, JsonObject as l, namedOpenApiRequestSchema as lt, ZodSchema as m, resolveOpenApiOutputPath as mt, AnyContractRouter as n, isNullableOnlySchema as nt, GenerateOpenApiFileOptions as o, namedControllerActionInputDtoSchema as ot, TinyOpenApiUserRole as p, procedureSchemaName as pt, getOpenApiSchemaName as q, AnySchema as r, isObject as rt, GenerateOpenApiFileResult as s, namedControllerActionSchema as st, AclRule as t, isNullSchema as tt, OpenApiSchemaRegistry as u, namedOpenApiResponseSchema as ut, applyPaginatedItemSchemas as v, sharedSchemaExportName as vt, collectContractSchemaRoots as w, visitZodSchema as wt, applyRobodevUserRolesExtension as x, toOpenAPI30Schema as xt, applyParameterExtensions as y, stripNoContentResponseBodies as yt, generateORPCOpenAPISpec as z };
171
+ export { getRobodevModuleRoles as $, collectModuleModelSchemaExports as A, generateORPCOpenAPISpec as B, collectApiModelSchemaExports as C, toOpenAPI30Document as Ct, collectDbTableModelSchemaExports as D, visitZodSchema as Dt, collectDbTableModelSchemaExport as E, toPascalCase as Et, compactTagName as F, getModuleOpenApiController as G, getComponentSchemas as H, createModelSchemaNameGetter as I, getOpenApiSchemaName as J, getModuleOpenApiTag as K, defineOpenApiSchemas as L, collectOperationTags as M, collectReachableModelSchemas as N, collectExtraSchemas as O, collectSchemaRegistryRoots as P, getProcedureInputSchemaRole as Q, findComponentEnumNames as R, asStringArray as S, stripNoContentResponseBodies as St, collectContractSchemas as T, toOpenAPIAclRule as Tt, getContractProcedureData as U, generateOpenApiFile as V, getDerivedOperationId as W, getOperationController as X, getOperationAction as Y, getPaginatedItemSchema as Z, applyOperationMeta as _, resolveOpenApiOutputPath as _t, GenerateOpenApiFile as a, isProcedureMeta as at, applyRobodevModuleExtensions as b, schemaExportName as bt, GenerateTinyOpenApiFileOptions as c, modelSchemaNameEntries as ct, ProcedureMeta as d, namedOpenApiOutputSchema as dt, getStringEnumValues as et, TinyOpenApiModule as f, namedOpenApiRequestSchema as ft, applyEnumExtensions as g, procedureSchemaName as gt, addContractSchema as h, operationKey as ht, GenerateORPCOpenAPISpecOptions as i, isObject as it, collectOperationMeta as j, collectModelSchemaExports as k, JsonObject as l, namedControllerActionInputDtoSchema as lt, ZodSchema as m, namedOpenApiSchema as mt, AnyContractRouter as n, isNullSchema as nt, GenerateOpenApiFileOptions as o, isZodSchema as ot, TinyOpenApiUserRole as p, namedOpenApiResponseSchema as pt, getObjectPropertySchema as q, AnySchema as r, isNullableOnlySchema as rt, GenerateOpenApiFileResult as s, modelSchemaExportName as st, AclRule as t, isContractProcedure as tt, OpenApiSchemaRegistry as u, namedControllerActionSchema as ut, applyPaginatedItemSchemas as v, routeHasPathParameters as vt, collectContractSchemaRoots as w, toOpenAPI30Schema as wt, applyRobodevUserRolesExtension as x, sharedSchemaExportName as xt, applyParameterExtensions as y, schemaComponentRef as yt, findEnumNames as z };
package/dist/sh.mjs CHANGED
@@ -39,7 +39,7 @@ function logBanner(message) {
39
39
  * Fetch the version from package.json
40
40
  */
41
41
  function getVersion() {
42
- return "3.1.0-rc.2";
42
+ return "3.1.0-rc.3";
43
43
  }
44
44
 
45
45
  //#endregion
package/dist/tiny.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import "./options-CE4Koxof.mjs";
2
2
  import { t as OpenAPICodegenConfig } from "./config-BU7wVf7U.mjs";
3
- import { $ as getStringEnumValues, A as collectModuleModelSchemaExports, B as generateOpenApiFile, C as collectApiModelSchemaExports, Ct as toPascalCase, D as collectDbTableModelSchemaExports, E as collectDbTableModelSchemaExport, F as compactTagName, G as getModuleOpenApiTag, H as getContractProcedureData, I as defineOpenApiSchemas, J as getOperationAction, K as getObjectPropertySchema, L as findComponentEnumNames, M as collectOperationTags, N as collectReachableModelSchemas, O as collectExtraSchemas, P as collectSchemaRegistryRoots, Q as getRobodevModuleRoles, R as findEnumNames, S as asStringArray, St as toOpenAPIAclRule, T as collectContractSchemas, U as getDerivedOperationId, V as getComponentSchemas, W as getModuleOpenApiController, X as getPaginatedItemSchema, Y as getOperationController, Z as getProcedureInputSchemaRole, _ as applyOperationMeta, _t as schemaExportName, a as GenerateOpenApiFile, at as isZodSchema, b as applyRobodevModuleExtensions, bt as toOpenAPI30Document, c as GenerateTinyOpenApiFileOptions, ct as namedOpenApiOutputSchema, d as ProcedureMeta, dt as namedOpenApiSchema, et as isContractProcedure, f as TinyOpenApiModule, ft as operationKey, g as applyEnumExtensions, gt as schemaComponentRef, h as addContractSchema, ht as routeHasPathParameters, i as GenerateORPCOpenAPISpecOptions, it as isProcedureMeta, j as collectOperationMeta, k as collectModelSchemaExports, l as JsonObject, lt as namedOpenApiRequestSchema, m as ZodSchema, mt as resolveOpenApiOutputPath, n as AnyContractRouter, nt as isNullableOnlySchema, o as GenerateOpenApiFileOptions, ot as namedControllerActionInputDtoSchema, p as TinyOpenApiUserRole, pt as procedureSchemaName, q as getOpenApiSchemaName, r as AnySchema, rt as isObject, s as GenerateOpenApiFileResult, st as namedControllerActionSchema, t as AclRule, tt as isNullSchema, u as OpenApiSchemaRegistry, ut as namedOpenApiResponseSchema, v as applyPaginatedItemSchemas, vt as sharedSchemaExportName, w as collectContractSchemaRoots, wt as visitZodSchema, x as applyRobodevUserRolesExtension, xt as toOpenAPI30Schema, y as applyParameterExtensions, yt as stripNoContentResponseBodies, z as generateORPCOpenAPISpec } from "./openapi-D9apjIRy.mjs";
3
+ import { $ as getRobodevModuleRoles, A as collectModuleModelSchemaExports, B as generateORPCOpenAPISpec, C as collectApiModelSchemaExports, Ct as toOpenAPI30Document, D as collectDbTableModelSchemaExports, Dt as visitZodSchema, E as collectDbTableModelSchemaExport, Et as toPascalCase, F as compactTagName, G as getModuleOpenApiController, H as getComponentSchemas, I as createModelSchemaNameGetter, J as getOpenApiSchemaName, K as getModuleOpenApiTag, L as defineOpenApiSchemas, M as collectOperationTags, N as collectReachableModelSchemas, O as collectExtraSchemas, P as collectSchemaRegistryRoots, Q as getProcedureInputSchemaRole, R as findComponentEnumNames, S as asStringArray, St as stripNoContentResponseBodies, T as collectContractSchemas, Tt as toOpenAPIAclRule, U as getContractProcedureData, V as generateOpenApiFile, W as getDerivedOperationId, X as getOperationController, Y as getOperationAction, Z as getPaginatedItemSchema, _ as applyOperationMeta, _t as resolveOpenApiOutputPath, a as GenerateOpenApiFile, at as isProcedureMeta, b as applyRobodevModuleExtensions, bt as schemaExportName, c as GenerateTinyOpenApiFileOptions, ct as modelSchemaNameEntries, d as ProcedureMeta, dt as namedOpenApiOutputSchema, et as getStringEnumValues, f as TinyOpenApiModule, ft as namedOpenApiRequestSchema, g as applyEnumExtensions, gt as procedureSchemaName, h as addContractSchema, ht as operationKey, i as GenerateORPCOpenAPISpecOptions, it as isObject, j as collectOperationMeta, k as collectModelSchemaExports, l as JsonObject, lt as namedControllerActionInputDtoSchema, m as ZodSchema, mt as namedOpenApiSchema, n as AnyContractRouter, nt as isNullSchema, o as GenerateOpenApiFileOptions, ot as isZodSchema, p as TinyOpenApiUserRole, pt as namedOpenApiResponseSchema, q as getObjectPropertySchema, r as AnySchema, rt as isNullableOnlySchema, s as GenerateOpenApiFileResult, st as modelSchemaExportName, t as AclRule, tt as isContractProcedure, u as OpenApiSchemaRegistry, ut as namedControllerActionSchema, v as applyPaginatedItemSchemas, vt as routeHasPathParameters, w as collectContractSchemaRoots, wt as toOpenAPI30Schema, x as applyRobodevUserRolesExtension, xt as sharedSchemaExportName, y as applyParameterExtensions, yt as schemaComponentRef, z as findEnumNames } from "./openapi-BkC5yZ-W.mjs";
4
4
 
5
5
  //#region src/tiny/openapi-source.runner.d.ts
6
6
  interface TinyOpenApiSourceRunnerConfig {
@@ -18,4 +18,4 @@ declare function isTinyOpenApiFakeMode(apiMode?: string | undefined): boolean;
18
18
  declare function getLocalInputPath(input: OpenAPICodegenConfig["input"], root: string): string | undefined;
19
19
  declare function normalizeWatchFolders(root: string, watchFolders?: readonly string[]): string[];
20
20
  //#endregion
21
- export { AclRule, AnyContractRouter, AnySchema, GenerateORPCOpenAPISpecOptions, GenerateOpenApiFile, GenerateOpenApiFileOptions, GenerateOpenApiFileResult, GenerateTinyOpenApiFileOptions, JsonObject, OpenApiSchemaRegistry, ProcedureMeta, TinyOpenApiModule, type TinyOpenApiSourceRunnerConfig, TinyOpenApiUserRole, ZodSchema, addContractSchema, applyEnumExtensions, applyOperationMeta, applyPaginatedItemSchemas, applyParameterExtensions, applyRobodevModuleExtensions, applyRobodevUserRolesExtension, asStringArray, collectApiModelSchemaExports, collectContractSchemaRoots, collectContractSchemas, collectDbTableModelSchemaExport, collectDbTableModelSchemaExports, collectExtraSchemas, collectModelSchemaExports, collectModuleModelSchemaExports, collectOperationMeta, collectOperationTags, collectReachableModelSchemas, collectSchemaRegistryRoots, compactTagName, createTinyOpenApiSourceRunner, defineOpenApiSchemas, findComponentEnumNames, findEnumNames, generateORPCOpenAPISpec, generateOpenApiFile, getComponentSchemas, getContractProcedureData, getDerivedOperationId, getModuleOpenApiController, getModuleOpenApiTag, getObjectPropertySchema, getOpenApiSchemaName, getOperationAction, getOperationController, getPaginatedItemSchema, getProcedureInputSchemaRole, getRobodevModuleRoles, getStringEnumValues, getLocalInputPath as getTinyOpenApiLocalInputPath, isContractProcedure, isNullSchema, isNullableOnlySchema, isObject, isProcedureMeta, isTinyOpenApiFakeMode, isZodSchema, namedControllerActionInputDtoSchema, namedControllerActionSchema, namedOpenApiOutputSchema, namedOpenApiRequestSchema, namedOpenApiResponseSchema, namedOpenApiSchema, normalizeWatchFolders as normalizeTinyOpenApiWatchFolders, operationKey, procedureSchemaName, resolveOpenApiOutputPath, routeHasPathParameters, schemaComponentRef, schemaExportName, sharedSchemaExportName, stripNoContentResponseBodies, toOpenAPI30Document, toOpenAPI30Schema, toOpenAPIAclRule, toPascalCase, visitZodSchema };
21
+ export { AclRule, AnyContractRouter, AnySchema, GenerateORPCOpenAPISpecOptions, GenerateOpenApiFile, GenerateOpenApiFileOptions, GenerateOpenApiFileResult, GenerateTinyOpenApiFileOptions, JsonObject, OpenApiSchemaRegistry, ProcedureMeta, TinyOpenApiModule, type TinyOpenApiSourceRunnerConfig, TinyOpenApiUserRole, ZodSchema, addContractSchema, applyEnumExtensions, applyOperationMeta, applyPaginatedItemSchemas, applyParameterExtensions, applyRobodevModuleExtensions, applyRobodevUserRolesExtension, asStringArray, collectApiModelSchemaExports, collectContractSchemaRoots, collectContractSchemas, collectDbTableModelSchemaExport, collectDbTableModelSchemaExports, collectExtraSchemas, collectModelSchemaExports, collectModuleModelSchemaExports, collectOperationMeta, collectOperationTags, collectReachableModelSchemas, collectSchemaRegistryRoots, compactTagName, createModelSchemaNameGetter, createTinyOpenApiSourceRunner, defineOpenApiSchemas, findComponentEnumNames, findEnumNames, generateORPCOpenAPISpec, generateOpenApiFile, getComponentSchemas, getContractProcedureData, getDerivedOperationId, getModuleOpenApiController, getModuleOpenApiTag, getObjectPropertySchema, getOpenApiSchemaName, getOperationAction, getOperationController, getPaginatedItemSchema, getProcedureInputSchemaRole, getRobodevModuleRoles, getStringEnumValues, getLocalInputPath as getTinyOpenApiLocalInputPath, isContractProcedure, isNullSchema, isNullableOnlySchema, isObject, isProcedureMeta, isTinyOpenApiFakeMode, isZodSchema, modelSchemaExportName, modelSchemaNameEntries, namedControllerActionInputDtoSchema, namedControllerActionSchema, namedOpenApiOutputSchema, namedOpenApiRequestSchema, namedOpenApiResponseSchema, namedOpenApiSchema, normalizeWatchFolders as normalizeTinyOpenApiWatchFolders, operationKey, procedureSchemaName, resolveOpenApiOutputPath, routeHasPathParameters, schemaComponentRef, schemaExportName, sharedSchemaExportName, stripNoContentResponseBodies, toOpenAPI30Document, toOpenAPI30Schema, toOpenAPIAclRule, toPascalCase, visitZodSchema };
package/dist/tiny.mjs CHANGED
@@ -208,19 +208,22 @@ function schemaExportName(moduleName, exportName, schema, getSchemaName = getOpe
208
208
  const singularModulePrefix = modulePrefix.endsWith("s") ? modulePrefix.slice(0, -1) : modulePrefix;
209
209
  return moduleName === "common" || schemaName.startsWith(modulePrefix) || schemaName.startsWith(singularModulePrefix) ? schemaName : `${modulePrefix}${schemaName}`;
210
210
  }
211
+ function modelSchemaExportName(exportName) {
212
+ return exportName.replace(/Schema$/, "");
213
+ }
211
214
  function sharedSchemaExportName(exportName) {
212
215
  return exportName.replace(/Schema$/, "");
213
216
  }
214
217
  async function collectModelSchemaExports(options) {
215
- const apiSchemaGroups = options.apiRoot ? await collectApiModelSchemaExports(options.apiRoot, options) : [];
218
+ const apiSchemaGroups = options.apiRoot ? await collectApiModelSchemaExports(options.apiRoot) : [];
216
219
  const dbSchemaExports = options.dbTablesRoot ? await collectDbTableModelSchemaExports(options.dbTablesRoot) : [];
217
220
  return [...apiSchemaGroups, ...dbSchemaExports];
218
221
  }
219
- async function collectApiModelSchemaExports(apiRoot, options = {}) {
222
+ async function collectApiModelSchemaExports(apiRoot) {
220
223
  const entries = await readdir(apiRoot, { withFileTypes: true });
221
- return (await Promise.all(entries.filter((item) => item.isDirectory()).sort((a, b) => a.name.localeCompare(b.name)).map((entry) => collectModuleModelSchemaExports(apiRoot, entry.name, options)))).flat();
224
+ return (await Promise.all(entries.filter((item) => item.isDirectory()).sort((a, b) => a.name.localeCompare(b.name)).map((entry) => collectModuleModelSchemaExports(apiRoot, entry.name)))).flat();
222
225
  }
223
- async function collectModuleModelSchemaExports(apiRoot, moduleName, options = {}) {
226
+ async function collectModuleModelSchemaExports(apiRoot, moduleName) {
224
227
  const modelsPath = join(apiRoot, moduleName, `${moduleName}.models.ts`);
225
228
  try {
226
229
  await access(modelsPath);
@@ -234,7 +237,7 @@ async function collectModuleModelSchemaExports(apiRoot, moduleName, options = {}
234
237
  const schemas = [];
235
238
  for (const [exportName, schema] of Object.entries(models)) if (exportName.endsWith("Schema") && isZodSchema(schema)) schemas.push({
236
239
  moduleName,
237
- name: schemaExportName(moduleName, exportName, schema, options.getOpenApiSchemaName),
240
+ name: modelSchemaExportName(exportName),
238
241
  schema
239
242
  });
240
243
  return schemas;
@@ -363,18 +366,25 @@ function collectSchemaRegistryRoots(registry) {
363
366
  return schemas;
364
367
  }, /* @__PURE__ */ new Set());
365
368
  }
369
+ function modelSchemaNameEntries(modelSchemas) {
370
+ const schemaNameBySchema = /* @__PURE__ */ new Map();
371
+ for (const { name, schema } of modelSchemas) {
372
+ const existingName = schemaNameBySchema.get(schema);
373
+ if (!existingName || name.length < existingName.length) schemaNameBySchema.set(schema, name);
374
+ }
375
+ return schemaNameBySchema;
376
+ }
377
+ function createModelSchemaNameGetter(modelSchemas, getSchemaName = getOpenApiSchemaName) {
378
+ const schemaNameBySchema = modelSchemaNameEntries(modelSchemas);
379
+ return (schema) => (isZodSchema(schema) ? schemaNameBySchema.get(schema) : void 0) ?? getSchemaName(schema);
380
+ }
366
381
  async function collectReachableModelSchemas(router, options = {}) {
367
382
  const excludedSchemas = options.excludedSchemas ?? /* @__PURE__ */ new Set();
368
- const modelSchemas = await collectModelSchemaExports(options);
369
- const schemaNameBySchema = /* @__PURE__ */ new Map();
383
+ const modelSchemas = options.modelSchemas ?? await collectModelSchemaExports(options);
384
+ const schemaNameBySchema = modelSchemaNameEntries(modelSchemas);
370
385
  const routeRoots = collectContractSchemaRoots(router);
371
386
  const reachableSchemas = {};
372
387
  for (const { moduleName, name, schema } of modelSchemas) if ((moduleName === "common" || name.endsWith("SortableKey") || name.endsWith("OrderParamEnum")) && !excludedSchemas.has(schema)) reachableSchemas[name] = { schema };
373
- for (const { name, schema } of modelSchemas) {
374
- const existingName = schemaNameBySchema.get(schema);
375
- if (!existingName) schemaNameBySchema.set(schema, name);
376
- else if (existingName !== name) schemaNameBySchema.set(schema, existingName.length <= name.length ? existingName : name);
377
- }
378
388
  for (const root of routeRoots) {
379
389
  if (!isZodSchema(root)) continue;
380
390
  visitZodSchema(root, (schema) => {
@@ -579,14 +589,20 @@ function toOpenAPI30Document(spec) {
579
589
  async function generateORPCOpenAPISpec(options) {
580
590
  const [{ OpenAPIGenerator }, { ZodToJsonSchemaConverter }] = await Promise.all([importRuntimeModule("@orpc/openapi"), importRuntimeModule("@orpc/zod/zod4")]);
581
591
  const generator = new OpenAPIGenerator({ schemaConverters: [new ZodToJsonSchemaConverter()] });
582
- const getSchemaName = options.getOpenApiSchemaName ?? getOpenApiSchemaName;
592
+ const explicitSchemaName = options.getOpenApiSchemaName ?? getOpenApiSchemaName;
593
+ const modelSchemas = await collectModelSchemaExports({
594
+ apiRoot: options.apiRoot,
595
+ dbTablesRoot: options.dbTablesRoot
596
+ });
597
+ const getSchemaName = createModelSchemaNameGetter(modelSchemas, explicitSchemaName);
583
598
  const operationMeta = collectOperationMeta(options.contract);
584
599
  const extraSchemas = collectExtraSchemas(options.apiModules);
585
600
  const reachableModelSchemas = await collectReachableModelSchemas(options.contract, {
586
601
  apiRoot: options.apiRoot,
587
602
  dbTablesRoot: options.dbTablesRoot,
588
603
  excludedSchemas: collectSchemaRegistryRoots(extraSchemas),
589
- getOpenApiSchemaName: getSchemaName
604
+ getOpenApiSchemaName: getSchemaName,
605
+ modelSchemas
590
606
  });
591
607
  const commonSchemas = {
592
608
  ...collectContractSchemas(options.contract, [], {}, getSchemaName),
@@ -632,4 +648,4 @@ async function generateORPCOpenAPISpec(options) {
632
648
  }
633
649
 
634
650
  //#endregion
635
- export { addContractSchema, applyEnumExtensions, applyOperationMeta, applyPaginatedItemSchemas, applyParameterExtensions, applyRobodevModuleExtensions, applyRobodevUserRolesExtension, asStringArray, collectApiModelSchemaExports, collectContractSchemaRoots, collectContractSchemas, collectDbTableModelSchemaExport, collectDbTableModelSchemaExports, collectExtraSchemas, collectModelSchemaExports, collectModuleModelSchemaExports, collectOperationMeta, collectOperationTags, collectReachableModelSchemas, collectSchemaRegistryRoots, compactTagName, createTinyOpenApiSourceRunner, defineOpenApiSchemas, findComponentEnumNames, findEnumNames, generateORPCOpenAPISpec, generateOpenApiFile, getComponentSchemas, getContractProcedureData, getDerivedOperationId, getModuleOpenApiController, getModuleOpenApiTag, getObjectPropertySchema, getOpenApiSchemaName, getOperationAction, getOperationController, getPaginatedItemSchema, getProcedureInputSchemaRole, getRobodevModuleRoles, getStringEnumValues, getLocalInputPath as getTinyOpenApiLocalInputPath, isContractProcedure, isNullSchema, isNullableOnlySchema, isObject, isProcedureMeta, isTinyOpenApiFakeMode, isZodSchema, namedControllerActionInputDtoSchema, namedControllerActionSchema, namedOpenApiOutputSchema, namedOpenApiRequestSchema, namedOpenApiResponseSchema, namedOpenApiSchema, normalizeWatchFolders as normalizeTinyOpenApiWatchFolders, operationKey, procedureSchemaName, resolveOpenApiOutputPath, routeHasPathParameters, schemaComponentRef, schemaExportName, sharedSchemaExportName, stripNoContentResponseBodies, toOpenAPI30Document, toOpenAPI30Schema, toOpenAPIAclRule, toPascalCase, visitZodSchema };
651
+ export { addContractSchema, applyEnumExtensions, applyOperationMeta, applyPaginatedItemSchemas, applyParameterExtensions, applyRobodevModuleExtensions, applyRobodevUserRolesExtension, asStringArray, collectApiModelSchemaExports, collectContractSchemaRoots, collectContractSchemas, collectDbTableModelSchemaExport, collectDbTableModelSchemaExports, collectExtraSchemas, collectModelSchemaExports, collectModuleModelSchemaExports, collectOperationMeta, collectOperationTags, collectReachableModelSchemas, collectSchemaRegistryRoots, compactTagName, createModelSchemaNameGetter, createTinyOpenApiSourceRunner, defineOpenApiSchemas, findComponentEnumNames, findEnumNames, generateORPCOpenAPISpec, generateOpenApiFile, getComponentSchemas, getContractProcedureData, getDerivedOperationId, getModuleOpenApiController, getModuleOpenApiTag, getObjectPropertySchema, getOpenApiSchemaName, getOperationAction, getOperationController, getPaginatedItemSchema, getProcedureInputSchemaRole, getRobodevModuleRoles, getStringEnumValues, getLocalInputPath as getTinyOpenApiLocalInputPath, isContractProcedure, isNullSchema, isNullableOnlySchema, isObject, isProcedureMeta, isTinyOpenApiFakeMode, isZodSchema, modelSchemaExportName, modelSchemaNameEntries, namedControllerActionInputDtoSchema, namedControllerActionSchema, namedOpenApiOutputSchema, namedOpenApiRequestSchema, namedOpenApiResponseSchema, namedOpenApiSchema, normalizeWatchFolders as normalizeTinyOpenApiWatchFolders, operationKey, procedureSchemaName, resolveOpenApiOutputPath, routeHasPathParameters, schemaComponentRef, schemaExportName, sharedSchemaExportName, stripNoContentResponseBodies, toOpenAPI30Document, toOpenAPI30Schema, toOpenAPIAclRule, toPascalCase, visitZodSchema };
package/dist/vite.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { r as GenerateFileFormatter } from "./options-CE4Koxof.mjs";
2
2
  import { t as OpenAPICodegenConfig } from "./config-BU7wVf7U.mjs";
3
- import { a as GenerateOpenApiFile } from "./openapi-D9apjIRy.mjs";
3
+ import { a as GenerateOpenApiFile } from "./openapi-BkC5yZ-W.mjs";
4
4
  import { Plugin, PluginOption } from "vite";
5
5
 
6
6
  //#region src/plugins/openapi-codegen.runner.d.ts
package/package.json CHANGED
@@ -138,5 +138,5 @@
138
138
  "pnpm": ">= 9"
139
139
  },
140
140
  "packageManager": "pnpm@10.4.0",
141
- "version": "3.1.0-rc.2"
141
+ "version": "3.1.0-rc.3"
142
142
  }