@unito/integration-debugger
Version:
The Unito Integration Debugger
69 lines (68 loc) • 2.47 kB
TypeScript
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;
}