UNPKG

oas

Version:

Comprehensive tooling for working with OpenAPI definitions

1 lines 120 kB
{"version":3,"sources":["/Users/erunion/code/readme/oas/packages/oas/dist/chunk-TQD76MVX.cjs","../src/operation/index.ts","../src/operation/lib/dedupe-common-parameters.ts","../src/samples/index.ts","../src/samples/utils.ts","../src/operation/lib/get-mediatype-examples.ts","../src/operation/lib/get-response-examples.ts","../src/operation/lib/get-callback-examples.ts","../src/operation/lib/get-example-groups.ts","../src/operation/lib/get-requestbody-examples.ts","../src/operation/lib/operationId.ts","../src/operation/transformers/get-response-as-json-schema.ts"],"names":[],"mappings":"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","file":"/Users/erunion/code/readme/oas/packages/oas/dist/chunk-TQD76MVX.cjs","sourcesContent":[null,"import type { Extensions } from '../extensions.js';\nimport type Oas from '../index.js';\nimport type {\n HttpMethods,\n JSONSchema,\n KeyedSecuritySchemeObject,\n MediaTypeObject,\n OAS31Document,\n OASDocument,\n OperationObject,\n ParameterObject,\n PathItemObject,\n ReferenceObject,\n RequestBodyObject,\n ResponseObject,\n SchemaWrapper,\n SecurityRequirementObject,\n SecuritySchemeObject,\n SecurityType,\n TagObject,\n} from '../types.js';\nimport type { CallbackExample } from './lib/get-callback-examples.js';\nimport type { ExampleGroups } from './lib/get-example-groups.js';\nimport type { RequestBodyExample } from './lib/get-requestbody-examples.js';\nimport type { ResponseExample } from './lib/get-response-examples.js';\nimport type { OperationIDGeneratorOptions } from './lib/operationId.js';\nimport type { getParametersAsJSONSchemaOptions } from './transformers/get-parameters-as-json-schema.js';\nimport type { ResponseSchemaObject } from './transformers/get-response-as-json-schema.js';\n\nimport { $RefParser } from '@apidevtools/json-schema-ref-parser';\n\nimport matchesMimeType from '../lib/matches-mimetype.js';\nimport { decorateComponentSchemasWithRefName, dereferenceRef, getDereferencingOptions } from '../lib/refs.js';\nimport { isRef } from '../types.js';\nimport { supportedMethods } from '../utils.js';\n\nimport { dedupeCommonParameters } from './lib/dedupe-common-parameters.js';\nimport { getCallbackExamples } from './lib/get-callback-examples.js';\nimport { getExampleGroups } from './lib/get-example-groups.js';\nimport { getRequestBodyExamples } from './lib/get-requestbody-examples.js';\nimport { getResponseExamples } from './lib/get-response-examples.js';\nimport { getOperationId, hasOperationId } from './lib/operationId.js';\nimport { getParametersAsJSONSchema } from './transformers/get-parameters-as-json-schema.js';\nimport { getResponseAsJSONSchema } from './transformers/get-response-as-json-schema.js';\n\nexport class Operation {\n /**\n * The `Oas` instance that this operation belongs to.\n */\n oas: Oas;\n\n /**\n * Schema of the operation from the API Definition.\n */\n schema: OperationObject;\n\n /**\n * OpenAPI API Definition that this operation originated from.\n */\n api: OASDocument;\n\n /**\n * Path that this operation is targeted towards.\n */\n path: string;\n\n /**\n * HTTP Method that this operation is targeted towards.\n */\n method: HttpMethods;\n\n /**\n * The primary Content Type that this operation accepts.\n */\n contentType: string | undefined;\n\n /**\n * An object with groups of all example definitions (body/header/query/path/response/etc.)\n */\n exampleGroups: ExampleGroups | undefined;\n\n /**\n * Request body examples for this operation.\n */\n requestBodyExamples: RequestBodyExample[] | undefined;\n\n /**\n * Response examples for this operation.\n */\n responseExamples: ResponseExample[] | undefined;\n\n /**\n * Callback examples for this operation (if it has callbacks).\n */\n callbackExamples: CallbackExample[] | undefined;\n\n /**\n * Flattened out arrays of both request and response headers that are utilized on this operation.\n */\n headers: {\n request: string[];\n response: string[];\n };\n\n /**\n * Internal storage array that the library utilizes to keep track of the times the\n * {@see Operation.dereference} has been called so that if you initiate multiple promises they'll\n * all end up returning the same data set once the initial dereference call completed.\n */\n protected promises: {\n reject: any;\n resolve: any;\n }[];\n\n /**\n * Internal storage array that the library utilizes to keep track of its `dereferencing` state so\n * it doesn't initiate multiple dereferencing processes.\n */\n protected dereferencing: {\n circularRefs: string[];\n complete: boolean;\n processing: boolean;\n };\n\n /**\n * Have the component schemas within this API definition been decorated with our\n * `x-readme-ref-name` extension?\n *\n * @see {@link decorateComponentSchemas}\n */\n protected schemasDecorated: boolean = false;\n\n constructor(oas: Oas, path: string, method: HttpMethods, operation: OperationObject) {\n this.oas = oas;\n this.schema = operation;\n this.api = oas.api;\n this.path = path;\n this.method = method;\n\n this.contentType = undefined;\n this.requestBodyExamples = undefined;\n this.responseExamples = undefined;\n this.callbackExamples = undefined;\n this.exampleGroups = undefined;\n this.headers = {\n request: [],\n response: [],\n };\n\n this.promises = [];\n this.dereferencing = {\n processing: false,\n complete: false,\n circularRefs: [],\n };\n }\n\n /**\n * Retrieve the `summary` for this operation.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationsummary}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-summary}\n */\n getSummary(): string | undefined {\n if (this.schema?.summary && typeof this.schema.summary === 'string') {\n return this.schema.summary;\n }\n\n const pathItem = this.api.paths?.[this.path];\n if (pathItem?.summary && typeof pathItem.summary === 'string') {\n return pathItem.summary;\n }\n\n return undefined;\n }\n\n /**\n * Retrieve the `description` for this operation.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationdescription}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-description}\n */\n getDescription(): string | undefined {\n if (this.schema?.description && typeof this.schema.description === 'string') {\n return this.schema.description;\n }\n\n const pathItem = this.api.paths?.[this.path];\n if (pathItem?.description && typeof pathItem.description === 'string') {\n return pathItem.description;\n }\n\n return undefined;\n }\n\n /**\n * Retrieve the primary content type for this operation. If multiple exist, the first JSON-like\n * type will be returned.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-requestbodycontent}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-request-body-content}\n */\n getContentType(): string {\n if (this.contentType) {\n return this.contentType;\n }\n\n let types: string[] = [];\n if (this.schema.requestBody) {\n if (isRef(this.schema.requestBody)) {\n this.schema.requestBody = dereferenceRef(this.schema.requestBody, this.api);\n }\n\n if (this.schema.requestBody && 'content' in this.schema.requestBody) {\n types = Object.keys(this.schema.requestBody.content);\n }\n }\n\n this.contentType = 'application/json';\n if (types?.length) {\n this.contentType = types[0];\n }\n\n // Favor JSON if it exists\n types.forEach(t => {\n if (matchesMimeType.json(t)) {\n this.contentType = t;\n }\n });\n\n return this.contentType;\n }\n\n /**\n * Checks if the current operation has a `x-www-form-urlencoded` content type payload.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-requestbodycontent}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-request-body-content}\n */\n isFormUrlEncoded(): boolean {\n return matchesMimeType.formUrlEncoded(this.getContentType());\n }\n\n /**\n * Checks if the current operation has a mutipart content type payload.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-requestbodycontent}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-request-body-content}\n */\n isMultipart(): boolean {\n return matchesMimeType.multipart(this.getContentType());\n }\n\n /**\n * Checks if the current operation has a JSON-like content type payload.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-requestbodycontent}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-request-body-content}\n */\n isJson(): boolean {\n return matchesMimeType.json(this.getContentType());\n }\n\n /**\n * Checks if the current operation has an XML content type payload.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-requestbodycontent}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-request-body-content}\n */\n isXml(): boolean {\n return matchesMimeType.xml(this.getContentType());\n }\n\n /**\n * Checks if the current operation is a webhook or not.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#oas-webhooks}\n */\n isWebhook(): boolean {\n return this instanceof Webhook;\n }\n\n /**\n * Returns an array of all security requirements associated wtih this operation. If none are\n * defined at the operation level, the securities for the entire API definition are returned\n * (with an empty array as a final fallback).\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#security-requirement-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#security-requirement-object}\n */\n getSecurity(): SecurityRequirementObject[] {\n // If this definition doesn't have any security schemes defined then regardless if there are\n // `security` requirements defined anywhere we should return an empty array because they're all\n // invalid an unusable without the accompanying schemes.\n if (!this.api?.components?.securitySchemes || !Object.keys(this.api.components.securitySchemes).length) {\n return [];\n }\n\n return this.schema.security || this.api.security || [];\n }\n\n /**\n * Retrieve a collection of grouped security schemes. The inner array determines AND-grouped\n * security schemes, the outer array determines OR-groups.\n *\n * @see {@link https://swagger.io/docs/specification/authentication/#multiple}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#security-requirement-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#security-requirement-object}\n * @param filterInvalid Optional flag that, when set to `true`, filters out invalid/nonexistent\n * security schemes, rather than returning `false`.\n */\n getSecurityWithTypes(\n filterInvalid = false,\n ): ((false | { security: KeyedSecuritySchemeObject; type: SecurityType })[] | false)[] {\n return this.getSecurity().map(requirement => {\n let keys: string[];\n try {\n keys = Object.keys(requirement);\n } catch {\n return false;\n }\n\n const keysWithTypes = keys.map(key => {\n let security: SecuritySchemeObject | ReferenceObject | undefined;\n try {\n security = this.api?.components?.securitySchemes?.[key];\n if (!security) return false;\n if (isRef(security)) {\n security = dereferenceRef(security, this.api);\n if (!security || isRef(security)) return false;\n }\n } catch {\n return false;\n }\n\n if (!security || isRef(security)) return false;\n\n let type: SecurityType | null = null;\n\n if (security.type === 'http') {\n if (security.scheme === 'basic') type = 'Basic';\n else if (security.scheme === 'bearer') type = 'Bearer';\n else type = security.type;\n } else if (security.type === 'oauth2') {\n type = 'OAuth2';\n } else if (security.type === 'apiKey') {\n if (security.in === 'query') type = 'Query';\n else if (security.in === 'header') type = 'Header';\n else if (security.in === 'cookie') type = 'Cookie';\n else type = security.type;\n } else {\n return false;\n }\n\n return {\n type,\n security: {\n ...security,\n _key: key,\n _requirements: requirement[key],\n },\n };\n });\n\n if (filterInvalid) return keysWithTypes.filter(key => key !== false);\n\n return keysWithTypes;\n });\n }\n\n /**\n * Retrieve an object where the keys are unique scheme types, and the values are arrays\n * containing each security scheme of that type.\n *\n */\n prepareSecurity(): Record<SecurityType, KeyedSecuritySchemeObject[]> {\n return this.getSecurityWithTypes().reduce(\n (prev, securities) => {\n if (!securities) return prev;\n\n securities.forEach(security => {\n // Remove non-existent schemes\n if (!security) return;\n if (!prev[security.type]) prev[security.type] = [];\n\n // Only add schemes we haven't seen yet.\n const exists = prev[security.type].some(sec => sec._key === security.security._key);\n if (!exists) {\n // Since an operation can require the same security scheme several times (each with\n // different scope requirements), including the `_requirements` in this object would be\n // misleading since we dedupe the security schemes.\n if (security.security?._requirements) delete security.security._requirements;\n prev[security.type].push(security.security);\n }\n });\n\n return prev;\n },\n {} as Record<SecurityType, KeyedSecuritySchemeObject[]>,\n );\n }\n\n /**\n * Retrieve all of the headers, request and response, that are associated with this operation.\n *\n */\n getHeaders(): Operation['headers'] {\n const security = this.prepareSecurity();\n if (security.Header) {\n this.headers.request = security.Header.map((h: KeyedSecuritySchemeObject) => {\n // Only `apiKey` security schemes contain headers.\n if (!('name' in h)) return false;\n return h.name;\n }).filter((item): item is string => item !== false);\n }\n\n if (security.Bearer || security.Basic || security.OAuth2) {\n this.headers.request.push('Authorization');\n }\n\n if (security.Cookie) {\n this.headers.request.push('Cookie');\n }\n\n if (this.schema.parameters) {\n this.headers.request = this.headers.request.concat(\n this.schema.parameters\n .map(p => {\n let param = p;\n if (isRef(param)) {\n param = dereferenceRef(param, this.api);\n if (!param || isRef(param)) return;\n }\n\n if (param.in && param.in === 'header') return param.name;\n // oxlint-disable-next-line no-useless-return\n return;\n })\n .filter((item): item is string => item !== undefined),\n );\n }\n\n if (this.schema.responses) {\n this.headers.response = Object.keys(this.schema.responses)\n .map(r => {\n let response = this.schema.responses![r];\n if (!response) return [];\n if (isRef(response)) {\n this.schema.responses![r] = dereferenceRef(response, this.api);\n response = this.schema.responses![r];\n if (!response || isRef(response)) {\n return [];\n }\n }\n\n return response?.headers ? Object.keys(response.headers) : [];\n })\n .reduce((a, b) => a.concat(b), []);\n }\n\n // If the operation doesn't already specify a `content-type` request header, we check if the\n // path operation request body contains content, which implies that we should also include the\n // `content-type` header.\n if (!this.headers.request.includes('Content-Type') && this.schema.requestBody) {\n let requestBody = this.schema.requestBody;\n if (requestBody) {\n if (isRef(requestBody)) {\n this.schema.requestBody = dereferenceRef(requestBody, this.api);\n requestBody = this.schema.requestBody;\n }\n\n if (requestBody && !isRef(requestBody) && 'content' in requestBody && Object.keys(requestBody.content)) {\n this.headers.request.push('Content-Type');\n }\n }\n }\n\n // This is a similar approach, but in this case if we check the response content and prioritize\n // the `accept` request header and `content-type` request header.\n if (this.schema.responses) {\n const hasResponseContent = Object.keys(this.schema.responses).some(r => {\n let response = this.schema.responses?.[r];\n if (!response) return false;\n if (isRef(response)) {\n this.schema.responses![r] = dereferenceRef(response, this.api);\n response = this.schema.responses![r];\n if (!response || isRef(response)) {\n return false;\n }\n }\n\n return response.content && Object.keys(response.content).length > 0;\n });\n\n if (hasResponseContent) {\n if (!this.headers.request.includes('Accept')) this.headers.request.push('Accept');\n if (!this.headers.response.includes('Content-Type')) this.headers.response.push('Content-Type');\n }\n }\n\n return this.headers;\n }\n\n /**\n * Determine if this operation has an `operationId` present in its schema. Note that if one is\n * present in the schema but is an empty string then this will return `false`.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationid}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-id}\n */\n hasOperationId(): boolean {\n return hasOperationId(this.schema);\n }\n\n /**\n * Determine if an operation has an `operationId` present in its schema. Note that if one is\n * present in the schema but is an empty string then this will return `false`.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationid}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-id}\n */\n static hasOperationId(schema: OperationObject): boolean {\n return hasOperationId(schema);\n }\n\n /**\n * Get an `operationId` for this operation. If one is not present (it's not required by the spec!)\n * a hash of the path and method will be returned instead.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationid}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-id}\n */\n getOperationId(opts: OperationIDGeneratorOptions = {}): string {\n return getOperationId(this.path, this.method, this.schema, opts);\n }\n\n /**\n * Get an `operationId` for an operation. If one is not present (it's not required by the spec!)\n * a hash of the path and method will be returned instead.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationid}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-id}\n */\n static getOperationId(\n path: string,\n method: string,\n schema: OperationObject,\n opts: OperationIDGeneratorOptions = {},\n ): string {\n return getOperationId(path, method, schema, opts);\n }\n\n /**\n * Return an array of all tags, and their metadata, that exist on this operation.\n *\n */\n getTags(): TagObject[] {\n if (!('tags' in this.schema)) {\n return [];\n }\n\n const oasTagMap: Map<string, TagObject> = new Map();\n if (Array.isArray(this.api?.tags)) {\n this.api.tags.forEach(tag => {\n oasTagMap.set(tag.name, tag);\n });\n }\n\n const oasTags = Object.fromEntries(oasTagMap);\n\n const tags: TagObject[] = [];\n if (Array.isArray(this.schema.tags)) {\n this.schema.tags.forEach(tag => {\n if (tag in oasTags) {\n tags.push(oasTags[tag]);\n } else {\n tags.push({\n name: tag,\n });\n }\n });\n }\n\n return tags;\n }\n\n /**\n * Return is the operation is flagged as `deprecated` or not.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationdeprecated}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-deprecated}\n */\n isDeprecated(): boolean {\n return Boolean('deprecated' in this.schema ? this.schema.deprecated : false);\n }\n\n /**\n * Determine if the operation has any (non-request body) parameters.\n *\n */\n hasParameters(): boolean {\n return !!this.getParameters().length;\n }\n\n /**\n * Return the parameters (non-request body) on the operation.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationparameters}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-parameters}\n */\n getParameters(): ParameterObject[] {\n let parameters = (this.schema?.parameters || [])\n .map(p => {\n let param = p;\n if (isRef(param)) {\n param = dereferenceRef(param, this.api);\n if (!param || isRef(param)) return;\n }\n\n return param;\n })\n .filter((param): param is ParameterObject => param !== undefined);\n\n const commonParams = (this.api?.paths?.[this.path]?.parameters || [])\n .map(p => {\n let param = p;\n if (isRef(param)) {\n param = dereferenceRef(param, this.api);\n if (!param || isRef(param)) return;\n }\n\n return param;\n })\n .filter((param): param is ParameterObject => param !== undefined);\n\n if (commonParams.length) {\n parameters = parameters.concat(dedupeCommonParameters(parameters, commonParams) || []);\n }\n\n return parameters;\n }\n\n /**\n * Determine if this operation has any required parameters.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationparameters}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-parameters}\n */\n hasRequiredParameters(): boolean {\n return this.getParameters().some(param => 'required' in param && param.required);\n }\n\n /**\n * Convert the operation into an array of JSON Schema schemas for each available type of\n * parameter available on the operation.\n *\n * Note that this method is not compatible with an operation or OpenAPI definition that has been\n * processed with `.dereference()`. This method can only be called with the _original_ API\n * definition that was used to initialize the `Operation` and `Oas` instance. If a dereferenced\n * schema is present when this is called a `TypeError` will be thrown.\n *\n * @throws {TypeError} If the operation or OpenAPI definition has been run through `.dereference().`\n *\n */\n getParametersAsJSONSchema(opts: getParametersAsJSONSchemaOptions = {}): SchemaWrapper[] | null {\n if (this.isDereferenced()) {\n throw new Error(\n '`.getParametersAsJSONSchema()` is not compatible with an operation or OpenAPI definition that has been run through `.dereference().`',\n );\n }\n\n // Because some downstream tooling that use these JSON Schema objects may need to know original\n // schema names, like in some cases of discriminator mappings in our ReadMe API Explorer, we\n // need to decorate our component schemas with a `x-readme-ref-name` property with that original\n // schema name.\n //\n // This work happens automatically during our `.dereference()` process but because we do not\n // allow dereferencing to be used with this method we need to do this ourselves.\n if (!this.schemasDecorated) {\n decorateComponentSchemasWithRefName(this.api);\n this.schemasDecorated = true;\n }\n\n return getParametersAsJSONSchema(this, this.api, {\n includeDiscriminatorMappingRefs: true,\n ...opts,\n });\n }\n\n /**\n * Get a single response for this status code, formatted as JSON schema.\n *\n * Note that this method is not compatible with an operation or OpenAPI definition that has been\n * processed with `.dereference()`. This method can only be called with the _original_ API\n * definition that was used to initialize the `Operation` and `Oas` instance. If a dereferenced\n * schema is present when this is called a `TypeError` will be thrown.\n *\n * @param statusCode Status code to pull a JSON Schema response for.\n * @param opts Options for schema generation.\n * @param opts.contentType Optional content-type to use. If specified and the response doesn't have\n * this content-type, the function will return null.\n */\n getResponseAsJSONSchema(\n statusCode: number | string,\n opts: {\n /**\n * If you wish to include discriminator mapping `$ref` components alongside your\n * `discriminator` in schemas. Defaults to `true`.\n */\n includeDiscriminatorMappingRefs?: boolean;\n\n /**\n * Optional content-type to use. If specified and the response doesn't have this content-type,\n * the function will return null.\n */\n contentType?: string;\n } = {},\n ): ResponseSchemaObject[] | null {\n if (this.isDereferenced()) {\n throw new Error(\n '`.getResponseAsJSONSchema()` is not compatible with an operation or OpenAPI definition that has been run through `.dereference().`',\n );\n }\n\n // Because some downstream tooling that use these JSON Schema objects may need to know original\n // schema names, like in some cases of discriminator mappings in our ReadMe API Explorer, we\n // need to decorate our component schemas with a `x-readme-ref-name` property with that original\n // schema name.\n //\n // This work happens automatically during our `.dereference()` process but because we do not\n // allow dereferencing to be used with this method we need to do this ourselves.\n if (!this.schemasDecorated) {\n decorateComponentSchemasWithRefName(this.api);\n this.schemasDecorated = true;\n }\n\n return getResponseAsJSONSchema(this, this.api, statusCode, {\n includeDiscriminatorMappingRefs: true,\n ...opts,\n });\n }\n\n /**\n * Get an array of all valid response status codes for this operation.\n *\n */\n getResponseStatusCodes(): string[] {\n if (!this.schema.responses) return [];\n\n if (isRef(this.schema.responses)) {\n this.schema.responses = dereferenceRef(this.schema.responses, this.api);\n if (!this.schema.responses || isRef(this.schema.responses)) {\n return [];\n }\n }\n\n return Object.keys(this.schema.responses).filter(key => {\n // `x-` extensions aren't valid HTTP status codes so we shouldn't return them as one.\n if (key.startsWith('x-')) {\n return false;\n }\n\n const response = this.schema.responses?.[key];\n return response && typeof response === 'object';\n });\n }\n\n /**\n * Retrieve an array of all content types that this operation can return.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#response-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#response-object}\n */\n getResponseContentTypes(): string[] {\n if (!this.schema.responses) return [];\n\n const contentTypes = new Set<string>();\n Object.values(this.schema.responses).forEach((response: ReferenceObject | ResponseObject) => {\n let resp = response;\n if (!resp) return;\n if (isRef(resp)) {\n resp = dereferenceRef(resp, this.api);\n\n // If this response still can't be resolved then we shouldn't return anything because it's\n // either an invalid schema or a circular reference.\n if (!resp || isRef(resp)) {\n return;\n }\n }\n\n Object.keys(resp.content || {}).forEach(mimeType => {\n contentTypes.add(mimeType);\n });\n });\n\n return Array.from(contentTypes);\n }\n\n /**\n * Determine if the operation has any request bodies.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#user-content-operationrequestbody}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.2.md#user-content-operation-request-body}\n */\n hasRequestBody(): boolean {\n return !!this.schema.requestBody;\n }\n\n /**\n * Return the current `requestBody` object, dereferencing it in the process if it's a `$ref`\n * pointer.\n *\n */\n private getResolvedRequestBody(): RequestBodyObject | false {\n let requestBody = this.schema.requestBody;\n if (!requestBody) return false;\n if (isRef(requestBody)) {\n this.schema.requestBody = dereferenceRef(requestBody, this.api);\n requestBody = this.schema.requestBody;\n if (!requestBody || isRef(requestBody)) {\n return false;\n }\n }\n\n return requestBody;\n }\n\n /**\n * Retrieve the list of all available medi