NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2798 most downloaded on pub.dev
A pure Dart implementation of JSONata - JSON query and transformation language for querying and transforming JSON data.
Last release 7 months ago
19 Feb 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 6 of 6 stable releases
Nothing withdrawn
no release was ever pulled
8 months old
6 releases · first in 2026
One column per month.
Bug fix - Fixed normalizeResult to preserve Map typing instead of stripping it to Map , which caused cast failures on dart2js (web) platforms
normalizeResult to preserve Map<String, dynamic> typing instead of stripping it to Map<dynamic, dynamic>, which caused cast failures on dart2js (web) platformsFixed LICENSE file format for proper OSI license recognition
Performance optimizations - Significant performance improvements for common query patterns:
a.b.c)a.b[0].c[0])arr[field = 'value'])arr.fieldName)normalizeResult to avoid deep traversal of raw JSONarr.[field].next)Parent operator (%) - Reference parent objects in path expressions
%) - Reference parent objects in path expressions^(...)) - Sort arrays by specified keys with ascending/descending support@$var) - Bind current item to a variable while keeping navigation context at parent level#$var) - Bind iteration index to a variable$keys to unwrap single-element arrays$now([picture [, timezone]]) - Returns current timestamp in ISO 8601 format or formatted with picture string
$now([picture [, timezone]]) - Returns current timestamp in ISO 8601 format or formatted with picture string$millis() - Returns current timestamp as milliseconds since Unix epoch$fromMillis(number [, picture [, timezone]]) - Convert milliseconds to formatted string$toMillis(timestamp [, picture]) - Parse timestamp string to milliseconds$match(string, regex [, limit]) - Find regex matches with match objects$replace(string, regex, replacement) - Replace with regex, capture groups, or lambda functions$contains(string, regex) - Test if string matches regex$split(string, regex [, limit]) - Split string by regex pattern? placeholder~>) - Function chaining with left-associativity~> operator to be left-associative (so a ~> b ~> c = (a ~> b) ~> c)Core JSONata language features:
a.b.c, a[0], a.b[c > 0])*, **)a ? b : c)$x := value)function($x) { $x * 2 })items{category: $sum(price)})[1..10])$string, $length, $substring, $uppercase, $lowercase, $trim, $pad, $split, $join, $contains, $replace$number, $abs, $floor, $ceil, $round, $power, $sqrt, $random, $sum, $max, $min, $average, $formatNumber, $formatBase, $formatInteger, $parseInteger$count, $append, $sort, $reverse, $shuffle, $distinct, $zip, $flatten$keys, $values, $spread, $merge, $lookup, $each$boolean, $not, $exists$type$map, $filter, $reduce, $singleYour coding agent can read these notes before it upgrades. Set up the MCP server →