Skip to content

Releases: Saeris/valimock

valimock v1.6.0

03 Jun 21:41
7f8d469

Choose a tag to compare

  • #77 (minor) Thanks @Saeris! - Add opt-in instrumentation hook (new Valimock({ instrument: true })) and a perf-regression spec asserting call-count and depth ceilings on realistic-shape schemas. Catches catastrophic regressions like the v1.5.0 wrapper-recursion bug — proven locally to detect the bug at ~2,100x explosion in call counts.
  • #79 (patch) Thanks @Saeris! - Add Vitest bench() files for iteration-time performance evaluation, reusing the fixture library from the regression canary. Includes a scripts/profile.mjs convenience wrapper for CPU profiling. Pure tooling — no public-API or runtime changes.

Published to

valimock v1.5.4

03 Jun 20:56
503266b

Choose a tag to compare

  • #74 (patch) Thanks @Saeris! - Dispatch and lookup optimizations: Map-based schema dispatch in the hot #mock path, precomputed lowercase keyNameGenerators lookup, WeakMap memoization of #getValidEnumValues, and a fast path through generateString for unconstrained strings. ~1.2-1.7x faster on string- and enum-heavy schemas.
  • #75 (patch) Thanks @Saeris! - Cache findFakerForKeyName auto-discovery results in a module-level WeakMap keyed by Faker instance. Both positive and negative results are cached, so repeat lookups of the same keyName (cached hit) and repeat lookups of unknown keyNames (cached miss) both skip the full Object.keys(faker) walk. ~1.8-2.1x faster on string-heavy schemas.

Published to

valimock v1.5.3

03 Jun 16:22
78c3de5

Choose a tag to compare

  • #72 (patch) Thanks @Saeris! - Lazify wrapper handlers (nullable / nullish / optional / undefinedable) so they descend into the wrapped schema only when the random roll picks the wrapped branch. Eliminates a ~4,700x slowdown on self-referencing schemas wrapped in nullish-lazy (the canonical referencedMessage: v.nullish(v.lazy(() => self)) pattern).

Published to

valimock v1.5.2

01 Jun 19:03
a2faeae

Choose a tag to compare

  • #69 (patch) Thanks @Saeris! - Clean up package.json for ESM-only standards compliance: drop redundant main/module/types top-level fields and the non-standard module condition inside exports. The exports.import branch (with types listed first per Node's resolver requirement) is the canonical entrypoint for Node >=22 and modern bundlers, which is what this package already requires via engines.node. Normalizes engines.node from ">=22.x" to the canonical semver ">=22"; no behavior change (the two ranges are semver-equivalent), but the new form is idiomatic and what node-semver outputs after parsing.
  • #70 (patch) Thanks @Saeris! - Fix intersect dropping variant discriminator when shared keys diverge, and let customMocks override built-in schema handlers (notably customMocks.any: () => undefined to restore pre-1.5 v.any behavior).

Published to

valimock v1.5.1

31 May 08:17
c19b121

Choose a tag to compare

  • (patch) - Fix broken export references in package.json

Published to

valimock v1.5.0

27 May 19:29
7c08032

Choose a tag to compare

  • #66 (minor) Thanks @Saeris! - Valibot 1.4 compatibility: warn on unhandled custom schemas instead of silent undefined, expand tested API surface (instance, custom, seed, throwOnUnknownType, lazyAsync), and finish the structural cleanup pass started in 1.4.0.

Published to

v1.4.0

29 Jun 03:22
c3d6ab2

Choose a tag to compare

Minor Changes

  • eb2553c Thanks @Saeris! - Add basic support for required() and omit()

v1.3.1

23 Jun 01:13
60b47a7

Choose a tag to compare

Patch Changes

  • 50dfba1 Thanks @Saeris! - Enhance test resiliancy for string() schemas, Retry by default for possible falsy values

v1.3.0

22 Jun 19:48
f780150

Choose a tag to compare

Minor Changes

  • 4170123 Thanks @Saeris! - Add variant and exactOptional schema support, Improve test reliability

v1.2.0

21 Jun 09:27
44127cd

Choose a tag to compare

Minor Changes

  • 2f875f1 Thanks @Saeris! - Add support for new String validations and Keyword matchers

    New Validations:

    • base64
    • bic
    • creditCard
    • decimal
    • empty
    • hexadecimal
    • hexColor
    • mac
    • nanoid (unstable)
    • octal

    New keywords:

    • username
    • displayName
    • firstName
    • middleName
    • lastName
    • fullName
    • gender
    • sex
    • zodiacSign
    • isbn
    • iban
    • vin
    • vrm

    Also adds support for empty() for both Strings and Arrays