@hestjs/scalar
Version:
HestJS Scalar API Reference Integration - Beautiful API documentation for HestJS applications
266 lines • 9.16 kB
TypeScript
import 'reflect-metadata';
export type OpenAPIV3 = {
openapi: string;
info: OpenAPIV3.InfoObject;
servers?: OpenAPIV3.ServerObject[];
paths: OpenAPIV3.PathsObject;
components?: OpenAPIV3.ComponentsObject;
security?: OpenAPIV3.SecurityRequirementObject[];
tags?: OpenAPIV3.TagObject[];
externalDocs?: OpenAPIV3.ExternalDocumentationObject;
};
export declare namespace OpenAPIV3 {
interface InfoObject {
title: string;
description?: string;
termsOfService?: string;
contact?: ContactObject;
license?: LicenseObject;
version: string;
}
interface ContactObject {
name?: string;
url?: string;
email?: string;
}
interface LicenseObject {
name: string;
url?: string;
}
interface ServerObject {
url: string;
description?: string;
variables?: Record<string, ServerVariableObject>;
}
interface ServerVariableObject {
enum?: string[];
default: string;
description?: string;
}
interface PathsObject {
[pattern: string]: PathItemObject | undefined;
}
interface PathItemObject {
$ref?: string;
summary?: string;
description?: string;
get?: OperationObject;
put?: OperationObject;
post?: OperationObject;
delete?: OperationObject;
options?: OperationObject;
head?: OperationObject;
patch?: OperationObject;
trace?: OperationObject;
servers?: ServerObject[];
parameters?: (ReferenceObject | ParameterObject)[];
}
interface OperationObject {
tags?: string[];
summary?: string;
description?: string;
externalDocs?: ExternalDocumentationObject;
operationId?: string;
parameters?: (ReferenceObject | ParameterObject)[];
requestBody?: ReferenceObject | RequestBodyObject;
responses: ResponsesObject;
callbacks?: Record<string, ReferenceObject | CallbackObject>;
deprecated?: boolean;
security?: SecurityRequirementObject[];
servers?: ServerObject[];
}
interface ParameterObject {
name: string;
in: 'query' | 'header' | 'path' | 'cookie';
description?: string;
required?: boolean;
deprecated?: boolean;
allowEmptyValue?: boolean;
style?: string;
explode?: boolean;
allowReserved?: boolean;
schema?: ReferenceObject | SchemaObject;
example?: any;
examples?: Record<string, ReferenceObject | ExampleObject>;
content?: Record<string, MediaTypeObject>;
}
interface RequestBodyObject {
description?: string;
content: Record<string, MediaTypeObject>;
required?: boolean;
}
interface ResponsesObject {
[code: string]: ReferenceObject | ResponseObject;
}
interface ResponseObject {
description: string;
headers?: Record<string, ReferenceObject | HeaderObject>;
content?: Record<string, MediaTypeObject>;
links?: Record<string, ReferenceObject | LinkObject>;
}
interface MediaTypeObject {
schema?: ReferenceObject | SchemaObject;
example?: any;
examples?: Record<string, ReferenceObject | ExampleObject>;
encoding?: Record<string, EncodingObject>;
}
interface SchemaObject {
title?: string;
multipleOf?: number;
maximum?: number;
exclusiveMaximum?: boolean;
minimum?: number;
exclusiveMinimum?: boolean;
maxLength?: number;
minLength?: number;
pattern?: string;
maxItems?: number;
minItems?: number;
uniqueItems?: boolean;
maxProperties?: number;
minProperties?: number;
required?: string[];
enum?: any[];
type?: string;
allOf?: (ReferenceObject | SchemaObject)[];
oneOf?: (ReferenceObject | SchemaObject)[];
anyOf?: (ReferenceObject | SchemaObject)[];
not?: ReferenceObject | SchemaObject;
items?: ReferenceObject | SchemaObject;
properties?: Record<string, ReferenceObject | SchemaObject>;
additionalProperties?: boolean | ReferenceObject | SchemaObject;
description?: string;
format?: string;
default?: any;
nullable?: boolean;
discriminator?: DiscriminatorObject;
readOnly?: boolean;
writeOnly?: boolean;
xml?: XMLObject;
externalDocs?: ExternalDocumentationObject;
example?: any;
deprecated?: boolean;
}
interface ComponentsObject {
schemas?: Record<string, ReferenceObject | SchemaObject>;
responses?: Record<string, ReferenceObject | ResponseObject>;
parameters?: Record<string, ReferenceObject | ParameterObject>;
examples?: Record<string, ReferenceObject | ExampleObject>;
requestBodies?: Record<string, ReferenceObject | RequestBodyObject>;
headers?: Record<string, ReferenceObject | HeaderObject>;
securitySchemes?: Record<string, ReferenceObject | SecuritySchemeObject>;
links?: Record<string, ReferenceObject | LinkObject>;
callbacks?: Record<string, ReferenceObject | CallbackObject>;
}
interface ReferenceObject {
$ref: string;
}
interface ExampleObject {
summary?: string;
description?: string;
value?: any;
externalValue?: string;
}
interface HeaderObject extends Omit<ParameterObject, 'name' | 'in'> {
}
interface TagObject {
name: string;
description?: string;
externalDocs?: ExternalDocumentationObject;
}
interface ExternalDocumentationObject {
description?: string;
url: string;
}
interface SecurityRequirementObject {
[name: string]: string[];
}
interface SecuritySchemeObject {
type: string;
description?: string;
name?: string;
in?: string;
scheme?: string;
bearerFormat?: string;
flows?: OAuthFlowsObject;
openIdConnectUrl?: string;
}
interface OAuthFlowsObject {
implicit?: OAuthFlowObject;
password?: OAuthFlowObject;
clientCredentials?: OAuthFlowObject;
authorizationCode?: OAuthFlowObject;
}
interface OAuthFlowObject {
authorizationUrl?: string;
tokenUrl?: string;
refreshUrl?: string;
scopes: Record<string, string>;
}
interface DiscriminatorObject {
propertyName: string;
mapping?: Record<string, string>;
}
interface XMLObject {
name?: string;
namespace?: string;
prefix?: string;
attribute?: boolean;
wrapped?: boolean;
}
interface EncodingObject {
contentType?: string;
headers?: Record<string, ReferenceObject | HeaderObject>;
style?: string;
explode?: boolean;
allowReserved?: boolean;
}
interface LinkObject {
operationRef?: string;
operationId?: string;
parameters?: Record<string, any>;
requestBody?: any;
description?: string;
server?: ServerObject;
}
interface CallbackObject {
[expression: string]: PathItemObject;
}
}
/**
* OpenAPI Tags 装饰器 - OpenAPI 标准
*/
export declare function ApiTags(...tags: string[]): ClassDecorator;
/**
* OpenAPI Operation 装饰器 - OpenAPI 标准
*/
export declare function ApiOperation(operation: Partial<OpenAPIV3.OperationObject>): MethodDecorator;
/**
* OpenAPI Response 装饰器 - OpenAPI 标准
*/
export declare function ApiResponse(status: string | number, response: OpenAPIV3.ResponseObject): MethodDecorator;
/**
* OpenAPI Parameter 装饰器 - OpenAPI 标准
*/
export declare function ApiParameter(param: OpenAPIV3.ParameterObject): MethodDecorator;
/**
* OpenAPI Request Body 装饰器 - OpenAPI 标准
*/
export declare function ApiRequestBody(requestBody: OpenAPIV3.RequestBodyObject): MethodDecorator;
/**
* OpenAPI Security 装饰器 - OpenAPI 标准
*/
export declare function ApiSecurity(security: OpenAPIV3.SecurityRequirementObject[]): MethodDecorator;
/**
* OpenAPI Schema 装饰器 - OpenAPI 标准
*/
export declare function ApiSchema(schema: OpenAPIV3.SchemaObject): ClassDecorator;
/**
* OpenAPI Property 装饰器 - OpenAPI 标准
*/
export declare function ApiProperty(property: OpenAPIV3.SchemaObject): PropertyDecorator;
export declare function ApiQuery(name: string, options?: Partial<Omit<OpenAPIV3.ParameterObject, 'name' | 'in'>>): MethodDecorator;
export declare function ApiParam(name: string, options?: Partial<Omit<OpenAPIV3.ParameterObject, 'name' | 'in'>>): MethodDecorator;
export declare function ApiHeader(name: string, options?: Partial<Omit<OpenAPIV3.ParameterObject, 'name' | 'in'>>): MethodDecorator;
export declare function ApiBody(content: Record<string, OpenAPIV3.MediaTypeObject>, options?: Partial<Omit<OpenAPIV3.RequestBodyObject, 'content'>>): MethodDecorator;
//# sourceMappingURL=openapi.decorators.d.ts.map