african-states-and-tribes
Version:
This project provides comprehensive insights into African countries, the origins of various tribes, and their geographic distributions. Built to celebrate and document Africa’s rich multicultural landscape, it allows users to explore the continent’s diver
1,482 lines (1,478 loc) • 34.4 kB
JavaScript
import {
__glob
} from "./chunk-4UEJOM6W.mjs";
// src/data/africa/countries.json
var countries_default = {
AO: {
phoneCode: 244,
capitalCity: "Luanda",
colonialMaster: [
{
name: "Portugal",
countryCode: "PT"
}
],
countryCode: "AO",
flagEmoji: "\u{1F1E6}\u{1F1F4}",
name: "Angola",
currency: "Angolan kwanza",
currencyCode: "AOA",
currencySymbol: "Kz",
officialLanguage: "Portuguese",
majorEthnicGroups: ["Bakongo", "Mbundu", "Ovimbundu"],
timezones: [
{
iana: "Africa/Luanda",
gmtOffset: "+01:00"
}
]
},
BJ: {
phoneCode: 229,
capitalCity: "Porto-Novo",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "BJ",
flagEmoji: "\u{1F1E7}\u{1F1EF}",
name: "Benin",
currency: "West African CFA franc",
currencyCode: "XOF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Bariba", "Fon (Dahomey)", "Yoruba"],
timezones: [
{
iana: "Africa/Porto-Novo",
gmtOffset: "+01:00"
}
]
},
BW: {
phoneCode: 267,
capitalCity: "Gaborone",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "BW",
flagEmoji: "\u{1F1E7}\u{1F1FC}",
name: "Botswana",
currency: "Botswana pula",
currencyCode: "BWP",
currencySymbol: "P",
officialLanguage: "Setswana",
majorEthnicGroups: ["Basarwa", "Kalanga", "Tswana"],
timezones: [
{
iana: "Africa/Gaborone",
gmtOffset: "+02:00"
}
]
},
BF: {
phoneCode: 226,
capitalCity: "Ouagadougou",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "BF",
flagEmoji: "\u{1F1E7}\u{1F1EB}",
name: "Burkina Faso",
currency: "West African CFA franc",
currencyCode: "XOF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Mossi"],
timezones: [
{
iana: "Africa/Ouagadougou",
gmtOffset: "+00:00"
}
]
},
BI: {
phoneCode: 257,
capitalCity: "Bujumbura",
colonialMaster: [
{
name: "Germany",
countryCode: "DE"
},
{
name: "Belgium",
countryCode: "BE"
}
],
countryCode: "BI",
flagEmoji: "\u{1F1E7}\u{1F1EE}",
name: "Burundi",
currency: "Burundi franc",
currencyCode: "BIF",
currencySymbol: "FBu",
officialLanguage: "Kirundi",
majorEthnicGroups: ["Hutu", "Tutsi", "Twa"],
timezones: [
{
iana: "Africa/Bujumbura",
gmtOffset: "+02:00"
}
]
},
CV: {
phoneCode: 238,
capitalCity: "Praia",
colonialMaster: [
{
name: "Portugal",
countryCode: "PT"
}
],
countryCode: "CV",
flagEmoji: "\u{1F1E8}\u{1F1FB}",
name: "Cabo Verde",
currency: "Cape Verdean escudo",
currencyCode: "CVE",
currencySymbol: "$",
officialLanguage: "Portuguese",
majorEthnicGroups: ["Creole"],
timezones: [
{
iana: "Atlantic/Cape_Verde",
gmtOffset: "-01:00"
}
]
},
CM: {
phoneCode: 237,
capitalCity: "Yaound\xE9",
colonialMaster: [
{
name: "Germany",
countryCode: "DE"
},
{
name: "France",
countryCode: "FR"
},
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "CM",
flagEmoji: "\u{1F1E8}\u{1F1F2}",
name: "Cameroon",
currency: "Central African CFA franc",
currencyCode: "XAF",
currencySymbol: "Fr",
officialLanguage: "Major African languages",
majorEthnicGroups: ["Beti", "Fang", "Fulani"],
timezones: [
{
iana: "Africa/Douala",
gmtOffset: "+01:00"
}
]
},
CF: {
phoneCode: 236,
capitalCity: "Bangui",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "CF",
flagEmoji: "\u{1F1E8}\u{1F1EB}",
name: "Central African Republic",
currency: "Central African CFA franc",
currencyCode: "XAF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Banda", "Gbaya", "Mandja"],
timezones: [
{
iana: "Africa/Bangui",
gmtOffset: "+01:00"
}
]
},
DZ: {
phoneCode: 213,
capitalCity: "Algiers",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "",
flagEmoji: "\u{1F1E9}\u{1F1FF}",
name: "Algeria",
currency: "Algerian dinar",
currencyCode: "DZD",
currencySymbol: "\u062F.\u062C",
officialLanguage: "Arabic",
majorEthnicGroups: ["Arabs", "Berbers"],
timezones: [
{
iana: "Africa/Algiers",
gmtOffset: "+01:00"
}
]
},
TD: {
phoneCode: 235,
capitalCity: "N'Djamena",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "TD",
flagEmoji: "\u{1F1F9}\u{1F1E9}",
name: "Chad",
currency: "Central African CFA franc",
currencyCode: "XAF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Arabs", "Mayo-Kebbi", "Sara"],
timezones: [
{
iana: "Africa/Ndjamena",
gmtOffset: "+01:00"
}
]
},
KM: {
phoneCode: 269,
capitalCity: "Moroni",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "KM",
flagEmoji: "\u{1F1F0}\u{1F1F2}",
name: "Comoros",
currency: "Comorian franc",
currencyCode: "KMF",
currencySymbol: "CF",
officialLanguage: "Arabic",
majorEthnicGroups: ["Comorian"],
timezones: [
{
iana: "Indian/Comoro",
gmtOffset: "+03:00"
}
]
},
CD: {
phoneCode: 243,
capitalCity: "Kinshasa",
colonialMaster: [
{
name: "Belgium",
countryCode: "BE"
}
],
countryCode: "CD",
flagEmoji: "\u{1F1E8}\u{1F1E9}",
name: "Democratic Republic of the Congo",
currency: "Congolese franc",
currencyCode: "CDF",
currencySymbol: "FC",
officialLanguage: "French",
majorEthnicGroups: ["Kongo", "Luba", "Mongo", "Tutsi"],
timezones: [
{
iana: "Africa/Kinshasa",
gmtOffset: "+01:00"
},
{
iana: "Africa/Lubumbashi",
gmtOffset: "+02:00"
}
]
},
CG: {
phoneCode: 242,
capitalCity: "Brazzaville",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "CG",
flagEmoji: "\u{1F1E8}\u{1F1EC}",
name: "Republic of the Congo",
currency: "Central African CFA franc",
currencyCode: "XAF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Kongo", "Teke", "Sangha"],
timezones: [
{
iana: "Africa/Brazzaville",
gmtOffset: "+01:00"
}
]
},
CI: {
phoneCode: 225,
capitalCity: "Yamoussoukro",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "CI",
flagEmoji: "\u{1F1E8}\u{1F1EE}",
name: "Cote D'Ivoire",
currency: "West African CFA franc",
currencyCode: "XOF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Akan", "Mand\xE9", "Krou", "Gur"],
timezones: [
{
iana: "Africa/Abidjan",
gmtOffset: "+00:00"
}
]
},
DJ: {
phoneCode: 253,
capitalCity: "Djibouti (city)",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "DJ",
flagEmoji: "\u{1F1E9}\u{1F1EF}",
name: "Djibouti",
currency: "Djiboutian franc",
currencyCode: "DJF",
currencySymbol: "Fdj",
officialLanguage: "French",
majorEthnicGroups: ["Afar", "Issa"],
timezones: [
{
iana: "Africa/Djibouti",
gmtOffset: "+03:00"
}
]
},
EG: {
phoneCode: 20,
capitalCity: "Cairo",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "EG",
flagEmoji: "\u{1F1EA}\u{1F1EC}",
name: "Egypt",
currency: "Egyptian Pound",
currencyCode: "EGP",
currencySymbol: "\xA3",
officialLanguage: "Arabic",
majorEthnicGroups: ["Arabs", "Bedouin", "Nubian"],
timezones: [
{
iana: "Africa/Cairo",
gmtOffset: "+02:00"
}
]
},
GQ: {
phoneCode: 240,
capitalCity: "Malabo",
colonialMaster: [
{
name: "Spain",
countryCode: "ES"
}
],
countryCode: "GQ",
flagEmoji: "\u{1F1EC}\u{1F1F6}",
name: "Equatorial Guinea",
currency: "Central African CFA franc",
currencyCode: "XAF",
currencySymbol: "Fr",
officialLanguage: "Spanish",
majorEthnicGroups: ["Bubi", "Fang"],
timezones: [
{
iana: "Africa/Malabo",
gmtOffset: "+01:00"
}
]
},
ER: {
phoneCode: 291,
capitalCity: "Asmara",
colonialMaster: [
{
name: "Italy",
countryCode: "IT"
},
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "ER",
flagEmoji: "\u{1F1EA}\u{1F1F7}",
name: "Eritrea",
currency: "Eritrean nakfa",
currencyCode: "ERN",
currencySymbol: "Nkf",
officialLanguage: "Afar",
majorEthnicGroups: ["Afar", "Tigrinya"],
timezones: [
{
iana: "Africa/Asmara",
gmtOffset: "+03:00"
}
]
},
ET: {
phoneCode: 251,
capitalCity: "Addis Ababa",
colonialMaster: [],
countryCode: "ET",
flagEmoji: "\u{1F1EA}\u{1F1F9}",
name: "Ethiopia",
currency: "Ethiopian birr",
currencyCode: "ETB",
currencySymbol: "Br",
officialLanguage: "Amharic",
majorEthnicGroups: ["Amhara", "Oromo", "Somali", "Tigray"],
timezones: [
{
iana: "Africa/Addis_Ababa",
gmtOffset: "+03:00"
}
]
},
GA: {
phoneCode: 241,
capitalCity: "Libreville",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "GA",
flagEmoji: "\u{1F1EC}\u{1F1E6}",
name: "Gabon",
currency: "Central African CFA franc",
currencyCode: "XAF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Fang", "Nzebi", "Punu"],
timezones: [
{
iana: "Africa/Libreville",
gmtOffset: "+01:00"
}
]
},
GH: {
phoneCode: 233,
capitalCity: "Accra",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "GH",
flagEmoji: "\u{1F1EC}\u{1F1ED}",
name: "Ghana",
currency: "Ghanaian cedi",
currencyCode: "GHS",
currencySymbol: "\u20B5",
officialLanguage: "English",
majorEthnicGroups: ["Akan", "Ewe"],
timezones: [
{
iana: "Africa/Accra",
gmtOffset: "+00:00"
}
]
},
GM: {
phoneCode: 220,
capitalCity: "Banjul",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "GM",
flagEmoji: "\u{1F1EC}\u{1F1F2}",
name: "Gambia",
currency: "Dalasi",
currencyCode: "GMD",
currencySymbol: "D",
officialLanguage: "English",
majorEthnicGroups: ["Fula", "Mandinka", "Wolof"],
timezones: [
{
iana: "Africa/Banjul",
gmtOffset: "+00:00"
}
]
},
GN: {
phoneCode: 224,
capitalCity: "Conakry",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "GN",
flagEmoji: "\u{1F1EC}\u{1F1F3}",
name: "Guinea",
currency: "Guinean franc",
currencyCode: "GNF",
currencySymbol: "FG",
officialLanguage: "French",
majorEthnicGroups: ["Fulani", "Malinke", "Susu"],
timezones: [
{
iana: "Africa/Conakry",
gmtOffset: "+00:00"
}
]
},
GW: {
phoneCode: 245,
capitalCity: "Bissau",
colonialMaster: [
{
name: "Portugal",
countryCode: "PT"
}
],
countryCode: "GW",
flagEmoji: "\uFFFD\uFFFD\u{1F1FC}",
name: "Guinea-Bissau",
currency: "West African CFA franc",
currencyCode: "XOF",
currencySymbol: "Fr",
officialLanguage: "Portuguese",
majorEthnicGroups: ["Balanta", "Fula", "Mandinka"],
timezones: [
{
iana: "Africa/Bissau",
gmtOffset: "+00:00"
}
]
},
KE: {
phoneCode: 254,
capitalCity: "Nairobi",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "KE",
flagEmoji: "\u{1F1F0}\u{1F1EA}",
name: "Kenya",
currency: "Kenyan shilling",
currencyCode: "KES",
currencySymbol: "KSh",
officialLanguage: "English",
majorEthnicGroups: ["Kalenjin", "Kikuyu", "Luo", "Maasai"],
timezones: [
{
iana: "Africa/Nairobi",
gmtOffset: "+03:00"
}
]
},
LS: {
phoneCode: 266,
capitalCity: "Maseru",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "LS",
flagEmoji: "\u{1F1F1}\u{1F1F8}",
name: "Lesotho",
currency: "Lesotho loti",
currencyCode: "LSL",
currencySymbol: "L",
officialLanguage: "Sesotho",
majorEthnicGroups: ["Basotho"],
timezones: [
{
iana: "Africa/Maseru",
gmtOffset: "+02:00"
}
]
},
LR: {
phoneCode: 231,
capitalCity: "Monrovia",
colonialMaster: [],
countryCode: "LR",
flagEmoji: "\u{1F1F1}\u{1F1F7}",
name: "Liberia",
currency: "Liberian Dollar",
currencyCode: "LRD",
currencySymbol: "**$",
officialLanguage: "English",
majorEthnicGroups: ["Bassa", "Kpelle", "Gio"],
timezones: [
{
iana: "Africa/Monrovia",
gmtOffset: "+00:00"
}
]
},
LY: {
phoneCode: 218,
capitalCity: "Tripoli",
colonialMaster: [
{
name: "Italy",
countryCode: "IT"
},
{
name: "United Kingdom",
countryCode: "GB"
},
{
name: "France",
countryCode: "FR"
}
],
countryCode: "LY",
flagEmoji: "\u{1F1F1}\u{1F1FE}",
name: "Libya",
currency: "Libyan dinar",
currencyCode: "LYD",
currencySymbol: "\u062F.\u0644",
officialLanguage: "Arabic",
majorEthnicGroups: ["Arabs", "Berbers"],
timezones: [
{
iana: "Africa/Tripoli",
gmtOffset: "+02:00"
}
]
},
MG: {
phoneCode: 261,
capitalCity: "Antananarivo",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "MG",
flagEmoji: "\u{1F1F2}\u{1F1EC}",
name: "Madagascar",
currency: "Malagasy ariary",
currencyCode: "MGA",
currencySymbol: "Ar",
officialLanguage: "French",
majorEthnicGroups: ["Betsileo", "Betsimisaraka", "Merina"],
timezones: [
{
iana: "Indian/Antananarivo",
gmtOffset: "+03:00"
}
]
},
MW: {
phoneCode: 265,
capitalCity: "Lilongwe",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "MW",
flagEmoji: "\u{1F1F2}\u{1F1FC}",
name: "Malawi",
currency: "Malawian kwacha",
currencyCode: "MWK",
currencySymbol: "K",
officialLanguage: "Chichewa",
majorEthnicGroups: ["Chewa", "Tumbuka", "Yao"],
timezones: [
{
iana: "Indian/Antananarivo",
gmtOffset: "+03:00"
}
]
},
ML: {
phoneCode: 223,
capitalCity: "Bamako",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "ML",
flagEmoji: "\u{1F1F2}\u{1F1F1}",
name: "Mali",
currency: "West African CFA franc",
currencyCode: "XOF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Bambara", "Dogon", "Tuareg"],
timezones: [
{
iana: "Africa/Bamako",
gmtOffset: "+00:00"
}
]
},
MR: {
phoneCode: 222,
capitalCity: "Nouakchott",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "MR",
flagEmoji: "\u{1F1F2}\u{1F1F7}",
name: "Mauritania",
currency: "Mauritanian ouguiya",
currencyCode: "MRU",
currencySymbol: "UM",
officialLanguage: "Arabic",
majorEthnicGroups: ["Moor", "Soninke"],
timezones: [
{
iana: "Africa/Nouakchott",
gmtOffset: "+00:00"
}
]
},
MU: {
phoneCode: 230,
capitalCity: "Port Louis",
colonialMaster: [
{
name: "Netherlands",
countryCode: "NL"
},
{
name: "Germany",
countryCode: "DE"
},
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "MU",
flagEmoji: "\u{1F1F2}\u{1F1FA}",
name: "Mauritius",
currency: "Mauritian rupee",
currencyCode: "MUR",
currencySymbol: "\u20A8",
officialLanguage: "Creole",
majorEthnicGroups: ["Indo-Mauritian", "Creole"],
timezones: [
{
iana: "Indian/Mauritius",
gmtOffset: "+04:00"
}
]
},
MA: {
phoneCode: 212,
capitalCity: "Rabat",
colonialMaster: [
{
name: "France",
countryCode: "FR"
},
{
name: "Spain",
countryCode: "ES"
}
],
countryCode: "MA",
flagEmoji: "\u{1F1F2}\u{1F1E6}",
name: "Morocco",
currency: "Moroccan dirham",
currencyCode: "MAD",
currencySymbol: "\u062F.\u0645.",
officialLanguage: "Arabic",
majorEthnicGroups: ["Arabs", "Berbers"],
timezones: [
{
iana: "Africa/Casablanca",
gmtOffset: "+01:00"
}
]
},
MZ: {
phoneCode: 258,
capitalCity: "Maputo",
colonialMaster: [
{
name: "Portugal",
countryCode: "PT"
}
],
countryCode: "MZ",
flagEmoji: "\u{1F1F2}\u{1F1FF}",
name: "Mozambique",
currency: "Mozambican metical",
currencyCode: "MZN",
currencySymbol: "MT",
officialLanguage: "Emakhuwa",
majorEthnicGroups: ["Makua", "Sena", "Tsonga"],
timezones: [
{
iana: "Africa/Maputo",
gmtOffset: "+02:00"
}
]
},
NA: {
phoneCode: 264,
capitalCity: "Windhoek",
colonialMaster: [
{
name: "Germany",
countryCode: "DE"
}
],
countryCode: "NA",
flagEmoji: "\u{1F1F3}\u{1F1E6}",
name: "Namibia",
currency: "Namibian Dollar",
currencyCode: "NAD",
currencySymbol: "$",
officialLanguage: null,
majorEthnicGroups: ["Herero", "Nama", "Ovambo"],
timezones: [
{
iana: "Africa/Windhoek",
gmtOffset: "+02:00"
}
]
},
NE: {
phoneCode: 227,
capitalCity: "Niamey",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "NE",
flagEmoji: "\u{1F1F3}\u{1F1EA}",
name: "Niger",
currency: "West African CFA franc",
currencyCode: "XOF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Hausa", "Tuareg", "Zarma"],
timezones: [
{
iana: "Africa/Niamey",
gmtOffset: "+01:00"
}
]
},
NG: {
phoneCode: 234,
capitalCity: "Abuja",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "NG",
flagEmoji: "\u{1F1F3}\u{1F1EC}",
name: "Nigeria",
currency: "Nigerian naira",
currencyCode: "NGN",
currencySymbol: "\u20A6",
officialLanguage: "English",
majorEthnicGroups: ["Fulani", "Hausa", "Igbo", "Yoruba"],
timezones: [
{
iana: "Africa/Lagos",
gmtOffset: "+01:00"
}
]
},
RW: {
phoneCode: 250,
capitalCity: "Kigali",
colonialMaster: [
{
name: "Germany",
countryCode: "DE"
},
{
name: "Belgium",
countryCode: "BE"
}
],
countryCode: "RW",
flagEmoji: "\u{1F1F7}\u{1F1FC}",
name: "Rwanda",
currency: "Rwandan franc",
currencyCode: "RWF",
currencySymbol: "Fr",
officialLanguage: "Kinyarwanda",
majorEthnicGroups: ["Hutu", "Tutsi", "Twa"],
timezones: [
{
iana: "Africa/Kigali",
gmtOffset: "+02:00"
}
]
},
ST: {
phoneCode: 239,
capitalCity: "S\xE3o Tom\xE9",
colonialMaster: [
{
name: "Portugal",
countryCode: "PT"
}
],
countryCode: "ST",
flagEmoji: "\u{1F1F8}\u{1F1F9}",
name: "Sao Tome And Principe",
currency: "Sao Tome and Principe dobra",
currencyCode: "STN",
currencySymbol: "Db",
officialLanguage: "Portuguese",
majorEthnicGroups: ["Angolares", "Forro"],
timezones: [
{
iana: "Africa/Sao_Tome",
gmtOffset: "+00:00"
}
]
},
SN: {
phoneCode: 221,
capitalCity: "Dakar",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "SN",
flagEmoji: "\u{1F1F8}\u{1F1F3}",
name: "Senegal",
currency: "West African CFA franc",
currencyCode: "XOF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Peulh", "Serer", "Wolof"],
timezones: [
{
iana: "Africa/Dakar",
gmtOffset: "+00:00"
}
]
},
SC: {
phoneCode: 248,
capitalCity: "Victoria",
colonialMaster: [
{
name: "France",
countryCode: "FR"
},
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "SC",
flagEmoji: "\u{1F1F8}\u{1F1E8}",
name: "Seychelles",
currency: "Seychellois rupee",
currencyCode: "SCR",
currencySymbol: "\u20A8",
officialLanguage: "Creole",
majorEthnicGroups: ["Creole"],
timezones: [
{
iana: "Indian/Mahe",
gmtOffset: "+04:00"
}
]
},
SL: {
phoneCode: 232,
capitalCity: "Freetown",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "SL",
flagEmoji: "\u{1F1F8}\u{1F1F1}",
name: "Sierra Leone",
currency: "Sierra Leonean leone",
currencyCode: "SLL",
currencySymbol: "Le",
officialLanguage: "English",
majorEthnicGroups: ["Limba", "Mende", "Temne"],
timezones: [
{
iana: "Africa/Freetown",
gmtOffset: "+00:00"
}
]
},
SO: {
phoneCode: 252,
capitalCity: "Mogadishu",
colonialMaster: [
{
name: "Italy",
countryCode: "IT"
},
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "SO",
flagEmoji: "\u{1F1F8}\u{1F1F4}",
name: "Somalia",
currency: "Somali shilling",
currencyCode: "SOS",
currencySymbol: "Sh",
officialLanguage: "Somali",
majorEthnicGroups: ["Arabs", "Bantu", "Somali"],
timezones: [
{
iana: "Africa/Mogadishu",
gmtOffset: "+03:00"
}
]
},
ZA: {
phoneCode: 27,
capitalCity: "Pretoria / Cape Town",
colonialMaster: [
{
name: "Netherlands",
countryCode: "NL"
},
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "ZA",
flagEmoji: "\u{1F1FF}\u{1F1E6}",
name: "South Africa",
currency: "South African rand",
currencyCode: "ZAR",
currencySymbol: "R",
officialLanguage: "IsiZulu",
majorEthnicGroups: ["Afrikaner", "Sotho", "Xhosa", "Zulu"],
timezones: [
{
iana: "Africa/Johannesburg",
gmtOffset: "+02:00"
}
]
},
SS: {
phoneCode: 211,
capitalCity: "Juba",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "SS",
flagEmoji: "\u{1F1F8}\u{1F1F8}",
name: "South Sudan",
currency: "South Sudanese Pound",
currencyCode: "SSP",
currencySymbol: "\xA3",
officialLanguage: "Arabic",
majorEthnicGroups: ["Dinka", "Nuer", "Shilluk"],
timezones: [
{
iana: "Africa/Juba",
gmtOffset: "+03:00"
}
]
},
SD: {
phoneCode: 249,
capitalCity: "Khartoum",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
},
{
name: "Egypt",
countryCode: "EG"
}
],
countryCode: "SD",
flagEmoji: "\u{1F1F8}\u{1F1E9}",
name: "Sudan",
currency: "Sudanese Pound",
currencyCode: "SDG",
currencySymbol: "\u062C.\u0633.",
officialLanguage: "Arabic",
majorEthnicGroups: ["Fur", "Nubian"],
timezones: [
{
iana: "Africa/Khartoum",
gmtOffset: "+02:00"
}
]
},
SZ: {
phoneCode: 268,
capitalCity: "Mbabane",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "SZ",
flagEmoji: "\u{1F1F8}\u{1F1FF}",
name: "Eswatini",
currency: "Swazi lilangeni",
currencyCode: "SZL",
currencySymbol: "E",
officialLanguage: "English",
majorEthnicGroups: ["Swazi", "Nguni"],
timezones: [
{
iana: "Africa/Mbabane",
gmtOffset: "+02:00"
}
]
},
TZ: {
phoneCode: 255,
capitalCity: "Dodoma",
colonialMaster: [
{
name: "Germany",
countryCode: "DE"
},
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "TZ",
flagEmoji: "\u{1F1F9}\u{1F1FF}",
name: "Tanzania",
currency: "Tanzanian shilling",
currencyCode: "TZS",
currencySymbol: "TSh",
officialLanguage: "Kiswahili or Swahili",
majorEthnicGroups: ["Sukuma", "Chaga", "Haya"],
timezones: [
{
iana: "Africa/Dar_es_Salaam",
gmtOffset: "+03:00"
}
]
},
TG: {
phoneCode: 228,
capitalCity: "Lom\xE9",
colonialMaster: [
{
name: "Germany",
countryCode: "DE"
},
{
name: "France",
countryCode: "FR"
},
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "TG",
flagEmoji: "\u{1F1F9}\u{1F1EC}",
name: "Togo",
currency: "West African CFA franc",
currencyCode: "XOF",
currencySymbol: "Fr",
officialLanguage: "French",
majorEthnicGroups: ["Ewe", "Kabye"],
timezones: [
{
iana: "Africa/Lome",
gmtOffset: "+00:00"
}
]
},
TN: {
phoneCode: 216,
capitalCity: "Tunis",
colonialMaster: [
{
name: "France",
countryCode: "FR"
}
],
countryCode: "TN",
flagEmoji: "\u{1F1F9}\u{1F1F3}",
name: "Tunisia",
currency: "Tunisian dinar",
currencyCode: "TND",
currencySymbol: "\u062F.\u062A",
officialLanguage: "Arabic",
majorEthnicGroups: ["Arabs", "Berbers"],
timezones: [
{
iana: "Africa/Tunis",
gmtOffset: "+01:00"
}
]
},
UG: {
phoneCode: 256,
capitalCity: "Kampala",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "UG",
flagEmoji: "\u{1F1FA}\u{1F1EC}",
name: "Uganda",
currency: "Ugandan shilling",
currencyCode: "UGX",
currencySymbol: "USh",
officialLanguage: "English",
majorEthnicGroups: ["Baganda", "Banyankore", "Basoga"],
timezones: [
{
iana: "Africa/Kampala",
gmtOffset: "+03:00"
}
]
},
ZM: {
phoneCode: 260,
capitalCity: "Lusaka",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "ZM",
flagEmoji: "\u{1F1FF}\u{1F1F2}",
name: "Zambia",
currency: "Zambian kwacha",
currencyCode: "ZMW",
currencySymbol: "ZK",
officialLanguage: "English",
majorEthnicGroups: ["Bemba", "Lozi", "Tonga"],
timezones: [
{
iana: "Africa/Lusaka",
gmtOffset: "+02:00"
}
]
},
ZW: {
phoneCode: 263,
capitalCity: "Harare",
colonialMaster: [
{
name: "United Kingdom",
countryCode: "GB"
}
],
countryCode: "ZW",
flagEmoji: "\u{1F1FF}\u{1F1FC}",
name: "Zimbabwe",
currency: "Zimbabwean Dollar",
currencyCode: "ZWL",
currencySymbol: "$",
officialLanguage: "English",
majorEthnicGroups: ["Ndebele", "Shona"],
timezones: [
{
iana: "Africa/Harare",
gmtOffset: "+02:00"
}
]
}
};
// import("./data/africa/tribes/**/*.json") in src/index.ts
var globImport_data_africa_tribes_json = __glob({
"./data/africa/tribes/AO.json": () => import("./AO-KTWONNYZ.mjs"),
"./data/africa/tribes/BF.json": () => import("./BF-O7TBSCCA.mjs"),
"./data/africa/tribes/BI.json": () => import("./BI-DLK4YMGO.mjs"),
"./data/africa/tribes/BJ.json": () => import("./BJ-PNML7KGU.mjs"),
"./data/africa/tribes/BW.json": () => import("./BW-CNU7L4NH.mjs"),
"./data/africa/tribes/CD.json": () => import("./CD-3L2NXQVL.mjs"),
"./data/africa/tribes/CF.json": () => import("./CF-ESX77N6V.mjs"),
"./data/africa/tribes/CG.json": () => import("./CG-VO3X7LDQ.mjs"),
"./data/africa/tribes/CI.json": () => import("./CI-GS6CFDT3.mjs"),
"./data/africa/tribes/CM.json": () => import("./CM-BTFLGGR5.mjs"),
"./data/africa/tribes/CV.json": () => import("./CV-UT67RQS3.mjs"),
"./data/africa/tribes/DJ.json": () => import("./DJ-ZMQOBOIG.mjs"),
"./data/africa/tribes/DZ.json": () => import("./DZ-LPE6ZB5C.mjs"),
"./data/africa/tribes/EG.json": () => import("./EG-SP5CNNNV.mjs"),
"./data/africa/tribes/ER.json": () => import("./ER-UP22LPAH.mjs"),
"./data/africa/tribes/ET.json": () => import("./ET-OBCUOADT.mjs"),
"./data/africa/tribes/GA.json": () => import("./GA-MAVC3U4Q.mjs"),
"./data/africa/tribes/GH.json": () => import("./GH-6ZWTNM6E.mjs"),
"./data/africa/tribes/GM.json": () => import("./GM-3TYRGF43.mjs"),
"./data/africa/tribes/GN.json": () => import("./GN-J26OKD3H.mjs"),
"./data/africa/tribes/GQ.json": () => import("./GQ-TVJPRBZ4.mjs"),
"./data/africa/tribes/GW.json": () => import("./GW-BXXBSDB3.mjs"),
"./data/africa/tribes/KE.json": () => import("./KE-FR37ZDM6.mjs"),
"./data/africa/tribes/KM.json": () => import("./KM-2T7XZQOW.mjs"),
"./data/africa/tribes/LR.json": () => import("./LR-SDYDWBD2.mjs"),
"./data/africa/tribes/LS.json": () => import("./LS-WW7EJFSS.mjs"),
"./data/africa/tribes/LY.json": () => import("./LY-GLNCPO5D.mjs"),
"./data/africa/tribes/MA.json": () => import("./MA-4JTQR5LC.mjs"),
"./data/africa/tribes/MG.json": () => import("./MG-V4B3MJ27.mjs"),
"./data/africa/tribes/ML.json": () => import("./ML-5UC2UZFE.mjs"),
"./data/africa/tribes/MR.json": () => import("./MR-V7C27OIX.mjs"),
"./data/africa/tribes/MU.json": () => import("./MU-2QTJWWOZ.mjs"),
"./data/africa/tribes/MW.json": () => import("./MW-QHGL2IKS.mjs"),
"./data/africa/tribes/MZ.json": () => import("./MZ-5UZ67NUU.mjs"),
"./data/africa/tribes/NA.json": () => import("./NA-5VDTGOMK.mjs"),
"./data/africa/tribes/NE.json": () => import("./NE-ZOWNVUFW.mjs"),
"./data/africa/tribes/NG.json": () => import("./NG-RETX6WJ4.mjs"),
"./data/africa/tribes/RW.json": () => import("./RW-GQU5ZEII.mjs"),
"./data/africa/tribes/SC.json": () => import("./SC-SY5UMMU2.mjs"),
"./data/africa/tribes/SD.json": () => import("./SD-GZVFH7EN.mjs"),
"./data/africa/tribes/SL.json": () => import("./SL-G6OQ2OKF.mjs"),
"./data/africa/tribes/SN.json": () => import("./SN-KDIN2VHE.mjs"),
"./data/africa/tribes/SO.json": () => import("./SO-OYCQEJXC.mjs"),
"./data/africa/tribes/SS.json": () => import("./SS-VC4OP4LH.mjs"),
"./data/africa/tribes/ST.json": () => import("./ST-W5CRCMYC.mjs"),
"./data/africa/tribes/SZ.json": () => import("./SZ-WPJM53Q7.mjs"),
"./data/africa/tribes/TD.json": () => import("./TD-LC3R4NYM.mjs"),
"./data/africa/tribes/TG.json": () => import("./TG-4GRO64UZ.mjs"),
"./data/africa/tribes/TN.json": () => import("./TN-KWXKNLDT.mjs"),
"./data/africa/tribes/TZ.json": () => import("./TZ-MR6WGF2A.mjs"),
"./data/africa/tribes/UG.json": () => import("./UG-UNMXRIJ5.mjs"),
"./data/africa/tribes/ZA.json": () => import("./ZA-RNKH3KHE.mjs"),
"./data/africa/tribes/ZM.json": () => import("./ZM-KVDEVKJK.mjs"),
"./data/africa/tribes/ZW.json": () => import("./ZW-EFGG3D6Y.mjs")
});
// src/index.ts
async function getTribeData(countryCode) {
try {
const jsonTribesData = await globImport_data_africa_tribes_json(`./data/africa/tribes/${countryCode}.json`);
return Object.values(jsonTribesData[countryCode] || {});
} catch (err) {
console.warn(`\u26A0\uFE0F No tribe data found for ${countryCode}:`, err.message);
return [];
}
}
async function getCountries() {
const countries = Object.keys(countries_default).map((item) => ({
...countries_default[item],
countryCode: item
}));
return countries;
}
async function getCountriesAndStates() {
const countries = await getCountries();
const embeddedData = await Promise.all(
countries.map(async (item) => ({
...item,
states: await getTribeData(item.countryCode)
}))
);
return embeddedData;
}
async function getCountry(countryCode) {
const countries = await getCountries();
const selectCountry = countries.find(
(item) => item.countryCode === countryCode
);
if (selectCountry) return selectCountry;
return {};
}
async function getCountryAndState(countryCode) {
const country = await getCountry(countryCode);
const tribes = await getTribeData(countryCode);
if (Object.keys(country).length > 0) {
return {
...country,
states: tribes
};
}
return {};
}
async function getCountryStates(countryCode) {
const tribes = await getTribeData(countryCode);
return tribes;
}
export {
getCountries,
getCountriesAndStates,
getCountry,
getCountryAndState,
getCountryStates
};