UNPKG

oas

Version:

Comprehensive tooling for working with OpenAPI definitions

1 lines 133 kB
{"version":3,"sources":["/Users/erunion/code/readme/oas/packages/oas/dist/chunk-ZD7R5BNE.cjs","../src/lib/matches-mimetype.ts","../src/lib/get-parameter-content-type.ts","../src/lib/refs.ts","../src/lib/helpers.ts","../src/lib/clone-object.ts","../src/lib/build-discriminator-one-of.ts","../src/lib/openapi-to-json-schema.ts","../src/operation/transformers/get-parameters-as-json-schema.ts","../src/utils.ts"],"names":["types","converted","schema"],"mappings":"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","file":"/Users/erunion/code/readme/oas/packages/oas/dist/chunk-ZD7R5BNE.cjs","sourcesContent":[null,"function matchesMediaType(types: string[], mediaType: string): boolean {\n return types.some(type => {\n return mediaType.indexOf(type) > -1;\n });\n}\n\nexport default {\n formUrlEncoded: (mimeType: string): boolean => {\n return matchesMediaType(['application/x-www-form-urlencoded'], mimeType);\n },\n\n json: (contentType: string): boolean => {\n return matchesMediaType(\n ['application/json', 'application/x-json', 'text/json', 'text/x-json', '+json'],\n contentType,\n );\n },\n\n multipart: (contentType: string): boolean => {\n return matchesMediaType(\n ['multipart/mixed', 'multipart/related', 'multipart/form-data', 'multipart/alternative'],\n contentType,\n );\n },\n\n wildcard: (contentType: string): boolean => {\n return contentType === '*/*';\n },\n\n xml: (contentType: string): boolean => {\n return matchesMediaType(\n [\n 'application/xml',\n 'application/xml-external-parsed-entity',\n 'application/xml-dtd',\n 'text/xml',\n 'text/xml-external-parsed-entity',\n '+xml',\n ],\n contentType,\n );\n },\n};\n","import matchesMimetype from './matches-mimetype.js';\n\n/**\n * Selects a content type from an array of content type keys, prioritizing `application/json`\n * and other JSON-like content types over other content types.\n *\n * When multiple content types are present:\n * - If there's exactly one content type, it's returned\n * - If there are multiple content types, JSON-like content types (e.g., `application/json`,\n * `application/vnd.api+json`) are prioritized\n * - If no JSON-like content types are present, the first content type is returned\n *\n * @param contentKeys - Array of content type keys (e.g., ['application/json', 'application/xml'])\n * @returns The selected content type, or undefined if the array is empty\n */\nexport function getParameterContentType(contentKeys: string[]): string | undefined {\n if (contentKeys.length === 0) {\n return undefined;\n }\n\n if (contentKeys.length === 1) {\n return contentKeys[0];\n }\n\n // We should always try to prioritize `application/json` over any other possible\n // content that might be present on this schema.\n const jsonLikeContentTypes = contentKeys.filter(k => matchesMimetype.json(k));\n if (jsonLikeContentTypes.length) {\n return jsonLikeContentTypes[0];\n }\n\n return contentKeys[0];\n}\n","import type { OASDocument, SchemaObject } from '../types.js';\n\nimport jsonpointer from 'jsonpointer';\n\nimport { isRef } from '../types.js';\n\nimport { isPrimitive } from './helpers.js';\n\n/**\n * Normalize a `$ref` pointer (`#/components/schemas/Pet`) into a plain JSON pointer\n * (`/components/schemas/Pet`) so it can be compared against `jsonpath-plus` result pointers, which\n * never carry the leading `#`.\n *\n */\nexport function toPointer($ref: string): string {\n return $ref.startsWith('#') ? $ref.slice(1) : $ref;\n}\n\n/**\n * Decorate component schemas within the API definition with a `x-readme-ref-name` property so we\n * can retin their original schema names during dereferencing or `$ref` resolution operations.\n *\n */\nexport function decorateComponentSchemasWithRefName(api: OASDocument): void {\n if (!api?.components?.schemas || typeof api.components.schemas !== 'object') {\n return;\n }\n\n Object.keys(api.components.schemas).forEach(schemaName => {\n // As of OpenAPI 3.1 component schemas can be primitives or arrays. If this happens then we\n // shouldn't try to add `x-readme-ref-name` properties because we can't. We'll have some data\n // loss on these schemas but as they aren't objects they likely won't be used in ways that\n // would require needing a `title` or `x-readme-ref-name` anyways.\n if (\n isPrimitive(api.components?.schemas?.[schemaName]) ||\n Array.isArray(api.components?.schemas?.[schemaName]) ||\n api.components?.schemas?.[schemaName] === null\n ) {\n return;\n }\n\n // oxlint-disable-next-line no-unsafe-optional-chaining\n (api.components?.schemas?.[schemaName] as SchemaObject)['x-readme-ref-name'] = schemaName;\n });\n}\n\n/**\n * Encode a string to be used as a JSON pointer.\n *\n * @see {@link https://tools.ietf.org/html/rfc6901}\n * @param str String to encode into string that can be used as a JSON pointer.\n */\nexport function encodePointer(str: string): string {\n return str.replaceAll('~', '~0').replaceAll('/', '~1');\n}\n\n/**\n * Decode a JSON pointer string.\n *\n * Per RFC 6901, `~0` is unescaped to `~` and `~1` to `/`. A single-pass replacement is required:\n * the sequence `~01` must decode to `~1` (tilde then one), not `~/`. Replacing `~1` before `~0`\n * would incorrectly turn `~01` into `~/`.\n *\n * @see {@link https://tools.ietf.org/html/rfc6901}\n * @param str String to decode a JSON pointer from\n */\nexport function decodePointer(str: string): string {\n return str.replace(/~([01])/g, (_, digit) => (digit === '0' ? '~' : '/'));\n}\n\n/**\n * Lookup a reference pointer within an a JSON object and return the schema that it resolves to.\n *\n * @param $ref Reference to look up a schema for.\n * @param definition OpenAPI definition to look for the `$ref` pointer in.\n */\nfunction findRef($ref: string, definition: OASDocument | SchemaObject): any {\n let currRef = $ref.trim();\n if (currRef === '') {\n // If this ref is empty, don't bother trying to look for it.\n return false;\n }\n\n if (currRef.startsWith('#')) {\n // Decode URI fragment representation.\n currRef = decodeURIComponent(currRef.substring(1));\n } else {\n throw new Error(`Could not find a definition for ${$ref}.`);\n }\n\n const current = jsonpointer.get(definition, currRef);\n if (current === undefined) {\n throw new Error(`Could not find a definition for ${$ref}.`);\n }\n\n return current;\n}\n\n/**\n * Dereference a `$ref` pointer if present, otherwise return the value as-is.\n *\n * This function handles `$ref` pointers on-the-fly without requiring full dereferencing and\n * prevents infinite loops by tracking seen `$ref` pointers and not re-processing circular\n * references.\n *\n * @param value The value that may contain a `$ref` pointer.\n * @param definition OpenAPI definition to look for the `$ref` pointer in.\n * @param seenRefs Optional Set to track `$ref` pointers that have already been processed to prevent circular references.\n * @returns The dereferenced value if it was a `$ref`, otherwise the original value. Returns the original `$ref` if it's circular.\n */\nexport function dereferenceRef<T>(\n value: T,\n definition?: OASDocument | SchemaObject,\n seenRefs: Set<string> = new Set<string>(),\n): T {\n if (value === undefined) {\n return undefined as T;\n }\n\n if (isRef(value)) {\n if (!definition) {\n return value as T;\n }\n\n const ref = value.$ref;\n\n // If we've seen this `$ref` before then it's circular and we should return the original `$ref`\n // to prevent infinite loops\n if (seenRefs.has(ref)) {\n return value as T;\n }\n\n // Track this `$ref` as having been seen so we can avoid infinitely processing circular\n // references.\n seenRefs.add(ref);\n\n try {\n const dereferenced = findRef(ref, definition);\n\n // If the dereferenced value is itself a `$ref` then recursively dereference it (but with\n // `seenRefs` tracking).\n if (isRef(dereferenced)) {\n return dereferenceRef(dereferenced, definition, seenRefs) as T;\n }\n\n return {\n ...dereferenced,\n } as T;\n } catch {\n // If dereferencing fails return the original `$ref`.\n return value as T;\n }\n }\n\n return value;\n}\n\n/**\n * Recursively resolve `$ref` pointers inside a given schema.\n *\n * Uses the same `seenRefs` logic as `dereferenceRef` for protection against circular references.\n *\n * @see {@link dereferenceRef}\n */\nexport function dereferenceRefDeep<T>(\n value: T,\n definition?: OASDocument | SchemaObject,\n seenRefs: Set<string> = new Set<string>(),\n): T {\n if (value === null || value === undefined) return value;\n if (typeof value !== 'object') return value;\n\n if (isRef(value)) {\n if (!definition) return value;\n\n const resolved = dereferenceRef(value, definition, seenRefs);\n if (isRef(resolved)) return resolved as T;\n\n return dereferenceRefDeep(resolved, definition, seenRefs) as T;\n }\n\n if (Array.isArray(value)) {\n return value.map(entry => dereferenceRefDeep(entry, definition, seenRefs)) as T;\n }\n\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value)) {\n out[key] = dereferenceRefDeep((value as Record<string, unknown>)[key], definition, seenRefs);\n }\n\n return out as T;\n}\n\n/**\n * Recursively collect all `$ref` pointers in a schema.\n *\n */\nexport function collectRefsInSchema(schema: unknown): Set<string> {\n const refs = new Set<string>();\n if (!schema || typeof schema !== 'object') return refs;\n const obj = schema as Record<string, unknown>;\n if (isRef(obj)) {\n refs.add(obj.$ref);\n }\n\n for (const value of Object.values(obj)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n for (const r of collectRefsInSchema(item)) refs.add(r);\n }\n } else if (value && typeof value === 'object') {\n for (const r of collectRefsInSchema(value)) refs.add(r);\n }\n }\n\n return refs;\n}\n\n/**\n * Given a set of `$ref` pointers and a full set of schema objects, mapped to their reference\n * locations, return only the schemas that are transitively referenced from those schemas.\n *\n */\nexport function filterRequiredRefsToReferenced(\n requiredRefs: Set<string>,\n usedSchemas: Map<string, SchemaObject>,\n): Map<string, SchemaObject> {\n const referenced = new Set(requiredRefs);\n\n let prevSize = 0;\n while (referenced.size > prevSize) {\n prevSize = referenced.size;\n for (const ref of referenced) {\n const schema = usedSchemas.get(ref);\n if (schema) {\n for (const r of collectRefsInSchema(schema)) {\n referenced.add(r);\n }\n }\n }\n }\n\n const filtered = new Map<string, SchemaObject>();\n for (const ref of referenced) {\n const s = usedSchemas.get(ref);\n if (s !== undefined) {\n filtered.set(ref, s);\n }\n }\n\n return filtered;\n}\n\n/**\n * Parse a `$ref` pointers (e.g. `#/x-definitions/MySchema` or `#/components/schemas/Foo`) into\n * path segments. Returns `null` if the first segment is reserved (we should not embed at root\n * under that key).\n *\n */\nfunction getRefPathSegments(ref: string): string[] | null {\n if (!ref.startsWith('#/')) return null;\n const path = ref\n .slice(2)\n .split('/')\n .map(seg => {\n // We need to decode these segments twice because the first decode is to decode encoded JSON\n // pointer segments, and the second is to decode any URI-encoded segments.\n return decodeURIComponent(decodePointer(seg));\n });\n\n if (path.length < 2) {\n // We need at least two pieces of a `$ref` for it to be valid. e.g. `#/x-definitions/MySchema`\n // or `#/components/schemas/Foo`.\n return null;\n }\n\n return path;\n}\n\nfunction isArrayIndexSegment(seg: string): boolean {\n return /^\\d+$/.test(seg);\n}\n\nfunction childShouldBeSchemaArray(parentKey: string, childSeg: string | undefined): boolean {\n if (!childSeg || !isArrayIndexSegment(childSeg)) {\n return false;\n }\n\n return parentKey === 'allOf' || parentKey === 'anyOf' || parentKey === 'oneOf';\n}\n\n/**\n * Merge referenced schemas into the root schema at the paths defined by their reference location.\n *\n * @example `#/components/schemas/MySchema` -> `root.components.schemas.MySchema`\n */\nexport function mergeReferencedSchemasIntoRoot(root: SchemaObject, refToSchema: Map<string, unknown>): void {\n // we need to sort this so parent schemas are placed before child schemas to\n // prevent a parent from overwriting a child's synthetically created path\n // sorting by path depth (shallowest first)\n const sortedEntries = [...refToSchema.entries()].toSorted((a, b) => {\n const aDepth = a[0].split('/').length;\n const bDepth = b[0].split('/').length;\n return aDepth - bDepth;\n });\n\n for (const [ref, schema] of sortedEntries) {\n const segments = getRefPathSegments(ref);\n if (!segments || segments.length === 0) {\n continue;\n }\n\n let current: SchemaObject = root;\n let pathInvalid = false;\n\n for (let i = 0; i < segments.length - 1; i++) {\n const seg = segments[i] as keyof SchemaObject;\n const nextSeg = segments[i + 1];\n\n if (Array.isArray(current)) {\n const idx = Number(seg);\n if (!Number.isInteger(idx) || idx < 0) {\n pathInvalid = true;\n break;\n }\n\n const slot: SchemaObject = current[idx];\n if (slot === undefined || slot === null || typeof slot !== 'object' || Array.isArray(slot)) {\n const nextObj: SchemaObject = {};\n current[idx] = nextObj;\n current = nextObj;\n } else {\n current = slot;\n }\n\n continue;\n }\n\n const cur = current;\n const existing = cur[seg] as SchemaObject;\n\n if (childShouldBeSchemaArray(seg, nextSeg)) {\n if (!Array.isArray(existing)) {\n cur[seg] = [];\n }\n\n current = cur[seg] as unknown[];\n continue;\n }\n\n let next: Record<string, unknown>;\n if (existing !== undefined && existing !== null && typeof existing === 'object' && !Array.isArray(existing)) {\n next = existing as Record<string, unknown>;\n } else {\n next = {};\n cur[seg] = next;\n }\n\n current = next;\n }\n\n if (pathInvalid) {\n continue;\n }\n\n const lastSeg = segments[segments.length - 1] as keyof SchemaObject;\n if (Array.isArray(current)) {\n const idx = Number(lastSeg);\n if (!Number.isInteger(idx) || idx < 0) {\n continue;\n }\n\n current[idx] = schema;\n } else {\n current[lastSeg] = schema;\n }\n }\n}\n","import type { SchemaObject } from '../types.js';\n\nexport function hasSchemaType(schema: SchemaObject, discriminator: 'array' | 'object'): boolean {\n if (Array.isArray(schema.type)) {\n return schema.type.includes(discriminator);\n }\n\n return schema.type === discriminator;\n}\n\nexport function isObject(val: unknown): val is Record<string, unknown> {\n return typeof val === 'object' && val !== null && !Array.isArray(val);\n}\n\nexport function isPrimitive(val: unknown): val is boolean | number | string {\n return typeof val === 'string' || typeof val === 'number' || typeof val === 'boolean';\n}\n","/**\n * @deprecated Use `structuredClone` instead\n */\nexport function cloneObject<T>(obj: T): T {\n if (typeof obj === 'undefined') {\n return undefined as T;\n }\n\n // oxlint-disable-next-line readme/json-parse-try-catch\n return JSON.parse(JSON.stringify(obj));\n}\n","import type { DiscriminatorChildrenMap, DiscriminatorObject, OASDocument, SchemaObject } from '../types.js';\n\nimport { isRef } from '../types.js';\n\nimport { cloneObject } from './clone-object.js';\n\n/**\n * Determines if a schema has a discriminator but is missing oneOf/anyOf polymorphism.\n *\n * @param schema Schema to check.\n * @returns If the schema has a discriminator but no oneOf/anyOf.\n */\nfunction hasDiscriminatorWithoutPolymorphism(schema: SchemaObject): boolean {\n if (!schema || typeof schema !== 'object') return false;\n if (!('discriminator' in schema)) return false;\n if ('oneOf' in schema || 'anyOf' in schema) return false;\n return true;\n}\n\n/**\n * Checks if a schema's allOf contains a $ref to a specific schema name.\n *\n * @param schema Schema to check.\n * @param targetSchemaName The schema name to look for (e.g., 'Pet').\n * @returns If the schema's allOf contains a $ref to the target schema.\n */\nfunction allOfReferencesSchema(schema: SchemaObject, targetSchemaName: string): boolean {\n if (!schema || typeof schema !== 'object') return false;\n if (!('allOf' in schema) || !Array.isArray(schema.allOf)) return false;\n\n return schema.allOf.some(item => {\n if (isRef(item)) {\n // Check if the $ref points to the target schema\n // Format: #/components/schemas/SchemaName\n const refParts = item.$ref.split('/');\n const refSchemaName = refParts[refParts.length - 1];\n return refSchemaName === targetSchemaName;\n }\n\n return false;\n });\n}\n\n/**\n * Phase 1: Before dereferencing, identify discriminator schemas and their children via allOf\n * inheritance. Returns a mapping that can be used after dereferencing.\n *\n * We don't add oneOf here because that would create circular references\n * (Pet → Cat → Pet via allOf) which would break dereferencing.\n *\n * Note: Schemas defined in mapping but NOT declared using anyOf, allOf or oneOf will not be considered\n * a valid child. The discriminator object is legal only when using one of the composite keywords oneOf, anyOf, allOf.\n * @link https://spec.openapis.org/oas/v3.1.0.html#fixed-fields-20\n *\n * @param api The OpenAPI definition to process (before dereferencing).\n * @returns Maps of discriminator schema names to their child schema names and `$ref` pointers.\n */\nexport function findDiscriminatorChildren(definition: Pick<OASDocument, 'components'>): {\n children: DiscriminatorChildrenMap;\n refs: Map<string, string>;\n} {\n const childrenMap: DiscriminatorChildrenMap = new Map();\n const childrenRefMap = new Map<string, string>();\n\n if (!definition?.components?.schemas || typeof definition.components.schemas !== 'object') {\n return { children: childrenMap, refs: childrenRefMap };\n }\n\n const schemas = definition.components.schemas as Record<string, SchemaObject>;\n const schemaNames = Object.keys(schemas);\n\n // Find all schemas with discriminator but no oneOf/anyOf\n const discriminatorSchemas: string[] = schemaNames.filter(name => {\n return hasDiscriminatorWithoutPolymorphism(schemas[name]);\n });\n\n // For each discriminator schema, record child schema names\n for (const baseName of discriminatorSchemas) {\n const baseSchema = schemas[baseName] as SchemaObject & { discriminator: DiscriminatorObject };\n const discriminator = baseSchema.discriminator;\n\n let childSchemaNames: string[] = [];\n\n // If there's already a mapping defined, use it but only include schemas that\n // actually inherit from this parent via allOf. A mapping entry for a schema\n // that doesn't use allOf is just a value resolution hint, not a declaration\n // of inheritance.\n if (discriminator.mapping && typeof discriminator.mapping === 'object') {\n const mappingRefs = Object.values(discriminator.mapping);\n if (mappingRefs.length > 0) {\n childSchemaNames = mappingRefs\n .map(ref => ref.split('/').pop())\n .filter((name): name is string => {\n if (!name) return false;\n const childSchema = schemas[name];\n return !!childSchema && allOfReferencesSchema(childSchema, baseName);\n });\n }\n }\n\n // Otherwise, scan for schemas that extend this base via allOf\n if (!childSchemaNames.length) {\n childSchemaNames = schemaNames.filter(name => {\n if (name === baseName) return false;\n return allOfReferencesSchema(schemas[name], baseName);\n });\n }\n\n // Store child schema names in the map\n if (childSchemaNames.length) {\n for (const childName of childSchemaNames) {\n childrenRefMap.set(childName, `#/components/schemas/${childName}`);\n }\n\n childrenMap.set(baseName, childSchemaNames);\n childrenRefMap.set(baseName, `#/components/schemas/${baseName}`);\n }\n }\n\n return { children: childrenMap, refs: childrenRefMap };\n}\n\n/**\n * Apply discriminator oneOf to a map of used schemas (e.g. from `getParametersAsJSONSchema` and\n * `getResponseAsJSONSchema`). For each discriminator base in `usedSchemas`, it ensures children\n * are in the map via `getOrAddSchema`, then sets `oneOf` on the base.\n *\n * Optionally this also strips `oneOf` from the base when it appears inside a child's `allOf`\n * schema.\n *\n * @param api The OpenAPI definition (for findDiscriminatorChildren).\n * @param usedSchemas Map of schema name -> JSON Schema to update.\n * @param getOrAddSchema Callback that resolves, converts, and adds a schema by name; returns the converted schema or undefined.\n */\nexport function applyDiscriminatorOneOfToUsedSchemas(\n definition: Pick<OASDocument, 'components'>,\n usedSchemas: Map<string, SchemaObject>,\n getOrAddSchema: (ref: string) => SchemaObject | undefined,\n): void {\n const { children: childrenMap, refs: childrenRefMap } = findDiscriminatorChildren(definition);\n if (!childrenMap.size) return;\n\n // Build oneOf for each discriminator schema\n for (const [baseName, childNames] of childrenMap) {\n const baseRef = childrenRefMap.get(baseName);\n if (!baseRef) continue;\n\n const baseSchema = usedSchemas.get(baseRef);\n if (!baseSchema || typeof baseSchema !== 'object') continue;\n\n // Build `oneOf` from raw child schema `$ref` pointers.\n const oneOf: SchemaObject[] = [];\n for (const childName of childNames) {\n const childRef = childrenRefMap.get(childName);\n if (!childRef) continue;\n\n const childSchema = getOrAddSchema(childRef);\n if (childSchema) {\n oneOf.push({\n $ref: childRef,\n });\n }\n }\n\n if (oneOf.length > 0) {\n (baseSchema as Record<string, unknown>).oneOf = oneOf;\n }\n }\n\n // Strip `oneOf` from discriminator schemas embedded in child `allOf` structures.\n //\n // When `Cat` extends `Pet` via an `allOf` and `Pet` has a `discriminator` with a `oneOf` the\n // embedded `Pet` inside `Cat`'s `allOf` should NOT have `oneOf` because this would create a\n // circular `Cat.allOf[0].oneOf[0] = Cat` reference.\n //\n // We only strip from `allOf` entries to preserve `oneOf` in direct references.\n for (const [parentSchemaName, childNames] of childrenMap) {\n for (const childName of childNames) {\n const childRef = childrenRefMap.get(childName);\n if (!childRef) continue;\n\n const childSchema = usedSchemas.get(childRef);\n if (!childSchema || !('allOf' in childSchema) || !Array.isArray(childSchema.allOf)) {\n continue;\n }\n\n for (let i = 0; i < childSchema.allOf.length; i++) {\n const item = childSchema.allOf[i];\n if (\n item &&\n typeof item === 'object' &&\n 'x-readme-ref-name' in item &&\n item['x-readme-ref-name'] === parentSchemaName &&\n 'oneOf' in item\n ) {\n // Clone the allOf entry and strip oneOf from the clone to avoid mutating the shared reference.\n // This ensures Pet in components.schemas keeps its oneOf while embedded Pet in Cat's allOf doesn't.\n const clonedItem = cloneObject(item);\n delete clonedItem.oneOf;\n childSchema.allOf[i] = clonedItem;\n }\n }\n }\n }\n}\n","import type {\n ExampleObject,\n JSONSchema,\n OASDocument,\n ReferenceObject,\n RequestBodyObject,\n SchemaObject,\n} from '../types.js';\nimport type { JSONSchema4, JSONSchema7TypeName } from 'json-schema';\nimport type { Options as JSONSchemaMergeAllOfOptions } from 'json-schema-merge-allof';\n\nimport mergeJSONSchemaAllOf from 'json-schema-merge-allof';\nimport jsonpointer from 'jsonpointer';\nimport removeUndefinedObjects from 'remove-undefined-objects';\n\nimport { isOpenAPI30, isRef, isSchema } from '../types.js';\n\nimport { hasSchemaType, isObject, isPrimitive } from './helpers.js';\nimport { collectRefsInSchema, dereferenceRef, encodePointer } from './refs.js';\n\n/**\n * This list has been pulled from `openapi-schema-to-json-schema` but been slightly modified to fit\n * within th