@amartus/oas-utils 0.3.5 → 0.3.6
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allOfToOneOf.d.ts","sourceRoot":"","sources":["../../src/lib/allOfToOneOf.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,qGAAqG;IACrG,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8FAA8F;IAC9F,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,mBAAwB,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"allOfToOneOf.d.ts","sourceRoot":"","sources":["../../src/lib/allOfToOneOf.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,qGAAqG;IACrG,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8FAA8F;IAC9F,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,mBAAwB,GAAG,GAAG,CA8H1E"}
|
package/dist/lib/allOfToOneOf.js
CHANGED
|
@@ -67,9 +67,48 @@ export function allOfToOneOf(doc, opts = {}) {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
// Step 5: Replace references to base schemas with wrapper schemas where polymorphism is used
|
|
70
|
-
//
|
|
70
|
+
// Preserve direct inheritance (allOf) references but rewrite everything else
|
|
71
71
|
for (const [baseName, wrapperInfo] of polymorphicWrappers.entries()) {
|
|
72
|
-
|
|
72
|
+
const baseRef = `#/components/schemas/${baseName}`;
|
|
73
|
+
const wrapperRef = `#/components/schemas/${wrapperInfo.name}`;
|
|
74
|
+
// In components.schemas we must keep allOf inheritance pointing at the base,
|
|
75
|
+
// but other usages (e.g. Human.pets, Pack.members) should point to the wrapper.
|
|
76
|
+
replaceInSchema(schemas, baseRef, wrapperRef, true);
|
|
77
|
+
// In other document sections we can freely replace all occurrences.
|
|
78
|
+
replaceInSchema(doc.paths, baseRef, wrapperRef, false);
|
|
79
|
+
replaceInSchema(doc.webhooks, baseRef, wrapperRef, false);
|
|
80
|
+
const components = doc.components;
|
|
81
|
+
if (components && typeof components === "object") {
|
|
82
|
+
// Shared components using schemas
|
|
83
|
+
replaceInSchema(components.requestBodies, baseRef, wrapperRef, false);
|
|
84
|
+
replaceInSchema(components.responses, baseRef, wrapperRef, false);
|
|
85
|
+
replaceInSchema(components.parameters, baseRef, wrapperRef, false);
|
|
86
|
+
// Callbacks and links can contain operations and request bodies using schemas
|
|
87
|
+
replaceInCallbacks(components.callbacks, baseRef, wrapperRef);
|
|
88
|
+
replaceInSchema(components.links, baseRef, wrapperRef, false);
|
|
89
|
+
// Intentionally do NOT touch headers or examples
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Step 5b: Chain polymorphic wrappers.
|
|
93
|
+
// If a wrapper's oneOf entry points at another polymorphic base, redirect it to that base's wrapper
|
|
94
|
+
// so that top-level polymorphic wrappers expose nested polymorphic wrappers instead of raw bases.
|
|
95
|
+
if (polymorphicWrappers.size > 1) {
|
|
96
|
+
for (const [, wrapperInfo] of polymorphicWrappers.entries()) {
|
|
97
|
+
const wrapperSchema = schemas[wrapperInfo.name];
|
|
98
|
+
if (!wrapperSchema || !Array.isArray(wrapperSchema.oneOf))
|
|
99
|
+
continue;
|
|
100
|
+
wrapperSchema.oneOf = wrapperSchema.oneOf.map((entry) => {
|
|
101
|
+
if (!entry || typeof entry !== "object" || typeof entry.$ref !== "string") {
|
|
102
|
+
return entry;
|
|
103
|
+
}
|
|
104
|
+
const targetName = refToName(entry.$ref || "");
|
|
105
|
+
const nested = targetName ? polymorphicWrappers.get(targetName) : undefined;
|
|
106
|
+
if (!nested) {
|
|
107
|
+
return entry;
|
|
108
|
+
}
|
|
109
|
+
return { $ref: `#/components/schemas/${nested.name}` };
|
|
110
|
+
});
|
|
111
|
+
}
|
|
73
112
|
}
|
|
74
113
|
// Step 6: Optionally remove discriminator from base schemas
|
|
75
114
|
if (opts.removeDiscriminatorFromBase) {
|
|
@@ -81,20 +120,6 @@ export function allOfToOneOf(doc, opts = {}) {
|
|
|
81
120
|
}
|
|
82
121
|
return doc;
|
|
83
122
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Replace references to a polymorphic base schema with references to its wrapper,
|
|
86
|
-
* but only in contexts where polymorphism would be used (e.g., in array items).
|
|
87
|
-
* Excludes references within concrete schemas' direct allOf references.
|
|
88
|
-
*/
|
|
89
|
-
function replacePolymorhicReferences(schemas, baseName, wrapperName) {
|
|
90
|
-
const baseRef = `#/components/schemas/${baseName}`;
|
|
91
|
-
const wrapperRef = `#/components/schemas/${wrapperName}`;
|
|
92
|
-
for (const schema of Object.values(schemas)) {
|
|
93
|
-
if (!schema || typeof schema !== "object")
|
|
94
|
-
continue;
|
|
95
|
-
replaceInSchema(schema, baseRef, wrapperRef, true);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
123
|
/**
|
|
99
124
|
* Recursively replace $ref in a schema, particularly in polymorphic contexts like array items.
|
|
100
125
|
* When skipAllOfReplacement=true, skip replacing $ref directly within allOf arrays.
|
|
@@ -105,16 +130,7 @@ function replaceInSchema(node, oldRef, newRef, skipDirectAllOfRefs = false) {
|
|
|
105
130
|
if (Array.isArray(node)) {
|
|
106
131
|
for (const item of node) {
|
|
107
132
|
if (item && typeof item === "object") {
|
|
108
|
-
|
|
109
|
-
// Don't replace direct $ref in allOf when flag is set
|
|
110
|
-
if (skipDirectAllOfRefs) {
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
item.$ref = newRef;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
replaceInSchema(item, oldRef, newRef, skipDirectAllOfRefs);
|
|
117
|
-
}
|
|
133
|
+
replaceInSchema(item, oldRef, newRef, skipDirectAllOfRefs);
|
|
118
134
|
}
|
|
119
135
|
}
|
|
120
136
|
return;
|
|
@@ -122,12 +138,16 @@ function replaceInSchema(node, oldRef, newRef, skipDirectAllOfRefs = false) {
|
|
|
122
138
|
// For object properties, replace all $ref occurrences
|
|
123
139
|
for (const [key, value] of Object.entries(node)) {
|
|
124
140
|
if (value && typeof value === "object") {
|
|
125
|
-
// Special handling for allOf: skip direct $ref replacements
|
|
141
|
+
// Special handling for allOf: skip direct $ref replacements when requested
|
|
126
142
|
if (skipDirectAllOfRefs && key === "allOf" && Array.isArray(value)) {
|
|
127
143
|
for (const item of value) {
|
|
128
|
-
if (item
|
|
129
|
-
|
|
144
|
+
if (!item || typeof item !== "object")
|
|
145
|
+
continue;
|
|
146
|
+
// Keep direct inheritance refs to the base inside allOf
|
|
147
|
+
if (item.$ref === oldRef) {
|
|
148
|
+
continue;
|
|
130
149
|
}
|
|
150
|
+
replaceInSchema(item, oldRef, newRef, skipDirectAllOfRefs);
|
|
131
151
|
}
|
|
132
152
|
continue;
|
|
133
153
|
}
|
|
@@ -138,6 +158,44 @@ function replaceInSchema(node, oldRef, newRef, skipDirectAllOfRefs = false) {
|
|
|
138
158
|
}
|
|
139
159
|
}
|
|
140
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Replace references inside callback components.
|
|
163
|
+
* A callback map has shape { [name]: { [expression]: PathItemObject } }.
|
|
164
|
+
* We can reuse replaceInSchema on each PathItemObject.
|
|
165
|
+
*/
|
|
166
|
+
function replaceInCallbacks(callbacks, oldRef, newRef) {
|
|
167
|
+
if (!callbacks || typeof callbacks !== "object")
|
|
168
|
+
return;
|
|
169
|
+
// callbacks object shape is { [callbackName]: { [expression]: PathItemObject } }
|
|
170
|
+
for (const cb of Object.values(callbacks)) {
|
|
171
|
+
if (!cb || typeof cb !== "object")
|
|
172
|
+
continue;
|
|
173
|
+
for (const pathItem of Object.values(cb)) {
|
|
174
|
+
if (!pathItem || typeof pathItem !== "object")
|
|
175
|
+
continue;
|
|
176
|
+
// PathItemObject has operations, parameters, etc. We need to walk
|
|
177
|
+
// operations (get/post/put/patch/delete/options/head/trace) so that
|
|
178
|
+
// requestBody/ responses schemas are updated just like in paths.
|
|
179
|
+
const opLike = pathItem;
|
|
180
|
+
const operationKeys = [
|
|
181
|
+
"get",
|
|
182
|
+
"put",
|
|
183
|
+
"post",
|
|
184
|
+
"delete",
|
|
185
|
+
"options",
|
|
186
|
+
"head",
|
|
187
|
+
"patch",
|
|
188
|
+
"trace"
|
|
189
|
+
];
|
|
190
|
+
for (const key of operationKeys) {
|
|
191
|
+
const op = opLike[key];
|
|
192
|
+
if (op && typeof op === "object") {
|
|
193
|
+
replaceInSchema(op, oldRef, newRef, false);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
141
199
|
/**
|
|
142
200
|
* Add const constraint to each concrete schema matching the discriminator value.
|
|
143
201
|
* Avoids duplicates by checking if the const constraint already exists.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allOfToOneOf.js","sourceRoot":"","sources":["../../src/lib/allOfToOneOf.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"allOfToOneOf.js","sourceRoot":"","sources":["../../src/lib/allOfToOneOf.ts"],"names":[],"mappings":"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"}
|