UNPKG

@unito/integration-debugger

Version:

The Unito Integration Debugger

69 lines (68 loc) 2.47 kB
import { FieldSchema, RequestSchema, RelationSchema } from '@unito/integration-api'; import * as Validator from './validator'; export interface ProxyCallResponse { status: number; headers: Record<string, string>; payload: Record<string, unknown>; } export interface StepExecutionResult { step: Step; discoveredSteps: Step[]; } export declare enum Operation { GetCollection = "getCollection", GetItem = "getItem", GetBlob = "getBlob", CreateItem = "createItem", UpdateItem = "updateItem", DeleteItem = "deleteItem", SubscribeWebhook = "subscribeWebhook", UnsubscribeWebhook = "unsubscribeWebhook", GetCredentialAccount = "getCredentialAccount" } export declare const ReadOperations: readonly Operation[]; export interface Step { path: string; requestSchema: RequestSchema | undefined; parentOperation: Operation | undefined; parentPath: string | undefined; schemaPath: string | undefined; operation: Operation; payloadIn?: unknown; payloadOut?: unknown; headersIn?: Record<string, string>; headersOut?: Record<string, string>; errors: Validator.ValidationDetail[]; warnings: Validator.ValidationDetail[]; context?: unknown; } export declare function buildStepUniqueId(stepOperation?: Operation, stepPath?: string): string; export declare function buildSchemaUniqueId(stepPath?: string, relationName?: string, fieldName?: string): string; export interface CrawlerOptions { proxyCall: (step: Step) => Promise<ProxyCallResponse>; timeout?: number; } export declare function create(crawlerOptions: CrawlerOptions): Promise<Instance>; export declare class Instance { private proxyCall; private validator; private timeout; private nextSteps; private visitedRelationSchemas; private visitedFieldSchemas; constructor(crawlerOptions: CrawlerOptions, validator: Validator.Instance); next(): Promise<StepExecutionResult | undefined>; private discoverSteps; prepend(step: Step): void; append(step: Step): void; remove(step: Step): void; remaining(): ReadonlyArray<Readonly<Step>>; getRelationSchema(schemaPath: string): RelationSchema | undefined; getFieldSchemas(schemaPath: string): FieldSchema[] | undefined; execute(incomingStep: Step): Promise<Step>; private validateResponse; private validatePayload; private validateStatus; private getSchemaByOperation; private copyStep; }