unstale

npm / @earendil-works/pi-schema

@earendil-works/pi-schema

What changed in @earendil-works/pi-schema 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-11.

1 breaking1 security13 new APIs and options1 performance2 behavior and defaults4 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.12 on npm

@earendil-works/pi-schema 122 changes

Breaking changes 1

  • Number and integer schemas reject NaN and infinities, matching TypeBox; errors name the invalid value.

    1.5.1release notes

Security 1

  • Compiles JSON Schema drafts 2020-12 and 7 into validators without eval or new Function.

    1.5.0release notes

New APIs and options 13

  • Adds a builder for the BigInt schema type.

    1.5.1release notes

  • Adds JSON equality matching how const, enum and uniqueItems compare, as a drop-in for TypeBox's Value.Equal.

    1.5.1release notes

  • Adds recursive<T>(id, build) for building self-containing schemas with an explicit type.

    1.5.1release notes

  • Adds Static typing support for TypeBox's Enum, Tuple, BigInt and Undefined schemas.

    1.5.1release notes

  • Adds unsafe<T>(schema), which types a schema as accepting T without checking it, like TypeBox's Type.Unsafe.

    1.5.1release notes

  • Adds a non-coercing validation method to every validator, returning either the value or errors.

    1.5.1release notes

  • Enabling coerce adds coerce(value) and parse(value) for loosely typed input; coercion follows the listed TypeBox and Ajv-style rules.

    1.5.0release notes

  • Adds an optional formats entry point for format checks, including url and json-pointer-uri-fragment.

    1.5.0release notes

  • Adds builders that return plain JSON Schema typed with the values they accept, including str, num, int, bool, nul, unknown, lit, oneOf, obj, opt, arr, tuple, map, union, nullable, and bytes.

    1.5.0release notes

  • Provides static types for TypeBox 1.x schemas without importing TypeBox; unsupported TypeBox kinds resolve to unknown.

    1.5.0release notes

  • Setting unresolvedRefs to reject compiles references that name nothing as false instead of throwing.

    1.5.0release notes

  • Provides a boolean check and acts as a type guard for schemas built with the builders.

    1.5.0release notes

  • Reports each validation failure with a JSON Pointer path.

    1.5.0release notes

Performance 1

  • Optimizes several checks without eval; benchmark speed cases improve about 16%, with larger gains for tagged unions and nullable properties.

    1.5.1release notes

Behavior and default changes 2

  • Number keywords now apply to numbers and bigints alike, with bounds of either kind.

    1.5.1release notes

  • Copies only paths it changes and returns the original input when nothing changes.

    1.5.0release notes

Fixes and other changes 4

  • Fixes local $ref resolution for schemas with relative root IDs containing a directory, and applies relative IDs once in the noted nested-resource, error-explanation and coercion cases.

    1.5.1release notes

  • A required property set to undefined is valid when its schema accepts undefined; optional properties set to undefined still count as absent.

    1.5.1release notes

  • Moves third-party licenses from LICENSES/ to THIRD_PARTY_NOTICES/ to prevent Vite license notices from treating them as the package license and failing browser builds.

    1.5.1release notes

  • BigInt and Undefined schemas validate and coerce according to TypeBox, including Value.Convert's rules.

    1.5.1release notes