Files
2026-05-27 23:29:53 +01:00

1.5 KiB

Proposal: @suaveplan/locale-data

Summary

Add the @suaveplan/locale-data package — a static, enterprise-grade locale data library providing ISO 3166-1 country data and ISO 639-1 language data with typed lookup functions, OTel instrumentation, and Zod schema validation.

Motivation

Multiple packages across the monorepo need reliable country and language data (e.g., @suaveplan/i18n, @suaveplan/domain-normalizer, future address-validation packages). Centralising this static data eliminates duplicated definitions and guarantees a single source of truth for ISO codes, native names, continents, currencies, and RTL language detection.

Scope

  • countries module: 209 ISO 3166-1 alpha-2 country entries with name, native name, phone code, continent, capital, currency, languages, and emoji. Lookup functions: getCountry, getAllCountries, getCountriesByContinent, getCountriesByCurrency.
  • languages module: ~130 ISO 639-1 language entries with name and native name, plus RTL detection. Lookup functions: getLanguage, getLanguages, getRtlLanguages, isRtlLanguage.
  • errors: Typed LocaleDataError extending SuaveplanError with stable code registry.
  • types: Shared CountryItem and LanguageItem Zod schemas and inferred types.
  • OTel: Counters on country/language lookup hits and misses.

Out of scope

  • CLDR data (plural rules, formatting patterns) — covered by @suaveplan/i18n
  • Flag images / SVG assets
  • UN M.49 region codes