Skip to content

Cbox Geo v0.6.1

Latest

Choose a tag to compare

@sylvesterdamgaard sylvesterdamgaard released this 14 Aug 09:51
· 1 commit to main since this release

This is v0.6.0's content, released under a tag Packagist will actually index.
composer.json carried a hardcoded "version": "0.5.0", so Packagist skipped
the v0.6.0 tag outright — "tag (0.6.0.0) does not match version (0.5.0.0)"
and the release existed on GitHub while being uninstallable. The field is gone;
Composer infers the version from the tag, which is what it should have done all
along.

Fixed

The addressing library's code is a display name, not an ISO code. We were
reading getCode() — the postal or display abbreviation, "A Coruña" for Spain,
"Hokkaido" for Japan — where getId() carries the ISO 3166-2 code this package
speaks. It failed in two directions at once: most values were rejected by the
format check and silently skipped, so Spain returned 0 of its 52
subdivisions
, while a short alphanumeric display name slipped through as a
plausible invention — Japan's "Mie" became JP-MIE, which is not an ISO code at
all. The real one is JP-24.

Changed — breaking

CountryCode and SubdivisionCode now serialise as bare strings. "DK",
not {"value":"DK"}. Encoding an object of public readonly properties Just
Works, which was the problem: the wrapper that keeps free text out of the domain
was leaking into every payload it appeared in, and that shape becomes an API's
response format by accident rather than by decision.

If you persist or transmit these encoded, the shape changes. That is why this is
a minor bump rather than a patch.

Added

Testing/ fakesArrayJurisdictionRepository and InteractsWithGeo, so a
consumer can test a checkout that merely needs Denmark to exist without standing
up the full addressing library. This package's own suite composes the trait, so
the fake is exercised by the tests that ship it rather than merely described.