@amartus/oas-utils 0.3.7 → 0.3.8

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,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
- * Seal OpenAPI/JSON Schema objects to prevent additional properties.
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":"AAWA,MAAM,WAAW,iBAAiB;IAChC,uGAAuG;IACvG,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,mHAAmH;IACnH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,iBAAsB,GAAG,GAAG,CAsEtE"}
1
+ {"version":3,"file":"sealSchema.d.ts","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"AAYA,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"}
@@ -1,475 +1,204 @@
1
- import { refToName, documentSupportsUnevaluatedProperties, getOpenApiVersion, getJsonSchemaVersion, upgradeToOas31, upgradeJsonSchemaToDraft201909 } from "./oasUtils.js";
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 { applyPatch } from 'fast-json-patch';
5
+ const isAllOf = (prop) => {
6
+ return prop.split("/").at(-2) === "allOf";
7
+ };
3
8
  /**
4
- * Seal OpenAPI/JSON Schema objects to prevent additional properties.
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
9
+ * Scaffolded sealSchema - returns the document unchanged.
18
10
  */
19
11
  export function sealSchema(doc, opts = {}) {
20
- if (!doc || typeof doc !== "object")
21
- return doc;
22
12
  const useUnevaluated = opts.useUnevaluatedProperties !== false;
23
13
  let sealing = useUnevaluated ? "unevaluatedProperties" : "additionalProperties";
24
- // Check if this is a standalone JSON Schema (not an OpenAPI document)
25
- const isStandalone = isStandaloneJsonSchema(doc);
26
14
  const supportsUnevaluated = documentSupportsUnevaluatedProperties(doc);
27
15
  const containsAllOfRefs = documentContainsAllOfRefs(doc);
28
- // Check if using unevaluatedProperties and validate version compatibility
29
- if (useUnevaluated) {
30
- const oasVersion = getOpenApiVersion(doc);
31
- const schemaVersion = getJsonSchemaVersion(doc);
32
- // Only validate if there's an explicit version specified
33
- const hasExplicitVersion = oasVersion || schemaVersion;
34
- if (hasExplicitVersion) {
35
- if (!supportsUnevaluated) {
36
- if (opts.uplift) {
37
- // Automatically upgrade the version
38
- if (oasVersion) {
39
- upgradeToOas31(doc);
40
- console.warn(`[SEAL-SCHEMA] Upgraded OpenAPI version from ${oasVersion} to 3.1.0 to support unevaluatedProperties.`);
41
- }
42
- else if (schemaVersion) {
43
- upgradeJsonSchemaToDraft201909(doc);
44
- console.warn(`[SEAL-SCHEMA] Upgraded JSON Schema to draft 2019-09 to support unevaluatedProperties.`);
45
- }
46
- }
47
- else {
48
- // Error if uplift is not enabled
49
- const versionInfo = oasVersion
50
- ? `OpenAPI ${oasVersion}`
51
- : `JSON Schema ${schemaVersion}`;
52
- throw new Error(`unevaluatedProperties is only supported in OpenAPI 3.1+ or JSON Schema 2019-09+. ` +
53
- `Current document uses ${versionInfo}. ` +
54
- `Use --uplift option to automatically upgrade the version, or use --use-additional-properties instead.`);
55
- }
16
+ const requiresUplift = !supportsUnevaluated && (useUnevaluated || containsAllOfRefs);
17
+ if (requiresUplift) {
18
+ const versionInfo = versionStr(doc, "OpenAPI") || versionStr(doc, "JSON Schema");
19
+ if (!useUnevaluated) {
20
+ throw new Error(`Sealing via additionalProperties:false cannot reliably cover schemas composed with allOf in ${versionInfo}. ` +
21
+ `Use --use-unevaluated-properties or enable --uplift to upgrade the document to a version that supports unevaluatedProperties.`);
22
+ }
23
+ if (opts.uplift === true || versionInfo === undefined) {
24
+ doc = upliftDocument(doc);
25
+ }
26
+ else {
27
+ throwUpliftError(versionInfo);
28
+ }
29
+ }
30
+ const allProps = find(doc, "$..properties");
31
+ const allRefs = toReverseMap(find(doc, `$..[?(@['$ref'])]`));
32
+ const allOfSchemas = find(doc, "$..allOf");
33
+ const toSealSingle = filter(allProps, allRefs);
34
+ const toSealCompositions = filterCompositions(allOfSchemas, allRefs);
35
+ const toMap = calculateMappings(allRefs);
36
+ for (const prop of toSealSingle) {
37
+ prop.parent[sealing] = false;
38
+ }
39
+ for (const comp of toSealCompositions) {
40
+ comp.parent["unevaluatedProperties"] = false;
41
+ }
42
+ return applyMappings(doc, toMap);
43
+ }
44
+ function applyMappings(doc, mappings) {
45
+ const operations = mappings.flatMap((mapping) => {
46
+ const move = {
47
+ "op": "move",
48
+ "from": mapping.orginalRef,
49
+ "path": mapping.wrapperRef
50
+ };
51
+ const add = {
52
+ "op": "add",
53
+ "path": mapping.orginalRef,
54
+ "value": {
55
+ "allOf": [{ "$ref": `#${mapping.wrapperRef}` }],
56
+ "unevaluatedProperties": false
56
57
  }
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
58
  };
113
- },
114
- finalize(doc) {
115
- return doc;
116
- },
117
- };
118
- const jsonSchemaSealHandler = {
119
- createContext(doc) {
120
- const wrappedName = doc.title || "Root";
59
+ const copyMetadata = [{
60
+ "op": "copy",
61
+ "from": `${mapping.wrapperRef}/description`,
62
+ "path": `${mapping.orginalRef}/description`
63
+ },
64
+ {
65
+ "op": "copy",
66
+ "from": `${mapping.wrapperRef}/title`,
67
+ "path": `${mapping.orginalRef}/title`
68
+ }
69
+ ];
70
+ const replaces = mapping.declarationPointers.map((declPtr) => {
71
+ return {
72
+ "op": "replace",
73
+ "path": declPtr,
74
+ "value": {
75
+ "$ref": `#${mapping.wrapperRef}`
76
+ }
77
+ };
78
+ });
79
+ return [move, add, ...copyMetadata, ...replaces];
80
+ });
81
+ operations.sort((a, b) => {
82
+ if (a.op === "replace" && b.op !== "replace")
83
+ return -1;
84
+ if (a.op !== "replace" && b.op === "replace")
85
+ return 1;
86
+ return 0;
87
+ });
88
+ applyPatch(doc, operations);
89
+ return doc;
90
+ }
91
+ function calculateMappings(allRefs) {
92
+ return Object.entries(allRefs)
93
+ .filter(([_, refValues]) => refValues.length > 1)
94
+ .filter(([_, refValues]) => {
95
+ const count = refValues.filter((p) => isAllOf(p)).length;
96
+ return count != 0 && count != refValues.length;
97
+ })
98
+ .map(([refPointer, refValues]) => {
121
99
  return {
122
- schemas: { [wrappedName]: doc },
123
- wrappedName,
124
- isStandalone: true,
100
+ orginalRef: refPointer,
101
+ wrapperRef: `${refPointer}Core`,
102
+ declarationPointers: refValues.filter((p) => isAllOf(p)),
125
103
  };
126
- },
127
- finalize(doc, context) {
128
- if (context.wrappedName && context.schemas) {
129
- return context.schemas[context.wrappedName];
130
- }
131
- return doc;
132
- },
133
- };
134
- function selectSealHandler(isStandalone) {
135
- return isStandalone ? jsonSchemaSealHandler : openApiSealHandler;
136
- }
137
- function applySealingToSchemaMap(schemas, sealing, supportsUnevaluated) {
138
- if (!schemas || typeof schemas !== "object")
139
- return;
140
- new ComponentSchemaSealer(schemas, sealing, supportsUnevaluated).run();
141
- }
142
- class SchemaSealerTemplate {
143
- schemas;
144
- sealing;
145
- supportsUnevaluated;
146
- constructor(schemas, sealing, supportsUnevaluated) {
147
- this.schemas = schemas;
148
- this.sealing = sealing;
149
- this.supportsUnevaluated = supportsUnevaluated;
150
- }
151
- run() {
152
- if (!this.schemas || typeof this.schemas !== "object")
153
- return;
154
- this.preprocess();
155
- const referenced = this.collectReferencedInAllOf();
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);
104
+ });
105
+ }
106
+ function filterCompositions(allOfSchemas, allRefs) {
107
+ return allOfSchemas.filter((item) => {
108
+ const arr = JSONPath.toPathArray(item.path);
109
+ arr.pop(); // remove 'allOf'
110
+ const pointer = JSONPath.toPointer(arr);
111
+ const refs = allRefs[pointer];
112
+ return refs == undefined || !refs.some(x => isAllOf(x));
113
+ });
114
+ }
115
+ function filter(allProps, allRefs) {
116
+ const inlineComposed = (prop) => {
117
+ return prop.length > 2 && prop[prop.length - 2] === "allOf";
118
+ };
119
+ const filtered = allProps.filter((prop) => {
120
+ const path = JSONPath.toPathArray(prop.path).slice(0, -1);
121
+ const pointer = JSONPath.toPointer(path);
122
+ const refs = allRefs[pointer];
123
+ return !inlineComposed(path) && (refs === undefined || refs.every(x => !isAllOf(x)));
124
+ });
125
+ return filtered;
126
+ }
127
+ function toReverseMap(allRefs) {
128
+ const asLocalPointer = (ref) => {
129
+ if (ref.startsWith("#/")) {
130
+ return ref.slice(1);
131
+ }
132
+ else {
133
+ return undefined;
211
134
  }
212
- }
213
- sealSchemas(coreMapping) {
214
- for (const [name, schema] of Object.entries(this.schemas)) {
215
- if (!schema || typeof schema !== "object")
216
- continue;
217
- if (schema[this.sealing] === false || schema.additionalProperties === false) {
218
- continue;
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;
135
+ };
136
+ const reverseMap = {};
137
+ for (const refEntry of allRefs) {
138
+ const refValue = asLocalPointer(refEntry.value["$ref"]);
139
+ if (refValue) {
140
+ if (!reverseMap[refValue]) {
141
+ reverseMap[refValue] = [];
234
142
  }
143
+ reverseMap[refValue].push(refEntry.pointer);
235
144
  }
236
145
  }
146
+ return reverseMap;
237
147
  }
238
- class ComponentSchemaSealer extends SchemaSealerTemplate {
239
- constructor(schemas, sealing, supportsUnevaluated) {
240
- super(schemas, sealing, supportsUnevaluated);
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);
148
+ function versionStr(doc, prefix) {
149
+ const version = getOpenApiVersion(doc) || getJsonSchemaVersion(doc);
150
+ if (version) {
151
+ return prefix ? `${prefix} ${version}` : version;
259
152
  }
153
+ return undefined;
154
+ }
155
+ function find(root, query) {
156
+ return JSONPath({
157
+ path: query,
158
+ json: root,
159
+ resultType: "all",
160
+ });
260
161
  }
261
- class NestedSchemaSealer extends SchemaSealerTemplate {
262
- parent;
263
- defsKey;
264
- constructor(parent, defsKey, sealing, supportsUnevaluated) {
265
- super(parent[defsKey], sealing, supportsUnevaluated);
266
- this.parent = parent;
267
- this.defsKey = defsKey;
162
+ function upliftDocument(doc) {
163
+ let version = getOpenApiVersion(doc);
164
+ if (version) {
165
+ upgradeToOas31(doc);
166
+ console.warn(`[SEAL-SCHEMA] Upgraded OpenAPI version from ${version} to 3.1.0 to support unevaluatedProperties.`);
167
+ return doc;
268
168
  }
269
- postprocess() {
270
- if (this.parent &&
271
- hasSealableContent(this.parent) &&
272
- isObjectLike(this.parent) &&
273
- !isPreSealed(this.parent)) {
274
- this.parent[this.sealing] = false;
169
+ else {
170
+ version = getJsonSchemaVersion(doc);
171
+ if (version) {
172
+ upgradeJsonSchemaToDraft201909(doc);
173
+ console.warn(`[SEAL-SCHEMA] Upgraded JSON Schema version from ${version} to draft 2019-09 to support unevaluatedProperties.`);
174
+ return doc;
275
175
  }
276
- }
277
- getCoreRef(coreName) {
278
- return this.defsKey === "$defs" ? `#/$defs/${coreName}` : `#/definitions/${coreName}`;
279
- }
280
- updateReference(originalName, coreName) {
281
- updateNestedAllOfReferences(this.schemas, originalName, coreName, this.defsKey);
176
+ if (isStandaloneJsonSchema(doc)) {
177
+ upgradeJsonSchemaToDraft201909(doc);
178
+ console.warn(`[SEAL-SCHEMA] Upgraded JSON Schema version from ${version} to draft 2019-09 to support unevaluatedProperties.`);
179
+ return doc;
180
+ }
181
+ throwUpliftError(version || "unknown");
282
182
  }
283
183
  }
284
- /**
285
- * Update all allOf references in nested schemas from original schema to core schema.
286
- */
287
- function updateNestedAllOfReferences(defs, originalName, coreName, defsKey) {
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);
184
+ function throwUpliftError(version) {
185
+ throw new Error(`unevaluatedProperties is only supported in OpenAPI 3.1+ or JSON Schema 2019-09+. ` +
186
+ `Current document uses ${version}. ` +
187
+ `Use --uplift option to automatically upgrade the version, or use schema that does not require unevaluatedProperties.`);
294
188
  }
295
189
  /**
296
- * Update all allOf references from original schema to core schema.
190
+ * Determine whether the provided document contains any schemas that use `allOf`
297
191
  */
298
- function updateAllOfReferences(schemas, originalName, coreName) {
299
- const originalRef = `#/components/schemas/${originalName}`;
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) {
192
+ function documentContainsAllOfRefs(doc) {
193
+ // Use JSONPath to find any allOf entries
306
194
  try {
307
- const pointers = JSONPath({ path: query, json: pointerRoot, resultType: "pointer" });
308
- for (const ptr of pointers) {
309
- setJsonPointer(pointerRoot, ptr + "/$ref", coreRef);
310
- }
195
+ const matches = JSONPath({ path: "$..allOf", json: doc });
196
+ return Array.isArray(matches) && matches.length > 0;
311
197
  }
312
198
  catch (e) {
313
- for (const schema of Object.values(scope)) {
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")
199
+ // If JSONPath fails for some reason, fall back to conservative false
431
200
  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
201
  }
472
- return refs;
473
202
  }
474
203
  /**
475
204
  * 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.7",
3
+ "version": "0.3.8",
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",