bknd
Version:
Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.
1,123 lines • 50.2 kB
TypeScript
import { s } from "bknd/utils";
export declare const TASKS: {
readonly fetch: {
readonly cls: typeof import("../flows").FetchTask;
};
readonly log: {
readonly cls: typeof import("../flows").LogTask;
};
readonly render: {
readonly cls: typeof import("../flows").RenderTask;
};
readonly subflow: {
readonly cls: typeof import("../flows").SubFlowTask;
};
};
export declare const TRIGGERS: {
readonly manual: {
readonly cls: typeof import("../flows").Trigger;
};
readonly event: {
readonly cls: typeof import("../flows").EventTrigger;
};
readonly http: {
readonly cls: typeof import("../flows").HttpTrigger;
};
};
declare const taskSchema: s.Schema<s.IUnionOptions, {
type: "log" | "fetch" | "render" | "subflow";
params: {
method?: string | undefined;
headers?: {
key: string;
value: string;
}[] | undefined;
body?: string | undefined;
normal?: number | undefined;
url: string;
} | {
delay: number;
} | {
render: string;
} | {
flow?: any;
input?: any;
loop?: boolean | undefined;
};
}, never> & s.Merge<s.IUnionOptions & {
anyOf: s.ObjectSchema<{
readonly type: s.Schema<s.ILiteralOptions, "log" | "fetch" | "render" | "subflow", "log" | "fetch" | "render" | "subflow"> & s.Merge<s.ILiteralOptions & {
const: "log" | "fetch" | "render" | "subflow";
}>;
readonly params: s.ObjectSchema<{
readonly url: s.StringSchema<{
readonly pattern: "^(http|https)://";
}> & {
readonly pattern: "^(http|https)://";
};
readonly method: {
readonly default: "GET";
readonly enum: string[];
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly headers: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
$defs?: Record<string, s.Schema> | undefined;
contains?: s.Schema | undefined;
minContains?: number | undefined;
maxContains?: number | undefined;
prefixItems?: s.Schema[] | undefined;
uniqueItems?: boolean | undefined;
maxItems?: number | undefined;
minItems?: number | undefined;
readonly items?: s.ObjectSchema<{
readonly key: s.StringSchema<s.IStringOptions> & s.IStringOptions;
readonly value: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | undefined;
} & s.Schema<s.ISchemaOptions, {
key: string;
value: string;
}[] | undefined, {
key: string;
value: string;
}[] | undefined>;
readonly body: {
default?: any;
maxLength?: number | undefined;
minLength?: number | undefined;
pattern?: (string | RegExp) | undefined;
format?: string | undefined;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly normal: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
multipleOf?: number | undefined;
maximum?: number | undefined;
exclusiveMaximum?: number | undefined;
minimum?: number | undefined;
exclusiveMinimum?: number | undefined;
} & s.Schema<s.ISchemaOptions, number | undefined, number | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly delay: s.Schema<{
readonly default: 10;
}, number, number> & {
readonly default: 10;
};
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly render: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly flow: s.Schema<s.IAnyOptions, any, any> & s.IAnyOptions;
readonly input: {
[x: string]: any;
[x: number]: any;
} & s.Schema<s.ISchemaOptions, any, any>;
readonly loop: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, boolean | undefined, boolean | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
}, s.Merge<{
readonly title: string;
} & {
additionalProperties: false;
}>>[];
}>;
export type TAppFlowTaskSchema = s.Static<typeof taskSchema>;
declare const triggerSchema: s.Schema<s.IUnionOptions, {
config?: {
mode: "sync" | "async";
} | {
event: string;
mode: "sync" | "async";
} | {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined;
type: "manual" | "event" | "http";
}, never> & s.Merge<s.IUnionOptions & {
anyOf: s.ObjectSchema<{
readonly type: s.Schema<s.ILiteralOptions, "manual" | "event" | "http", "manual" | "event" | "http"> & s.Merge<s.ILiteralOptions & {
const: "manual" | "event" | "http";
}>;
readonly config: ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
mode: "sync" | "async";
} | undefined, {
mode: "sync" | "async";
} | undefined>) | ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly event: s.StringSchema<s.IStringOptions> & s.IStringOptions;
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly event: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
readonly event: s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
event: string;
mode: "sync" | "async";
} | undefined, {
event: string;
mode: "sync" | "async";
} | undefined>) | ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly path: s.StringSchema<{
readonly pattern: "^/.*$";
}> & {
readonly pattern: "^/.*$";
};
readonly method: s.StringSchema<{
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
}> & {
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
};
readonly response_type: s.StringSchema<{
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
}> & {
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
};
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly path: s.StringSchema<{
readonly pattern: "^/.*$";
}> & {
readonly pattern: "^/.*$";
};
readonly method: s.StringSchema<{
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
}> & {
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
};
readonly response_type: s.StringSchema<{
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
}> & {
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
};
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
readonly path: s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly method: s.Schema<s.ISchemaOptions, "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | undefined, "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | undefined>;
readonly response_type: s.Schema<s.ISchemaOptions, "html" | "json" | "text" | undefined, "html" | "json" | "text" | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined, {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined>);
}, s.Merge<{
readonly title: string;
} & {
additionalProperties: false;
}>>[];
}>;
export type TAppFlowTriggerSchema = s.Static<typeof triggerSchema>;
export declare const flowSchema: s.ObjectSchema<{
readonly trigger: s.Schema<s.IUnionOptions, {
config?: {
mode: "sync" | "async";
} | {
event: string;
mode: "sync" | "async";
} | {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined;
type: "manual" | "event" | "http";
}, never> & s.Merge<s.IUnionOptions & {
anyOf: s.ObjectSchema<{
readonly type: s.Schema<s.ILiteralOptions, "manual" | "event" | "http", "manual" | "event" | "http"> & s.Merge<s.ILiteralOptions & {
const: "manual" | "event" | "http";
}>;
readonly config: ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
mode: "sync" | "async";
} | undefined, {
mode: "sync" | "async";
} | undefined>) | ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly event: s.StringSchema<s.IStringOptions> & s.IStringOptions;
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly event: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
readonly event: s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
event: string;
mode: "sync" | "async";
} | undefined, {
event: string;
mode: "sync" | "async";
} | undefined>) | ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly path: s.StringSchema<{
readonly pattern: "^/.*$";
}> & {
readonly pattern: "^/.*$";
};
readonly method: s.StringSchema<{
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
}> & {
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
};
readonly response_type: s.StringSchema<{
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
}> & {
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
};
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly path: s.StringSchema<{
readonly pattern: "^/.*$";
}> & {
readonly pattern: "^/.*$";
};
readonly method: s.StringSchema<{
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
}> & {
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
};
readonly response_type: s.StringSchema<{
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
}> & {
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
};
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
readonly path: s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly method: s.Schema<s.ISchemaOptions, "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | undefined, "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | undefined>;
readonly response_type: s.Schema<s.ISchemaOptions, "html" | "json" | "text" | undefined, "html" | "json" | "text" | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined, {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined>);
}, s.Merge<{
readonly title: string;
} & {
additionalProperties: false;
}>>[];
}>;
readonly tasks: {
additionalProperties: s.Schema<s.IUnionOptions, {
type: "log" | "fetch" | "render" | "subflow";
params: {
method?: string | undefined;
headers?: {
key: string;
value: string;
}[] | undefined;
body?: string | undefined;
normal?: number | undefined;
url: string;
} | {
delay: number;
} | {
render: string;
} | {
flow?: any;
input?: any;
loop?: boolean | undefined;
};
}, never> & s.Merge<s.IUnionOptions & {
anyOf: s.ObjectSchema<{
readonly type: s.Schema<s.ILiteralOptions, "log" | "fetch" | "render" | "subflow", "log" | "fetch" | "render" | "subflow"> & s.Merge<s.ILiteralOptions & {
const: "log" | "fetch" | "render" | "subflow";
}>;
readonly params: s.ObjectSchema<{
readonly url: s.StringSchema<{
readonly pattern: "^(http|https)://";
}> & {
readonly pattern: "^(http|https)://";
};
readonly method: {
readonly default: "GET";
readonly enum: string[];
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly headers: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
$defs?: Record<string, s.Schema> | undefined;
contains?: s.Schema | undefined;
minContains?: number | undefined;
maxContains?: number | undefined;
prefixItems?: s.Schema[] | undefined;
uniqueItems?: boolean | undefined;
maxItems?: number | undefined;
minItems?: number | undefined;
readonly items?: s.ObjectSchema<{
readonly key: s.StringSchema<s.IStringOptions> & s.IStringOptions;
readonly value: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | undefined;
} & s.Schema<s.ISchemaOptions, {
key: string;
value: string;
}[] | undefined, {
key: string;
value: string;
}[] | undefined>;
readonly body: {
default?: any;
maxLength?: number | undefined;
minLength?: number | undefined;
pattern?: (string | RegExp) | undefined;
format?: string | undefined;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly normal: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
multipleOf?: number | undefined;
maximum?: number | undefined;
exclusiveMaximum?: number | undefined;
minimum?: number | undefined;
exclusiveMinimum?: number | undefined;
} & s.Schema<s.ISchemaOptions, number | undefined, number | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly delay: s.Schema<{
readonly default: 10;
}, number, number> & {
readonly default: 10;
};
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly render: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly flow: s.Schema<s.IAnyOptions, any, any> & s.IAnyOptions;
readonly input: {
[x: string]: any;
[x: number]: any;
} & s.Schema<s.ISchemaOptions, any, any>;
readonly loop: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, boolean | undefined, boolean | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
}, s.Merge<{
readonly title: string;
} & {
additionalProperties: false;
}>>[];
}>;
} & s.Schema<s.ISchemaOptions, {
[x: string]: {
type: "log" | "fetch" | "render" | "subflow";
params: {
method?: string | undefined;
headers?: {
key: string;
value: string;
}[] | undefined;
body?: string | undefined;
normal?: number | undefined;
url: string;
} | {
delay: number;
} | {
render: string;
} | {
flow?: any;
input?: any;
loop?: boolean | undefined;
};
};
} | undefined, {
[x: string]: never;
} | undefined>;
readonly connections: {
additionalProperties: s.ObjectSchema<{
readonly source: s.StringSchema<s.IStringOptions> & s.IStringOptions;
readonly target: s.StringSchema<s.IStringOptions> & s.IStringOptions;
readonly config: s.ObjectSchema<{
readonly condition: s.Schema<s.ISchemaOptions, {
type: "success";
} | {
type: "error";
} | {
value: string;
type: "matches";
path: string;
} | undefined, {
type: "error";
} | {
value: string;
type: "matches";
path: string;
} | {
type: "success";
} | undefined>;
readonly max_retries: s.Schema<s.ISchemaOptions, number | undefined, number | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
[x: string]: {
config: {
condition?: {
type: "success";
} | {
type: "error";
} | {
value: string;
type: "matches";
path: string;
} | undefined;
max_retries?: number | undefined;
};
target: string;
source: string;
};
} | undefined, {
[x: string]: {
config: {
condition?: {
type: "error";
} | {
value: string;
type: "matches";
path: string;
} | {
type: "success";
} | undefined;
max_retries?: number | undefined;
};
target: string;
source: string;
};
} | undefined>;
readonly start_task: {
default?: any;
maxLength?: number | undefined;
minLength?: number | undefined;
pattern?: (string | RegExp) | undefined;
format?: string | undefined;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly responding_task: {
default?: any;
maxLength?: number | undefined;
minLength?: number | undefined;
pattern?: (string | RegExp) | undefined;
format?: string | undefined;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
export type TAppFlowSchema = s.Static<typeof flowSchema>;
export declare const flowsConfigSchema: s.ObjectSchema<{
readonly basepath: s.StringSchema<{
readonly default: "/api/flows";
}> & {
readonly default: "/api/flows";
};
readonly flows: s.RecordSchema<s.ObjectSchema<{
readonly trigger: s.Schema<s.IUnionOptions, {
config?: {
mode: "sync" | "async";
} | {
event: string;
mode: "sync" | "async";
} | {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined;
type: "manual" | "event" | "http";
}, never> & s.Merge<s.IUnionOptions & {
anyOf: s.ObjectSchema<{
readonly type: s.Schema<s.ILiteralOptions, "manual" | "event" | "http", "manual" | "event" | "http"> & s.Merge<s.ILiteralOptions & {
const: "manual" | "event" | "http";
}>;
readonly config: ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
mode: "sync" | "async";
} | undefined, {
mode: "sync" | "async";
} | undefined>) | ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly event: s.StringSchema<s.IStringOptions> & s.IStringOptions;
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly event: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
readonly event: s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
event: string;
mode: "sync" | "async";
} | undefined, {
event: string;
mode: "sync" | "async";
} | undefined>) | ({
properties: {
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly path: s.StringSchema<{
readonly pattern: "^/.*$";
}> & {
readonly pattern: "^/.*$";
};
readonly method: s.StringSchema<{
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
}> & {
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
};
readonly response_type: s.StringSchema<{
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
}> & {
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
};
};
required: string[] | undefined;
strict: () => s.ObjectSchema<{
readonly mode: s.StringSchema<{
readonly enum: readonly ["sync", "async"];
readonly default: "async";
}> & {
readonly enum: readonly ["sync", "async"];
readonly default: "async";
};
readonly path: s.StringSchema<{
readonly pattern: "^/.*$";
}> & {
readonly pattern: "^/.*$";
};
readonly method: s.StringSchema<{
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
}> & {
readonly enum: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
readonly default: "GET";
};
readonly response_type: s.StringSchema<{
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
}> & {
readonly enum: readonly ["json", "text", "html"];
readonly default: "json";
};
}, s.Merge<s.Merge<s.IObjectOptions & {
additionalProperties: false;
}> & {
additionalProperties: false;
}>>;
partial: () => s.ObjectSchema<{
readonly mode: s.Schema<s.ISchemaOptions, "sync" | "async" | undefined, "sync" | "async" | undefined>;
readonly path: s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly method: s.Schema<s.ISchemaOptions, "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | undefined, "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | undefined>;
readonly response_type: s.Schema<s.ISchemaOptions, "html" | "json" | "text" | undefined, "html" | "json" | "text" | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined, {
path: string;
mode: "sync" | "async";
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
response_type: "html" | "json" | "text";
} | undefined>);
}, s.Merge<{
readonly title: string;
} & {
additionalProperties: false;
}>>[];
}>;
readonly tasks: {
additionalProperties: s.Schema<s.IUnionOptions, {
type: "log" | "fetch" | "render" | "subflow";
params: {
method?: string | undefined;
headers?: {
key: string;
value: string;
}[] | undefined;
body?: string | undefined;
normal?: number | undefined;
url: string;
} | {
delay: number;
} | {
render: string;
} | {
flow?: any;
input?: any;
loop?: boolean | undefined;
};
}, never> & s.Merge<s.IUnionOptions & {
anyOf: s.ObjectSchema<{
readonly type: s.Schema<s.ILiteralOptions, "log" | "fetch" | "render" | "subflow", "log" | "fetch" | "render" | "subflow"> & s.Merge<s.ILiteralOptions & {
const: "log" | "fetch" | "render" | "subflow";
}>;
readonly params: s.ObjectSchema<{
readonly url: s.StringSchema<{
readonly pattern: "^(http|https)://";
}> & {
readonly pattern: "^(http|https)://";
};
readonly method: {
readonly default: "GET";
readonly enum: string[];
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly headers: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
$defs?: Record<string, s.Schema> | undefined;
contains?: s.Schema | undefined;
minContains?: number | undefined;
maxContains?: number | undefined;
prefixItems?: s.Schema[] | undefined;
uniqueItems?: boolean | undefined;
maxItems?: number | undefined;
minItems?: number | undefined;
readonly items?: s.ObjectSchema<{
readonly key: s.StringSchema<s.IStringOptions> & s.IStringOptions;
readonly value: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | undefined;
} & s.Schema<s.ISchemaOptions, {
key: string;
value: string;
}[] | undefined, {
key: string;
value: string;
}[] | undefined>;
readonly body: {
default?: any;
maxLength?: number | undefined;
minLength?: number | undefined;
pattern?: (string | RegExp) | undefined;
format?: string | undefined;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly normal: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
multipleOf?: number | undefined;
maximum?: number | undefined;
exclusiveMaximum?: number | undefined;
minimum?: number | undefined;
exclusiveMinimum?: number | undefined;
} & s.Schema<s.ISchemaOptions, number | undefined, number | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly delay: s.Schema<{
readonly default: 10;
}, number, number> & {
readonly default: 10;
};
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly render: s.StringSchema<s.IStringOptions> & s.IStringOptions;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>> | s.ObjectSchema<{
readonly flow: s.Schema<s.IAnyOptions, any, any> & s.IAnyOptions;
readonly input: {
[x: string]: any;
[x: number]: any;
} & s.Schema<s.ISchemaOptions, any, any>;
readonly loop: {
default?: any;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, boolean | undefined, boolean | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
}, s.Merge<{
readonly title: string;
} & {
additionalProperties: false;
}>>[];
}>;
} & s.Schema<s.ISchemaOptions, {
[x: string]: {
type: "log" | "fetch" | "render" | "subflow";
params: {
method?: string | undefined;
headers?: {
key: string;
value: string;
}[] | undefined;
body?: string | undefined;
normal?: number | undefined;
url: string;
} | {
delay: number;
} | {
render: string;
} | {
flow?: any;
input?: any;
loop?: boolean | undefined;
};
};
} | undefined, {
[x: string]: never;
} | undefined>;
readonly connections: {
additionalProperties: s.ObjectSchema<{
readonly source: s.StringSchema<s.IStringOptions> & s.IStringOptions;
readonly target: s.StringSchema<s.IStringOptions> & s.IStringOptions;
readonly config: s.ObjectSchema<{
readonly condition: s.Schema<s.ISchemaOptions, {
type: "success";
} | {
type: "error";
} | {
value: string;
type: "matches";
path: string;
} | undefined, {
type: "error";
} | {
value: string;
type: "matches";
path: string;
} | {
type: "success";
} | undefined>;
readonly max_retries: s.Schema<s.ISchemaOptions, number | undefined, number | undefined>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
}, s.Merge<s.IObjectOptions & {
additionalProperties: false;
}>>;
} & s.Schema<s.ISchemaOptions, {
[x: string]: {
config: {
condition?: {
type: "success";
} | {
type: "error";
} | {
value: string;
type: "matches";
path: string;
} | undefined;
max_retries?: number | undefined;
};
target: string;
source: string;
};
} | undefined, {
[x: string]: {
config: {
condition?: {
type: "error";
} | {
value: string;
type: "matches";
path: string;
} | {
type: "success";
} | undefined;
max_retries?: number | undefined;
};
target: string;
source: string;
};
} | undefined>;
readonly start_task: {
default?: any;
maxLength?: number | undefined;
minLength?: number | undefined;
pattern?: (string | RegExp) | undefined;
format?: string | undefined;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
readonly responding_task: {
default?: any;
maxLength?: number | undefined;
minLength?: number | undefined;
pattern?: (string | RegExp) | undefined;
format?: string | undefined;
enum?: (readonly any[] | any[]) | undefined;
const?: any;
} & s.Schema<s.ISchemaOptions, string | undefined,