Skip to content

Ack 1.7.0-beta.7

Pre-release
Pre-release

Choose a tag to compare

@leoafarias leoafarias released this 09 Oct 18:21
· 6 commits to main since this release
9caab9d

All five packages are aligned at 1.7.0-beta.7: ack, ack_generator, ack_json_schema_builder, ack_mcp_dart, and ack_firebase_ai.

What's Changed

Added

  • multipleOf in imported JSON Schemas (#214): Ack.fromJsonSchema() now validates multipleOf for number and integer schemas using exact decimal division (shared with native .multipleOf()) and reports keywordLocation on failures.
  • Built-in format assertions and x-* extensions in imported JSON Schemas (#216): Ack.fromJsonSchema() now validates built-in string formats (date, email, uuid, uri, ipv4, and ipv6, in addition to date-time), standard numeric formats (int32, int64, uint32, uint64, float, and double), and accepts x-* vendor extension annotations (such as x-transformed).
  • Draft-07 $schema URI support (#217): Ack.fromJsonSchema() now accepts http(s)://json-schema.org/draft-07/schema (with or without a trailing #), allowing schemas exported by .toJsonSchema() to be re-imported directly.

Performance

  • Faster imported validation, schema export, and collection parse/encode (#213): Ack.fromJsonSchema() reads typed node fields directly instead of per-node keyword maps, toJsonSchema() skips redundant subtree walks when constraints do not project nested keywords, and Ack.object(), Ack.list(), and Ack.map() return detached unmodifiable views without a second collection copy.

Upgrading

No new breaking changes or generator migrations are introduced in 1.7.0-beta.7. When upgrading from 1.6.2 or earlier 1.7.0 betas:

  • From 1.7.0-beta.4 or earlier: Imported pattern expressions compile in ECMA-262 Unicode mode (u flag); see the 1.7.0-beta.5 release notes.
  • From 1.7.0-beta.2 or earlier: Annotations ship in package:ack with @Schemable() as the unified entry point; see the 1.7.0-beta.3 changelog.

Packages