Skip to content

Ack 1.7.0

Latest

Choose a tag to compare

@leoafarias leoafarias released this 12 Oct 16:21
· 2 commits to main since this release
07df513
  • Remove ack_annotations; annotations now ship in ack (package:ack/ack.dart, package:ack/annotations.dart, and package:ack/format_annotations.dart).
  • Add @Schemable() as the unified annotation for schema-first and class-first generation; deprecate @AckInfer() and @AckModel() for removal in 2.0.0.
  • Rename @Pattern to @Matches (keeping a deprecated Pattern alias in package:ack/annotations.dart) and remove the json_annotation re-export from ack.
  • Auto-resolve class-first fields whose types declare a static schema (including extension types, enums, and generic schema<A>() factories), and generate a static final schema shorthand on schema-first models.
  • Emit a typed $ClassCopyWith<Class> getter for copyWith on generated models, support explicit description options and @description doc tags (#175), require unique boundary items on constrained Set fields, and escape control characters in generated string literals (#164).
  • Expand Ack.fromJsonSchema() with multipleOf (exact decimal division), contains, if/then/else, built-in string and numeric format assertions, x-* vendor extensions, Draft-07 $schema URIs, and JsonSchemaValidationError location diagnostics (keyword, keywordLocation, documentUri, pointer).
  • Breaking: imported JSON Schema pattern expressions now compile in ECMA-262 Unicode mode (u); native Ack.string().matches() is unchanged.
  • Speed up safeParse, safeEncode, toJsonSchema(), imported JSON Schema validation, and collection parse/encode results.
  • Align all five publishable packages at 1.7.0 (ack_generator requires ack: ^1.7.0; adapter dependency minimums are unchanged).