@workos/oagen 0.21.0 → 0.21.1
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/cli/index.mjs +229 -34
- package/dist/cli/index.mjs.map +1 -1
- package/dist/{diff-CBFCoTCw.mjs → diff-Dobf9PHC.mjs} +205 -33
- package/dist/diff-Dobf9PHC.mjs.map +1 -0
- package/dist/index.mjs +26 -3
- package/dist/index.mjs.map +1 -1
- package/dist/scripts/smoke/baseline.mjs +25 -2
- package/dist/scripts/smoke/baseline.mjs.map +1 -1
- package/dist/smoke.mjs +25 -2
- package/dist/smoke.mjs.map +1 -1
- package/dist/verify/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/diff-CBFCoTCw.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { A as walkTypeRef, C as assertNever, D as collectModelRefs, E as collectFieldDependencies, O as collectRequestBodyModels, S as SpecParseError, T as collectEnumRefs, _ as ConfigVersionMismatchError, a as singularize, b as OagenError, c as stripListItemMarkers, d as toPascalCase, f as toSnakeCase, g as ConfigLoadError, h as ConfigError, k as mapTypeRef, l as toCamelCase, m as CommandError, n as ACRONYM_SET, o as splitWords, p as toUpperSnakeCase, r as cleanSchemaName, s as stripBackendPrefixes, u as toKebabCase, v as ExtractorError, w as assignModelsToServices, x as RegistryError, y as InternalError } from "./tree-sitter-DcUvm0KA.mjs";
|
|
2
|
-
import { c as treeShakeFiles, d as collectReferencedNames, f as generateAllFiles, h as resolveOperations, i as generate, l as applyFileHeaders, m as deriveMethodName, n as getEmitter, o as integrateGeneratedFiles, p as generateFiles, r as registerEmitter, s as mapFilesForTargetIntegration, t as diffSpecs, u as buildEmitterContext } from "./diff-
|
|
2
|
+
import { c as treeShakeFiles, d as collectReferencedNames, f as generateAllFiles, h as resolveOperations, i as generate, l as applyFileHeaders, m as deriveMethodName, n as getEmitter, o as integrateGeneratedFiles, p as generateFiles, r as registerEmitter, s as mapFilesForTargetIntegration, t as diffSpecs, u as buildEmitterContext } from "./diff-Dobf9PHC.mjs";
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
import { resolve } from "node:path";
|
|
5
5
|
import { pathToFileURL } from "node:url";
|
|
@@ -185,7 +185,7 @@ function qualifyInlineModelName(baseName, parentName) {
|
|
|
185
185
|
function extractInlineModelsFromSchemas(schemas) {
|
|
186
186
|
if (!schemas) return [];
|
|
187
187
|
const inlineModels = [];
|
|
188
|
-
for (const [schemaName, schema] of Object.entries(schemas)) extractInlineModelsFromProperties(schema, inlineModels,
|
|
188
|
+
for (const [schemaName, schema] of Object.entries(schemas)) extractInlineModelsFromProperties(schema, inlineModels, resolveSchemaName(schemaName));
|
|
189
189
|
return inlineModels;
|
|
190
190
|
}
|
|
191
191
|
function extractInlineModelsFromProperties(schema, results, parentName) {
|
|
@@ -2369,6 +2369,27 @@ function collapseJsonSuffixModels(models, services) {
|
|
|
2369
2369
|
rewriteModelRefs(normalizedModels, services, jsonModel.name, baseModel.name);
|
|
2370
2370
|
console.warn(`[oagen] Merged "${jsonModel.name}" into "${baseModel.name}" (${jsonModel.fields.length} fields, superset)`);
|
|
2371
2371
|
}
|
|
2372
|
+
for (const { jsonModel, baseModel } of mergeCandidates) {
|
|
2373
|
+
const jsonPrefix = jsonModel.name;
|
|
2374
|
+
const basePrefix = baseModel.name;
|
|
2375
|
+
for (const model of normalizedModels) {
|
|
2376
|
+
if (toRemove.has(model.name)) continue;
|
|
2377
|
+
if (model.name.length <= jsonPrefix.length) continue;
|
|
2378
|
+
if (!model.name.startsWith(jsonPrefix)) continue;
|
|
2379
|
+
const newName = basePrefix + model.name.slice(jsonPrefix.length);
|
|
2380
|
+
const existing = byName.get(newName);
|
|
2381
|
+
if (existing && !toRemove.has(existing.name)) {
|
|
2382
|
+
toRemove.add(model.name);
|
|
2383
|
+
rewriteModelRefs(normalizedModels, services, model.name, newName);
|
|
2384
|
+
console.warn(`[oagen] Collapsed child "${model.name}" into existing "${newName}"`);
|
|
2385
|
+
} else {
|
|
2386
|
+
rewriteModelRefs(normalizedModels, services, model.name, newName);
|
|
2387
|
+
model.name = newName;
|
|
2388
|
+
byName.set(newName, model);
|
|
2389
|
+
console.warn(`[oagen] Renamed child "${jsonPrefix}…" → "${newName}"`);
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
}
|
|
2372
2393
|
return normalizedModels.filter((m) => !toRemove.has(m.name));
|
|
2373
2394
|
}
|
|
2374
2395
|
//#endregion
|
|
@@ -2421,8 +2442,10 @@ async function parseSpec(specPath, options) {
|
|
|
2421
2442
|
if (!version.startsWith("3.")) throw new SpecParseError(`Unsupported OpenAPI version: ${version}. oagen requires OpenAPI 3.x`, `Update the spec to OpenAPI 3.0 or 3.1. If you are using Swagger 2.x, convert it first with \`npx swagger2openapi ${specPath}\`.`);
|
|
2422
2443
|
const { models, enums } = extractSchemas(spec.components?.schemas, { schemaNameTransform: options?.schemaNameTransform });
|
|
2423
2444
|
const { services, inlineModels } = extractOperations(spec.paths, options?.operationIdTransform, spec.components?.schemas);
|
|
2445
|
+
const responseNormalizedModels = mergeInlineResponseModels(models, inlineModels);
|
|
2446
|
+
const fieldInlineModels = extractInlineModelsFromSchemas(spec.components?.schemas);
|
|
2424
2447
|
clearSchemaNameTransform();
|
|
2425
|
-
const finalModels = collapseJsonSuffixModels(mergeFieldInlineModels(
|
|
2448
|
+
const finalModels = collapseJsonSuffixModels(mergeFieldInlineModels(responseNormalizedModels, fieldInlineModels), services);
|
|
2426
2449
|
collectInlineEnumsFromModels(finalModels, enums);
|
|
2427
2450
|
collectInlineEnumsFromOperations(services, enums);
|
|
2428
2451
|
const auth = extractAuthSchemes(spec.components?.securitySchemes);
|