Packages

ata-validator

1.61.3 · 29 Oct 2026MIT21.8k / weekRepositoryHomepagenpmAtom feed

Your version

1.8.0

27 Aug 2026Where it was published

1.61.3 is the newest release of 1.x.

In short

1 new1 fixed

Release note

Added

  • $vocabulary is honoured when a schema names a custom meta-schema in $schema. A dialect is a set of vocabularies and a vocabulary is a set of keywords, so a keyword whose vocabulary the meta-schema does not declare is not part of that dialect at all: it is an unknown keyword, and an unknown keyword is ignored. A schema written against a meta-schema which declares only the core and applicator vocabularies now has its minimum, type and the rest of the validation keywords ignored, while properties and the other applicators still apply. The keywords belonging to each vocabulary are read from the vendored meta-schemas rather than from a list kept by hand, so they come from the specification. Removing the keyword before compilation means every engine agrees without any of them knowing what a vocabulary is.

    This closes the last case ata missed. Draft 2020-12 goes from 1298 to 1299 of 1299, with draft 7 at 927 of 927 and the v1 dialect at 1133 of 1133, the same with code generation blocked. tests/run_suite.js has no known failures left.

    Two things it does not do. It does not refuse a schema whose meta-schema requires, with true, a vocabulary ata does not recognise; the specification says an implementation must refuse there, and turning what has always been silently accepted into a hard failure is a separate decision, so such a schema is evaluated as before with every keyword applied. And a separate document reached through $ref keeps its own keywords rather than inheriting the referring dialect, so a document which should follow one needs to say so with its own $schema.

Fixed

  • bundleStandalone and bundleCompact built the error-reporting function from the schema the caller passed rather than the one the validator compiled. Anything which prepares a schema therefore reached the boolean path and not the error path: with assertFormat: false the bundle reported a format error the caller had turned off, and only once some other keyword failed first, since the error function runs only after the boolean one says no. toStandalone already read the compiled schema; these two now do as well.