UNPKG

@hestjs/scalar

Version:

HestJS Scalar API Reference Integration - Beautiful API documentation for HestJS applications

266 lines 9.16 kB
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