UNPKG

zagora

Version:

A minimalist & robust way to create type-safe and error-safe never throwing functions & libraries in TypeScript - with input/output validation and typed errors. Based on StandardSchema-compliant validation libraries. No batteries, no routers, it's just fu

84 lines (83 loc) 22.2 kB
import { StandardSchemaV1 } from "@standard-schema/spec"; //#region src/utils.d.ts declare class ZagoraError extends Error { readonly type: "ZAGORA_ERROR"; readonly issues?: readonly StandardSchemaV1.Issue[]; readonly cause?: unknown; readonly reason: string; constructor(message: string, options?: { issues?: readonly StandardSchemaV1.Issue[]; cause?: unknown; reason?: string; }); static fromIssues(issues: readonly StandardSchemaV1.Issue[]): ZagoraError; static fromCaughtError(caught: unknown, reason?: string): ZagoraError; } declare function createDualResult<TData, TErr, TIsDefined extends boolean>(data: TData, error: TErr, isDefined: TIsDefined): ZagoraResult<TData, TErr, TIsDefined>; //#endregion //#region src/types.d.ts type ZagoraMetadata<THandler = unknown> = { inputSchema: StandardSchemaV1 | null; outputSchema: StandardSchemaV1 | null; errorSchema: Record<string, StandardSchemaV1> | null; handlerFn: THandler; }; type ZagoraConfig = { errorsFirst?: boolean; }; type ZagoraResult<TData, TErr, TIsDefined extends boolean> = [TData, TErr, TIsDefined] & { data: TData; error: TErr; isDefined: TIsDefined; }; type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; type IsOptional<T> = undefined extends T ? true : false; type AllOptional<T extends any[]> = T extends [infer H, ...infer R] ? IsOptional<H> extends true ? AllOptional<R> : false : true; type OverloadedByPrefixes<T extends any[], R> = UnionToIntersection<ValuePrefixes<T> extends infer P ? P extends any[] ? P extends [] ? AllOptional<T> extends true ? (...args: P) => R : never : (...args: P) => R : never : never>; type ValidateOutput = [unknown, null] | [null, ZagoraError]; type MaybeAsyncValidateOutput<TIsSync extends boolean> = TIsSync extends true ? ValidateOutput : Promise<ValidateOutput>; type ValidateError = { error: unknown; isTyped: boolean; }; type MaybeAsyncValidateError<TIsSync extends boolean> = TIsSync extends true ? ValidateError : Promise<ValidateError>; type ValuePrefixes<T extends any[]> = T extends [infer H, ...infer R] ? [] | [H, ...ValuePrefixes<R>] : []; type ZagoraInferInput<T extends StandardSchemaV1> = StandardSchemaV1.InferInput<T>; type ZagoraInferOutput<T extends StandardSchemaV1> = StandardSchemaV1.InferOutput<T>; type ZagoraErrorHelpers<T extends Record<string, StandardSchemaV1>> = { [K in keyof T]: (error: Omit<ZagoraInferInput<T[K]>, "type">) => [null, ZagoraInferOutput<T[K]>] }; type ZagoraBaseResult<Output extends StandardSchemaV1 | null = null, ErrSchema extends Record<string, StandardSchemaV1> | null = null> = ErrSchema extends Record<string, StandardSchemaV1> ? ZagoraResult<Output extends StandardSchemaV1 ? ZagoraInferOutput<Output> : unknown, null, false> | ZagoraResult<null, { [K in keyof ErrSchema]: ZagoraInferOutput<ErrSchema[K]> }[keyof ErrSchema], true> | ZagoraResult<null, ZagoraError, false> : ZagoraResult<Output extends StandardSchemaV1 ? ZagoraInferOutput<Output> : unknown, null, false> | ZagoraResult<null, ZagoraError, false>; //#endregion //#region src/index.d.ts declare function zagora(): Zagora<null, null, null, undefined>; declare function zagora<C extends ZagoraConfig>(config: C): Zagora<null, null, null, C>; declare class Zagora<InputSchema extends StandardSchemaV1 | null = null, Output extends StandardSchemaV1 | null = null, ErrSchema extends Record<string, StandardSchemaV1> | null = null, Config extends ZagoraConfig | undefined = undefined> { private _inputSchema; private _outputSchema; private _errorSchema; private _config; "~zagora": ZagoraMetadata; constructor(config?: Config); input<T extends StandardSchemaV1>(schema: T): Zagora<T, Output, ErrSchema, Config>; output<NewOut extends StandardSchemaV1>(schema: NewOut): Zagora<InputSchema, NewOut, ErrSchema, Config>; errors<NewErr extends Record<string, StandardSchemaV1>>(schema: NewErr): Zagora<InputSchema, Output, NewErr, Config>; handler<IS extends StandardSchemaV1 = (InputSchema extends StandardSchemaV1 ? InputSchema : never), OutputArgs = ZagoraInferInput<IS>>(impl: ErrSchema extends Record<string, StandardSchemaV1> ? Config extends { errorsFirst: true; } ? OutputArgs extends readonly any[] ? (...args: [ZagoraErrorHelpers<ErrSchema>, ...OutputArgs]) => any : (errors: ZagoraErrorHelpers<ErrSchema>, arg: OutputArgs) => any : OutputArgs extends readonly any[] ? (...args: [...OutputArgs, ZagoraErrorHelpers<ErrSchema>]) => any : (arg: OutputArgs, errors: ZagoraErrorHelpers<ErrSchema>) => any : OutputArgs extends readonly any[] ? (...args: OutputArgs) => any : (arg: OutputArgs) => any): (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? UnionToIntersection<ValuePrefixes<(StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) extends readonly any[] ? [...StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never] : never> extends infer P ? P extends any[] ? P extends [] ? AllOptional<(StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) extends readonly any[] ? [...StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never] : never> extends true ? (...args: P) => Promise<ZagoraBaseResult<Output, ErrSchema>> : never : (...args: P) => Promise<ZagoraBaseResult<Output, ErrSchema>> : never : never> & ((...args: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) => Promise<ZagoraBaseResult<Output, ErrSchema>>) : (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) extends Record<string, any> ? ((arg: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => Promise<ZagoraBaseResult<Output, ErrSchema>>) & UnionToIntersection<((IsOptional<Record<string, any> & (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>)> extends true ? true : false) extends true ? () => Promise<ZagoraBaseResult<Output, ErrSchema>> : never) | ((args_0: Record<string, any> & (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>)) => Promise<ZagoraBaseResult<Output, ErrSchema>>)> : ((arg: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => Promise<ZagoraBaseResult<Output, ErrSchema>>) & UnionToIntersection<((IsOptional<StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>> extends true ? true : false) extends true ? () => Promise<ZagoraBaseResult<Output, ErrSchema>> : never) | ((args_0: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => Promise<ZagoraBaseResult<Output, ErrSchema>>)>) & Zagora<IS, Output, ErrSchema, Config> & { "~zagora": ZagoraMetadata<StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? UnionToIntersection<ValuePrefixes<(StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) extends readonly any[] ? [...StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never] : never> extends infer P ? P extends any[] ? P extends [] ? AllOptional<(StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) extends readonly any[] ? [...StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never] : never> extends true ? (...args: P) => Promise<ZagoraBaseResult<Output, ErrSchema>> : never : (...args: P) => Promise<ZagoraBaseResult<Output, ErrSchema>> : never : never> & ((...args: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) => Promise<ZagoraBaseResult<Output, ErrSchema>>) : (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) extends Record<string, any> ? ((arg: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => Promise<ZagoraBaseResult<Output, ErrSchema>>) & UnionToIntersection<((IsOptional<Record<string, any> & (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>)> extends true ? true : false) extends true ? () => Promise<ZagoraBaseResult<Output, ErrSchema>> : never) | ((args_0: Record<string, any> & (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>)) => Promise<ZagoraBaseResult<Output, ErrSchema>>)> : ((arg: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => Promise<ZagoraBaseResult<Output, ErrSchema>>) & UnionToIntersection<((IsOptional<StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>> extends true ? true : false) extends true ? () => Promise<ZagoraBaseResult<Output, ErrSchema>> : never) | ((args_0: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => Promise<ZagoraBaseResult<Output, ErrSchema>>)>>; }; handlerSync<IS extends StandardSchemaV1 = (InputSchema extends StandardSchemaV1 ? InputSchema : never), OutputArgs = ZagoraInferInput<IS>>(impl: ErrSchema extends Record<string, StandardSchemaV1> ? Config extends { errorsFirst: true; } ? OutputArgs extends readonly any[] ? (...args: [ZagoraErrorHelpers<ErrSchema>, ...OutputArgs]) => any : (errors: ZagoraErrorHelpers<ErrSchema>, arg: OutputArgs) => any : OutputArgs extends readonly any[] ? (...args: [...OutputArgs, ZagoraErrorHelpers<ErrSchema>]) => any : (arg: OutputArgs, errors: ZagoraErrorHelpers<ErrSchema>) => any : OutputArgs extends readonly any[] ? (...args: OutputArgs) => any : (arg: OutputArgs) => any): (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? UnionToIntersection<ValuePrefixes<(StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) extends readonly any[] ? [...StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never] : never> extends infer P ? P extends any[] ? P extends [] ? AllOptional<(StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) extends readonly any[] ? [...StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never] : never> extends true ? (...args: P) => ZagoraBaseResult<Output, ErrSchema> : never : (...args: P) => ZagoraBaseResult<Output, ErrSchema> : never : never> & ((...args: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) => ZagoraBaseResult<Output, ErrSchema>) : (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) extends Record<string, any> ? ((arg: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => ZagoraBaseResult<Output, ErrSchema>) & UnionToIntersection<((IsOptional<Record<string, any> & (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>)> extends true ? true : false) extends true ? () => ZagoraBaseResult<Output, ErrSchema> : never) | ((args_0: Record<string, any> & (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>)) => ZagoraBaseResult<Output, ErrSchema>)> : ((arg: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => ZagoraBaseResult<Output, ErrSchema>) & UnionToIntersection<((IsOptional<StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>> extends true ? true : false) extends true ? () => ZagoraBaseResult<Output, ErrSchema> : never) | ((args_0: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => ZagoraBaseResult<Output, ErrSchema>)>) & Zagora<IS, Output, ErrSchema, Config> & { "~zagora": ZagoraMetadata<StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? UnionToIntersection<ValuePrefixes<(StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) extends readonly any[] ? [...StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never] : never> extends infer P ? P extends any[] ? P extends [] ? AllOptional<(StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) extends readonly any[] ? [...StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never] : never> extends true ? (...args: P) => ZagoraBaseResult<Output, ErrSchema> : never : (...args: P) => ZagoraBaseResult<Output, ErrSchema> : never : never> & ((...args: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> : never) => ZagoraBaseResult<Output, ErrSchema>) : (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) extends Record<string, any> ? ((arg: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => ZagoraBaseResult<Output, ErrSchema>) & UnionToIntersection<((IsOptional<Record<string, any> & (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>)> extends true ? true : false) extends true ? () => ZagoraBaseResult<Output, ErrSchema> : never) | ((args_0: Record<string, any> & (StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>)) => ZagoraBaseResult<Output, ErrSchema>)> : ((arg: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => ZagoraBaseResult<Output, ErrSchema>) & UnionToIntersection<((IsOptional<StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>> extends true ? true : false) extends true ? () => ZagoraBaseResult<Output, ErrSchema> : never) | ((args_0: StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never> extends readonly any[] ? never : StandardSchemaV1.InferInput<InputSchema extends StandardSchemaV1<unknown, unknown> ? InputSchema : never>) => ZagoraBaseResult<Output, ErrSchema>)>>; }; private createHandlerSync; private createHandlerAsync; private validateInputSync; private validateInput; private handleTupleDefaults; private validateOutput; private validateError; private createErrorHelpers; } //#endregion export { AllOptional, IsOptional, MaybeAsyncValidateError, MaybeAsyncValidateOutput, OverloadedByPrefixes, UnionToIntersection, ValidateError, ValidateOutput, ValuePrefixes, Zagora, ZagoraBaseResult, ZagoraConfig, ZagoraError, ZagoraErrorHelpers, ZagoraInferInput, ZagoraInferOutput, ZagoraMetadata, ZagoraResult, createDualResult, zagora };