libgn
Version:
Manipulate geographical and administrative data about Guinea.
29 lines • 16 kB
JavaScript
/**
* @package libgn
* @version 0.0.2
*
* @license MIT
*
* @copyright 2025 Lucien Loua
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* @see : https://lucien-loua.github.io/libgn
*/
var l={name:"Bok\xE9",code:"BK",population:1083147,area:31186,prefectures:[{name:"Bok\xE9",region:"Bok\xE9",subPrefectures:[{name:"Bok\xE9 Centre"},{name:"Kamsar"},{name:"Kolaboui"},{name:"Sangar\xE9di"},{name:"Tan\xE8n\xE8"}]},{name:"Boffa",region:"Bok\xE9",subPrefectures:[{name:"Boffa Centre"},{name:"Dabiss"},{name:"Koba"},{name:"Lisso"},{name:"Tamita"},{name:"Tougnifili"}]},{name:"Fria",region:"Bok\xE9",subPrefectures:[{name:"Fria Centre"},{name:"Banguingni"},{name:"Tormelin"}]},{name:"Gaoual",region:"Bok\xE9",subPrefectures:[{name:"Gaoual Centre"},{name:"Foulamory"},{name:"Kakony"},{name:"Koumbia"},{name:"Malanta"},{name:"Wendou M\u2019Bour"}]},{name:"Koundara",region:"Bok\xE9",subPrefectures:[{name:"Koundara Centre"},{name:"Guingan"},{name:"Kamaby"},{name:"Sambailo"},{name:"Sareboido"},{name:"Termesse"},{name:"Youkounkoun"}]}]};var f={name:"Conakry",code:"CK",population:1667864,area:450,prefectures:[{name:"Conakry",region:"Conakry",subPrefectures:[{name:"Dixinn",neighborhoods:["Miniere Cit\xE9 Secteur 2","Cameroun Secteur 1","Camayenne Secteur 4","Dixinn Mosqu\xE9e Secteur 1","Dixinn Port Secteur 7","Dixinn Centre I Secteur 5a","Dixinn Gare Rail Secteur 4","K\xE9nien Secteur 1","Dixinn Gare Secteur 3","Dixinn Centre II Secteur 7","Belle Vue Ecole Secteur 4","Hafia I Secteur 5","Belle Vue March\xE9 I Secteur 1a","Hafia Chateau Eau Secteur 3","Hafia Miniere I Secteur 2a","Hafia III Secteur 2","Belle Vue March\xE9 I Secteur 3a","Hafia Mosqu\xE9e Secteur 2","Hafia II Secteur 4","Cameroun Secteur 6","Cameroun Secteur 2","Cameroun Secteur 3","Cameroun Secteur 4","Cameroun Secteur 5","Camayenne Secteur 1","Camayenne Secteur 2","Camayenne Secteur 3","Landr\xE9ah Secteur 8","Landr\xE9ah Secteur 3","Landr\xE9ah Secteur 7","Landr\xE9ah Secteur 5","Landr\xE9ah Secteur 4","Landr\xE9ah Secteur 2","Landr\xE9ah Secteur 6","Landr\xE9ah Secteur 1","Dixinn Mosqu\xE9e Secteur 4","Dixinn Mosqu\xE9e Secteur 3","Dixinn Mosqu\xE9e Secteur 2","Dixinn Port Secteur 4","Dixinn Port Secteur 1","Dixinn Port Secteur 2","Dixinn Port Secteur 3","Dixinn Port Secteur 5","Dixinn Port Secteur 6","Dixinn Centre I Secteur 1","Dixinn Centre I Secteur 3","Dixinn Centre I Secteur 6","Dixinn Centre I Secteur 4","Dixinn Centre II Secteur 1","Dixinn Centre II Secteur 2","Dixinn Centre II Secteur 3","Dixinn Centre II Secteur 4","Dixinn Centre II Secteur 5","Dixinn Centre II Secteur 6","Dixinn Gare Secteur 1","Dixinn Gare Secteur 2","Dixinn Gare Secteur 5","Dixinn Gare Secteur 4","Dixinn Gare Rail Secteur 1","Dixinn Gare Rail Secteur 2","Dixinn Gare Rail Secteur 3","Belle Vue Ecole Secteur 2","Belle Vue Ecole Secteur 1","Belle Vue Ecole Secteur 7","Belle Vue Ecole Secteur 5","Belle Vue Ecole Secteur 6","Belle Vue Ecole Secteur 3","K\xE9nien Secteur 3","K\xE9nien Secteur 4","K\xE9nien Secteur 2","K\xE9nien Secteur 5","K\xE9nien Secteur 6a","Hafia Chateau Eau Secteur 2","Hafia Chateau Eau Secteur 4","Hafia I Secteur 3","Hafia II Secteur 1","Hafia II Secteur 2","Hafia I Secteur 2a","Hafia I Secteur 1","Belle Vue March\xE9 I Secteur 3b","Belle Vue March\xE9 I Secteur 2b","Belle Vue March\xE9 I Secteur 5a","Belle Vue March\xE9 I Secteur 2a","Belle Vue March\xE9 I Secteur 4b","Belle Vue March\xE9 I Secteur 1b","Hafia I Secteur 6","Hafia I Secteur 4","Hafia II Secteur 6","Hafia II Secteur 5","Hafia II Secteur 3","Hafia Mosqu\xE9e Secteur 4","Hafia Mosqu\xE9e Secteur 1","Miniere Cit\xE9 Secteur 3","Miniere Cit\xE9 Secteur 4","Miniere Cit\xE9","Miniere Cit\xE9 Secteur 1","Hafia III Secteur 6","Hafia III Secteur 4","Hafia III Secteur 1","Hafia III Secteur 3","Hafia III Secteur 5","Hafia Miniere II Secteur 3","Hafia Miniere II Secteur 1a","Hafia Miniere II Secteur 2","Hafia Miniere I Secteur 2b","Hafia Miniere I Secteur 3b","Hafia Miniere I Secteur 3a","Belle Vue March\xE9 I Secteur 5b","Hafia Chateau Eau Secteur 5","Hafia Chateau Eau Secteur 1","Hafia Mosqu\xE9e Secteur 3","Hafia Miniere II Secteur 1b","Hafia Miniere II Secteur 4","Hafia Miniere I Secteur 4","Hafia Miniere I Secteur 5","Belle Vue March\xE9 I Secteur 4a","Hafia I Secteur 2b","K\xE9nien Secteur 6b","Dixinn Centre I Secteur 5b"]},{name:"Kaloum",neighborhoods:["KASSA","SANS FIL","BOULBINET","ALMAMYA 1","SANDERVALIA","TEMENETAYE","CORONTHIE 1","KOULEWONDY","ALMAMYA 2","MANQUEPAS","CORONTHIE 2","TOMBO"]},{name:"Matam",neighborhoods:["MATAM","LANSEBOUNDJI","COLEAH DOMINO","COLEAH CITE","COLEAH IMPRIMERIE","MAFANCO CENTRE","MAFANCO","MADINA CENTRE","MARCHE","MADINA SIG","MADINA MOSQUEE","MADINA ECOLE","BOUSSOURA","TOUGUIWONDY","MATAM LIDO","MATAM CENTRE","CARRIERE CENTRE b","HERAMOKONON PERM.","HERAMAKONON MOSQUEE","CARRIERE CITE","BONFI MARCHE","BONFI","BONFI ROUTIERE","COLEAH CENTRE","CARRIERE CENTRE a"]},{name:"Matoto",neighborhoods:["Dabompa","Dabompa Plateau","Dabondy I","Dabondy III","Cit\xE9 de l'air","Gbessia Cit\xE9 II","Gbessia Ecole","Dar Es Salam","Gbessia Cit\xE9 III","Dabondy Rails","Dabondy Ecole","Dabondy II","Gbessia Centre","Gbessia port I","Gbessia Port II","Yimbaya Tanerie","Matoto March\xE9","Matoto Khabitaya","Matoto Centre","Simbaya I","Simbaya Ecole","Sangoyah March\xE9","Sangoyah Mosqu\xE9e","Enta March\xE9","Kissosso Plateau","Behanzin","Tanene March\xE9","Tanene Mosqu\xE9e","Yimbaya Port","Yimbaya Ecole","Lansanaya","Tombolia","Tombolia Plateau","Dabompa Village","Kissosso","Yimbaya Permanence","Gbessia Cit\xE9 I","Simbaya II","Camp Alpha Yaya"]},{name:"Ratoma",neighborhoods:["Wareya","Nongo a","Koloma 1","Koloma 2","Kaporo-Rails","Nasroullaye","Simbaya Gare","Soloprimo","Bantounka 1","Hamdallaye 2","Nongo b","Sonfonia Centre 1","Yattaya Fossid\xE9","Yattaya Centre","Soumabossiya","Wanindara1","Wanindara2","Kip\xE9","Kaporo Centre","Nongo Taady","Taouyah","Hamdallaye Mosqu\xE9e","Ratoma Dispensaire","Ratoma Centre","Hamdallaye I","Bantounka 2","Yembeya","Sofonia Gare 2","Sonfonia Centre 2","Sonfonia Gare 1","Wanindara 3","Matoto","Lambanyi","Dar Es Salam 2","Dar Es Salam 1","Hamdallaye 1","Kobaya"]}]}]};var S={name:"Faranah",code:"FR",population:942733,area:35581,prefectures:[{name:"Faranah",region:"Faranah",subPrefectures:[{name:"Faranah Centre"},{name:"Banian"},{name:"Gnal\xE8n-Mou"},{name:"Marela"},{name:"Passayah"},{name:"Sand\xE9niayah"},{name:"Songoyah"},{name:"Tindo"}]},{name:"Dabola",region:"Faranah",subPrefectures:[{name:"Dabola Centre"},{name:"Arfamoussaya"},{name:"Banko"},{name:"Bissikrima"},{name:"Dogomet"},{name:"Kindoye"},{name:"N\u2019Dama"}]},{name:"Dinguiraye",region:"Faranah",subPrefectures:[{name:"Dinguiraye Centre"},{name:"Dialakoro"},{name:"Gagnakaly"},{name:"Kalinko"}]},{name:"Kissidougou",region:"Faranah",subPrefectures:[{name:"Kissidougou Centre"},{name:"Albadaria"},{name:"Bardou"},{name:"Firawa"},{name:"Gbangbadou"},{name:"Guendembou"},{name:"Kanfara"},{name:"Koundya"},{name:"Manfran"},{name:"Yende Millimou"}]}]};var b={name:"Kankan",code:"KK",population:1986329,area:72145,prefectures:[{name:"Kankan",region:"Kankan",subPrefectures:[{name:"Kankan Centre"},{name:"Bat\xE9-Nafadji"},{name:"Boula"},{name:"Karifamoriyah"},{name:"Missamana"},{name:"Morodou"},{name:"Sabadou-Baranama"},{name:"Tokounou"}]},{name:"K\xE9rouan\xE9",region:"Kankan",subPrefectures:[{name:"K\xE9rouan\xE9 Centre"},{name:"Banankoro"},{name:"Damaro"},{name:"Linko"},{name:"Sibiribaro"}]},{name:"Kouroussa",region:"Kankan",subPrefectures:[{name:"Kouroussa Centre"},{name:"Babila"},{name:"Balato"},{name:"Banf\xE8l\xE8"},{name:"Cissela"},{name:"Douako"},{name:"Kiniero"},{name:"Koumana"}]},{name:"Mandiana",region:"Kankan",subPrefectures:[{name:"Mandiana Centre"},{name:"Balandougou"},{name:"Dialakoro"},{name:"Faralako"},{name:"Kantoumanina"},{name:"Kini\xE9ran"},{name:"Konindou"},{name:"Morodou"},{name:"Niantania"},{name:"Saladou"}]},{name:"Siguiri",region:"Kankan",subPrefectures:[{name:"Siguiri Centre"},{name:"Doko"},{name:"Franwalia"},{name:"Kintinian"},{name:"Mal\xE9a"},{name:"Naboun"},{name:"Niagassola"},{name:"Norassoba"},{name:"Siguirini"}]}]};var I={name:"Kindia",code:"KD",population:1561374,area:28873,prefectures:[{name:"Kindia",region:"Kindia",subPrefectures:[{name:"Kindia Centre"},{name:"Damakania"},{name:"D\xE9b\xE9l\xE9"},{name:"Friguiagb\xE9"},{name:"Mambia"},{name:"Molota"},{name:"Sougu\xE9ta"}]},{name:"Coyah",region:"Kindia",subPrefectures:[{name:"Coyah Centre"},{name:"Kouriah"},{name:"Maf\xE9rinya"},{name:"Wonkifong"}]},{name:"Dubr\xE9ka",region:"Kindia",subPrefectures:[{name:"Dubr\xE9ka Centre"},{name:"Badi"},{name:"Falessad\xE9"},{name:"Khorira"},{name:"Ouassou"},{name:"Tan\xE9n\xE9"},{name:"Tondon"}]},{name:"For\xE9cariah",region:"Kindia",subPrefectures:[{name:"For\xE9cariah Centre"},{name:"Alassoyah"},{name:"Benty"},{name:"Farmoreah"},{name:"Kallia"},{name:"Kaback"},{name:"Maferinyah"},{name:"Moussayah"},{name:"Sikhourou"}]},{name:"T\xE9lim\xE9l\xE9",region:"Kindia",subPrefectures:[{name:"T\xE9lim\xE9l\xE9 Centre"},{name:"Gagna"},{name:"Kollet"},{name:"Konsankoro"},{name:"Santou"},{name:"Tarihoye"},{name:"Thionthian"}]}]};var d={name:"Lab\xE9",code:"LB",population:995717,area:22869,prefectures:[{name:"Lab\xE9",region:"Lab\xE9",subPrefectures:[{name:"Lab\xE9 Centre"},{name:"Daralab\xE9"},{name:"Diari"},{name:"Garamb\xE9"},{name:"Hafia"},{name:"Kaalan"},{name:"Kouramangui"},{name:"Popodara"},{name:"Tountouroun"}]},{name:"Koubia",region:"Lab\xE9",subPrefectures:[{name:"Koubia Centre"},{name:"Fafaya"},{name:"Gadha-Woundou"},{name:"Matakaou"},{name:"Pilimini"}]},{name:"L\xE9louma",region:"Lab\xE9",subPrefectures:[{name:"L\xE9louma Centre"},{name:"Lafou"},{name:"Parawol"},{name:"Sagal\xE9"}]},{name:"Mali",region:"Lab\xE9",subPrefectures:[{name:"Mali Centre"},{name:"Balaki"},{name:"Donghol Sigon"},{name:"Fougoumba"},{name:"Hidayatou"},{name:"Madina Wora"},{name:"Niagara"},{name:"Telire"},{name:"Yembering"}]},{name:"Tougu\xE9",region:"Lab\xE9",subPrefectures:[{name:"Tougu\xE9 Centre"},{name:"Fatako"},{name:"Kansangui"},{name:"Koin"},{name:"Kolangui"},{name:"Konah"},{name:"Tangali"}]}]};var p={name:"Mamou",code:"MM",population:732117,area:17074,prefectures:[{name:"Mamou",region:"Mamou",subPrefectures:[{name:"Mamou Centre"},{name:"Bendemou"},{name:"Dounet"},{name:"Gongoret"},{name:"Kegneko"},{name:"Konkour\xE9"},{name:"Oure-Kaba"},{name:"Por\xE9daka"},{name:"Saramoussaya"},{name:"T\xE9gu\xE9r\xE9ya"}]},{name:"Dalaba",region:"Mamou",subPrefectures:[{name:"Dalaba Centre"},{name:"Bodi\xE9"},{name:"Ditinn"},{name:"Kaalan"},{name:"Mitty"}]},{name:"Pita",region:"Mamou",subPrefectures:[{name:"Pita Centre"},{name:"Bantignel"},{name:"Dongol Touma"},{name:"Gongore"},{name:"Ley Miro"},{name:"Sangareah"},{name:"Timbo"}]}]};var M={name:"N'Z\xE9r\xE9kor\xE9",code:"NZ",population:1663514,area:37926,prefectures:[{name:"N'Z\xE9r\xE9kor\xE9",region:"N'Z\xE9r\xE9kor\xE9",subPrefectures:[{name:"N'Z\xE9r\xE9kor\xE9 Centre"},{name:"Bounouma"},{name:"Gou\xE9ch\xE9ma"},{name:"Koul\xE9"},{name:"Pal\xE9"},{name:"Samo\xE9"},{name:"Soulouta"}]},{name:"Beyla",region:"N'Z\xE9r\xE9kor\xE9",subPrefectures:[{name:"Beyla Centre"},{name:"Boola"},{name:"Dian\xE9"},{name:"Gbessoba"},{name:"Gu\xE9asso"},{name:"Karagoua"},{name:"Karala"},{name:"Kokota"},{name:"Massadou"},{name:"Moussadou"},{name:"Sinko"},{name:"Vavoua"}]},{name:"Gueck\xE9dou",region:"N'Z\xE9r\xE9kor\xE9",subPrefectures:[{name:"Gueck\xE9dou Centre"},{name:"Fangamadou"},{name:"Gu\xE9ndembou"},{name:"Kassadou"},{name:"Koundou"},{name:"Nongoa"},{name:"Ouend\xE9 K\xE9n\xE9ma"},{name:"Tekoulo"}]},{name:"Lola",region:"N'Z\xE9r\xE9kor\xE9",subPrefectures:[{name:"Lola Centre"},{name:"Bossou"},{name:"Gama"},{name:"N'Zoo"},{name:"Tounkarata"}]},{name:"Macenta",region:"N'Z\xE9r\xE9kor\xE9",subPrefectures:[{name:"Macenta Centre"},{name:"Balizia"},{name:"Binikala"},{name:"Daro"},{name:"Fassankoni"},{name:"Koyamah"},{name:"Or\xE9mai"},{name:"Panziazou"},{name:"S\xE9r\xE9dou"},{name:"Sengb\xE9dou"},{name:"Watanka"}]},{name:"Yomou",region:"N'Z\xE9r\xE9kor\xE9",subPrefectures:[{name:"Yomou Centre"},{name:"Bani\xE9"},{name:"Bignamou"},{name:"Bow\xE9"},{name:"Di\xE9ck\xE9"}]}]};var n={name:"Guin\xE9e",capital:"Conakry",officialLanguage:"Fran\xE7ais",nationalLanguages:["Pular","Maninka","Susu","Konyanka Maninka","Kissi","Kpelle","Kuranko","Toma","Jahnka","Kono","Yalunka","Manya","Mano","Landoma","Lele","Baga","Mixifore","Wamey","Soninke","Badyara","Bassari","Nalu"],currency:{name:"Franc guin\xE9en",code:"GNF",symbol:"FG"},motto:"Travail, Justice, Solidarit\xE9",flag:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5MDAiIGhlaWdodD0iNjAwIj48cGF0aCBmaWxsPSIjY2UxMTI2IiBkPSJNMCAwaDkwMHY2MDBIMHoiLz48cGF0aCBmaWxsPSIjZmNkMTE2IiBkPSJNMzAwIDBoNjAwdjYwMEgzMDB6Ii8+PHBhdGggZmlsbD0iIzAwOTQ2MCIgZD0iTTYwMCAwaDMwMHY2MDBINjAweiIvPjwvc3ZnPg==",isoCode:"GN",callingCode:224,population:13132795,area:245857,regions:[l,f,S,b,I,d,p,M]};var t=class extends Error{constructor(a){super(`Region '${a}' not found. Please check the spelling.`),this.name="RegionReferenceError";}},u=class extends Error{constructor(a){super(`Prefecture '${a}' not found. Please check the spelling.`),this.name="PrefectureReferenceError";}},o=class extends Error{constructor(a){super(`Sub-prefecture '${a}' not found. Please check the spelling.`),this.name="SubPrefectureReferenceError";}};var i=e=>e?.toLowerCase().trim()||"";function s(e){let a=n.regions.find(r=>i(r.name)===i(e));if(!a)throw new t(e);return a}function g(e){let a=i(e);for(let r of n.regions){let m=r.prefectures.find(c=>i(c.name)===a);if(m)return m}throw new u(e)}function C(e){let a=i(e);for(let r of n.regions)for(let m of r.prefectures){let c=m.subPrefectures.find(h=>i(h.name)===a);if(c)return c}throw new o(e)}function y(){let e=n.regions.find(a=>a.name==="Conakry");if(!e)throw new Error("Region 'Conakry' not found");return e.prefectures.flatMap(a=>a.subPrefectures.flatMap(r=>r.neighborhoods||[])||[])}var P={get allRegions(){return n.regions},get allRegionNames(){return n.regions.map(e=>e.name)},get allRegionCodes(){return n.regions.map(e=>e.code)},getPrefecturesByRegion(e){return s(e).prefectures.map(r=>r.name)},getRegionPopulation(e){let{population:a}=s(e);return a},getRegionArea(e){let{area:a}=s(e);return a},get allPrefectureNames(){return n.regions.flatMap(e=>e.prefectures.map(a=>a.name))},getSubPrefecturesByPrefecture(e){return g(e).subPrefectures.map(r=>r.name)},getRegionOfPrefecture(e){return g(e).region},get capital(){return n.capital},get languages(){return {official:n.officialLanguage,national:n.nationalLanguages}},get basicInfo(){return {name:n.name,capital:n.capital,motto:n.motto,flag:n.flag,isoCode:n.isoCode,callingCode:n.callingCode,population:n.population,area:n.area,currency:n.currency}},getNeighborhoodsBySubPrefecture(e){let a=C(e);if(!a.neighborhoods)throw new o(e);return a.neighborhoods},get allNeighborhoods(){return y()}},V=P;export{u as PrefectureReferenceError,t as RegionReferenceError,o as SubPrefectureReferenceError,V as default};