PackageTrack
Sign in Get early access

ack_annotations

AckType annotation for schema extension-type generation

1.1.0 btwld/ack

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

10 months old

14 releases · first in 2025

14 releases in the last 12 months

see the full history below

Release timeline

14 releases · Oct 2025 to Jul 2026
2026
Release Pre-release

Releases

latest 14
  1. 1.1.0 12 Jul 2026
    Release notes

    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 safeParse non-throwing for recoverable callback exceptions while
      preserving Dart Error values so programming defects remain visible.
    • Bound direct, indirect, and wrapper-mediated lazy-schema recursion.
    • Decode RFC 3339 date-times that use lowercase t and z separators.
    • 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_gen diagnostics 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 applying multipleOf.
    • Refresh snapshots that assert the exact output of toJsonSchema().
    • Expect AckException from parse() when a recoverable constraint or
      refinement callback throws; inspect the underlying cause for diagnostics.

    See the package changelogs for the complete behavior notes.

    Open source →
    Release notes
    Open source →
  2. 1.0.1 04 Jul 2026
    Release notes

    Release v1.0.1

    This patch hardens recursive schemas built with Ack.lazy against 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 optional maxDepth (default LazySchema.defaultMaxDepth
      = 100; must be >= 1), carried through copyWith, equality, and serialization.
    • JSON Schema export warns that the runtime-only maxDepth check can't be expressed via
      $ref and 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 higher maxDepth.

    The other packages (ack_annotations, ack_generator, ack_json_schema_builder,
    ack_firebase_ai) are version-aligned to 1.0.1 with no functional changes.

    Open source →
    Release notes
    Open source →
  3. 1.0.0 26 Jun 2026
    Release notes

    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, and safeParse.
    • 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

    For AI agents

    Ack also publishes an llms.txt index 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.

    Open source →
    Release notes
    Open source →
  4. 1.0.0-beta.12 24 Jun 2026 pre-release
    Release notes

    ack 1.0.0-beta.12

    ack

    Breaking

    • DoubleSchema and NumberSchema now 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 AckSchemaModel variants and a canonical AckSchema.toSchemaModel() adapter conversion.

    Added

    • Ack.enumCodec<T extends Enum>(List<T> values) returns a CodecSchema<String, T> wrapping EnumSchema<T>.
    • NumberSchemaExtensions adds fluent numeric constraints to Ack.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/num values. If a boundary must accept NaN/infinities, model that value outside the JSON numeric schema path before validation.

    ack_annotations

    Breaking — Removed AckModel, AckField, and decorator annotations. Only @AckType() remains.

    ack_generator

    Breaking — Removed class-based schema generation. Only top-level @AckType() schema variables and getters are supported.

    ack_firebase_ai

    • Added toFirebaseAiResponseJsonSchema() for Firebase AI's GenerationConfig.responseJsonSchema path, plus committed golden fixtures and native fixture corpora.
    • Removed typed Firebase AI Schema conversion APIs — use toFirebaseAiResponseJsonSchema() instead.

    ack_json_schema_builder

    • Routes conversion through ACK's sealed AckSchemaModel boundary 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.

    Open source →
    Release notes

    Breaking

    • Remove AckModel, AckField, and decorator annotations. ack_annotations now exposes only @AckType().
    Open source →
  5. 1.0.0-beta.11 27 Mar 2026 pre-release
    Release notes

    chore(release): bump to 1.0.0-beta.11 (#102)

    Open source →
    Release notes
    Open source →
  6. 1.0.0-beta.10 25 Mar 2026 pre-release
    Release notes

    docs: add ack package README for pub.dev (#98)

    Open source →
    Release notes
    Open source →
  7. 1.0.0-beta.9 04 Mar 2026 pre-release
    Release notes

    chore(release): bump to 1.0.0-beta.9 (#88)

    Open source →
    Release notes
    Open source →
  8. 1.0.0-beta.8 03 Mar 2026 pre-release
    Release notes Open source →
    Release notes
    • 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).
    Open source →
    Release notes
    Open source →
  9. 1.0.0-beta.7 24 Feb 2026 pre-release
    Release notes
    Open source →
  10. 1.0.0-beta.6 09 Feb 2026 pre-release
    Release notes

    Improvements

    • AckType: Refined annotation parameters and improved type handling (#50).
    • AckField: Improved field annotation correctness (#50).
    • Breaking: AckField.required was replaced by requiredMode (AckFieldRequiredMode.auto|required|optional). Migrate @AckField(required: true) to @AckField(requiredMode: AckFieldRequiredMode.required) and required: false to requiredMode: AckFieldRequiredMode.optional.
    Open source →
  11. 1.0.0-beta.5 14 Jan 2026 pre-release
    Release notes

    Improvements

    • Documentation: Fixed broken links and added missing API documentation (#57).
    • Dependencies: Updated meta dependency to latest version (#56).
    Open source →
  12. 1.0.0-beta.4 30 Dec 2025 pre-release
    Release notes
    • Dependency version bump to align with ack v1.0.0-beta.4.
    Open source →
  13. 1.0.0-beta.2 09 Oct 2025 pre-release
    Release notes
    • REFACTOR: simplify validation workflow by eliminating duplicate nullable handling (#17). (71d694ab)
    • REFACTOR: Improved json-schema support (#9). (d4da5d94)
    • REFACTOR: consolidate constraint system and enhance validation pipeline (#8). (e6161a39)
    • FEAT: add args getter for extension types with additionalProperties (#24). (3bf284ef)
    • FEAT: simplify API compatibility checking with Dart script (#14). (d309f2c2)
    • FEAT: prepare for 0.3.0-beta.1 release (#11). (af70b357)
    • FEAT: Add discriminated union schema support with pattern matching (#6). (9c9aff3c)
    • DOCS: Fix API inconsistencies across all documentation (#12). (2c57298b)
    Open source →
    Release notes
    Open source →
  14. 1.0.0-beta.1 06 Oct 2025 pre-release
    Release notes
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive