v1.0.0
Breaking 15 Sep 2026First release.
Added
- An Arabic shaper in pure PHP: every letter's isolated, initial, medial and
final form, the six letters that never join forwards, the lam-alef ligature,
vowels carried along without breaking a join, and Urdu's extra letters. It
makes
dompdf— which 5.7 million Laravel applications a month already have — render Arabic correctly. - A reordering pass for right-to-left lines that leaves numbers and Latin words running the right way and mirrors brackets.
Shaper::toPlain(), which reverses shaping exactly, for the machine-readable copy of an invoice.Invoice::problems(), returning reason codes for what a jurisdiction requires and this invoice has not got — including the exchange rate a UAE invoice not in dirhams must show, and ZATCA's requirement that the seller be named in Arabic.- Whole minor units throughout, with tax rates in basis points and tax summed per line, matching Devix VAT Calculator exactly.
- Zero-rated, exempt, out-of-scope and reverse charge kept apart in the breakdown, because a VAT return needs them apart.
- A self-contained HTML renderer with no stylesheet, font or script to fetch, and
table columns emitted in reverse for Arabic because
dompdflays them out in source order whateverdirsays. - A Laravel service provider, an
Invoicefacade and a publishable config. - No dependencies beyond
ext-mbstring.