@amartus/oas-utils 0.3.7 → 0.3.9
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/lib/sealSchema.d.ts +1 -16
- package/dist/lib/sealSchema.d.ts.map +1 -1
- package/dist/lib/sealSchema.js +171 -441
- package/dist/lib/sealSchema.js.map +1 -1
- package/package.json +4 -3
package/dist/lib/sealSchema.d.ts
CHANGED
|
@@ -1,24 +1,9 @@
|
|
|
1
1
|
export interface SealSchemaOptions {
|
|
2
|
-
/** If true, use unevaluatedProperties: false instead of additionalProperties: false (default: true) */
|
|
3
2
|
useUnevaluatedProperties?: boolean;
|
|
4
|
-
/** If true, automatically upgrade OpenAPI/JSON Schema version to support unevaluatedProperties (default: false) */
|
|
5
3
|
uplift?: boolean;
|
|
6
4
|
}
|
|
7
5
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* This ensures every final object shape exposed in the API is sealed (no additional properties allowed),
|
|
11
|
-
* without breaking schemas that are extended via allOf.
|
|
12
|
-
*
|
|
13
|
-
* Algorithm:
|
|
14
|
-
* 1. Index the schema and identify all $ref usages (extension vs direct)
|
|
15
|
-
* 2. Classify object-type schemas (pre-sealed, core-candidate, direct-only)
|
|
16
|
-
* 3. For core-candidates: create Core variant + sealed wrapper
|
|
17
|
-
* 4. Rewrite refs inside allOf to point to Core variants
|
|
18
|
-
* 5. Seal composition roots (allOf/anyOf/oneOf) and direct objects
|
|
19
|
-
*
|
|
20
|
-
* @param doc - OpenAPI document or standalone JSON Schema to transform
|
|
21
|
-
* @param opts - Optional configuration
|
|
6
|
+
* Scaffolded sealSchema - returns the document unchanged.
|
|
22
7
|
*/
|
|
23
8
|
export declare function sealSchema(doc: any, opts?: SealSchemaOptions): any;
|
|
24
9
|
//# sourceMappingURL=sealSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sealSchema.d.ts","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sealSchema.d.ts","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,iBAAiB;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,iBAAsB,GAAG,GAAG,CA2CtE"}
|
package/dist/lib/sealSchema.js
CHANGED
|
@@ -1,475 +1,205 @@
|
|
|
1
|
-
|
|
1
|
+
// Single clean scaffold file — public API preserved and helpers stubbed.
|
|
2
2
|
import { JSONPath } from "jsonpath-plus";
|
|
3
|
+
import { documentSupportsUnevaluatedProperties, getOpenApiVersion, getJsonSchemaVersion, upgradeToOas31, upgradeJsonSchemaToDraft201909, } from "./oasUtils.js";
|
|
4
|
+
import jsonPatch from 'fast-json-patch';
|
|
5
|
+
const { applyPatch } = jsonPatch;
|
|
6
|
+
const isAllOf = (prop) => {
|
|
7
|
+
return prop.split("/").at(-2) === "allOf";
|
|
8
|
+
};
|
|
3
9
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* This ensures every final object shape exposed in the API is sealed (no additional properties allowed),
|
|
7
|
-
* without breaking schemas that are extended via allOf.
|
|
8
|
-
*
|
|
9
|
-
* Algorithm:
|
|
10
|
-
* 1. Index the schema and identify all $ref usages (extension vs direct)
|
|
11
|
-
* 2. Classify object-type schemas (pre-sealed, core-candidate, direct-only)
|
|
12
|
-
* 3. For core-candidates: create Core variant + sealed wrapper
|
|
13
|
-
* 4. Rewrite refs inside allOf to point to Core variants
|
|
14
|
-
* 5. Seal composition roots (allOf/anyOf/oneOf) and direct objects
|
|
15
|
-
*
|
|
16
|
-
* @param doc - OpenAPI document or standalone JSON Schema to transform
|
|
17
|
-
* @param opts - Optional configuration
|
|
10
|
+
* Scaffolded sealSchema - returns the document unchanged.
|
|
18
11
|
*/
|
|
19
12
|
export function sealSchema(doc, opts = {}) {
|
|
20
|
-
if (!doc || typeof doc !== "object")
|
|
21
|
-
return doc;
|
|
22
13
|
const useUnevaluated = opts.useUnevaluatedProperties !== false;
|
|
23
14
|
let sealing = useUnevaluated ? "unevaluatedProperties" : "additionalProperties";
|
|
24
|
-
// Check if this is a standalone JSON Schema (not an OpenAPI document)
|
|
25
|
-
const isStandalone = isStandaloneJsonSchema(doc);
|
|
26
15
|
const supportsUnevaluated = documentSupportsUnevaluatedProperties(doc);
|
|
27
16
|
const containsAllOfRefs = documentContainsAllOfRefs(doc);
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
17
|
+
const requiresUplift = !supportsUnevaluated && (useUnevaluated || containsAllOfRefs);
|
|
18
|
+
if (requiresUplift) {
|
|
19
|
+
const versionInfo = versionStr(doc, "OpenAPI") || versionStr(doc, "JSON Schema");
|
|
20
|
+
if (!useUnevaluated) {
|
|
21
|
+
throw new Error(`Sealing via additionalProperties:false cannot reliably cover schemas composed with allOf in ${versionInfo}. ` +
|
|
22
|
+
`Use --use-unevaluated-properties or enable --uplift to upgrade the document to a version that supports unevaluatedProperties.`);
|
|
23
|
+
}
|
|
24
|
+
if (opts.uplift === true || versionInfo === undefined) {
|
|
25
|
+
doc = upliftDocument(doc);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
throwUpliftError(versionInfo);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const allProps = find(doc, "$..properties");
|
|
32
|
+
const allRefs = toReverseMap(find(doc, `$..[?(@['$ref'])]`));
|
|
33
|
+
const allOfSchemas = find(doc, "$..allOf");
|
|
34
|
+
const toSealSingle = filter(allProps, allRefs);
|
|
35
|
+
const toSealCompositions = filterCompositions(allOfSchemas, allRefs);
|
|
36
|
+
const toMap = calculateMappings(allRefs);
|
|
37
|
+
for (const prop of toSealSingle) {
|
|
38
|
+
prop.parent[sealing] = false;
|
|
39
|
+
}
|
|
40
|
+
for (const comp of toSealCompositions) {
|
|
41
|
+
comp.parent["unevaluatedProperties"] = false;
|
|
42
|
+
}
|
|
43
|
+
return applyMappings(doc, toMap);
|
|
44
|
+
}
|
|
45
|
+
function applyMappings(doc, mappings) {
|
|
46
|
+
const operations = mappings.flatMap((mapping) => {
|
|
47
|
+
const move = {
|
|
48
|
+
"op": "move",
|
|
49
|
+
"from": mapping.orginalRef,
|
|
50
|
+
"path": mapping.wrapperRef
|
|
51
|
+
};
|
|
52
|
+
const add = {
|
|
53
|
+
"op": "add",
|
|
54
|
+
"path": mapping.orginalRef,
|
|
55
|
+
"value": {
|
|
56
|
+
"allOf": [{ "$ref": `#${mapping.wrapperRef}` }],
|
|
57
|
+
"unevaluatedProperties": false
|
|
56
58
|
}
|
|
57
|
-
}
|
|
58
|
-
else if (opts.uplift && isStandalone) {
|
|
59
|
-
// If no version and it's a standalone schema, set it when uplift is enabled
|
|
60
|
-
upgradeJsonSchemaToDraft201909(doc);
|
|
61
|
-
console.warn(`[SEAL-SCHEMA] Set JSON Schema version to draft 2019-09 to support unevaluatedProperties.`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
// If not using unevaluatedProperties, validate compatibility
|
|
65
|
-
if (!useUnevaluated) {
|
|
66
|
-
validateAdditionalPropertiesCompatibility(doc, supportsUnevaluated, containsAllOfRefs);
|
|
67
|
-
}
|
|
68
|
-
const handler = selectSealHandler(isStandalone);
|
|
69
|
-
const context = handler.createContext(doc);
|
|
70
|
-
const normalizedSchemas = context.schemas;
|
|
71
|
-
if (!normalizedSchemas || typeof normalizedSchemas !== "object")
|
|
72
|
-
return doc;
|
|
73
|
-
applySealingToSchemaMap(normalizedSchemas, sealing, supportsUnevaluated);
|
|
74
|
-
return handler.finalize(doc, context);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Determine whether the provided document contains any schemas that use `allOf`
|
|
78
|
-
*/
|
|
79
|
-
function documentContainsAllOfRefs(doc) {
|
|
80
|
-
// Use JSONPath to find any allOf entries
|
|
81
|
-
try {
|
|
82
|
-
const matches = JSONPath({ path: "$..allOf", json: doc });
|
|
83
|
-
return Array.isArray(matches) && matches.length > 0;
|
|
84
|
-
}
|
|
85
|
-
catch (e) {
|
|
86
|
-
// If JSONPath fails for some reason, fall back to conservative false
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Validate that attempting to seal using `additionalProperties:false` is
|
|
92
|
-
* compatible with the document's declared OpenAPI/JSON Schema version. Throw
|
|
93
|
-
* a descriptive error when an explicit older version is present and the
|
|
94
|
-
* document contains allOf references that would make sealing ineffective.
|
|
95
|
-
*/
|
|
96
|
-
function validateAdditionalPropertiesCompatibility(doc, supportsUnevaluated, containsAllOfRefs) {
|
|
97
|
-
const oasVersion = getOpenApiVersion(doc);
|
|
98
|
-
const schemaVersion = getJsonSchemaVersion(doc);
|
|
99
|
-
const hasExplicitVersion = oasVersion || schemaVersion;
|
|
100
|
-
if (hasExplicitVersion && !supportsUnevaluated && containsAllOfRefs) {
|
|
101
|
-
const versionInfo = oasVersion ? `OpenAPI ${oasVersion}` : `JSON Schema ${schemaVersion}`;
|
|
102
|
-
throw new Error(`Sealing via additionalProperties:false cannot reliably cover schemas composed with allOf in ${versionInfo}. ` +
|
|
103
|
-
`Use --use-unevaluated-properties or enable --uplift to upgrade the document to a version that supports unevaluatedProperties.`);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
const openApiSealHandler = {
|
|
107
|
-
createContext(doc) {
|
|
108
|
-
return {
|
|
109
|
-
schemas: doc.components?.schemas,
|
|
110
|
-
wrappedName: "",
|
|
111
|
-
isStandalone: false,
|
|
112
59
|
};
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
60
|
+
const copyMetadata = [{
|
|
61
|
+
"op": "copy",
|
|
62
|
+
"from": `${mapping.wrapperRef}/description`,
|
|
63
|
+
"path": `${mapping.orginalRef}/description`
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"op": "copy",
|
|
67
|
+
"from": `${mapping.wrapperRef}/title`,
|
|
68
|
+
"path": `${mapping.orginalRef}/title`
|
|
69
|
+
}
|
|
70
|
+
];
|
|
71
|
+
const replaces = mapping.declarationPointers.map((declPtr) => {
|
|
72
|
+
return {
|
|
73
|
+
"op": "replace",
|
|
74
|
+
"path": declPtr,
|
|
75
|
+
"value": {
|
|
76
|
+
"$ref": `#${mapping.wrapperRef}`
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
return [move, add, ...copyMetadata, ...replaces];
|
|
81
|
+
});
|
|
82
|
+
operations.sort((a, b) => {
|
|
83
|
+
if (a.op === "replace" && b.op !== "replace")
|
|
84
|
+
return -1;
|
|
85
|
+
if (a.op !== "replace" && b.op === "replace")
|
|
86
|
+
return 1;
|
|
87
|
+
return 0;
|
|
88
|
+
});
|
|
89
|
+
applyPatch(doc, operations);
|
|
90
|
+
return doc;
|
|
91
|
+
}
|
|
92
|
+
function calculateMappings(allRefs) {
|
|
93
|
+
return Object.entries(allRefs)
|
|
94
|
+
.filter(([_, refValues]) => refValues.length > 1)
|
|
95
|
+
.filter(([_, refValues]) => {
|
|
96
|
+
const count = refValues.filter((p) => isAllOf(p)).length;
|
|
97
|
+
return count != 0 && count != refValues.length;
|
|
98
|
+
})
|
|
99
|
+
.map(([refPointer, refValues]) => {
|
|
121
100
|
return {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
101
|
+
orginalRef: refPointer,
|
|
102
|
+
wrapperRef: `${refPointer}Core`,
|
|
103
|
+
declarationPointers: refValues.filter((p) => isAllOf(p)),
|
|
125
104
|
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
function
|
|
138
|
-
|
|
139
|
-
return;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const coreMapping = this.createCoreMapping(referenced);
|
|
157
|
-
this.rewriteReferences(coreMapping);
|
|
158
|
-
this.sealSchemas(coreMapping);
|
|
159
|
-
sealInlineSchemas(this.schemas, this.sealing, this.supportsUnevaluated);
|
|
160
|
-
this.postprocess();
|
|
161
|
-
}
|
|
162
|
-
preprocess() { }
|
|
163
|
-
postprocess() { }
|
|
164
|
-
collectReferencedInAllOf() {
|
|
165
|
-
const referenced = new Set();
|
|
166
|
-
for (const schema of Object.values(this.schemas)) {
|
|
167
|
-
if (!schema || typeof schema !== "object")
|
|
168
|
-
continue;
|
|
169
|
-
if (!Array.isArray(schema.allOf))
|
|
170
|
-
continue;
|
|
171
|
-
for (const item of schema.allOf) {
|
|
172
|
-
if (item && typeof item === "object" && typeof item.$ref === "string") {
|
|
173
|
-
const refName = refToName(item.$ref);
|
|
174
|
-
if (refName && this.schemas[refName]) {
|
|
175
|
-
referenced.add(refName);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return referenced;
|
|
181
|
-
}
|
|
182
|
-
createCoreMapping(referenced) {
|
|
183
|
-
const coreMapping = new Map();
|
|
184
|
-
for (const name of referenced) {
|
|
185
|
-
const schema = this.schemas[name];
|
|
186
|
-
if (schema &&
|
|
187
|
-
typeof schema === "object" &&
|
|
188
|
-
!isPreSealed(schema) &&
|
|
189
|
-
isObjectLike(schema)) {
|
|
190
|
-
const coreName = `${name}Core`;
|
|
191
|
-
coreMapping.set(name, coreName);
|
|
192
|
-
const coreSchema = deepClone(schema);
|
|
193
|
-
removeSealing(coreSchema);
|
|
194
|
-
const wrapper = {
|
|
195
|
-
allOf: [{ $ref: this.getCoreRef(coreName) }],
|
|
196
|
-
};
|
|
197
|
-
wrapper[this.sealing] = false;
|
|
198
|
-
if (coreSchema.description) {
|
|
199
|
-
wrapper.description = coreSchema.description;
|
|
200
|
-
delete coreSchema.description;
|
|
201
|
-
}
|
|
202
|
-
this.schemas[coreName] = coreSchema;
|
|
203
|
-
this.schemas[name] = wrapper;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return coreMapping;
|
|
207
|
-
}
|
|
208
|
-
rewriteReferences(coreMapping) {
|
|
209
|
-
for (const [originalName, coreName] of coreMapping.entries()) {
|
|
210
|
-
this.updateReference(originalName, coreName);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function filterCompositions(allOfSchemas, allRefs) {
|
|
108
|
+
return allOfSchemas.filter((item) => {
|
|
109
|
+
const arr = JSONPath.toPathArray(item.path);
|
|
110
|
+
arr.pop(); // remove 'allOf'
|
|
111
|
+
const pointer = JSONPath.toPointer(arr);
|
|
112
|
+
const refs = allRefs[pointer];
|
|
113
|
+
return refs == undefined || !refs.some(x => isAllOf(x));
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function filter(allProps, allRefs) {
|
|
117
|
+
const inlineComposed = (prop) => {
|
|
118
|
+
return prop.length > 2 && prop[prop.length - 2] === "allOf";
|
|
119
|
+
};
|
|
120
|
+
const filtered = allProps.filter((prop) => {
|
|
121
|
+
const path = JSONPath.toPathArray(prop.path).slice(0, -1);
|
|
122
|
+
const pointer = JSONPath.toPointer(path);
|
|
123
|
+
const refs = allRefs[pointer];
|
|
124
|
+
return !inlineComposed(path) && (refs === undefined || refs.every(x => !isAllOf(x)));
|
|
125
|
+
});
|
|
126
|
+
return filtered;
|
|
127
|
+
}
|
|
128
|
+
function toReverseMap(allRefs) {
|
|
129
|
+
const asLocalPointer = (ref) => {
|
|
130
|
+
if (ref.startsWith("#/")) {
|
|
131
|
+
return ref.slice(1);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
return undefined;
|
|
211
135
|
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
if (
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
if (!hasSealableContent(schema)) {
|
|
221
|
-
continue;
|
|
222
|
-
}
|
|
223
|
-
const isWrapper = schema.allOf &&
|
|
224
|
-
schema.allOf.length === 1 &&
|
|
225
|
-
typeof schema.allOf[0].$ref === "string" &&
|
|
226
|
-
schema.allOf[0].$ref.includes("Core");
|
|
227
|
-
if (!isWrapper &&
|
|
228
|
-
(schema.allOf || schema.anyOf || schema.oneOf) &&
|
|
229
|
-
isObjectLike(schema)) {
|
|
230
|
-
schema[this.sealing] = false;
|
|
231
|
-
}
|
|
232
|
-
else if (!coreMapping.has(name) && isObjectLike(schema) && !name.endsWith("Core")) {
|
|
233
|
-
schema[this.sealing] = false;
|
|
136
|
+
};
|
|
137
|
+
const reverseMap = {};
|
|
138
|
+
for (const refEntry of allRefs) {
|
|
139
|
+
const refValue = asLocalPointer(refEntry.value["$ref"]);
|
|
140
|
+
if (refValue) {
|
|
141
|
+
if (!reverseMap[refValue]) {
|
|
142
|
+
reverseMap[refValue] = [];
|
|
234
143
|
}
|
|
144
|
+
reverseMap[refValue].push(refEntry.pointer);
|
|
235
145
|
}
|
|
236
146
|
}
|
|
147
|
+
return reverseMap;
|
|
237
148
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
preprocess() {
|
|
243
|
-
for (const schema of Object.values(this.schemas)) {
|
|
244
|
-
if (!schema || typeof schema !== "object")
|
|
245
|
-
continue;
|
|
246
|
-
if (schema.$defs && typeof schema.$defs === "object") {
|
|
247
|
-
new NestedSchemaSealer(schema, "$defs", this.sealing, this.supportsUnevaluated).run();
|
|
248
|
-
}
|
|
249
|
-
if (schema.definitions && typeof schema.definitions === "object") {
|
|
250
|
-
new NestedSchemaSealer(schema, "definitions", this.sealing, this.supportsUnevaluated).run();
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
getCoreRef(coreName) {
|
|
255
|
-
return `#/components/schemas/${coreName}`;
|
|
256
|
-
}
|
|
257
|
-
updateReference(originalName, coreName) {
|
|
258
|
-
updateAllOfReferences(this.schemas, originalName, coreName);
|
|
149
|
+
function versionStr(doc, prefix) {
|
|
150
|
+
const version = getOpenApiVersion(doc) || getJsonSchemaVersion(doc);
|
|
151
|
+
if (version) {
|
|
152
|
+
return prefix ? `${prefix} ${version}` : version;
|
|
259
153
|
}
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
function find(root, query) {
|
|
157
|
+
return JSONPath({
|
|
158
|
+
path: query,
|
|
159
|
+
json: root,
|
|
160
|
+
resultType: "all",
|
|
161
|
+
});
|
|
260
162
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
this.defsKey = defsKey;
|
|
163
|
+
function upliftDocument(doc) {
|
|
164
|
+
let version = getOpenApiVersion(doc);
|
|
165
|
+
if (version) {
|
|
166
|
+
upgradeToOas31(doc);
|
|
167
|
+
console.warn(`[SEAL-SCHEMA] Upgraded OpenAPI version from ${version} to 3.1.0 to support unevaluatedProperties.`);
|
|
168
|
+
return doc;
|
|
268
169
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
170
|
+
else {
|
|
171
|
+
version = getJsonSchemaVersion(doc);
|
|
172
|
+
if (version) {
|
|
173
|
+
upgradeJsonSchemaToDraft201909(doc);
|
|
174
|
+
console.warn(`[SEAL-SCHEMA] Upgraded JSON Schema version from ${version} to draft 2019-09 to support unevaluatedProperties.`);
|
|
175
|
+
return doc;
|
|
275
176
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
177
|
+
if (isStandaloneJsonSchema(doc)) {
|
|
178
|
+
upgradeJsonSchemaToDraft201909(doc);
|
|
179
|
+
console.warn(`[SEAL-SCHEMA] Upgraded JSON Schema version from ${version} to draft 2019-09 to support unevaluatedProperties.`);
|
|
180
|
+
return doc;
|
|
181
|
+
}
|
|
182
|
+
throwUpliftError(version || "unknown");
|
|
282
183
|
}
|
|
283
184
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
const refPrefix = defsKey === "$defs" ? "#/$defs" : "#/definitions";
|
|
289
|
-
const originalRef = `${refPrefix}/${originalName}`;
|
|
290
|
-
const coreRef = `${refPrefix}/${coreName}`;
|
|
291
|
-
const pointerRoot = { [defsKey]: defs };
|
|
292
|
-
const query = `$.${defsKey}..allOf[?(@.$ref=='${originalRef}')]`;
|
|
293
|
-
updateAllOfReferencesWithQuery(defs, originalRef, coreRef, query, pointerRoot);
|
|
185
|
+
function throwUpliftError(version) {
|
|
186
|
+
throw new Error(`unevaluatedProperties is only supported in OpenAPI 3.1+ or JSON Schema 2019-09+. ` +
|
|
187
|
+
`Current document uses ${version}. ` +
|
|
188
|
+
`Use --uplift option to automatically upgrade the version, or use schema that does not require unevaluatedProperties.`);
|
|
294
189
|
}
|
|
295
190
|
/**
|
|
296
|
-
*
|
|
191
|
+
* Determine whether the provided document contains any schemas that use `allOf`
|
|
297
192
|
*/
|
|
298
|
-
function
|
|
299
|
-
|
|
300
|
-
const coreRef = `#/components/schemas/${coreName}`;
|
|
301
|
-
const pointerRoot = { components: { schemas } };
|
|
302
|
-
const query = `$.components.schemas..allOf[?(@.$ref=='${originalRef}')]`;
|
|
303
|
-
updateAllOfReferencesWithQuery(schemas, originalRef, coreRef, query, pointerRoot);
|
|
304
|
-
}
|
|
305
|
-
function updateAllOfReferencesWithQuery(scope, originalRef, coreRef, query, pointerRoot) {
|
|
193
|
+
function documentContainsAllOfRefs(doc) {
|
|
194
|
+
// Use JSONPath to find any allOf entries
|
|
306
195
|
try {
|
|
307
|
-
const
|
|
308
|
-
|
|
309
|
-
setJsonPointer(pointerRoot, ptr + "/$ref", coreRef);
|
|
310
|
-
}
|
|
196
|
+
const matches = JSONPath({ path: "$..allOf", json: doc });
|
|
197
|
+
return Array.isArray(matches) && matches.length > 0;
|
|
311
198
|
}
|
|
312
199
|
catch (e) {
|
|
313
|
-
for
|
|
314
|
-
if (!schema || typeof schema !== "object")
|
|
315
|
-
continue;
|
|
316
|
-
if (!Array.isArray(schema.allOf))
|
|
317
|
-
continue;
|
|
318
|
-
for (const item of schema.allOf) {
|
|
319
|
-
if (item && typeof item === "object" && item.$ref === originalRef) {
|
|
320
|
-
item.$ref = coreRef;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
|
-
* Set a value in an object using a JSON Pointer string (e.g. '/a/0/b').
|
|
328
|
-
*/
|
|
329
|
-
function setJsonPointer(root, pointer, value) {
|
|
330
|
-
if (!pointer || pointer === "")
|
|
331
|
-
return;
|
|
332
|
-
// pointer is returned from jsonpath-plus as a JSON Pointer starting with '/'
|
|
333
|
-
const parts = pointer.split('/').slice(1).map(unescapePointer);
|
|
334
|
-
let cur = root;
|
|
335
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
336
|
-
const key = parts[i];
|
|
337
|
-
if (!(key in cur))
|
|
338
|
-
return; // unexpected shape
|
|
339
|
-
cur = cur[key];
|
|
340
|
-
if (cur === undefined || cur === null)
|
|
341
|
-
return;
|
|
342
|
-
}
|
|
343
|
-
const last = parts[parts.length - 1];
|
|
344
|
-
cur[last] = value;
|
|
345
|
-
}
|
|
346
|
-
function unescapePointer(part) {
|
|
347
|
-
return part.replace(/~1/g, '/').replace(/~0/g, '~');
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Recursively seal inline object schemas (properties, items, etc.).
|
|
351
|
-
*/
|
|
352
|
-
function sealInlineSchemas(schemas, sealing, supportsUnevaluated) {
|
|
353
|
-
const sealRecursive = (obj) => {
|
|
354
|
-
if (!obj || typeof obj !== "object")
|
|
355
|
-
return;
|
|
356
|
-
if (isObjectLike(obj) && !isPreSealed(obj) && hasSealableContent(obj)) {
|
|
357
|
-
const hasComposition = Boolean(obj.allOf || obj.anyOf || obj.oneOf);
|
|
358
|
-
const hasRef = Boolean(findRefsInObject(obj).length > 0);
|
|
359
|
-
if (hasComposition && supportsUnevaluated) {
|
|
360
|
-
obj.unevaluatedProperties = false;
|
|
361
|
-
}
|
|
362
|
-
else if (!hasRef && !hasComposition) {
|
|
363
|
-
obj[sealing] = false;
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
// Recurse into properties
|
|
367
|
-
if (obj.properties && typeof obj.properties === "object") {
|
|
368
|
-
for (const prop of Object.values(obj.properties)) {
|
|
369
|
-
sealRecursive(prop);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
// Recurse into items
|
|
373
|
-
if (obj.items && typeof obj.items === "object") {
|
|
374
|
-
sealRecursive(obj.items);
|
|
375
|
-
}
|
|
376
|
-
// Recurse into allOf/anyOf/oneOf
|
|
377
|
-
if (Array.isArray(obj.allOf)) {
|
|
378
|
-
for (const item of obj.allOf) {
|
|
379
|
-
sealRecursive(item);
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
if (Array.isArray(obj.anyOf)) {
|
|
383
|
-
for (const item of obj.anyOf) {
|
|
384
|
-
sealRecursive(item);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
if (Array.isArray(obj.oneOf)) {
|
|
388
|
-
for (const item of obj.oneOf) {
|
|
389
|
-
sealRecursive(item);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
// Recurse into additionalProperties
|
|
393
|
-
if (obj.additionalProperties && typeof obj.additionalProperties === "object") {
|
|
394
|
-
sealRecursive(obj.additionalProperties);
|
|
395
|
-
}
|
|
396
|
-
};
|
|
397
|
-
for (const schema of Object.values(schemas)) {
|
|
398
|
-
sealRecursive(schema);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
/**
|
|
402
|
-
* Check if a schema is object-like.
|
|
403
|
-
* This includes schemas that have type: "object", explicit properties, or composition keywords (which implicitly compose objects).
|
|
404
|
-
*/
|
|
405
|
-
function isObjectLike(schema) {
|
|
406
|
-
if (!schema || typeof schema !== "object")
|
|
407
|
-
return false;
|
|
408
|
-
return (schema.type === "object" ||
|
|
409
|
-
Boolean(schema.properties) ||
|
|
410
|
-
Boolean(schema.allOf) ||
|
|
411
|
-
Boolean(schema.anyOf) ||
|
|
412
|
-
Boolean(schema.oneOf));
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* Check if a schema has sealable content (properties or composition keywords).
|
|
416
|
-
* This ensures we only seal schemas that actually define object structure.
|
|
417
|
-
*/
|
|
418
|
-
function hasSealableContent(schema) {
|
|
419
|
-
if (!schema || typeof schema !== "object")
|
|
420
|
-
return false;
|
|
421
|
-
return (Boolean(schema.properties) ||
|
|
422
|
-
Boolean(schema.allOf) ||
|
|
423
|
-
Boolean(schema.anyOf) ||
|
|
424
|
-
Boolean(schema.oneOf));
|
|
425
|
-
}
|
|
426
|
-
/**
|
|
427
|
-
* Check if a schema is already sealed.
|
|
428
|
-
*/
|
|
429
|
-
function isPreSealed(schema) {
|
|
430
|
-
if (!schema || typeof schema !== "object")
|
|
200
|
+
// If JSONPath fails for some reason, fall back to conservative false
|
|
431
201
|
return false;
|
|
432
|
-
return (schema.additionalProperties === false ||
|
|
433
|
-
schema.unevaluatedProperties === false);
|
|
434
|
-
}
|
|
435
|
-
/**
|
|
436
|
-
* Remove sealing keywords from a schema.
|
|
437
|
-
*/
|
|
438
|
-
function removeSealing(schema) {
|
|
439
|
-
if (schema && typeof schema === "object") {
|
|
440
|
-
delete schema.additionalProperties;
|
|
441
|
-
delete schema.unevaluatedProperties;
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
/**
|
|
445
|
-
* Deep clone an object.
|
|
446
|
-
*/
|
|
447
|
-
function deepClone(obj) {
|
|
448
|
-
if (obj === null || typeof obj !== "object")
|
|
449
|
-
return obj;
|
|
450
|
-
if (Array.isArray(obj))
|
|
451
|
-
return obj.map((item) => deepClone(item));
|
|
452
|
-
if (obj instanceof Date)
|
|
453
|
-
return new Date(obj.getTime());
|
|
454
|
-
const cloned = {};
|
|
455
|
-
for (const key in obj) {
|
|
456
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
457
|
-
cloned[key] = deepClone(obj[key]);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
return cloned;
|
|
461
|
-
}
|
|
462
|
-
/**
|
|
463
|
-
* Find all $ref entries in an object (non-recursive for direct refs).
|
|
464
|
-
*/
|
|
465
|
-
function findRefsInObject(obj) {
|
|
466
|
-
if (!obj || typeof obj !== "object")
|
|
467
|
-
return [];
|
|
468
|
-
const refs = [];
|
|
469
|
-
if (typeof obj.$ref === "string") {
|
|
470
|
-
refs.push(obj.$ref);
|
|
471
202
|
}
|
|
472
|
-
return refs;
|
|
473
203
|
}
|
|
474
204
|
/**
|
|
475
205
|
* Check if a document is a standalone JSON Schema (not an OpenAPI document).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sealSchema.js","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sealSchema.js","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amartus/oas-utils",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"description": "Utilities for working with OpenAPI (OAS) documents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -52,9 +52,10 @@
|
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"commander": "^12.1.0",
|
|
55
|
+
"fast-json-patch": "^3.1.1",
|
|
56
|
+
"jsonpath-plus": "^10.3.0",
|
|
55
57
|
"openapi-types": "^12.1.3",
|
|
56
|
-
"yaml": "^2.5.1"
|
|
57
|
-
"jsonpath-plus": "^10.3.0"
|
|
58
|
+
"yaml": "^2.5.1"
|
|
58
59
|
},
|
|
59
60
|
"devDependencies": {
|
|
60
61
|
"@types/node": "^22.5.4",
|