Skip to content

Releases: cboxdk/laravel-geo

v0.4.0 — Japan, S.Korea, Thailand, Ukraine, Malaysia

Choose a tag to compare

@sylvesterdamgaard sylvesterdamgaard released this 15 Jul 08:50

Adds Japan (JCT), South Korea, Thailand, Ukraine (clean national VAT, round-6 primary-source verified) and Malaysia (SST — modelled as a sales-tax regime, not VAT). Additive/backward-compatible. Gate green.

v0.3.0 — 10 more national VAT jurisdictions

Choose a tag to compare

@sylvesterdamgaard sylvesterdamgaard released this 15 Jul 08:32

Adds tax profiles for Taiwan, UAE, Saudi Arabia, Bahrain, Oman, Türkiye, Chile, Indonesia, Vietnam, Philippines — clean national VAT regimes, rates verified against primary/dated authoritative sources (round-5 verification). Additive/backward-compatible. Gate green: pint, phpstan level max, 19 tests, license-check, sbom, audit.

v0.2.1 — India + Singapore jurisdictions (corrects v0.2.0)

Choose a tag to compare

@sylvesterdamgaard sylvesterdamgaard released this 15 Jul 08:20

Adds tax profiles for India (dual-GST, module in-gst) and Singapore (national GST, sg-gst). Additive/backward-compatible. Corrects v0.2.0, whose tag was created before the commit was pushed and therefore did not contain these changes. Gate green: pint, phpstan level max, 18 tests, license-check, sbom, audit.

v0.2.0 — India + Singapore jurisdictions

Choose a tag to compare

@sylvesterdamgaard sylvesterdamgaard released this 15 Jul 08:18

⚠️ Superseded by v0.2.1. This tag was created before its commit was pushed, so it does NOT contain the India/Singapore profiles described — its code equals v0.1.0. Use v0.2.1.

v0.1.0 — canonical ISO jurisdiction reference

Choose a tag to compare

@sylvesterdamgaard sylvesterdamgaard released this 14 Jul 21:39

First release of Cbox Geo — the shared jurisdiction primitive for the Cbox portfolio.

Countries, subdivisions and currencies bound to stable ISO codes (3166-1 alpha-2 / 3166-2 / 4217), resolved deny-by-default, wrapping the vetted commerceguys/addressing dataset — with a tax-profile layer on top for downstream billing and tax engines.

Highlights

  • Contracts\JurisdictionRepositorycountries() / find() / subdivisions(); unknown input returns null, never a guess.
  • Value objects: CountryCode, SubdivisionCode (always carries its parent country), Jurisdiction, Subdivision, TaxProfile.
  • Tax profile per jurisdiction: regime, regimeModule, isEuMember, isSubFederal, requiresRooftop — structural facts, not rates.
  • Sub-federal split from rooftop: Canada resolves at province level; the US needs rooftop geocoding.
  • No forced migration — the ISO data ships in the library; persistence is an optional host concern.

Quality

PHP ^8.4 · Laravel ^12 || ^13. Gate green: pint · phpstan level max (0 errors) · 16 tests / 43 assertions · license-check (76 permissive deps) · CycloneDX SBOM · composer audit clean.

Status: early / pre-1.0. Contracts are settled; API may still evolve before 1.0.