NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #5462 most downloaded on pub.dev
Primitive types and utilities for AT Protocol. This package provides basic data structures and utilities used across AT Protocol implementations.
Last release 2 months ago
22 Jul 2026
Release timing varies
gaps range from 8 days to 10 months
Nearly every release is documented
notes for 4 of 4 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
4 releases · first in 2025
feat: added TidGenerator, a stateful, strictly-monotonic TID generator for record keys. next() never repeats or regresses, even when the system clock
TidGenerator, a stateful, strictly-monotonic TID generator for record keys. next() never repeats or regresses, even when the system clock is coarse or steps backwards, and the encoding is exact on both the VM and the web.docs: fixed the README, which imported the non-existent package:at_primitives/at_primitives.dart barrel throughout; every snippet now imports the corr
package:at_primitives/at_primitives.dart barrel throughout; every snippet now imports the correct sub-barrel (at_identifier.dart/at_uri.dart/nsid.dart/tid.dart/record_key.dart).AtUri.collection type note (collection returns an NSID, only 'com.example.post' via .toString()) and documented the non-throwing collectionOrNull/rkeyOrNull getters.isValidTid/ensureValidTid/InvalidTidError) and Record Key (isValidRecordKey/ensureValidRecordKey/InvalidRecordKeyError) modules with runnable snippets.One column per month.
fix!: collection/rkey on a path-less AtUri now throw InvalidAtUriError instead of a raw StateError/RangeError; added collectionOrNull/rkeyOrNull for t
collection/rkey on a path-less AtUri now throw InvalidAtUriError instead of a raw StateError/RangeError; added collectionOrNull/rkeyOrNull for the non-throwing path.AtUri.parseStrict for full validation (ensureValidAtUri + handle/NSID checks). AtUri.parse stays lenient for backwards compatibility.AtUri now preserves the query string (search/searchParams) through parse/toString instead of silently dropping it.Invalid*Error types now override toString() so their message is shown.RegExps to static final.com.4chan.example is valid), the name segment must be letters and digits only (com.example.foo-bar is now rejected), and segments can not start with a hyphen.ensureValidTid/isValidTid, InvalidTidError), exported from package:at_primitives/tid.dart.ensureValidRecordKey/isValidRecordKey, InvalidRecordKeyError), exported from package:at_primitives/record_key.dart.AtUri.parseStrict now validates the record key path segment (rejects ./.., over 512 chars, disallowed chars), mirroring the official strict AT URI parsing. ensureValidAtUri stays rkey-lenient to match the official ensureValidAtUri.AtUri.parse now accepts DIDs containing . and _ (e.g. at://did:web:example.com%3A3000/... no longer throws).NEW: Initial release of the consolidated at_primitives package.
at_primitives package.AtIdentifier - Core identifier syntax handling (migrated from at_identifier package)AtUri - AT URI parsing and validation (migrated from at_uri package)NSID - Namespaced identifier parsing (migrated from nsid package)at_identifier, at_uri, and nsid packages to reduce dependency complexity and improve maintainability.Your coding agent can read these notes before it upgrades. Set up the MCP server →