import { Either } from "@fp-ts/data/Either"; import { Lens } from "@effect-ts-app/boilerplate-prelude"; import type { AnyError, ConstructorErrorOf, ConstructorInputOf, DefaultSchema, EncodedOf, ParsedShapeOf, PropertyRecord, Schema, SchemaAny, schemaField, SchemaUPI, UnionApi } from "@effect-ts-app/schema"; import { LongString, Parser, ReasonableString } from "@effect-ts-app/schema"; import type * as Th from "@effect-ts-app/schema/custom/These"; import type { EnforceNonEmptyRecord } from "@effect-ts/core/Utils"; import type * as faker from "faker"; import * as S from "@effect-ts-app/schema"; export { matchTag } from "@effect-ts/core/Utils"; /** * A little helper to allow writing `interface X extends Identity` * so you don't need an intermediate type for `typeof Y` */ export type Identity = T; export declare function fitIntoReasonableString(str: string): ReasonableString; export declare function fitIntoLongString(str: string): LongString; export declare class CustomSchemaException extends Error { readonly _tag = "ValidationError"; readonly errors: ReadonlyArray; constructor(error: S.AnyError); toJSON(): { message: string; errors: readonly unknown[]; }; } export declare const fakerArb: (gen: (fake: typeof faker) => () => string) => (a: any) => S.Arbitrary.Arbitrary; /** * The Effect fails with `CustomSchemaException` when the parser produces an invalid result. * Otherwise succeeds with the valid result. */ export declare function condemnCustom_(self: Parser.Parser, a: X, env?: Parser.ParserEnv): import("@effect/io/Effect").Effect; /** * The Effect fails with the generic `E` type when the parser produces an invalid result * Otherwise success with the valid result. */ export declare function condemn_(self: Parser.Parser, x: X, env?: Parser.ParserEnv): import("@effect/io/Effect").Effect; export declare function condemnCustom(self: Parser.Parser): (a: X, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function condemnLeft_(self: Parser.Parser, a: X, env?: Parser.ParserEnv): Either; export declare function condemnLeft(self: Parser.Parser): (a: X, env?: Parser.ParserEnv) => import("@fp-ts/data/Either").Either; export declare function parseCondemnCustom_(self: Schema, a: A, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; export declare function parseECondemnCustom_(self: Schema, a: D, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; /** * The Effect dies with `ThrowableCondemnException` when the parser produces an invalid result. * Otherwise succeeds with the valid result. */ export declare function condemnDie_(self: Parser.Parser, a: X, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; export declare function parseCondemnDie_(self: Schema, a: A, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; export declare function parseECondemnDie_(self: Schema, a: D, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; export declare function parseECondemnDie(self: Schema): (a: D, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function parseECondemnFail(self: Schema): (a: D, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function parseECondemnLeft(self: Schema): (a: D, env?: Parser.ParserEnv) => import("@fp-ts/data/Either").Either; export declare function parseECondemnCustom(self: Schema): (a: D, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function parseCondemnDie(self: Schema): (a: A, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function parseCondemnFail(self: Schema): (a: A, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function parseCondemnLeft(self: Schema): (a: A, env?: Parser.ParserEnv) => import("@fp-ts/data/Either").Either; export declare function parseCondemnCustom(self: Schema): (a: A, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function parseCondemn(self: Schema): (a: A, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function parseECondemn_(self: Schema, a: D, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; export declare function parseECondemn(self: Schema): (a: D, env?: Parser.ParserEnv) => import("@effect/io/Effect").Effect; export declare function parseUnsafe(self: Schema): (a: A, env?: Parser.ParserEnv) => B; export declare function parseEUnsafe(self: Schema): (a: D, env?: Parser.ParserEnv) => B; /** * The Effect fails with `ThrowableCondemnException` when the parser produces an invalid result. * Otherwise succeeds with the valid result. */ export declare function condemnFail_(self: Parser.Parser, a: X, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; export declare function parseCondemnFail_(self: Schema, a: A, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; export declare function parseECondemnFail_(self: Schema, a: D, env?: Parser.ParserEnv, __trace?: string): import("@effect/io/Effect").Effect; export declare function parseCondemnLeft_(self: Schema, a: A, env?: Parser.ParserEnv): import("@fp-ts/data/Either").Either; export declare function parseECondemnLeft_(self: Schema, a: D, env?: Parser.ParserEnv): import("@fp-ts/data/Either").Either; export declare function tryParse(self: Parser.Parser): (a: X, env?: Parser.ParserEnv) => import("@fp-ts/data/Option").None | import("@fp-ts/data/Option").Some; export declare function isSchema(p: S.SchemaAny | S.AnyProperty): p is S.SchemaAny; export declare function getMetadataFromSchemaOrProp(p: S.SchemaAny | S.AnyProperty): { minLength: number | undefined; maxLength: number | undefined; required: boolean; }; export declare function getMetadataFromProp(p: Prop): { minLength: number | undefined; maxLength: number | undefined; required: boolean; }; export declare function getMetadataFromSchema(self: Self): { minLength: number | undefined; maxLength: number | undefined; required: boolean; }; export declare function getRegisterFromSchemaOrProp(p: S.SchemaAny | S.AnyProperty): { transform: { output: (value: any) => any; input: (a: A) => A; }; }; export declare function getRegisterFromProp(p: Prop): { transform: { output: (value: any) => any; input: (a: A) => A; }; }; export declare function getRegisterFromSchema(self: Self): { transform: { output: (value: any) => any; input: (a: A) => A; }; }; export type SchemaFrom = Cls["Model"]; export type GetProps = Cls["Api"]["props"]; export type GetProvidedProps = GetProps; export type EncodedFromApi = EncodedOf; export type ConstructorInputFromApi = ConstructorInputOf; export type OpaqueEncoded = Schema extends DefaultSchema ? DefaultSchema : never; export declare function smartClassUnion>(members: T & EnforceNonEmptyRecord, name?: string): S.SchemaDefaultSchema extends infer T_1 extends Record ? { [k in keyof T_1]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k]>; } : never)[keyof T | keyof EnforceNonEmptyRecord], (T & EnforceNonEmptyRecord extends infer T_2 extends Record ? { [k_1 in keyof T_2]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k_1]>; } : never)[keyof T | keyof EnforceNonEmptyRecord], (T & EnforceNonEmptyRecord extends infer T_3 extends Record ? { [k_2 in keyof T_3]: EncodedOf<(T & EnforceNonEmptyRecord)[k_2]>; } : never)[keyof T | keyof EnforceNonEmptyRecord], UnionApi>> & { matchW: S.MatchW, (T & EnforceNonEmptyRecord extends infer T_4 extends Record ? { [k_3 in keyof T_4]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k_3]>; } : never)[keyof T | keyof EnforceNonEmptyRecord]>; } & { matchS: S.MatchS, (T & EnforceNonEmptyRecord extends infer T_5 extends Record ? { [k_4 in keyof T_5]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k_4]>; } : never)[keyof T | keyof EnforceNonEmptyRecord]>; } & SmartClassUnion, (T & EnforceNonEmptyRecord extends infer T_3 extends Record ? { [k_2 in keyof T_3]: EncodedOf<(T & EnforceNonEmptyRecord)[k_2]>; } : never)[keyof T | keyof EnforceNonEmptyRecord], (T & EnforceNonEmptyRecord extends infer T_1 extends Record ? { [k in keyof T_1]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k]>; } : never)[keyof T | keyof EnforceNonEmptyRecord]>; export declare function enhanceClassUnion, A, E, CI>(u: DefaultSchema>, name?: string): S.SchemaDefaultSchema> & { matchW: S.MatchW; }[keyof T]>; } & { matchS: S.MatchS; }[keyof T]>; } & SmartClassUnion; export interface SmartClassUnion, Encoded, ParsedShape> { members: T; cas: { [Key in keyof T]: { new (i: ConstructorInputOf): ParsedShape; }; }; mem: { [Key in keyof T]: T[Key]; }; of: { [Key in keyof T]: (i: ConstructorInputOf) => InstanceType; }; of_: (i: ParsedShape) => ParsedShape; as: { [Key in keyof T]: (i: ConstructorInputOf) => ParsedShape; }; EParser: Parser.Parser; } export declare function smartUnion>(members: T & EnforceNonEmptyRecord): S.SchemaDefaultSchema extends infer T_1 extends Record ? { [k in keyof T_1]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k]>; } : never)[keyof T | keyof EnforceNonEmptyRecord], (T & EnforceNonEmptyRecord extends infer T_2 extends Record ? { [k_1 in keyof T_2]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k_1]>; } : never)[keyof T | keyof EnforceNonEmptyRecord], (T & EnforceNonEmptyRecord extends infer T_3 extends Record ? { [k_2 in keyof T_3]: EncodedOf<(T & EnforceNonEmptyRecord)[k_2]>; } : never)[keyof T | keyof EnforceNonEmptyRecord], UnionApi>> & { matchW: S.MatchW, (T & EnforceNonEmptyRecord extends infer T_4 extends Record ? { [k_3 in keyof T_4]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k_3]>; } : never)[keyof T | keyof EnforceNonEmptyRecord]>; } & { matchS: S.MatchS, (T & EnforceNonEmptyRecord extends infer T_5 extends Record ? { [k_4 in keyof T_5]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k_4]>; } : never)[keyof T | keyof EnforceNonEmptyRecord]>; } & SmartUnion, (T & EnforceNonEmptyRecord extends infer T_3 extends Record ? { [k_2 in keyof T_3]: EncodedOf<(T & EnforceNonEmptyRecord)[k_2]>; } : never)[keyof T | keyof EnforceNonEmptyRecord], (T & EnforceNonEmptyRecord extends infer T_1 extends Record ? { [k in keyof T_1]: ParsedShapeOf<(T & EnforceNonEmptyRecord)[k]>; } : never)[keyof T | keyof EnforceNonEmptyRecord]>; export declare function enhanceUnion, A, E, CI>(u: DefaultSchema>): S.SchemaDefaultSchema> & { matchW: S.MatchW; }[keyof T]>; } & { matchS: S.MatchS; }[keyof T]>; } & SmartUnion; export interface SmartUnion, Encoded, ParsedShape> { members: T; mem: { [Key in keyof T]: T[Key]; }; of: { [Key in keyof T]: (i: ConstructorInputOf) => ParsedShapeOf; }; of_: (i: ParsedShape) => ParsedShape; as: { [Key in keyof T]: (i: ConstructorInputOf) => Th.These, ParsedShape>; }; EParser: Parser.Parser; } /** * The Either's left is returned with the parser errors when the parser produces an invalid result * Otherwise right with the valid result. */ export declare function validate(self: (a: X) => Th.These): (a: X) => Either; /** * Value: The value you want to submit after validation. e.g for text input: `ReasonableString` * InputValue: The internal value of the input, e.g for text input: `string` */ export type InputSchema = DefaultSchema; /** * The Either's left is returned with the parser errors when the parser produces an invalid result * Otherwise right with the valid result. */ export declare function makeValidator(self: InputSchema): (a: InputValue) => import("@fp-ts/data/Either").Either; /** * The Either's left is returned with the parser errors when the parser produces an invalid result * Otherwise right with the valid result. */ export declare function makeValidatorFromUnknown(self: InputSchema): (a: unknown) => import("@fp-ts/data/Either").Either; export type ParsedShapeOfCustom> = ReturnType; export declare function OpaqueSchema(): { (self: DefaultSchema): S.SchemaDefaultSchema & import("@effect-ts/system/Utils").UnionToIntersection<{ [k in keyof Api]: k extends "matchW" | "matchS" | "props" ? { [h in k]: Api[h]; } : never; }[keyof Api]> & { original: OriginalA; }; any)>, A2, A3>(self: S.SchemaDefaultSchema & import("@effect-ts/system/Utils").UnionToIntersection<{ [k_1 in keyof Api_1]: k_1 extends "matchW" | "matchS" | "props" ? { [h_1 in k_1]: Api_1[h_1]; } : never; }[keyof Api_1]> & SmartClassUnion): S.SchemaDefaultSchema & import("@effect-ts/system/Utils").UnionToIntersection<{ [k_1 in keyof Api_1]: k_1 extends "matchW" | "matchS" | "props" ? { [h_1 in k_1]: Api_1[h_1]; } : never; }[keyof Api_1]> & SmartClassUnion & { original: OriginalA_1; }; }; export interface UnionBrand { } /** * Currently does not implement composition, but is useful as a quick set/modify. * @tsplus type PreparedLens */ export declare class PreparedLens { private readonly s; readonly lens: Lens; constructor(s: S, lens: Lens); get: () => T; set: (t: T) => S; } /** * @tsplus fluent PreparedLens modify * @tsplus location "@effect-ts-app/boilerplate-prelude/schema/_schema" */ export declare function modify(l: PreparedLens, mod: (t: T) => T): S; export declare function makePreparedLenses(props: Props, s: S): { [K in keyof Props]: PreparedLens>; }; export * from "@effect-ts-app/schema"; export * from "./overrides.js"; export { array, nonEmptyArray, set } from "./overrides.js"; //# sourceMappingURL=_schema.d.ts.map