API Overview
This generated reference is the exact lookup surface for Valchecker's built-in steps. Each entry comes from the step's colocated .doc.md; this page only catalogs those entries.
Use Quick Start and Core Concepts for teaching-oriented material. Use the Valchecker 1.0 Contract for cross-cutting compatibility guarantees.
Primitives
Primitive schemas and value-preserving validators, on Primitives.
Initial schemas
any()— passthrough typed asanybigint()—typeof value === 'bigint'boolean()—typeof value === 'boolean'literal()— exact literal match withObject.isnever()— never succeedsnull()— the valuenullnumber()— every JavaScript number, includingNaNand the infinitiesstring()—typeof value === 'string'symbol()—typeof value === 'symbol'undefined()— the valueundefinedunknown()— passthrough typed asunknown
Loose primitives
looseBigint()— abigintor a${bigint}string, normalized tobigintlooseBoolean()— abooleanor"true"/"false", normalized tobooleanlooseNumber()— anumberor a${number}string, normalized tonumber
Template literals
templateLiteral()— an assembled TypeScript template-literal type, matched as the checker matches it
Numeric validation
isAtLeast()— inclusive lower bound on a number or bigintisAtMost()— inclusive upper bound on a number or bigintisFinite()— finite numbers, throughNumber.isFiniteisGreaterThan()— strict lower bound on a number or bigintisInteger()— integers, throughNumber.isIntegerisLessThan()— strict upper bound on a number or bigintisMultipleOf()— divisibility by a number or bigint divisorisNaN()—NaN, throughNumber.isNaNisSafeInteger()— safe integers, throughNumber.isSafeInteger
Date validation
date()—Dateinstances, rejecting an Invalid DateisAfter()— strictly after aDateboundisBefore()— strictly before aDatebound
Length, emptiness, and inclusion
isEmpty()— an observedlengthorsizeof zeroisEndingWith()— nativeString.prototype.endsWithisIncluding()— native string, array, or Set inclusion semanticsisLengthAtLeast()— inclusive lower bound on the observedlengthisLengthAtMost()— inclusive upper bound on the observedlengthisLengthExactly()— an exact observedlengthisMatching()— regular-expression matching with deterministic state resetisNotEmpty()— an observedlengthorsizegreater than zeroisStartingWith()— nativeString.prototype.startsWith
Equality and nullish narrowing
isDefined()— rejectsundefinedand removes it from the output, preservingnullisEqualTo()—Object.isequality with one primitive expectation, narrowing the output to itisNonNull()— rejectsnulland removes it from the output, preservingundefinedisNonNullish()— rejectsnullandundefinedand removes both from the outputisOneOf()—Object.isequality against a non-empty tuple of primitives, narrowing to their union
JSON strings
json()— a string that parses as JSON, preserving the string
String formats
Value-preserving string-format validators, on String formats.
Parsed formats
isEmail()— pragmatic WHATWG<input type="email">patternisEmoji()— the UTS #51 emoji sequence grammar, or Unicode's RGI set on requestisIp()— IPv4 or IPv6, with range-checked octets and::compressionisIsoDate()— bounded ISOYYYY-MM-DDcalendar datesisIsoDateTime()— bounded ISO extended calendar date-time with optional offsetisIsoTime()— bounded ISOHH:MM:SStime of day, with no timezoneisJwt()— structurally strict JWTs using JWS Compact SerializationisUrl()— WHATWGURLparse with a scheme allow-list
Pattern formats
isBase64()— standard RFC 4648 base64 with canonical paddingisBase64Url()— unpadded RFC 4648 §5 base64urlisCuid2()— CUID2 as@paralleldrive/cuid2produces it, capped at 32 charactersisHex()— one or more hexadecimal digits, with no0xprefixisHostname()— RFC 1123 hostname, labels of 1–63 characters within 253isMac()— EUI-48 MAC address with:or-separatorsisNanoid()— one or more characters of the default Nano ID alphabetisUlid()— canonical 128-bit ULIDs in Crockford base32isUuid()— RFC 9562 / RFC 4122 UUID, versions 1–8 plus nil and max
Structures
Composite and collection schemas, on Structures.
Object schemas
looseObject()— declared own properties validated, unknown own properties preservedobject()— declared own properties validated, unknown properties omitted from the outputstrictObject()— declared own properties validated, unknown own string and symbol keys rejected
Collections
array()— every element validated and transformed in index ordermap()— Map keys and values validated and transformed, with transformed keys kept uniquerecord()— every own enumerable entry, open or exhaustively closed by the key schema's domainset()— Set items validated and transformed in insertion order, with transformed items kept uniquetuple()— fixed-shape array with per-position schemas and one optional rest region
Composition
intersection()— executes every branch and composes compatible outputsunion()— the first successful branch's transformed output, with registration-aware shorthandvariant()— direct discriminator lookup that executes only the selected branch
Class and binary instances
blob()— aBlob, through a feature-detected globalfile()— aFile, through a feature-detected globalinstance()— aninstanceofcheck against a class
Collection size and membership
isIncludingKey()— Map key membershipisIncludingValue()— Map value membershipisSizeAtLeast()— inclusive lower bound on a numericsizeisSizeAtMost()— inclusive upper bound on a numericsizeisSizeExactly()— an exact numericsize
Media types
isMimeType()— a value'stypestring against allowed MIME types, withimage/*wildcards
Transforms
Output transformations, on Transforms.
String transforms
toLowercase()— lowercase stringtoNormalized()— Unicode normalizationtoSplit()— split string outputtoTrimmed()— trim both endstoTrimmedEnd()— trim the endtoTrimmedStart()— trim the starttoUppercase()— uppercase string
Array transforms
toFiltered()— filtered array or Set outputtoLength()— length outputtoMapped()— mapped array or Set output with structured callback failures; Set outputs remain uniquetoSliced()— sliced outputtoSorted()— sorted array output
Collection transforms
toArray()— convert a Set to an item arraytoEntries()— Map entries as mutable[key, value]tuplestoKeys()— Map keys as an arraytoMappedKeys()— Map key callback transform whose mapped keys stay uniquetoMappedValues()— Map value callback transformtoSize()— extract asizevaluetoValues()— Map values as an array
JSON transforms
toJSONString()— stringify a value with nativeJSON.stringify()semanticstoJSONValue()— parse a JSON string withJSON.parsetoStrictJSONString()— stringify a supported value with JSON semantics
Primitive conversions
toBigint()— nativeBigInt(value)conversiontoBoolean()— nativeBoolean(value)truthiness conversiontoDate()—Datefrom epoch milliseconds or any string accepted bynew Date(value)toMappedBoolean()— explicit true/false value mappings for string, number, or biginttoNumber()— nativeNumber(value)conversiontoSafeNumber()— bigint to number, only within the safe integer range
General conversion
toString()— convert a value through its owntoStringmethod
Helpers and utilities
Flow control, escape hatches, execution-mode steps, and type-level utilities, on Helpers & Utilities.
Escape hatches
check()— generic custom validation escape hatchtransform()— generic custom output transformation escape hatch
Flow control
fallback()— recover earlier validation and operation failures; internal issues are fataluse()— delegate to another schema
Type-level utilities
as()— compile-time assertion with no runtime validationgeneric()— lazy or recursive schema construction
Execution mode
toAsync()— force the complete schema to return a native promise
Related documentation
- Valchecker 1.0 Contract — cross-cutting compatibility guarantees
- Pipeline and Chaining — how fluent schemas execute
- Validation and Transformation — how step roles compose
- Structured Data — applied object and collection patterns
- Plugin Composition and Distribution — selective instances and plugin boundaries