1 | import { TransformerFactory, SourceFile } from 'typescript';
|
2 | import { JsonSchemaDraft04 } from './jsonSchemaDraft04';
|
3 | import { JsonSchemaDraft07 } from './jsonSchemaDraft07';
|
4 | import { OpenApisV2 } from './openApiV2';
|
5 | import { OpenApisV3 } from './openApiV3';
|
6 | import SchemaId from './schemaId';
|
7 | export import ts = require('typescript');
|
8 | export type JsonSchema = JsonSchemaDraft04.Schema | JsonSchemaDraft07.Schema;
|
9 | export type JsonSchemaObject = JsonSchemaDraft04.Schema | JsonSchemaDraft07.SchemaObject;
|
10 | export type SchemaType = 'Draft04' | 'Draft07' | '2019-09' | '2020-12' | 'Latest';
|
11 | export declare function isJsonSchemaDraft04(_content: JsonSchemaObject, type: SchemaType): _content is JsonSchemaDraft04.Schema;
|
12 | export type $Ref = OpenApisV3.SchemaJson.Definitions.Reference | OpenApisV2.SchemaJson.Definitions.JsonReference;
|
13 | export interface Schema {
|
14 | type: SchemaType;
|
15 | openApiVersion?: 2 | 3;
|
16 | id: SchemaId;
|
17 | content: JsonSchema;
|
18 | rootSchema?: Schema;
|
19 | }
|
20 | export declare function parseSchema(content: JsonSchema, url?: string): Schema;
|
21 | export declare function readSchemaFromStdin(): Promise<Schema>;
|
22 | export declare function readSchemasFromFile(pattern: string): Promise<Schema[]>;
|
23 | export declare function readSchemaFromUrl(url: string): Promise<Schema>;
|
24 | export declare function parseFileContent(content: string, filename?: string): JsonSchema;
|
25 | export interface PluginContext {
|
26 | option: boolean | Record<string, unknown>;
|
27 | inputSchemas: IterableIterator<[string, Schema]>;
|
28 | }
|
29 | export type PreProcessHandler = (contents: Schema[]) => Schema[];
|
30 | export type Plugin = {
|
31 | meta: {
|
32 | name: string;
|
33 | version: string;
|
34 | description?: string;
|
35 | };
|
36 | preProcess?: (context: PluginContext) => Promise<PreProcessHandler | undefined>;
|
37 | postProcess?: (context: PluginContext) => Promise<TransformerFactory<SourceFile> | undefined>;
|
38 | };
|
39 | export declare function loadPlugin(name: string, option: boolean | Record<string, unknown>): Promise<Plugin | undefined>;
|