What this package is like to depend on
Last release 1 months ago
12 Jul 2026
Release timing varies
gaps range from 1 weeks to 3 months
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
12 releases · first in 2025
12 releases in the last 12 months
see the full history below
Release timeline
12 releases · Dec 2025 to Jul 2026Releases
latest 12-
1.1.012 Jul 2026Release notes
Open source →Ack 1.1.0
Ack 1.1.0 is a correctness-focused release that aligns runtime validation,
generated schemas, and tooling with their documented contracts. It does not
change the public Dart API surface.Validation and schema fixes
- Keep
safeParsenon-throwing for recoverable callback exceptions while
preserving DartErrorvalues so programming defects remain visible. - Bound direct, indirect, and wrapper-mediated lazy-schema recursion.
- Decode RFC 3339 date-times that use lowercase
tandzseparators. - Validate
multipleOf, IPv6, RFC 3339 date-times, range bounds, collection
limits, unions, and enum definitions consistently with JSON Schema. - Snapshot factory collections and correct schema/deep-collection equality.
- Preserve conflicting JSON Schema keywords through
allOf, and export exact
list/object sizes with the correct Draft-7 keywords.
Generator and tooling
- Reject nullable list element schemas during generation, matching Ack's
runtime list contract. - Use current
source_gendiagnostics without undeclared debug-file output. - Add stable full-output generator coverage.
- Make API checks, changelog updates, workspace setup, and root test orchestration
fail truthfully instead of producing false-green results.
Behavior changes and migration notes
Although the public API is unchanged, invalid or ambiguous inputs that were
previously accepted may now fail earlier:- Fix invalid schema definitions reported by construction-time
ArgumentErrors. - Put list nullability on the list (
Ack.list(item).nullable()), not its item. - Treat accumulated floating-point sums deliberately: round first or validate
integer minor units such as cents before applyingmultipleOf. - Refresh snapshots that assert the exact output of
toJsonSchema(). - Expect
AckExceptionfromparse()when a recoverable constraint or
refinement callback throws; inspect the underlying cause for diagnostics.
See the package changelogs for the complete behavior notes.
- Keep
-
1.0.104 Jul 2026Release notes
Open source →Release v1.0.1
This patch hardens recursive schemas built with
Ack.lazyagainst unbounded recursion.Bug Fixes
- Recursion depth guard for
Ack.lazy/LazySchema(#122): recursive schemas now
enforce a maximum recursion depth (default 100) on parse, runtime validation, and
encode. Previously, cyclic or arbitrarily deep input could recurse without bound and
risk a stack overflow. Exceeding the limit now fails fast with a descriptive validation
error (lazy_max_depth: "Maximum recursion depth (N) exceeded.") instead of crashing.
Improvements
Ack.lazy(...)accepts an optionalmaxDepth(defaultLazySchema.defaultMaxDepth
= 100; must be >= 1), carried throughcopyWith, equality, and serialization.- JSON Schema export warns that the runtime-only
maxDepthcheck can't be expressed via
$refand is omitted from the exported schema.
Behavior note: recursion is now capped at depth 100 by default. Structures that
legitimately nest deeper must pass an explicit highermaxDepth.The other packages (
ack_annotations,ack_generator,ack_json_schema_builder,
ack_firebase_ai) are version-aligned to1.0.1with no functional changes. - Recursion depth guard for
-
1.0.026 Jun 2026Release notes
Open source →Ack 1.0.0
Ack 1.0.0 is the first stable release of Ack, a schema validation library for Dart and Flutter. Ack helps you validate untrusted data at application boundaries, reuse the same schemas across runtime validation and JSON workflows, and generate typed wrappers when you want stronger ergonomics than map access.
Start with the documentation site or jump straight into the Quickstart Tutorial.
What is included
- Fluent schema definitions for strings, numbers, booleans, objects, lists, enums, literals, unions, discriminated unions, and recursive schemas.
- Validation rules for common constraints such as string length, patterns, email, UUID, URI, numeric ranges, list length, uniqueness, and custom checks.
- Clear error handling through
safeParse,SchemaResult, structured paths, and readable validation messages. - JSON serialization workflows for validating decoded API responses and working with validated data safely.
- Codecs for bidirectional conversion between wire values and Dart runtime values, including dates, datetimes, URIs, durations, enums, and custom conversions.
- Type-safe schema generation with
@AckType()for extension types, typed getters,parse, andsafeParse. - JSON Schema export through
toJsonSchema()and the reusable schema-model boundary for adapter authors. - Flutter form validation examples for using Ack schemas in form fields.
- Common recipes for API responses, reusable schemas, composition, enums, and other everyday validation tasks.
- API reference covering the stable surface in one place.
Packages
ack: core runtime validation library.ack_annotations:@AckType()annotation package.ack_generator: build_runner generator for typed schema wrappers.ack_json_schema_builder: adapter forjson_schema_builder.ack_firebase_ai: Firebase AI structured-output schema adapter.
For AI agents
Ack also publishes an
llms.txtindex with a compact overview of the packages, core APIs, code generation workflow, and common examples.Release quality
This release was validated with the full package test suites, documentation checks, example tests, and pub.dev dry-runs before publishing. All five packages are now available on pub.dev at version 1.0.0.
-
1.0.0-beta.1224 Jun 2026 pre-releaseRelease notes
Open source →ack 1.0.0-beta.12
ackBreaking
DoubleSchemaandNumberSchemanow reject non-finite values (NaN,Infinity,-Infinity) during runtime validation by default, aligning numeric schemas with JSON-safe values.- Removed the retired JSON Schema DTO converter APIs.
- Replaced the interim JSON Schema model-kind API with sealed
AckSchemaModelvariants and a canonicalAckSchema.toSchemaModel()adapter conversion.
Added
Ack.enumCodec<T extends Enum>(List<T> values)returns aCodecSchema<String, T>wrappingEnumSchema<T>.NumberSchemaExtensionsadds fluent numeric constraints toAck.number():.min,.max,.greaterThan,.lessThan,.positive,.negative,.multipleOf.
Changed
- Discriminated schemas are projected through union-owned discriminator branches.
- Defaults, const values, extension keywords, transformed metadata, composition, and JSON Schema constraints are preserved through the schema-model boundary.
Migration
- Re-run tests for code paths that parse or encode
double/numvalues. If a boundary must acceptNaN/infinities, model that value outside the JSON numeric schema path before validation.
ack_annotationsBreaking — Removed
AckModel,AckField, and decorator annotations. Only@AckType()remains.ack_generatorBreaking — Removed class-based schema generation. Only top-level
@AckType()schema variables and getters are supported.ack_firebase_ai- Added
toFirebaseAiResponseJsonSchema()for Firebase AI'sGenerationConfig.responseJsonSchemapath, plus committed golden fixtures and native fixture corpora. - Removed typed Firebase AI
Schemaconversion APIs — usetoFirebaseAiResponseJsonSchema()instead.
ack_json_schema_builder- Routes conversion through ACK's sealed
AckSchemaModelboundary and generic Draft-7 JSON Schema renderer; preserves defaults, const values, extension keywords, transformed metadata, and composition. - Removed the retired JSON Schema DTO converter path.
All five packages are released in lockstep at
1.0.0-beta.12.Release notes
Open source →Added
- Added
toFirebaseAiResponseJsonSchema()for Firebase AI'sGenerationConfig.responseJsonSchemapath. - Added an opt-in live Firebase AI contract test for real
responseJsonSchemageneration and ACK validation. - Added live-test configuration for Gemini Developer API vs Vertex AI backends, Firebase app credentials, location, and model override.
- Added committed Firebase AI
responseJsonSchemagolden fixtures and a fixture generator so converter coverage runs without Firebase credentials. - Added Firebase SDK
Schema.toJson()andJSONSchema.toJson()native fixture corpora with adapter capability classifications.
Changed
- Target Firebase AI
^3.12.1and models that support JSON Schema structured output. - Default Firebase AI examples and live tests to
gemini-3.5-flash. - Require
ack^1.0.0-beta.12for the sealedAckSchemaModeladapter boundary. - Keep
firebase_aiand Flutter as explicit package dependencies so package tests and workspace orchestration use the Firebase AI SDK runtime.
Removed
- Removed typed Firebase AI
Schemaconversion APIs. UsetoFirebaseAiResponseJsonSchema()withGenerationConfig.responseJsonSchema.
-
1.0.0-beta.1127 Mar 2026 pre-release -
1.0.0-beta.1025 Mar 2026 pre-release -
1.0.0-beta.904 Mar 2026 pre-release -
1.0.0-beta.803 Mar 2026 pre-releaseRelease notes
Open source →Release notes
Open source →- REFACTOR(schemas): centralize null/default handling and extract ObjectSchema helpers (#65).
- REFACTOR: apply DRY improvements to schema classes (#53).
- REFACTOR: deprecate withDescription in favor of describe (#46).
- REFACTOR: consolidate JSON schema utilities and reduce duplication (#40).
- REFACTOR: flatten constraints folder structure and add type prefixes (#28).
- REFACTOR: modernize constraint switch statements to expressions (#27).
- REFACTOR: simplify validation workflow by eliminating duplicate nullable handling (#17).
- REFACTOR: Improved json-schema support (#9).
- REFACTOR: consolidate constraint system and enhance validation pipeline (#8).
- FIX(generator): comprehensive fixes for primitives and correctness (#50).
- FIX: critical error handling, documentation, and immutability improvements for 1.0.0 (#29).
- FEAT(schemas): enforce Map-returning child schemas in discriminated unions (#67).
- FEAT(schemas): implement value-based equality for schemas and constraints (#63).
- FEAT: Firebase AI schema converter package and ACK improvements (#32).
- FEAT: add date/datetime validation with min/max constraints (#26).
- FEAT: add args getter for extension types with additionalProperties (#24).
- FEAT: simplify API compatibility checking with Dart script (#14).
- FEAT: prepare for 0.3.0-beta.1 release (#11).
- FEAT: Add discriminated union schema support with pattern matching (#6).
- DOCS: enhance documentation with detailed examples and error handling (#20).
- DOCS: Fix API inconsistencies across all documentation (#12).
-
1.0.0-beta.724 Feb 2026 pre-releaseNothing published for this version
-
1.0.0-beta.609 Feb 2026 pre-releaseNothing published for this version
-
1.0.0-beta.514 Jan 2026 pre-releaseRelease notes
Open source →Changed
- Updated dependency on ack to v1.0.0-beta.5
- Updated
metaandtestdependencies to latest versions (#56)
-
1.0.0-beta.429 Dec 2025 pre-release