@amartus/oas-utils 0.3.4 → 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,CAmF1E"}
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"}
@@ -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
- // We need to find where base schemas are referenced and check if they're used polymorphically
70
+ // Preserve direct inheritance (allOf) references but rewrite everything else
71
71
  for (const [baseName, wrapperInfo] of polymorphicWrappers.entries()) {
72
- replacePolymorhicReferences(schemas, baseName, wrapperInfo.name);
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
- if (item.$ref === oldRef) {
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 && typeof item === "object" && item.$ref !== oldRef) {
129
- replaceInSchema(item, oldRef, newRef, skipDirectAllOfRefs);
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sealSchema.d.ts","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"AAYA,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,CAuOtE"}
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,6 +1,5 @@
1
1
  import { refToName, documentSupportsUnevaluatedProperties, getOpenApiVersion, getJsonSchemaVersion, upgradeToOas31, upgradeJsonSchemaToDraft201909 } from "./oasUtils.js";
2
2
  import { JSONPath } from "jsonpath-plus";
3
- import { extractDefRefName } from "./jsonSchemaUtils.js";
4
3
  /**
5
4
  * Seal OpenAPI/JSON Schema objects to prevent additional properties.
6
5
  *
@@ -21,9 +20,11 @@ export function sealSchema(doc, opts = {}) {
21
20
  if (!doc || typeof doc !== "object")
22
21
  return doc;
23
22
  const useUnevaluated = opts.useUnevaluatedProperties !== false;
24
- const sealing = useUnevaluated ? "unevaluatedProperties" : "additionalProperties";
23
+ let sealing = useUnevaluated ? "unevaluatedProperties" : "additionalProperties";
25
24
  // Check if this is a standalone JSON Schema (not an OpenAPI document)
26
25
  const isStandalone = isStandaloneJsonSchema(doc);
26
+ const supportsUnevaluated = documentSupportsUnevaluatedProperties(doc);
27
+ const containsAllOfRefs = documentContainsAllOfRefs(doc);
27
28
  // Check if using unevaluatedProperties and validate version compatibility
28
29
  if (useUnevaluated) {
29
30
  const oasVersion = getOpenApiVersion(doc);
@@ -31,8 +32,7 @@ export function sealSchema(doc, opts = {}) {
31
32
  // Only validate if there's an explicit version specified
32
33
  const hasExplicitVersion = oasVersion || schemaVersion;
33
34
  if (hasExplicitVersion) {
34
- const isCompatible = documentSupportsUnevaluatedProperties(doc);
35
- if (!isCompatible) {
35
+ if (!supportsUnevaluated) {
36
36
  if (opts.uplift) {
37
37
  // Automatically upgrade the version
38
38
  if (oasVersion) {
@@ -61,240 +61,224 @@ export function sealSchema(doc, opts = {}) {
61
61
  console.warn(`[SEAL-SCHEMA] Set JSON Schema version to draft 2019-09 to support unevaluatedProperties.`);
62
62
  }
63
63
  }
64
- // Additional check: when using `additionalProperties:false` (i.e. not using
65
- // unevaluatedProperties) we must ensure that sealing will actually cover
66
- // composed schemas. In OpenAPI 3.0 and JSON Schema drafts before 2019-09,
67
- // `additionalProperties: false` does NOT apply across `allOf` composition in
68
- // a way that reliably seals extended models. If the document contains any
69
- // schema using `allOf` compositions referencing other schemas, sealing with
70
- // `additionalProperties:false` may be ineffective. In that case we should
71
- // throw an error unless `useUnevaluatedProperties` is true or `uplift` is set
72
- // (to upgrade the document to a version that supports `unevaluatedProperties`).
64
+ // If not using unevaluatedProperties, validate compatibility
73
65
  if (!useUnevaluated) {
74
- validateAdditionalPropertiesCompatibility(doc);
66
+ validateAdditionalPropertiesCompatibility(doc, supportsUnevaluated, containsAllOfRefs);
75
67
  }
76
- /**
77
- * Determine whether the provided document contains any schemas that use
78
- * `allOf` referencing other schemas (simple $ref in allOf entries).
79
- */
80
- function documentContainsAllOfRefs(doc) {
81
- // Use JSONPath to find any allOf entries that contain a $ref anywhere in the document
82
- try {
83
- const matches = JSONPath({ path: "$..allOf[*].$ref", json: doc });
84
- return Array.isArray(matches) && matches.length > 0;
85
- }
86
- catch (e) {
87
- // If JSONPath fails for some reason, fall back to conservative false
88
- return false;
89
- }
90
- }
91
- /**
92
- * Validate that attempting to seal using `additionalProperties:false` is
93
- * compatible with the document's declared OpenAPI/JSON Schema version. Throw
94
- * a descriptive error when an explicit older version is present and the
95
- * document contains allOf references that would make sealing ineffective.
96
- */
97
- function validateAdditionalPropertiesCompatibility(doc) {
98
- const oasVersion = getOpenApiVersion(doc);
99
- const schemaVersion = getJsonSchemaVersion(doc);
100
- const hasExplicitVersion = oasVersion || schemaVersion;
101
- const supportsUnevaluated = documentSupportsUnevaluatedProperties(doc);
102
- if (hasExplicitVersion && !supportsUnevaluated && documentContainsAllOfRefs(doc)) {
103
- const versionInfo = oasVersion ? `OpenAPI ${oasVersion}` : `JSON Schema ${schemaVersion}`;
104
- throw new Error(`Sealing via additionalProperties:false cannot reliably cover schemas composed with allOf in ${versionInfo}. ` +
105
- `Use --use-unevaluated-properties or enable --uplift to upgrade the document to a version that supports unevaluatedProperties.`);
106
- }
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;
107
84
  }
108
- let schemas;
109
- let wrappedName = "";
110
- if (isStandalone) {
111
- // Wrap the standalone schema in an OpenAPI structure
112
- wrappedName = doc.title || "Root";
113
- schemas = {};
114
- schemas[wrappedName] = doc;
85
+ catch (e) {
86
+ // If JSONPath fails for some reason, fall back to conservative false
87
+ return false;
115
88
  }
116
- else {
117
- schemas = doc.components?.schemas;
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.`);
118
104
  }
119
- if (!schemas || typeof schemas !== "object")
105
+ }
106
+ const openApiSealHandler = {
107
+ createContext(doc) {
108
+ return {
109
+ schemas: doc.components?.schemas,
110
+ wrappedName: "",
111
+ isStandalone: false,
112
+ };
113
+ },
114
+ finalize(doc) {
120
115
  return doc;
121
- // Handle each schema's $defs and definitions (for JSON Schema models)
122
- for (const [schemaName, schema] of Object.entries(schemas)) {
123
- if (schema && typeof schema === "object") {
124
- if (schema.$defs && typeof schema.$defs === "object") {
125
- sealNestedSchemas(schema, "$defs", sealing);
126
- }
127
- if (schema.definitions && typeof schema.definitions === "object") {
128
- sealNestedSchemas(schema, "definitions", sealing);
129
- }
116
+ },
117
+ };
118
+ const jsonSchemaSealHandler = {
119
+ createContext(doc) {
120
+ const wrappedName = doc.title || "Root";
121
+ return {
122
+ schemas: { [wrappedName]: doc },
123
+ wrappedName,
124
+ isStandalone: true,
125
+ };
126
+ },
127
+ finalize(doc, context) {
128
+ if (context.wrappedName && context.schemas) {
129
+ return context.schemas[context.wrappedName];
130
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;
131
150
  }
132
- // Step 1: Find all schemas referenced in allOf (core candidates)
133
- const referencedInAllOf = new Set();
134
- for (const schema of Object.values(schemas)) {
135
- if (!schema || typeof schema !== "object")
136
- continue;
137
- if (!Array.isArray(schema.allOf))
138
- continue;
139
- for (const item of schema.allOf) {
140
- if (item && typeof item === "object" && typeof item.$ref === "string") {
141
- const refName = refToName(item.$ref);
142
- if (refName && schemas[refName]) {
143
- referencedInAllOf.add(refName);
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
+ }
144
177
  }
145
178
  }
146
179
  }
180
+ return referenced;
147
181
  }
148
- // Step 2: Classify and create Core variants for core-candidates
149
- const coreMapping = new Map(); // original -> core name
150
- for (const name of referencedInAllOf) {
151
- const schema = schemas[name];
152
- if (schema &&
153
- typeof schema === "object" &&
154
- !isPreSealed(schema) &&
155
- isObjectLike(schema)) {
156
- const coreName = `${name}Core`;
157
- coreMapping.set(name, coreName);
158
- // Clone original schema as Core (without sealing keywords)
159
- const coreSchema = deepClone(schema);
160
- removeSealing(coreSchema);
161
- // Replace original with sealed wrapper
162
- const wrapper = {
163
- allOf: [{ $ref: `#/components/schemas/${coreName}` }],
164
- };
165
- wrapper[sealing] = false;
166
- // Preserve description if present in original
167
- if (coreSchema.description) {
168
- wrapper.description = coreSchema.description;
169
- delete coreSchema.description; // Remove from core to avoid duplication
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;
170
204
  }
171
- schemas[coreName] = coreSchema;
172
- schemas[name] = wrapper;
173
205
  }
206
+ return coreMapping;
174
207
  }
175
- // Step 3: Rewrite references inside allOf to point to Core variants
176
- for (const [originalName, coreName] of coreMapping.entries()) {
177
- updateAllOfReferences(schemas, originalName, coreName);
178
- }
179
- // Step 4: Seal composition roots and direct-only objects
180
- for (const [name, schema] of Object.entries(schemas)) {
181
- if (!schema || typeof schema !== "object")
182
- continue;
183
- // Skip if already sealed
184
- if (schema[sealing] === false || schema.additionalProperties === false) {
185
- continue;
186
- }
187
- // Check if this is a wrapper we created (single-item allOf pointing to Core)
188
- const isWrapper = schema.allOf &&
189
- schema.allOf.length === 1 &&
190
- typeof schema.allOf[0].$ref === "string" &&
191
- schema.allOf[0].$ref.includes("Core");
192
- // Only seal if there's sealable content (properties or composition)
193
- if (!hasSealableContent(schema)) {
194
- continue;
195
- }
196
- // Seal composition roots (allOf/anyOf/oneOf) - except wrappers we just created
197
- if (!isWrapper &&
198
- (schema.allOf || schema.anyOf || schema.oneOf) &&
199
- isObjectLike(schema)) {
200
- schema[sealing] = false;
201
- }
202
- else if (!coreMapping.has(name) && isObjectLike(schema) && !name.endsWith("Core")) {
203
- // Seal direct-only object schemas (not core-candidates and not cores themselves)
204
- schema[sealing] = false;
208
+ rewriteReferences(coreMapping) {
209
+ for (const [originalName, coreName] of coreMapping.entries()) {
210
+ this.updateReference(originalName, coreName);
205
211
  }
206
212
  }
207
- // Step 5: Recursively seal inline object schemas
208
- sealInlineSchemas(schemas, sealing);
209
- // If this was a standalone schema, extract and return it
210
- if (wrappedName && isStandalone) {
211
- return schemas[wrappedName];
212
- }
213
- return doc;
214
- }
215
- /**
216
- * Recursively seal nested schemas within a schema.
217
- * This handles JSON Schema models that contain nested subschemas in $defs or definitions.
218
- */
219
- function sealNestedSchemas(schema, defsKey, sealing) {
220
- if (!schema || typeof schema !== "object" || !schema[defsKey])
221
- return;
222
- const defs = schema[defsKey];
223
- // Step 1: Find all schemas referenced in allOf within $defs
224
- const referencedInAllOf = new Set();
225
- for (const def of Object.values(defs)) {
226
- if (!def || typeof def !== "object")
227
- continue;
228
- const defAny = def;
229
- if (!Array.isArray(defAny.allOf))
230
- continue;
231
- for (const item of defAny.allOf) {
232
- if (item && typeof item === "object" && typeof item.$ref === "string") {
233
- const refName = extractDefRefName(item.$ref);
234
- if (refName && defs[refName]) {
235
- referencedInAllOf.add(refName);
236
- }
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;
237
234
  }
238
235
  }
239
236
  }
240
- // Step 2: Create Core variants for schemas referenced in allOf
241
- const coreMapping = new Map();
242
- for (const name of referencedInAllOf) {
243
- const def = defs[name];
244
- if (def &&
245
- typeof def === "object" &&
246
- !isPreSealed(def) &&
247
- isObjectLike(def)) {
248
- const coreName = `${name}Core`;
249
- coreMapping.set(name, coreName);
250
- const coreSchema = deepClone(def);
251
- removeSealing(coreSchema);
252
- const refPath = defsKey === "$defs" ? `#/$defs/${coreName}` : `#/definitions/${coreName}`;
253
- const wrapper = {
254
- allOf: [{ $ref: refPath }],
255
- };
256
- wrapper[sealing] = false;
257
- const coreSchemaAny = coreSchema;
258
- if (coreSchemaAny.description) {
259
- wrapper.description = coreSchemaAny.description;
260
- delete coreSchemaAny.description;
237
+ }
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();
261
251
  }
262
- defs[coreName] = coreSchema;
263
- defs[name] = wrapper;
264
252
  }
265
253
  }
266
- // Step 3: Rewrite references inside allOf to point to Core variants
267
- for (const [originalName, coreName] of coreMapping.entries()) {
268
- updateNestedAllOfReferences(defs, originalName, coreName, defsKey);
254
+ getCoreRef(coreName) {
255
+ return `#/components/schemas/${coreName}`;
269
256
  }
270
- // Step 4: Seal composition roots and direct-only objects in $defs
271
- for (const [name, def] of Object.entries(defs)) {
272
- if (!def || typeof def !== "object")
273
- continue;
274
- const defAny = def;
275
- if (defAny[sealing] === false || defAny.additionalProperties === false) {
276
- continue;
277
- }
278
- const isWrapper = defAny.allOf &&
279
- defAny.allOf.length === 1 &&
280
- typeof defAny.allOf[0].$ref === "string" &&
281
- defAny.allOf[0].$ref.includes("Core");
282
- // Only seal if there's sealable content
283
- if (!hasSealableContent(def)) {
284
- continue;
285
- }
286
- if (!isWrapper && (defAny.allOf || defAny.anyOf || defAny.oneOf) && isObjectLike(def)) {
287
- defAny[sealing] = false;
288
- }
289
- else if (!coreMapping.has(name) && isObjectLike(def) && !name.endsWith("Core")) {
290
- defAny[sealing] = false;
257
+ updateReference(originalName, coreName) {
258
+ updateAllOfReferences(this.schemas, originalName, coreName);
259
+ }
260
+ }
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;
268
+ }
269
+ postprocess() {
270
+ if (this.parent &&
271
+ hasSealableContent(this.parent) &&
272
+ isObjectLike(this.parent) &&
273
+ !isPreSealed(this.parent)) {
274
+ this.parent[this.sealing] = false;
291
275
  }
292
276
  }
293
- // Step 5: Recursively seal inline schemas in $defs
294
- sealInlineSchemas(defs, sealing);
295
- // Step 6: Seal the root schema itself if it has sealable content
296
- if (hasSealableContent(schema) && isObjectLike(schema) && !isPreSealed(schema)) {
297
- schema[sealing] = false;
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);
298
282
  }
299
283
  }
300
284
  /**
@@ -304,29 +288,9 @@ function updateNestedAllOfReferences(defs, originalName, coreName, defsKey) {
304
288
  const refPrefix = defsKey === "$defs" ? "#/$defs" : "#/definitions";
305
289
  const originalRef = `${refPrefix}/${originalName}`;
306
290
  const coreRef = `${refPrefix}/${coreName}`;
307
- // Use JSONPath to find all matching allOf entries with the originalRef and update them
308
- try {
309
- const query = `$.${defsKey}..allOf[?(@.$ref=='${originalRef}')]`;
310
- const pointers = JSONPath({ path: query, json: { [defsKey]: defs }, resultType: 'pointer' });
311
- for (const ptr of pointers) {
312
- // pointer points to the matching allOf item; we need to set its $ref to coreRef
313
- setJsonPointer({ [defsKey]: defs }, ptr + '/$ref', coreRef);
314
- }
315
- }
316
- catch (e) {
317
- // Fallback to original loop if JSONPath fails
318
- for (const def of Object.values(defs)) {
319
- if (!def || typeof def !== "object")
320
- continue;
321
- if (!Array.isArray(def.allOf))
322
- continue;
323
- for (const item of def.allOf) {
324
- if (item && typeof item === "object" && item.$ref === originalRef) {
325
- item.$ref = coreRef;
326
- }
327
- }
328
- }
329
- }
291
+ const pointerRoot = { [defsKey]: defs };
292
+ const query = `$.${defsKey}..allOf[?(@.$ref=='${originalRef}')]`;
293
+ updateAllOfReferencesWithQuery(defs, originalRef, coreRef, query, pointerRoot);
330
294
  }
331
295
  /**
332
296
  * Update all allOf references from original schema to core schema.
@@ -334,16 +298,19 @@ function updateNestedAllOfReferences(defs, originalName, coreName, defsKey) {
334
298
  function updateAllOfReferences(schemas, originalName, coreName) {
335
299
  const originalRef = `#/components/schemas/${originalName}`;
336
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) {
337
306
  try {
338
- const query = `$.components.schemas..allOf[?(@.$ref=='${originalRef}')]`;
339
- const pointers = JSONPath({ path: query, json: { components: { schemas } }, resultType: 'pointer' });
307
+ const pointers = JSONPath({ path: query, json: pointerRoot, resultType: "pointer" });
340
308
  for (const ptr of pointers) {
341
- setJsonPointer({ components: { schemas } }, ptr + '/$ref', coreRef);
309
+ setJsonPointer(pointerRoot, ptr + "/$ref", coreRef);
342
310
  }
343
311
  }
344
312
  catch (e) {
345
- // Fallback to original loop
346
- for (const schema of Object.values(schemas)) {
313
+ for (const schema of Object.values(scope)) {
347
314
  if (!schema || typeof schema !== "object")
348
315
  continue;
349
316
  if (!Array.isArray(schema.allOf))
@@ -382,15 +349,17 @@ function unescapePointer(part) {
382
349
  /**
383
350
  * Recursively seal inline object schemas (properties, items, etc.).
384
351
  */
385
- function sealInlineSchemas(schemas, sealing) {
352
+ function sealInlineSchemas(schemas, sealing, supportsUnevaluated) {
386
353
  const sealRecursive = (obj) => {
387
354
  if (!obj || typeof obj !== "object")
388
355
  return;
389
356
  if (isObjectLike(obj) && !isPreSealed(obj) && hasSealableContent(obj)) {
390
357
  const hasComposition = Boolean(obj.allOf || obj.anyOf || obj.oneOf);
391
358
  const hasRef = Boolean(findRefsInObject(obj).length > 0);
392
- // Seal inline object if it's not just a reference/composition
393
- if (!hasRef && !hasComposition) {
359
+ if (hasComposition && supportsUnevaluated) {
360
+ obj.unevaluatedProperties = false;
361
+ }
362
+ else if (!hasRef && !hasComposition) {
394
363
  obj[sealing] = false;
395
364
  }
396
365
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sealSchema.js","sourceRoot":"","sources":["../../src/lib/sealSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,qCAAqC,EACrC,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,8BAA8B,EAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AASzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,OAA0B,EAAE;IAC/D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAEhD,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,KAAK,KAAK,CAAC;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAElF,sEAAsE;IACtE,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAEjD,0EAA0E;IAC1E,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEhD,yDAAyD;QACzD,MAAM,kBAAkB,GAAG,UAAU,IAAI,aAAa,CAAC;QAEvD,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,qCAAqC,CAAC,GAAG,CAAC,CAAC;YAEhE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,oCAAoC;oBACpC,IAAI,UAAU,EAAE,CAAC;wBACf,cAAc,CAAC,GAAG,CAAC,CAAC;wBACpB,OAAO,CAAC,IAAI,CACV,+CAA+C,UAAU,6CAA6C,CACvG,CAAC;oBACJ,CAAC;yBAAM,IAAI,aAAa,EAAE,CAAC;wBACzB,8BAA8B,CAAC,GAAG,CAAC,CAAC;wBACpC,OAAO,CAAC,IAAI,CACV,uFAAuF,CACxF,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,iCAAiC;oBACjC,MAAM,WAAW,GAAG,UAAU;wBAC5B,CAAC,CAAC,WAAW,UAAU,EAAE;wBACzB,CAAC,CAAC,eAAe,aAAa,EAAE,CAAC;oBAEnC,MAAM,IAAI,KAAK,CACb,mFAAmF;wBACnF,yBAAyB,WAAW,IAAI;wBACxC,uGAAuG,CACxG,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YACvC,4EAA4E;YAC5E,8BAA8B,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CACV,0FAA0F,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,gFAAgF;IAChF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,yCAAyC,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAGH;;;OAGG;IACH,SAAS,yBAAyB,CAAC,GAAQ;QACzC,sFAAsF;QACtF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAClE,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qEAAqE;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGD;;;;;OAKG;IACH,SAAS,yCAAyC,CAAC,GAAQ;QACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,kBAAkB,GAAG,UAAU,IAAI,aAAa,CAAC;QAEvD,MAAM,mBAAmB,GAAG,qCAAqC,CAAC,GAAG,CAAC,CAAC;QACvE,IAAI,kBAAkB,IAAI,CAAC,mBAAmB,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;YACjF,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,aAAa,EAAE,CAAC;YAC1F,MAAM,IAAI,KAAK,CACb,+FAA+F,WAAW,IAAI;gBAC9G,+HAA+H,CAChI,CAAC;QACJ,CAAC;IACH,CAAC;IAEC,IAAI,OAAwC,CAAC;IAC7C,IAAI,WAAW,GAAW,EAAE,CAAC;IAE7B,IAAI,YAAY,EAAE,CAAC;QACjB,qDAAqD;QACrD,WAAW,GAAG,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAExD,sEAAsE;IACtE,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrD,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACjE,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAS;QACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAS;QAE3C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAQ,IAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/E,MAAM,OAAO,GAAG,SAAS,CAAE,IAAY,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,wBAAwB;IACvE,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IACE,MAAM;YACN,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,WAAW,CAAC,MAAM,CAAC;YACpB,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC;YAC/B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAEhC,2DAA2D;YAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACrC,aAAa,CAAC,UAAU,CAAC,CAAC;YAE1B,uCAAuC;YACvC,MAAM,OAAO,GAAQ;gBACnB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,wBAAwB,QAAQ,EAAE,EAAE,CAAC;aACtD,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAEzB,8CAA8C;YAC9C,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC3B,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBAC7C,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,wCAAwC;YACzE,CAAC;YAED,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,KAAK,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7D,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,yDAAyD;IACzD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAS;QAEpD,yBAAyB;QACzB,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACvE,SAAS;QACX,CAAC;QAED,6EAA6E;QAC7E,MAAM,SAAS,GACb,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACzB,OAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC,IAAI,KAAK,QAAQ;YAChD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjD,oEAAoE;QACpE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,+EAA+E;QAC/E,IACE,CAAC,SAAS;YACV,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;YAC9C,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;aAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpF,iFAAiF;YACjF,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEpC,yDAAyD;IACzD,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,MAAW,EAAE,OAAgC,EAAE,OAAe;IACvF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO;IAEtE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7B,4DAA4D;IAC5D,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QAC9C,MAAM,MAAM,GAAG,GAAU,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAS;QAE3C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAQ,IAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/E,MAAM,OAAO,GAAG,iBAAiB,CAAE,IAAY,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IACE,GAAG;YACH,OAAO,GAAG,KAAK,QAAQ;YACvB,CAAC,WAAW,CAAC,GAAG,CAAC;YACjB,YAAY,CAAC,GAAG,CAAC,EACjB,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC;YAC/B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAEhC,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAClC,aAAa,CAAC,UAAU,CAAC,CAAC;YAE1B,MAAM,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC,iBAAiB,QAAQ,EAAE,CAAC;YAC1F,MAAM,OAAO,GAAQ;gBACnB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAC3B,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAEzB,MAAM,aAAa,GAAG,UAAiB,CAAC;YACxC,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;gBAC9B,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;gBAChD,OAAO,aAAa,CAAC,WAAW,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACvB,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,KAAK,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7D,2BAA2B,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,kEAAkE;IAClE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QAE9C,MAAM,MAAM,GAAG,GAAU,CAAC;QAC1B,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACvE,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GACb,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACzB,OAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC,IAAI,KAAK,QAAQ;YAChD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjD,wCAAwC;QACxC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACtF,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;aAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEjC,iEAAiE;IACjE,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/E,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAClC,IAAyB,EACzB,YAAoB,EACpB,QAAgB,EAChB,OAAgC;IAEhC,MAAM,SAAS,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IACpE,MAAM,WAAW,GAAG,GAAG,SAAS,IAAI,YAAY,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;IAE3C,uFAAuF;IACvF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,OAAO,sBAAsB,WAAW,KAAK,CAAC;QACjE,MAAM,QAAQ,GAAa,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAa,CAAC;QACnH,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,gFAAgF;YAChF,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,8CAA8C;QAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,SAAS;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,GAAW,CAAC,KAAK,CAAC;gBAAE,SAAS;YAEjD,KAAK,MAAM,IAAI,IAAK,GAAW,CAAC,KAAK,EAAE,CAAC;gBACtC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAK,IAAY,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC1E,IAAY,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAGD;;GAEG;AACH,SAAS,qBAAqB,CAC5B,OAA4B,EAC5B,YAAoB,EACpB,QAAgB;IAEhB,MAAM,WAAW,GAAG,wBAAwB,YAAY,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,wBAAwB,QAAQ,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,0CAA0C,WAAW,KAAK,CAAC;QACzE,MAAM,QAAQ,GAAa,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAa,CAAC;QAC3H,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,4BAA4B;QAC5B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,SAAS;YACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,MAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAEpD,KAAK,MAAM,IAAI,IAAK,MAAc,CAAC,KAAK,EAAE,CAAC;gBACzC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAK,IAAY,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC1E,IAAY,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAGD;;GAEG;AACH,SAAS,cAAc,CAAC,IAAS,EAAE,OAAe,EAAE,KAAU;IAC5D,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO;IACvC,6EAA6E;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/D,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;YAAE,OAAO,CAAC,mBAAmB;QAC9C,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO;IAChD,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAA4B,EAAE,OAAe;IACtE,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAQ,EAAE;QACvC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO;QAE5C,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEzD,8DAA8D;YAC9D,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC/B,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACzD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjD,aAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/C,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,iCAAiC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,GAAG,CAAC,oBAAoB,IAAI,OAAO,GAAG,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC;YAC7E,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,MAAW;IAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,QAAQ;QACxB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,MAAW;IACrC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,CACL,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAW;IAC9B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,CACL,MAAM,CAAC,oBAAoB,KAAK,KAAK;QACrC,MAAM,CAAC,qBAAqB,KAAK,KAAK,CACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAW;IAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,oBAAoB,CAAC;QACnC,OAAO,MAAM,CAAC,qBAAqB,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAQ;IACzB,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,GAAG,YAAY,IAAI;QAAE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAQ;IAChC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAQ,GAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAE,GAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,GAAQ;IACtC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAElD,gEAAgE;IAChE,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oDAAoD;IACpD,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mCAAmC;IACnC,MAAM,mBAAmB,GACvB,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,GAAG,CAAC,UAAU,KAAK,SAAS;QAC5B,GAAG,CAAC,OAAO,KAAK,SAAS;QACzB,GAAG,CAAC,KAAK,KAAK,SAAS;QACvB,GAAG,CAAC,WAAW,KAAK,SAAS;QAC7B,GAAG,CAAC,QAAQ,KAAK,SAAS;QAC1B,GAAG,CAAC,KAAK,KAAK,SAAS;QACvB,GAAG,CAAC,KAAK,KAAK,SAAS;QACvB,GAAG,CAAC,KAAK,KAAK,SAAS;QACvB,GAAG,CAAC,KAAK,KAAK,SAAS;QACvB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC;IAEhC,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
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.4",
3
+ "version": "0.3.6",
4
4
  "description": "Utilities for working with OpenAPI (OAS) documents.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",