@mintlify/validation 0.1.491 → 0.1.493
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.
- package/dist/openapi/v2/mapExample.d.ts +8 -0
- package/dist/openapi/v2/mapExample.js +20 -0
- package/dist/openapi/v2/mapHeader.d.ts +8 -0
- package/dist/openapi/v2/mapHeader.js +57 -0
- package/dist/openapi/v2/mapMedia.d.ts +8 -0
- package/dist/openapi/v2/mapMedia.js +36 -0
- package/dist/openapi/v2/mapResponseComponents.d.ts +8 -0
- package/dist/openapi/v2/mapResponseComponents.js +51 -0
- package/dist/openapi/v2/mapSchema.d.ts +8 -0
- package/dist/openapi/v2/mapSchema.js +15 -0
- package/dist/openapi/v2/mapSchemaComponents.d.ts +8 -0
- package/dist/openapi/v2/mapSchemaComponents.js +22 -0
- package/dist/openapi/v2/openApiToSchemaGraph.js +6 -2
- package/dist/openapi/v2/replaceSchemaRefs.d.ts +5 -0
- package/dist/openapi/v2/replaceSchemaRefs.js +34 -0
- package/dist/openapi/v2/types/index.d.ts +52 -44
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/serverStaticProps.d.ts +2 -1
- package/package.json +2 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExampleOrRefObject, RefUuidMap, UUIDObjectHashMap, HashedNodeMap, UUID } from './types/index.js';
|
|
2
|
+
export declare const mapExample: ({ example, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }: {
|
|
3
|
+
example: ExampleOrRefObject;
|
|
4
|
+
refUuidMap: RefUuidMap;
|
|
5
|
+
uuidObjectHashMap: UUIDObjectHashMap;
|
|
6
|
+
hashedNodeMap: HashedNodeMap;
|
|
7
|
+
uuid: UUID;
|
|
8
|
+
}) => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import hash from 'object-hash';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
export const mapExample = ({ example, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }) => {
|
|
4
|
+
const objectHash = hash(example);
|
|
5
|
+
uuidObjectHashMap[uuid] = objectHash;
|
|
6
|
+
// if we've seen this exact object before, skip processing
|
|
7
|
+
if (objectHash in hashedNodeMap) {
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
+
example = objectHash;
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
// if ref, replace with uuid
|
|
13
|
+
if ('$ref' in example) {
|
|
14
|
+
const refId = example.$ref;
|
|
15
|
+
const refUuid = refUuidMap[refId] || uuidv4();
|
|
16
|
+
example.$ref = refUuid;
|
|
17
|
+
}
|
|
18
|
+
// add to hashedNodeMap
|
|
19
|
+
hashedNodeMap[objectHash] = example;
|
|
20
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HashedNodeMap, HeaderOrRefObject, RefUuidMap, UUIDObjectHashMap, UUID } from './types/index.js';
|
|
2
|
+
export declare const mapHeader: ({ header, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }: {
|
|
3
|
+
header: HeaderOrRefObject;
|
|
4
|
+
refUuidMap: RefUuidMap;
|
|
5
|
+
uuidObjectHashMap: UUIDObjectHashMap;
|
|
6
|
+
hashedNodeMap: HashedNodeMap;
|
|
7
|
+
uuid: UUID;
|
|
8
|
+
}) => void;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import hash from 'object-hash';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
import { mapExample } from './mapExample.js';
|
|
4
|
+
import { mapMedia } from './mapMedia.js';
|
|
5
|
+
import { mapSchema } from './mapSchema.js';
|
|
6
|
+
export const mapHeader = ({ header, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }) => {
|
|
7
|
+
// hash the raw object
|
|
8
|
+
const objectHash = hash(header);
|
|
9
|
+
// map uuid and hash to uuidObjectHashMap
|
|
10
|
+
uuidObjectHashMap[uuid] = objectHash;
|
|
11
|
+
// if ref, replace with uuid
|
|
12
|
+
if ('$ref' in header) {
|
|
13
|
+
const refId = header.$ref;
|
|
14
|
+
const refUuid = refUuidMap[refId] || uuidv4();
|
|
15
|
+
header.$ref = refUuid;
|
|
16
|
+
}
|
|
17
|
+
// if not ref
|
|
18
|
+
// if schema in header, create SchemaOrRef node
|
|
19
|
+
if ('schema' in header && header.schema && typeof header.schema === 'object') {
|
|
20
|
+
const uuid = uuidv4();
|
|
21
|
+
mapSchema({
|
|
22
|
+
schema: header.schema,
|
|
23
|
+
refUuidMap,
|
|
24
|
+
uuidObjectHashMap,
|
|
25
|
+
hashedNodeMap,
|
|
26
|
+
uuid,
|
|
27
|
+
});
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
header.schema = uuid;
|
|
30
|
+
}
|
|
31
|
+
// if examples in header, create ExampleOrRef node
|
|
32
|
+
if ('examples' in header && header.examples && typeof header.examples === 'object') {
|
|
33
|
+
Object.entries(header.examples).forEach(([exampleName, example]) => {
|
|
34
|
+
const uuid = uuidv4();
|
|
35
|
+
mapExample({ example, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid });
|
|
36
|
+
if (header.examples) {
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
header.examples[exampleName] = uuid;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
// if content in header, create Media node
|
|
43
|
+
if ('content' in header && header.content && typeof header.content === 'object') {
|
|
44
|
+
Object.entries(header.content).forEach(([contentType, content]) => {
|
|
45
|
+
const uuid = uuidv4();
|
|
46
|
+
mapMedia({ content, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid });
|
|
47
|
+
if (header.content) {
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
header.content[contentType] = uuid;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
// if encoding in header, create Encoding node
|
|
54
|
+
// TODO: add support for encoding
|
|
55
|
+
// add to hashedNodeMap
|
|
56
|
+
hashedNodeMap[objectHash] = header;
|
|
57
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HashedNodeMap, MediaObject, RefUuidMap, UUIDObjectHashMap, UUID } from './types/index.js';
|
|
2
|
+
export declare const mapMedia: ({ content, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }: {
|
|
3
|
+
content: MediaObject;
|
|
4
|
+
refUuidMap: RefUuidMap;
|
|
5
|
+
uuidObjectHashMap: UUIDObjectHashMap;
|
|
6
|
+
hashedNodeMap: HashedNodeMap;
|
|
7
|
+
uuid: UUID;
|
|
8
|
+
}) => void;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import hash from 'object-hash';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
import { mapExample } from './mapExample.js';
|
|
4
|
+
import { mapSchema } from './mapSchema.js';
|
|
5
|
+
export const mapMedia = ({ content, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }) => {
|
|
6
|
+
const objectHash = hash(content);
|
|
7
|
+
uuidObjectHashMap[uuid] = objectHash;
|
|
8
|
+
// if we've seen this exact object before, skip processing
|
|
9
|
+
if (objectHash in hashedNodeMap) {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
content = objectHash;
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// if schema in media, create SchemaOrRef node
|
|
15
|
+
if ('schema' in content && content.schema && typeof content.schema === 'object') {
|
|
16
|
+
const uuid = uuidv4();
|
|
17
|
+
mapSchema({ schema: content.schema, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid });
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
|
+
content.schema = uuid;
|
|
20
|
+
}
|
|
21
|
+
// if examples in media, create ExampleOrRef node
|
|
22
|
+
if ('examples' in content && content.examples && typeof content.examples === 'object') {
|
|
23
|
+
Object.entries(content.examples).forEach(([exampleName, example]) => {
|
|
24
|
+
const uuid = uuidv4();
|
|
25
|
+
mapExample({ example, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid });
|
|
26
|
+
if (content.examples) {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
content.examples[exampleName] = uuid;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
// if encoding in media, create Encoding node
|
|
33
|
+
// TODO: add support for encoding
|
|
34
|
+
// add to hashedNodeMap
|
|
35
|
+
hashedNodeMap[objectHash] = content;
|
|
36
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
|
|
2
|
+
import { RefUuidMap, UUIDObjectHashMap, HashedNodeMap } from './types/index.js';
|
|
3
|
+
export declare const mapResponseComponents: ({ spec, refUuidMap, uuidObjectHashMap, hashedNodeMap, }: {
|
|
4
|
+
spec: OpenAPIV3.Document | OpenAPIV3_1.Document;
|
|
5
|
+
refUuidMap: RefUuidMap;
|
|
6
|
+
uuidObjectHashMap: UUIDObjectHashMap;
|
|
7
|
+
hashedNodeMap: HashedNodeMap;
|
|
8
|
+
}) => void;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import hash from 'object-hash';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
import { mapHeader } from './mapHeader.js';
|
|
4
|
+
import { mapMedia } from './mapMedia.js';
|
|
5
|
+
export const mapResponseComponents = ({ spec, refUuidMap, uuidObjectHashMap, hashedNodeMap, }) => {
|
|
6
|
+
var _a;
|
|
7
|
+
const responseComponents = (_a = spec.components) === null || _a === void 0 ? void 0 : _a.responses;
|
|
8
|
+
if (!responseComponents)
|
|
9
|
+
return;
|
|
10
|
+
// for each response component
|
|
11
|
+
Object.entries(responseComponents).forEach(([responseName, response]) => {
|
|
12
|
+
// match the refId to uuid
|
|
13
|
+
const refId = `#/components/responses/${responseName}`;
|
|
14
|
+
const uuid = refUuidMap[refId] || uuidv4();
|
|
15
|
+
// hash the raw object
|
|
16
|
+
const objectHash = hash(response);
|
|
17
|
+
// map uuid and hash to uuidObjectHashMap
|
|
18
|
+
uuidObjectHashMap[uuid] = objectHash;
|
|
19
|
+
// if ref, replace with uuid
|
|
20
|
+
if ('$ref' in response) {
|
|
21
|
+
const refId = response.$ref;
|
|
22
|
+
const uuid = refUuidMap[refId] || uuidv4();
|
|
23
|
+
response.$ref = uuid;
|
|
24
|
+
}
|
|
25
|
+
// if not ref
|
|
26
|
+
// if headers, convert headers to HeaderOrRef nodes
|
|
27
|
+
if ('headers' in response && response.headers && typeof response.headers === 'object') {
|
|
28
|
+
Object.entries(response.headers).forEach(([headerName, header]) => {
|
|
29
|
+
const uuid = uuidv4();
|
|
30
|
+
mapHeader({ header, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid });
|
|
31
|
+
if (response.headers) {
|
|
32
|
+
response.headers[headerName] = uuid;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
// if content, convert content to Media nodes
|
|
37
|
+
if ('content' in response && response.content && typeof response.content === 'object') {
|
|
38
|
+
Object.entries(response.content).forEach(([contentType, content]) => {
|
|
39
|
+
const uuid = uuidv4();
|
|
40
|
+
mapMedia({ content, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid });
|
|
41
|
+
if (response.content) {
|
|
42
|
+
response.content[contentType] = uuid;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
// if links, convert links to Link nodes
|
|
47
|
+
// TODO: add support for links
|
|
48
|
+
// add to hashedNodeMap
|
|
49
|
+
hashedNodeMap[objectHash] = response;
|
|
50
|
+
});
|
|
51
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SchemaOrRefObject, RefUuidMap, UUIDObjectHashMap, HashedNodeMap, UUID } from './types/index.js';
|
|
2
|
+
export declare const mapSchema: ({ schema, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }: {
|
|
3
|
+
schema: SchemaOrRefObject;
|
|
4
|
+
refUuidMap: RefUuidMap;
|
|
5
|
+
uuidObjectHashMap: UUIDObjectHashMap;
|
|
6
|
+
hashedNodeMap: HashedNodeMap;
|
|
7
|
+
uuid: UUID;
|
|
8
|
+
}) => void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import hash from 'object-hash';
|
|
2
|
+
import { replaceSchemaRefs } from './replaceSchemaRefs.js';
|
|
3
|
+
export const mapSchema = ({ schema, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }) => {
|
|
4
|
+
const objectHash = hash(schema);
|
|
5
|
+
uuidObjectHashMap[uuid] = objectHash;
|
|
6
|
+
// if objectHash already exists, replace with hash ref
|
|
7
|
+
if (objectHash in hashedNodeMap) {
|
|
8
|
+
// if we found a duplicate hash we can assume the schema has already been processed to remove refs, so we can quit here and don't need to process it again or add a new entry
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
schema = objectHash;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
replaceSchemaRefs({ schema, refUuidMap });
|
|
14
|
+
hashedNodeMap[objectHash] = schema;
|
|
15
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
|
|
2
|
+
import { RefUuidMap, UUIDObjectHashMap, HashedNodeMap } from './types/index.js';
|
|
3
|
+
export declare const mapSchemaComponents: ({ spec, refUuidMap, uuidObjectHashMap, hashedNodeMap, }: {
|
|
4
|
+
spec: OpenAPIV3.Document | OpenAPIV3_1.Document;
|
|
5
|
+
refUuidMap: RefUuidMap;
|
|
6
|
+
uuidObjectHashMap: UUIDObjectHashMap;
|
|
7
|
+
hashedNodeMap: HashedNodeMap;
|
|
8
|
+
}) => void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import hash from 'object-hash';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
import { replaceSchemaRefs } from './replaceSchemaRefs.js';
|
|
4
|
+
export const mapSchemaComponents = ({ spec, refUuidMap, uuidObjectHashMap, hashedNodeMap, }) => {
|
|
5
|
+
var _a;
|
|
6
|
+
const schemaComponents = (_a = spec.components) === null || _a === void 0 ? void 0 : _a.schemas;
|
|
7
|
+
if (!schemaComponents)
|
|
8
|
+
return;
|
|
9
|
+
Object.entries(schemaComponents).forEach(([schemaName, schema]) => {
|
|
10
|
+
// match the refId to uuid
|
|
11
|
+
const refId = `#/components/schemas/${schemaName}`;
|
|
12
|
+
const uuid = refUuidMap[refId] || uuidv4();
|
|
13
|
+
// hash the raw object
|
|
14
|
+
const objectHash = hash(schema);
|
|
15
|
+
// map uuid and hash to uuidObjectHashMap
|
|
16
|
+
uuidObjectHashMap[uuid] = objectHash;
|
|
17
|
+
// replace refs in schema nodes with uuids
|
|
18
|
+
replaceSchemaRefs({ schema, refUuidMap });
|
|
19
|
+
// add to hashedNodeMap
|
|
20
|
+
hashedNodeMap[objectHash] = schema;
|
|
21
|
+
});
|
|
22
|
+
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { buildRefUuidMap } from './buildRefUuidMap.js';
|
|
2
|
+
import { mapResponseComponents } from './mapResponseComponents.js';
|
|
3
|
+
import { mapSchemaComponents } from './mapSchemaComponents.js';
|
|
2
4
|
export const openApiToSchemaGraph = ({ spec, filename, originalFileLocation, }) => {
|
|
3
5
|
// build map of component refs -> uuids
|
|
4
6
|
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
@@ -16,11 +18,13 @@ export const openApiToSchemaGraph = ({ spec, filename, originalFileLocation, })
|
|
|
16
18
|
// add to uuid and object hash maps
|
|
17
19
|
// (starting with the components section, which already have uuids in refUuidMap)
|
|
18
20
|
// document.components.schemas -> Schema
|
|
19
|
-
|
|
21
|
+
mapSchemaComponents({ spec, refUuidMap, uuidObjectHashMap, hashedNodeMap });
|
|
22
|
+
// document.components.responses -> Response, possibly Header, Schema, Example, Media, Encoding
|
|
23
|
+
mapResponseComponents({ spec, refUuidMap, uuidObjectHashMap, hashedNodeMap });
|
|
20
24
|
// document.components.parameters -> Parameter, possibly Schema, Example, Media, Encoding
|
|
21
25
|
// document.components.examples -> Example
|
|
22
26
|
// document.components.requestBodies -> RequestBody, possibly Media, Schema, Example, Encoding
|
|
23
|
-
// document.components.headers ->
|
|
27
|
+
// document.components.headers -> Header, possibly Schema, Example, Media, Encoding
|
|
24
28
|
// document.components.securitySchemes -> SecurityScheme
|
|
25
29
|
// document.components.links -> TODO (unsupported)
|
|
26
30
|
// document.components.callbacks -> TODO (unsupported)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
export const replaceSchemaRefs = ({ schema, refUuidMap, }) => {
|
|
3
|
+
if ('$ref' in schema) {
|
|
4
|
+
const refId = schema.$ref;
|
|
5
|
+
const uuid = refUuidMap[refId] || uuidv4();
|
|
6
|
+
schema.$ref = uuid;
|
|
7
|
+
}
|
|
8
|
+
if ('properties' in schema && schema.properties && typeof schema.properties === 'object') {
|
|
9
|
+
Object.values(schema.properties).forEach((subschema) => {
|
|
10
|
+
replaceSchemaRefs({ schema: subschema, refUuidMap });
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
if ('items' in schema && schema.items && typeof schema.items === 'object') {
|
|
14
|
+
replaceSchemaRefs({ schema: schema.items, refUuidMap });
|
|
15
|
+
}
|
|
16
|
+
if ('oneOf' in schema && schema.oneOf && Array.isArray(schema.oneOf)) {
|
|
17
|
+
schema.oneOf.forEach((subschema) => {
|
|
18
|
+
replaceSchemaRefs({ schema: subschema, refUuidMap });
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if ('anyOf' in schema && schema.anyOf && Array.isArray(schema.anyOf)) {
|
|
22
|
+
schema.anyOf.forEach((subschema) => {
|
|
23
|
+
replaceSchemaRefs({ schema: subschema, refUuidMap });
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if ('allOf' in schema && schema.allOf && Array.isArray(schema.allOf)) {
|
|
27
|
+
schema.allOf.forEach((subschema) => {
|
|
28
|
+
replaceSchemaRefs({ schema: subschema, refUuidMap });
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if ('not' in schema && schema.not && typeof schema.not === 'object') {
|
|
32
|
+
replaceSchemaRefs({ schema: schema.not, refUuidMap });
|
|
33
|
+
}
|
|
34
|
+
};
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
|
|
2
2
|
import { XMcp, XMint } from '../../types/endpoint.js';
|
|
3
3
|
export type UUID = string;
|
|
4
|
-
export type
|
|
4
|
+
export type HashId = string;
|
|
5
5
|
export type RefUuidMap = Record<string, UUID>;
|
|
6
|
-
export type UUIDObjectHashMap = Record<UUID,
|
|
7
|
-
export type HashedNodeMap = Record<
|
|
8
|
-
export type GraphNode =
|
|
6
|
+
export type UUIDObjectHashMap = Record<UUID, HashId>;
|
|
7
|
+
export type HashedNodeMap = Record<HashId, GraphNode>;
|
|
8
|
+
export type GraphNode = SchemaOrRef | ResponseOrRef | HeaderOrRef | ParameterOrRef | Media | ExampleOrRef | RequestBodyOrRef | SecurityScheme | Server | Path | Operation | SecurityRequirement | Document;
|
|
9
9
|
export type SchemaObject = OpenAPIV3.SchemaObject | OpenAPIV3_1.SchemaObject;
|
|
10
|
-
export type
|
|
11
|
-
|
|
10
|
+
export type RefObject = OpenAPIV3.ReferenceObject | OpenAPIV3_1.ReferenceObject;
|
|
11
|
+
export type SchemaOrRefObject = SchemaObject | RefObject;
|
|
12
|
+
export type SchemaOrRef = (SchemaOrRefObject & {
|
|
12
13
|
items?: UUID;
|
|
13
14
|
properties?: {
|
|
14
15
|
[name: string]: UUID;
|
|
@@ -18,68 +19,79 @@ export type Schema = SchemaObject & {
|
|
|
18
19
|
anyOf?: UUID[];
|
|
19
20
|
oneOf?: UUID[];
|
|
20
21
|
not?: UUID;
|
|
21
|
-
}
|
|
22
|
+
}) | (RefObject & {
|
|
23
|
+
$ref: UUID;
|
|
24
|
+
}) | HashId;
|
|
22
25
|
export type ResponseObject = OpenAPIV3.ResponseObject | OpenAPIV3_1.ResponseObject;
|
|
23
|
-
export type
|
|
24
|
-
type: 'response';
|
|
26
|
+
export type ResponseOrRef = (ResponseObject & {
|
|
25
27
|
headers?: {
|
|
26
28
|
[header: string]: UUID;
|
|
27
29
|
};
|
|
28
30
|
content?: {
|
|
29
|
-
[
|
|
31
|
+
[contentType: string]: UUID;
|
|
30
32
|
};
|
|
31
|
-
|
|
33
|
+
links?: {
|
|
34
|
+
[link: string]: UUID;
|
|
35
|
+
};
|
|
36
|
+
}) | (RefObject & {
|
|
37
|
+
$ref: UUID;
|
|
38
|
+
});
|
|
39
|
+
export type HeaderObject = OpenAPIV3.HeaderObject | OpenAPIV3_1.HeaderObject;
|
|
40
|
+
export type HeaderOrRefObject = HeaderObject | RefObject;
|
|
41
|
+
export type HeaderOrRef = (HeaderObject & {
|
|
42
|
+
schema?: UUID;
|
|
43
|
+
examples?: {
|
|
44
|
+
[name: string]: UUID;
|
|
45
|
+
};
|
|
46
|
+
content?: {
|
|
47
|
+
[contentType: string]: UUID;
|
|
48
|
+
};
|
|
49
|
+
}) | (RefObject & {
|
|
50
|
+
$ref: UUID;
|
|
51
|
+
});
|
|
32
52
|
export type ParameterObject = OpenAPIV3.ParameterObject | OpenAPIV3_1.ParameterObject;
|
|
33
|
-
export type
|
|
34
|
-
|
|
53
|
+
export type ParameterOrRefObject = ParameterObject | RefObject;
|
|
54
|
+
export type ParameterOrRef = (ParameterObject & {
|
|
35
55
|
schema?: UUID;
|
|
36
56
|
examples?: {
|
|
37
|
-
[
|
|
57
|
+
[name: string]: UUID;
|
|
38
58
|
};
|
|
39
59
|
content?: {
|
|
40
|
-
[
|
|
60
|
+
[contentType: string]: UUID;
|
|
41
61
|
};
|
|
42
|
-
}
|
|
62
|
+
}) | (RefObject & {
|
|
63
|
+
$ref: UUID;
|
|
64
|
+
});
|
|
43
65
|
export type MediaObject = OpenAPIV3.MediaTypeObject | OpenAPIV3_1.MediaTypeObject;
|
|
44
66
|
export type Media = MediaObject & {
|
|
45
|
-
type: 'media';
|
|
46
67
|
schema?: UUID;
|
|
47
68
|
examples?: {
|
|
48
|
-
[
|
|
69
|
+
[name: string]: UUID;
|
|
49
70
|
};
|
|
50
71
|
encoding?: {
|
|
51
72
|
[encoding: string]: UUID;
|
|
52
73
|
};
|
|
53
74
|
};
|
|
54
|
-
export type EncodingObject = OpenAPIV3.EncodingObject | OpenAPIV3_1.EncodingObject;
|
|
55
|
-
export type Encoding = EncodingObject & {
|
|
56
|
-
type: 'encoding';
|
|
57
|
-
headers?: {
|
|
58
|
-
[header: string]: UUID;
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
75
|
export type ExampleObject = OpenAPIV3.ExampleObject | OpenAPIV3_1.ExampleObject;
|
|
62
|
-
export type
|
|
63
|
-
|
|
64
|
-
|
|
76
|
+
export type ExampleOrRefObject = ExampleObject | RefObject;
|
|
77
|
+
export type ExampleOrRef = ExampleObject | (RefObject & {
|
|
78
|
+
$ref: UUID;
|
|
79
|
+
});
|
|
65
80
|
export type RequestBodyObject = OpenAPIV3.RequestBodyObject | OpenAPIV3_1.RequestBodyObject;
|
|
66
|
-
export type
|
|
67
|
-
|
|
81
|
+
export type RequestBodyOrRefObject = RequestBodyObject | RefObject;
|
|
82
|
+
export type RequestBodyOrRef = (RequestBodyObject & {
|
|
68
83
|
content?: {
|
|
69
|
-
[
|
|
84
|
+
[contentType: string]: UUID;
|
|
70
85
|
};
|
|
71
|
-
}
|
|
86
|
+
}) | (RefObject & {
|
|
87
|
+
$ref: UUID;
|
|
88
|
+
});
|
|
72
89
|
export type SecuritySchemeObject = OpenAPIV3.SecuritySchemeObject | OpenAPIV3_1.SecuritySchemeObject;
|
|
73
|
-
export type SecurityScheme = SecuritySchemeObject
|
|
74
|
-
type: 'securityScheme';
|
|
75
|
-
};
|
|
90
|
+
export type SecurityScheme = SecuritySchemeObject;
|
|
76
91
|
export type ServerObject = OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject;
|
|
77
|
-
export type Server = ServerObject
|
|
78
|
-
type: 'server';
|
|
79
|
-
};
|
|
92
|
+
export type Server = ServerObject;
|
|
80
93
|
export type PathObject = OpenAPIV3.PathItemObject | OpenAPIV3_1.PathItemObject;
|
|
81
94
|
export type Path = PathObject & {
|
|
82
|
-
type: 'path';
|
|
83
95
|
pattern: string;
|
|
84
96
|
parameters?: UUID[];
|
|
85
97
|
} & {
|
|
@@ -95,7 +107,6 @@ export type OperationExtensions = {
|
|
|
95
107
|
'x-code-samples'?: string[];
|
|
96
108
|
};
|
|
97
109
|
export type Operation = OperationObject & {
|
|
98
|
-
type: 'operation';
|
|
99
110
|
parameters?: UUID[];
|
|
100
111
|
requestBody?: UUID;
|
|
101
112
|
responses?: {
|
|
@@ -108,12 +119,9 @@ export type Operation = OperationObject & {
|
|
|
108
119
|
servers?: UUID[];
|
|
109
120
|
} & OperationExtensions;
|
|
110
121
|
export type SecurityRequirementObject = OpenAPIV3.SecurityRequirementObject | OpenAPIV3_1.SecurityRequirementObject;
|
|
111
|
-
export type SecurityRequirement = SecurityRequirementObject
|
|
112
|
-
type: 'securityRequirement';
|
|
113
|
-
};
|
|
122
|
+
export type SecurityRequirement = SecurityRequirementObject;
|
|
114
123
|
export type DocumentObject = OpenAPIV3.Document | OpenAPIV3_1.Document;
|
|
115
124
|
export type Document = DocumentObject & {
|
|
116
|
-
type: 'document';
|
|
117
125
|
servers?: UUID[];
|
|
118
126
|
paths?: UUID[];
|
|
119
127
|
webhooks?: UUID[];
|