···11import type { EnumExtensions } from '~/openApi/shared/types/openapi-spec-extensions';
2233/**
44- * Type for OpenAPI Specification Extensions (x-* fields).
44+ * OpenAPI Specification Extensions.
55+ *
56 * See {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#specification-extensions Specification Extensions}.
67 */
78export interface SpecificationExtensions {
···284285 * version: 1.0.1
285286 * ```
286287 */
287287-export interface InfoObject {
288288+export interface InfoObject extends SpecificationExtensions {
288289 /**
289290 * The contact information for the exposed API.
290291 */
···692693 /**
693694 * A relative path to an individual endpoint. The field name MUST begin with a forward slash (`/`). The path is **appended** (no relative URL resolution) to the expanded URL from the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#server-object Server Object}'s `url` field in order to construct the full URL. {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#path-templating Path templating} is allowed. When matching URLs, concrete (non-templated) paths would be matched before their templated counterparts. Templated paths with the same hierarchy but different templated names MUST NOT exist as they are identical. In case of ambiguous matching, it's up to the tooling to decide which one to use.
694695 */
695695- [path: `/${string}`]: PathItemObject | unknown;
696696+ [path: `/${string}`]: PathItemObject;
696697}
697698698699/**
···11import type { EnumExtensions } from '~/openApi/shared/types/openapi-spec-extensions';
2233import type { MaybeArray } from '../../../types/utils';
44+import type { SpecificationExtensions } from './spec';
45import type { OpenApiSchemaExtensions } from './spec-extensions';
55-66-/**
77- * Type for OpenAPI Specification Extensions (x-* fields).
88- */
99-export interface SpecificationExtensions {
1010- [extension: `x-${string}`]: unknown;
1111-}
126137// TODO: left out some keywords related to structuring a complex schema and declaring a dialect
148export interface JsonSchemaDraft2020_12
···11import type { JsonSchemaDraft2020_12 } from './json-schema-draft-2020-12';
2233/**
44- * Type for OpenAPI Specification Extensions (x-* fields).
44+ * OpenAPI Specification Extensions.
55+ *
56 * See {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#specification-extensions Specification Extensions}.
67 */
78export interface SpecificationExtensions {
···429430 *
430431 * will map to `Dog` because of the definition in the `mapping` element.
431432 */
432432-export interface DiscriminatorObject {
433433+export interface DiscriminatorObject extends SpecificationExtensions {
433434 /**
434435 * An object to hold mappings between payload values and schema names or references.
435436 */
···14081409 /**
14091410 * A relative path to an individual endpoint. The field name MUST begin with a forward slash (`/`). The path is **appended** (no relative URL resolution) to the expanded URL from the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#server-object `Server Object`}'s `url` field in order to construct the full URL. {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#path-templating Path templating} is allowed. When matching URLs, concrete (non-templated) paths would be matched before their templated counterparts. Templated paths with the same hierarchy but different templated names MUST NOT exist as they are identical. In case of ambiguous matching, it's up to the tooling to decide which one to use.
14101411 */
14111411- [path: `/${string}`]: PathItemObject | unknown;
14121412+ [path: `/${string}`]: PathItemObject;
14121413}
1413141414141415/**
···16721673 *
16731674 * This object MAY be extended with {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#specification-extensions Specification Extensions}, though as noted, additional properties MAY omit the `x-` prefix within this object.
16741675 */
16751675-export type SchemaObject = JsonSchemaDraft2020_12;
16761676+export type SchemaObject = JsonSchemaDraft2020_12 & SpecificationExtensions;
1676167716771678/**
16781679 * Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#componentsSecuritySchemes Security Schemes} under the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#components-object Components Object}.