@whiteslove/parsing-lexicon 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +137 -137
- package/index.d.ts +374 -374
- package/package.json +77 -75
- package/src/central-asia-locations.js +211 -211
- package/src/central-asia.js +233 -233
- package/src/contact.d.ts +44 -44
- package/src/contact.js +159 -159
- package/src/countries.js +175 -175
- package/src/country-context.d.ts +10 -10
- package/src/country-context.js +22 -22
- package/src/currency.d.ts +14 -14
- package/src/currency.js +66 -66
- package/src/geo.js +169 -169
- package/src/geography-central-asia.js +42 -42
- package/src/geography-detection.d.ts +14 -14
- package/src/geography-detection.js +64 -64
- package/src/geography-display.d.ts +13 -13
- package/src/geography-display.js +113 -113
- package/src/geography.js +210 -210
- package/src/hiring-advanced.js +147 -147
- package/src/hiring-candidate-fields.d.ts +9 -9
- package/src/hiring-candidate-fields.js +92 -92
- package/src/hiring-context.d.ts +64 -64
- package/src/hiring-context.js +412 -412
- package/src/hiring-language-extensions.d.ts +19 -19
- package/src/hiring-language-extensions.js +139 -139
- package/src/hiring-languages.js +135 -135
- package/src/hiring-location-fields.d.ts +3 -3
- package/src/hiring-location-fields.js +53 -53
- package/src/hiring-professions-ro.js +191 -191
- package/src/hiring-professions.js +437 -437
- package/src/hiring-requirements.d.ts +16 -16
- package/src/hiring-requirements.js +170 -170
- package/src/hiring-salary-context.d.ts +27 -27
- package/src/hiring-salary-context.js +76 -76
- package/src/hiring-semantics.d.ts +29 -29
- package/src/hiring-semantics.js +218 -218
- package/src/hiring-skills.d.ts +21 -21
- package/src/hiring-skills.js +315 -315
- package/src/hiring-source-aliases.d.ts +32 -32
- package/src/hiring-source-aliases.js +185 -185
- package/src/hiring-source-semantics.d.ts +31 -31
- package/src/hiring-source-semantics.js +293 -293
- package/src/hiring-temporal.d.ts +15 -15
- package/src/hiring-temporal.js +67 -67
- package/src/hiring-vacancy-fields.d.ts +5 -5
- package/src/hiring-vacancy-fields.js +23 -23
- package/src/hiring-work-semantics.d.ts +34 -34
- package/src/hiring-work-semantics.js +72 -72
- package/src/hiring.js +180 -180
- package/src/housing-address.d.ts +18 -18
- package/src/housing-address.js +217 -210
- package/src/housing-commercial.d.ts +1 -0
- package/src/housing-commercial.js +9 -0
- package/src/housing-context.d.ts +36 -36
- package/src/housing-context.js +183 -183
- package/src/housing-features.js +30 -30
- package/src/housing-intent.d.ts +9 -9
- package/src/housing-intent.js +132 -132
- package/src/housing-listing-fields.js +131 -131
- package/src/housing-money.d.ts +7 -7
- package/src/housing-money.js +102 -102
- package/src/housing-source-aliases.d.ts +8 -8
- package/src/housing-source-aliases.js +51 -51
- package/src/housing-structured.d.ts +55 -55
- package/src/housing-structured.js +219 -219
- package/src/housing.js +200 -200
- package/src/index.js +45 -44
- package/src/kz-location-extensions.js +307 -307
- package/src/landmarks.js +21 -21
- package/src/lexicon-core.js +58 -58
- package/src/location-merge.js +106 -106
- package/src/locations.js +456 -456
- package/src/money-core.d.ts +10 -10
- package/src/money-core.js +81 -81
- package/src/money-lexicon.d.ts +5 -5
- package/src/money-lexicon.js +79 -79
- package/src/money.js +154 -154
- package/src/normalization.js +384 -384
- package/src/odesa-metropolitan.js +144 -144
- package/src/romania-geography.js +47 -47
- package/src/tashkent-colloquial.js +80 -72
- package/src/tashkent-housing-geography.d.ts +38 -38
- package/src/tashkent-housing-geography.js +211 -211
- package/src/tashkent-pois.js +215 -215
- package/src/tashkent-residential-complexes.js +272 -272
- package/src/ua-location-extensions-major.js +118 -118
- package/src/ua-location-extensions-metro.js +9 -9
- package/src/ua-location-extensions-regional.js +246 -246
- package/src/ua-secondary-cities.d.ts +2 -2
- package/src/ua-secondary-cities.js +57 -57
- package/src/ukraine.js +75 -75
- package/src/uz-location-extensions.js +259 -259
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const UA_SECONDARY_CITY_NAMES: ReadonlyArray<readonly string[]>;
|
|
2
|
-
export const UA_SECONDARY_LOCATION_EXTENSIONS: Readonly<Record<string, Readonly<Record<string, readonly unknown[]>>>>;
|
|
1
|
+
export const UA_SECONDARY_CITY_NAMES: ReadonlyArray<readonly string[]>;
|
|
2
|
+
export const UA_SECONDARY_LOCATION_EXTENSIONS: Readonly<Record<string, Readonly<Record<string, readonly unknown[]>>>>;
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import { locationEntries } from './location-merge.js';
|
|
2
|
-
|
|
3
|
-
const city = ({ districts = [], microdistricts = [], residentialComplexes = [], landmarks = [], metro = [] }) => Object.freeze({
|
|
4
|
-
...(districts.length ? { districts: locationEntries(districts) } : {}),
|
|
5
|
-
...(microdistricts.length ? { microdistricts: locationEntries(microdistricts) } : {}),
|
|
6
|
-
...(residentialComplexes.length ? { residentialComplexes: locationEntries(residentialComplexes) } : {}),
|
|
7
|
-
...(landmarks.length ? { landmarks: locationEntries(landmarks) } : {}),
|
|
8
|
-
...(metro.length ? { metro: locationEntries(metro) } : {}),
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
export const UA_SECONDARY_CITY_NAMES = Object.freeze([
|
|
12
|
-
['Fastiv', 'Фастів', 'Фастов'], ['Obukhiv', 'Обухів', 'Обухов'], ['Vasylkiv', 'Васильків', 'Васильков'], ['Boyarka', 'Боярка'], ['Ukrainka', 'Українка', 'Украинка'], ['Pereiaslav', 'Переяслав', 'Переяслав-Хмельницький', 'Переяслав-Хмельницкий'], ['Yahotyn', 'Яготин'], ['Slavutych', 'Славутич'],
|
|
13
|
-
['Chuhuiv', 'Чугуїв', 'Чугуев'], ['Lozova', 'Лозова', 'Лозовая'], ['Izium', 'Ізюм', 'Изюм'], ['Kupiansk', 'Куп’янськ', 'Купянск'], ['Balakliia', 'Балаклія', 'Балаклея'], ['Merefa', 'Мерефа'], ['Liubotyn', 'Люботин'], ['Zlatopil', 'Златопіль', 'Златополь', 'Первомайський', 'Первомайский'],
|
|
14
|
-
['Izmail', 'Ізмаїл', 'Измаил'], ['Chornomorsk', 'Чорноморськ', 'Черноморск', 'Іллічівськ', 'Ильичевск'], ['Pivdenne', 'Південне', 'Южне', 'Южный'], ['Bilhorod-Dnistrovskyi', 'Білгород-Дністровський', 'Белгород-Днестровский', 'Аккерман'], ['Podilsk', 'Подільськ', 'Подольск', 'Котовськ', 'Котовск'], ['Balta', 'Балта'], ['Reni', 'Рені', 'Рени'], ['Kiliia', 'Кілія', 'Килия'], ['Bolhrad', 'Болград'], ['Artsyz', 'Арциз'], ['Tatarbunary', 'Татарбунари', 'Татарбунары'], ['Berezivka', 'Березівка', 'Березовка'],
|
|
15
|
-
['Samar', 'Самар', 'Новомосковськ', 'Новомосковск'], ['Zhovti Vody', 'Жовті Води', 'Жёлтые Воды', 'Желтые Воды'], ['Marhanets', 'Марганець', 'Марганец'], ['Pokrov', 'Покров', 'Орджонікідзе', 'Орджоникидзе'], ['Synelnykove', 'Синельникове', 'Синельниково'], ['Ternivka', 'Тернівка', 'Терновка'], ['Pershotravensk', 'Першотравенськ', 'Першотравенск'], ['Vilnohirsk', 'Вільногірськ', 'Вольногорск'],
|
|
16
|
-
['Sambir', 'Самбір', 'Самбор'], ['Truskavets', 'Трускавець', 'Трускавец'], ['Boryslav', 'Борислав'], ['Sheptytskyi', 'Шептицький', 'Шептицкий', 'Червоноград'], ['Novoiavorivsk', 'Новояворівськ', 'Новояворовск'], ['Stebnyk', 'Стебник'], ['Zhovkva', 'Жовква', 'Жолква'], ['Zolochiv', 'Золочів', 'Золочев'], ['Horodok', 'Городок'], ['Brody', 'Броди', 'Броды'],
|
|
17
|
-
['Khust', 'Хуст'], ['Berehove', 'Берегове', 'Берегово'], ['Vynohradiv', 'Виноградів', 'Виноградов'], ['Tiachiv', 'Тячів', 'Тячев'], ['Rakhiv', 'Рахів', 'Рахов'], ['Chop', 'Чоп'], ['Svaliava', 'Свалява'], ['Irshava', 'Іршава', 'Иршава'],
|
|
18
|
-
['Yaremche', 'Яремче'], ['Nadvirna', 'Надвірна', 'Надворная'], ['Dolyna', 'Долина'], ['Bolekhiv', 'Болехів', 'Болехов'], ['Kosiv', 'Косів', 'Косов'], ['Sniatyn', 'Снятин'], ['Tlumach', 'Тлумач'],
|
|
19
|
-
['Chortkiv', 'Чортків', 'Чортков'], ['Kremenets', 'Кременець', 'Кременец'], ['Berezhany', 'Бережани', 'Бережаны'], ['Zbarazh', 'Збараж'], ['Buchach', 'Бучач'], ['Terebovlia', 'Теребовля'],
|
|
20
|
-
['Kovel', 'Ковель'], ['Novovolynsk', 'Нововолинськ', 'Нововолынск'], ['Volodymyr', 'Володимир', 'Владимир-Волынский'], ['Kivertsi', 'Ківерці', 'Киверцы'], ['Rozhyshche', 'Рожище'],
|
|
21
|
-
['Dubno', 'Дубно'], ['Varash', 'Вараш', 'Кузнецовськ', 'Кузнецовск'], ['Ostroh', 'Острог'], ['Kostopil', 'Костопіль', 'Костополь'], ['Sarny', 'Сарни', 'Сарны'], ['Zdolbuniv', 'Здолбунів', 'Здолбунов'], ['Berezne', 'Березне', 'Березно'],
|
|
22
|
-
['Berdychiv', 'Бердичів', 'Бердичев'], ['Korosten', 'Коростень'], ['Zviahel', 'Звягель', 'Новоград-Волинський', 'Новоград-Волынский'], ['Malyn', 'Малин'], ['Korostyshiv', 'Коростишів', 'Коростышев'],
|
|
23
|
-
['Zhmerynka', 'Жмеринка'], ['Mohyliv-Podilskyi', 'Могилів-Подільський', 'Могилев-Подольский'], ['Khmilnyk', 'Хмільник', 'Хмельник'], ['Haisyn', 'Гайсин'], ['Koziatyn', 'Козятин'], ['Ladyzhyn', 'Ладижин'], ['Tulchyn', 'Тульчин'], ['Bar', 'Бар'], ['Bershad', 'Бершадь'],
|
|
24
|
-
['Smila', 'Сміла', 'Смела'], ['Zolotonosha', 'Золотоноша'], ['Kaniv', 'Канів', 'Канев'], ['Zvenyhorodka', 'Звенигородка'], ['Talne', 'Тальне', 'Тальное'],
|
|
25
|
-
['Horishni Plavni', 'Горішні Плавні', 'Горишние Плавни', 'Комсомольськ', 'Комсомольск'], ['Myrhorod', 'Миргород'], ['Lubny', 'Лубни', 'Лубны'], ['Hadiach', 'Гадяч'], ['Karlivka', 'Карлівка', 'Карловка'],
|
|
26
|
-
['Konotop', 'Конотоп'], ['Shostka', 'Шостка'], ['Okhtyrka', 'Охтирка', 'Ахтырка'], ['Romny', 'Ромни', 'Ромны'], ['Hlukhiv', 'Глухів', 'Глухов'], ['Lebedyn', 'Лебедин'], ['Trostianets', 'Тростянець', 'Тростянец'],
|
|
27
|
-
['Nizhyn', 'Ніжин', 'Нежин'], ['Pryluky', 'Прилуки'], ['Bakhmach', 'Бахмач'], ['Novhorod-Siverskyi', 'Новгород-Сіверський', 'Новгород-Северский'], ['Koriukivka', 'Корюківка', 'Корюковка'], ['Mena', 'Мена'],
|
|
28
|
-
['Svitlovodsk', 'Світловодськ', 'Светловодск'], ['Znamianka', 'Знам’янка', 'Знаменка'], ['Novoukrainka', 'Новоукраїнка', 'Новоукраинка'], ['Haivoron', 'Гайворон'], ['Pomichna', 'Помічна', 'Помошная'],
|
|
29
|
-
['Pervomaisk', 'Первомайськ', 'Первомайск'], ['Voznesensk', 'Вознесенськ', 'Вознесенск'], ['Yuzhnoukrainsk', 'Южноукраїнськ', 'Южноукраинск'], ['Novyi Buh', 'Новий Буг', 'Новый Буг'], ['Bashtanka', 'Баштанка'], ['Ochakiv', 'Очаків', 'Очаков'],
|
|
30
|
-
['Nova Kakhovka', 'Нова Каховка', 'Новая Каховка'], ['Kakhovka', 'Каховка'], ['Oleshky', 'Олешки', 'Алёшки', 'Цюрупинск'], ['Henichesk', 'Генічеськ', 'Геническ'], ['Skadovsk', 'Скадовськ', 'Скадовск'], ['Beryslav', 'Берислав'], ['Hola Prystan', 'Гола Пристань'],
|
|
31
|
-
['Melitopol', 'Мелітополь', 'Мелитополь'], ['Berdiansk', 'Бердянськ', 'Бердянск'], ['Enerhodar', 'Енергодар', 'Энергодар'], ['Tokmak', 'Токмак'], ['Polohy', 'Пологи'], ['Dniprorudne', 'Дніпрорудне', 'Днепрорудное'], ['Orikhiv', 'Оріхів', 'Орехов'],
|
|
32
|
-
['Mariupol', 'Маріуполь', 'Мариуполь'], ['Kramatorsk', 'Краматорськ', 'Краматорск'], ['Sloviansk', 'Слов’янськ', 'Славянск'], ['Bakhmut', 'Бахмут', 'Артемівськ', 'Артемовск'], ['Pokrovsk', 'Покровськ', 'Красноармійськ', 'Красноармейск'], ['Kostiantynivka', 'Костянтинівка', 'Константиновка'], ['Druzhkivka', 'Дружківка', 'Дружковка'], ['Myrnohrad', 'Мирноград', 'Димитров'], ['Toretsk', 'Торецьк', 'Торецк', 'Дзержинськ', 'Дзержинск'], ['Avdiivka', 'Авдіївка', 'Авдеевка'], ['Volnovakha', 'Волноваха'],
|
|
33
|
-
['Luhansk', 'Луганськ', 'Луганск'], ['Sievierodonetsk', 'Сіверськодонецьк', 'Сєвєродонецьк', 'Северодонецк'], ['Lysychansk', 'Лисичанськ', 'Лисичанск'], ['Alchevsk', 'Алчевськ', 'Алчевск'], ['Rubizhne', 'Рубіжне', 'Рубежное'], ['Starobilsk', 'Старобільськ', 'Старобельск'], ['Kreminna', 'Кремінна', 'Кременная'], ['Svatove', 'Сватове', 'Сватово'],
|
|
34
|
-
]);
|
|
35
|
-
|
|
36
|
-
export const UA_SECONDARY_LOCATION_EXTENSIONS = Object.freeze({
|
|
37
|
-
Izmail: city({ microdistricts: [['Tsentr','Центр'],['Krepost','Крепость'],['Kopana Balka','Копана Балка'],['Broska','Броска']], landmarks: [['Suvorov Avenue','проспект Незалежності','проспект Суворова'],['Izmail Fortress','Ізмаїльська фортеця','Измаильская крепость'],['Danube Embankment','набережна Дунаю','набережная Дуная'],['Izmail Port','Ізмаїльський порт','Измаильский порт']] }),
|
|
38
|
-
Chornomorsk: city({ microdistricts: [['Tsentr','Центр'],['Primorskyi','Приморський','Приморский'],['Molodizhnyi','Молодіжний','Молодежный']], landmarks: [['Primorskyi Park','Приморський парк','Приморский парк'],['Chornomorsk Port','порт Чорноморськ','порт Черноморск'],['Central Beach','Центральний пляж','Центральный пляж']] }),
|
|
39
|
-
Pivdenne: city({ microdistricts: [['Tsentr','Центр'],['Primorskyi','Приморський','Приморский']], landmarks: [['Pivdennyi Port','порт Південний','порт Южный'],['Primorskyi Park','Приморський парк','Приморский парк']] }),
|
|
40
|
-
'Bilhorod-Dnistrovskyi': city({ microdistricts: [['Tsentr','Центр'],['Vokzal','Вокзал'],['Portovyi','Портовий','Портовый']], landmarks: [['Akkerman Fortress','Аккерманська фортеця','Аккерманская крепость'],['Dnister Estuary','Дністровський лиман','Днестровский лиман']] }),
|
|
41
|
-
Chuhuiv: city({ microdistricts: [['Tsentr','Центр'],['Aviatsiinyi','Авіаційний','Авиационный'],['Bashkyrivka','Башкирівка','Башкировка']], landmarks: [['Chuhuiv Museum','музей Рєпіна','музей Репина'],['Central Square','Центральна площа','Центральная площадь']] }),
|
|
42
|
-
Lozova: city({ microdistricts: [['Tsentr','Центр'],['Avylivka','Авилівка','Авиловка'],['Domakha','Домаха']], landmarks: [['Lozova Railway Station','вокзал Лозова','вокзал Лозовая'],['Victory Park','парк Перемоги','парк Победы']] }),
|
|
43
|
-
Mukachevo: city({ microdistricts: [['Tsentr','Центр'],['Rosvyhovo','Росвигово'],['Pidhoriany','Підгоряни','Подгоряны'],['Palanok','Паланок']], residentialComplexes: [['Central Park','ЖК Central Park'],['Rosvyhivskyi','ЖК Росвигівський','ЖК Росвиговский']], landmarks: [['Palanok Castle','замок Паланок'],['Latorica Embankment','набережна Латориці','набережная Латорицы'],['City Hall','Ратуша']] }),
|
|
44
|
-
Uman: city({ microdistricts: [['Tsentr','Центр'],['Sofiivska Slobidka','Софіївська Слобідка','Софиевская Слободка'],['Babanske','Бабанське','Бабанское']], landmarks: [['Sofiyivka Park','парк Софіївка','парк Софиевка'],['Rabbi Nachman Tomb','могила цадика Нахмана','могила Рабби Нахмана'],['Central Square','Центральна площа','Центральная площадь']] }),
|
|
45
|
-
Kovel: city({ microdistricts: [['Tsentr','Центр'],['Vokzalnyi','Вокзальний','Вокзальный'],['Silsilmash','Сільмаш','Сельмаш']], landmarks: [['Kovel Railway Station','Ковельський вокзал','Ковельский вокзал'],['Lesia Ukrainka Park','парк Лесі Українки','парк Леси Украинки']] }),
|
|
46
|
-
Dubno: city({ microdistricts: [['Tsentr','Центр'],['Bazar','Базар'],['Surmychi','Сурмичі','Сурмичи']], landmarks: [['Dubno Castle','Дубенський замок','Дубенский замок'],['Ikva River','річка Іква','река Иква']] }),
|
|
47
|
-
Berdychiv: city({ microdistricts: [['Tsentr','Центр'],['Korolenka','Короленка','Короленко'],['Chervona Hora','Червона Гора','Красная Гора']], landmarks: [['Berdychiv Monastery','монастир босих кармелітів','монастырь босых кармелитов'],['Railway Station','залізничний вокзал','железнодорожный вокзал']] }),
|
|
48
|
-
Korosten: city({ microdistricts: [['Tsentr','Центр'],['Pashyny','Пашини','Пашины'],['Cholivka','Чолівка','Чоловка']], landmarks: [['Drevlianskyi Park','Древлянський парк','Древлянский парк'],['Skelia Bunker','об’єкт Скеля','объект Скала'],['Railway Station','вокзал Коростень']] }),
|
|
49
|
-
Myrhorod: city({ microdistricts: [['Tsentr','Центр'],['Kurort','Курорт'],['Lychanka','Личанка']], landmarks: [['Myrhorod Resort','курорт Миргород'],['Khorol River','річка Хорол','река Хорол'],['Central Park','Центральний парк','Центральный парк']] }),
|
|
50
|
-
Kaniv: city({ microdistricts: [['Tsentr','Центр'],['Dniprovska','Дніпровська','Днепровская']], landmarks: [['Taras Hill','Тарасова гора'],['Shevchenko Museum','музей Шевченка','музей Шевченко'],['Dnipro Embankment','набережна Дніпра','набережная Днепра']] }),
|
|
51
|
-
Melitopol: city({ microdistricts: [['Tsentr','Центр'],['Mikrorayon','Мікрорайон','Микрорайон'],['Novo-Melitopol','Новий Мелітополь','Новый Мелитополь'],['Kiziiarskyi','Кизиярський','Кизиярский']], landmarks: [['Victory Square','площа Перемоги','площадь Победы'],['Melitopol Railway Station','вокзал Мелітополь','вокзал Мелитополь']] }),
|
|
52
|
-
Berdiansk: city({ microdistricts: [['Tsentr','Центр'],['Kosa','Коса','Бердянська коса','Бердянская коса'],['Lisky','Ліски','Лиски'],['AKZ','АКЗ']], landmarks: [['Berdiansk Spit','Бердянська коса','Бердянская коса'],['Primorska Square','Приморська площа','Приморская площадь'],['Sea Port','морський порт','морской порт']] }),
|
|
53
|
-
Kramatorsk: city({ microdistricts: [['Tsentr','Центр'],['Sotsmisto','Соцмісто','Соцгород'],['Lazurnyi','Лазурний','Лазурный'],['Parkova','Паркова','Парковая']], landmarks: [['Peace Square','площа Миру','площадь Мира'],['Bernatskyi Garden','сад Бернацького','сад Бернацкого'],['Kramatorsk Railway Station','вокзал Краматорськ','вокзал Краматорск']] }),
|
|
54
|
-
Sloviansk: city({ microdistricts: [['Tsentr','Центр'],['Artema','Артема'],['Cherivkivka','Черевківка','Черевковка'],['Khymik','Хімік','Химик']], landmarks: [['Sloviansk Resort','Слов’янський курорт','Славянский курорт'],['Salt Lakes','Солоні озера','Соленые озера'],['Railway Station','вокзал Слов’янськ','вокзал Славянск']] }),
|
|
55
|
-
Mariupol: city({ districts: [['Tsentralnyi','Центральний','Центральный'],['Livoberezhnyi','Лівобережний','Левобережный'],['Kalmiuskyi','Кальміуський','Кальмиусский'],['Prymorskyi','Приморський','Приморский']], microdistricts: [['Tsentr','Центр'],['Skhidnyi','Східний','Восточный'],['Cheremushky','Черемушки'],['Port City','Порт-Сіті','Порт-Сити']], landmarks: [['Drama Theatre','Драматичний театр','Драмтеатр'],['Azovstal','Азовсталь'],['Mariupol Sea Port','Маріупольський морський порт','Мариупольский морской порт'],['City Garden','Міський сад','Городской сад']] }),
|
|
56
|
-
Luhansk: city({ districts: [['Artemivskyi','Артемівський','Артемовский'],['Kamianobridskyi','Кам’янобрідський','Каменнобродский'],['Leninskyi','Ленінський','Ленинский'],['Zhovtnevyi','Жовтневий','Жовтневый']], microdistricts: [['Tsentr','Центр'],['Skhidnyi','Східний','Восточный'],['Yuvileinyi','Ювілейний','Юбилейный'],['Haidara','Гайдара']], landmarks: [['Teatralna Square','Театральна площа','Театральная площадь'],['Railway Station','залізничний вокзал','железнодорожный вокзал'],['Gorky Park','парк Горького']] }),
|
|
57
|
-
});
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
const city = ({ districts = [], microdistricts = [], residentialComplexes = [], landmarks = [], metro = [] }) => Object.freeze({
|
|
4
|
+
...(districts.length ? { districts: locationEntries(districts) } : {}),
|
|
5
|
+
...(microdistricts.length ? { microdistricts: locationEntries(microdistricts) } : {}),
|
|
6
|
+
...(residentialComplexes.length ? { residentialComplexes: locationEntries(residentialComplexes) } : {}),
|
|
7
|
+
...(landmarks.length ? { landmarks: locationEntries(landmarks) } : {}),
|
|
8
|
+
...(metro.length ? { metro: locationEntries(metro) } : {}),
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export const UA_SECONDARY_CITY_NAMES = Object.freeze([
|
|
12
|
+
['Fastiv', 'Фастів', 'Фастов'], ['Obukhiv', 'Обухів', 'Обухов'], ['Vasylkiv', 'Васильків', 'Васильков'], ['Boyarka', 'Боярка'], ['Ukrainka', 'Українка', 'Украинка'], ['Pereiaslav', 'Переяслав', 'Переяслав-Хмельницький', 'Переяслав-Хмельницкий'], ['Yahotyn', 'Яготин'], ['Slavutych', 'Славутич'],
|
|
13
|
+
['Chuhuiv', 'Чугуїв', 'Чугуев'], ['Lozova', 'Лозова', 'Лозовая'], ['Izium', 'Ізюм', 'Изюм'], ['Kupiansk', 'Куп’янськ', 'Купянск'], ['Balakliia', 'Балаклія', 'Балаклея'], ['Merefa', 'Мерефа'], ['Liubotyn', 'Люботин'], ['Zlatopil', 'Златопіль', 'Златополь', 'Первомайський', 'Первомайский'],
|
|
14
|
+
['Izmail', 'Ізмаїл', 'Измаил'], ['Chornomorsk', 'Чорноморськ', 'Черноморск', 'Іллічівськ', 'Ильичевск'], ['Pivdenne', 'Південне', 'Южне', 'Южный'], ['Bilhorod-Dnistrovskyi', 'Білгород-Дністровський', 'Белгород-Днестровский', 'Аккерман'], ['Podilsk', 'Подільськ', 'Подольск', 'Котовськ', 'Котовск'], ['Balta', 'Балта'], ['Reni', 'Рені', 'Рени'], ['Kiliia', 'Кілія', 'Килия'], ['Bolhrad', 'Болград'], ['Artsyz', 'Арциз'], ['Tatarbunary', 'Татарбунари', 'Татарбунары'], ['Berezivka', 'Березівка', 'Березовка'],
|
|
15
|
+
['Samar', 'Самар', 'Новомосковськ', 'Новомосковск'], ['Zhovti Vody', 'Жовті Води', 'Жёлтые Воды', 'Желтые Воды'], ['Marhanets', 'Марганець', 'Марганец'], ['Pokrov', 'Покров', 'Орджонікідзе', 'Орджоникидзе'], ['Synelnykove', 'Синельникове', 'Синельниково'], ['Ternivka', 'Тернівка', 'Терновка'], ['Pershotravensk', 'Першотравенськ', 'Першотравенск'], ['Vilnohirsk', 'Вільногірськ', 'Вольногорск'],
|
|
16
|
+
['Sambir', 'Самбір', 'Самбор'], ['Truskavets', 'Трускавець', 'Трускавец'], ['Boryslav', 'Борислав'], ['Sheptytskyi', 'Шептицький', 'Шептицкий', 'Червоноград'], ['Novoiavorivsk', 'Новояворівськ', 'Новояворовск'], ['Stebnyk', 'Стебник'], ['Zhovkva', 'Жовква', 'Жолква'], ['Zolochiv', 'Золочів', 'Золочев'], ['Horodok', 'Городок'], ['Brody', 'Броди', 'Броды'],
|
|
17
|
+
['Khust', 'Хуст'], ['Berehove', 'Берегове', 'Берегово'], ['Vynohradiv', 'Виноградів', 'Виноградов'], ['Tiachiv', 'Тячів', 'Тячев'], ['Rakhiv', 'Рахів', 'Рахов'], ['Chop', 'Чоп'], ['Svaliava', 'Свалява'], ['Irshava', 'Іршава', 'Иршава'],
|
|
18
|
+
['Yaremche', 'Яремче'], ['Nadvirna', 'Надвірна', 'Надворная'], ['Dolyna', 'Долина'], ['Bolekhiv', 'Болехів', 'Болехов'], ['Kosiv', 'Косів', 'Косов'], ['Sniatyn', 'Снятин'], ['Tlumach', 'Тлумач'],
|
|
19
|
+
['Chortkiv', 'Чортків', 'Чортков'], ['Kremenets', 'Кременець', 'Кременец'], ['Berezhany', 'Бережани', 'Бережаны'], ['Zbarazh', 'Збараж'], ['Buchach', 'Бучач'], ['Terebovlia', 'Теребовля'],
|
|
20
|
+
['Kovel', 'Ковель'], ['Novovolynsk', 'Нововолинськ', 'Нововолынск'], ['Volodymyr', 'Володимир', 'Владимир-Волынский'], ['Kivertsi', 'Ківерці', 'Киверцы'], ['Rozhyshche', 'Рожище'],
|
|
21
|
+
['Dubno', 'Дубно'], ['Varash', 'Вараш', 'Кузнецовськ', 'Кузнецовск'], ['Ostroh', 'Острог'], ['Kostopil', 'Костопіль', 'Костополь'], ['Sarny', 'Сарни', 'Сарны'], ['Zdolbuniv', 'Здолбунів', 'Здолбунов'], ['Berezne', 'Березне', 'Березно'],
|
|
22
|
+
['Berdychiv', 'Бердичів', 'Бердичев'], ['Korosten', 'Коростень'], ['Zviahel', 'Звягель', 'Новоград-Волинський', 'Новоград-Волынский'], ['Malyn', 'Малин'], ['Korostyshiv', 'Коростишів', 'Коростышев'],
|
|
23
|
+
['Zhmerynka', 'Жмеринка'], ['Mohyliv-Podilskyi', 'Могилів-Подільський', 'Могилев-Подольский'], ['Khmilnyk', 'Хмільник', 'Хмельник'], ['Haisyn', 'Гайсин'], ['Koziatyn', 'Козятин'], ['Ladyzhyn', 'Ладижин'], ['Tulchyn', 'Тульчин'], ['Bar', 'Бар'], ['Bershad', 'Бершадь'],
|
|
24
|
+
['Smila', 'Сміла', 'Смела'], ['Zolotonosha', 'Золотоноша'], ['Kaniv', 'Канів', 'Канев'], ['Zvenyhorodka', 'Звенигородка'], ['Talne', 'Тальне', 'Тальное'],
|
|
25
|
+
['Horishni Plavni', 'Горішні Плавні', 'Горишние Плавни', 'Комсомольськ', 'Комсомольск'], ['Myrhorod', 'Миргород'], ['Lubny', 'Лубни', 'Лубны'], ['Hadiach', 'Гадяч'], ['Karlivka', 'Карлівка', 'Карловка'],
|
|
26
|
+
['Konotop', 'Конотоп'], ['Shostka', 'Шостка'], ['Okhtyrka', 'Охтирка', 'Ахтырка'], ['Romny', 'Ромни', 'Ромны'], ['Hlukhiv', 'Глухів', 'Глухов'], ['Lebedyn', 'Лебедин'], ['Trostianets', 'Тростянець', 'Тростянец'],
|
|
27
|
+
['Nizhyn', 'Ніжин', 'Нежин'], ['Pryluky', 'Прилуки'], ['Bakhmach', 'Бахмач'], ['Novhorod-Siverskyi', 'Новгород-Сіверський', 'Новгород-Северский'], ['Koriukivka', 'Корюківка', 'Корюковка'], ['Mena', 'Мена'],
|
|
28
|
+
['Svitlovodsk', 'Світловодськ', 'Светловодск'], ['Znamianka', 'Знам’янка', 'Знаменка'], ['Novoukrainka', 'Новоукраїнка', 'Новоукраинка'], ['Haivoron', 'Гайворон'], ['Pomichna', 'Помічна', 'Помошная'],
|
|
29
|
+
['Pervomaisk', 'Первомайськ', 'Первомайск'], ['Voznesensk', 'Вознесенськ', 'Вознесенск'], ['Yuzhnoukrainsk', 'Южноукраїнськ', 'Южноукраинск'], ['Novyi Buh', 'Новий Буг', 'Новый Буг'], ['Bashtanka', 'Баштанка'], ['Ochakiv', 'Очаків', 'Очаков'],
|
|
30
|
+
['Nova Kakhovka', 'Нова Каховка', 'Новая Каховка'], ['Kakhovka', 'Каховка'], ['Oleshky', 'Олешки', 'Алёшки', 'Цюрупинск'], ['Henichesk', 'Генічеськ', 'Геническ'], ['Skadovsk', 'Скадовськ', 'Скадовск'], ['Beryslav', 'Берислав'], ['Hola Prystan', 'Гола Пристань'],
|
|
31
|
+
['Melitopol', 'Мелітополь', 'Мелитополь'], ['Berdiansk', 'Бердянськ', 'Бердянск'], ['Enerhodar', 'Енергодар', 'Энергодар'], ['Tokmak', 'Токмак'], ['Polohy', 'Пологи'], ['Dniprorudne', 'Дніпрорудне', 'Днепрорудное'], ['Orikhiv', 'Оріхів', 'Орехов'],
|
|
32
|
+
['Mariupol', 'Маріуполь', 'Мариуполь'], ['Kramatorsk', 'Краматорськ', 'Краматорск'], ['Sloviansk', 'Слов’янськ', 'Славянск'], ['Bakhmut', 'Бахмут', 'Артемівськ', 'Артемовск'], ['Pokrovsk', 'Покровськ', 'Красноармійськ', 'Красноармейск'], ['Kostiantynivka', 'Костянтинівка', 'Константиновка'], ['Druzhkivka', 'Дружківка', 'Дружковка'], ['Myrnohrad', 'Мирноград', 'Димитров'], ['Toretsk', 'Торецьк', 'Торецк', 'Дзержинськ', 'Дзержинск'], ['Avdiivka', 'Авдіївка', 'Авдеевка'], ['Volnovakha', 'Волноваха'],
|
|
33
|
+
['Luhansk', 'Луганськ', 'Луганск'], ['Sievierodonetsk', 'Сіверськодонецьк', 'Сєвєродонецьк', 'Северодонецк'], ['Lysychansk', 'Лисичанськ', 'Лисичанск'], ['Alchevsk', 'Алчевськ', 'Алчевск'], ['Rubizhne', 'Рубіжне', 'Рубежное'], ['Starobilsk', 'Старобільськ', 'Старобельск'], ['Kreminna', 'Кремінна', 'Кременная'], ['Svatove', 'Сватове', 'Сватово'],
|
|
34
|
+
]);
|
|
35
|
+
|
|
36
|
+
export const UA_SECONDARY_LOCATION_EXTENSIONS = Object.freeze({
|
|
37
|
+
Izmail: city({ microdistricts: [['Tsentr','Центр'],['BAM','БАМ','Бам'],['Krepost','Крепость'],['Kopana Balka','Копана Балка'],['Broska','Броска']], landmarks: [['Suvorov Avenue','проспект Незалежності','проспект Суворова'],['Izmail Fortress','Ізмаїльська фортеця','Измаильская крепость'],['Danube Embankment','набережна Дунаю','набережная Дуная'],['Izmail Port','Ізмаїльський порт','Измаильский порт']] }),
|
|
38
|
+
Chornomorsk: city({ microdistricts: [['Tsentr','Центр'],['Primorskyi','Приморський','Приморский'],['Molodizhnyi','Молодіжний','Молодежный']], landmarks: [['Primorskyi Park','Приморський парк','Приморский парк'],['Chornomorsk Port','порт Чорноморськ','порт Черноморск'],['Central Beach','Центральний пляж','Центральный пляж']] }),
|
|
39
|
+
Pivdenne: city({ microdistricts: [['Tsentr','Центр'],['Primorskyi','Приморський','Приморский']], landmarks: [['Pivdennyi Port','порт Південний','порт Южный'],['Primorskyi Park','Приморський парк','Приморский парк']] }),
|
|
40
|
+
'Bilhorod-Dnistrovskyi': city({ microdistricts: [['Tsentr','Центр'],['Vokzal','Вокзал'],['Portovyi','Портовий','Портовый']], landmarks: [['Akkerman Fortress','Аккерманська фортеця','Аккерманская крепость'],['Dnister Estuary','Дністровський лиман','Днестровский лиман']] }),
|
|
41
|
+
Chuhuiv: city({ microdistricts: [['Tsentr','Центр'],['Aviatsiinyi','Авіаційний','Авиационный'],['Bashkyrivka','Башкирівка','Башкировка']], landmarks: [['Chuhuiv Museum','музей Рєпіна','музей Репина'],['Central Square','Центральна площа','Центральная площадь']] }),
|
|
42
|
+
Lozova: city({ microdistricts: [['Tsentr','Центр'],['Avylivka','Авилівка','Авиловка'],['Domakha','Домаха']], landmarks: [['Lozova Railway Station','вокзал Лозова','вокзал Лозовая'],['Victory Park','парк Перемоги','парк Победы']] }),
|
|
43
|
+
Mukachevo: city({ microdistricts: [['Tsentr','Центр'],['Rosvyhovo','Росвигово'],['Pidhoriany','Підгоряни','Подгоряны'],['Palanok','Паланок']], residentialComplexes: [['Central Park','ЖК Central Park'],['Rosvyhivskyi','ЖК Росвигівський','ЖК Росвиговский']], landmarks: [['Palanok Castle','замок Паланок'],['Latorica Embankment','набережна Латориці','набережная Латорицы'],['City Hall','Ратуша']] }),
|
|
44
|
+
Uman: city({ microdistricts: [['Tsentr','Центр'],['Sofiivska Slobidka','Софіївська Слобідка','Софиевская Слободка'],['Babanske','Бабанське','Бабанское']], landmarks: [['Sofiyivka Park','парк Софіївка','парк Софиевка'],['Rabbi Nachman Tomb','могила цадика Нахмана','могила Рабби Нахмана'],['Central Square','Центральна площа','Центральная площадь']] }),
|
|
45
|
+
Kovel: city({ microdistricts: [['Tsentr','Центр'],['Vokzalnyi','Вокзальний','Вокзальный'],['Silsilmash','Сільмаш','Сельмаш']], landmarks: [['Kovel Railway Station','Ковельський вокзал','Ковельский вокзал'],['Lesia Ukrainka Park','парк Лесі Українки','парк Леси Украинки']] }),
|
|
46
|
+
Dubno: city({ microdistricts: [['Tsentr','Центр'],['Bazar','Базар'],['Surmychi','Сурмичі','Сурмичи']], landmarks: [['Dubno Castle','Дубенський замок','Дубенский замок'],['Ikva River','річка Іква','река Иква']] }),
|
|
47
|
+
Berdychiv: city({ microdistricts: [['Tsentr','Центр'],['Korolenka','Короленка','Короленко'],['Chervona Hora','Червона Гора','Красная Гора']], landmarks: [['Berdychiv Monastery','монастир босих кармелітів','монастырь босых кармелитов'],['Railway Station','залізничний вокзал','железнодорожный вокзал']] }),
|
|
48
|
+
Korosten: city({ microdistricts: [['Tsentr','Центр'],['Pashyny','Пашини','Пашины'],['Cholivka','Чолівка','Чоловка']], landmarks: [['Drevlianskyi Park','Древлянський парк','Древлянский парк'],['Skelia Bunker','об’єкт Скеля','объект Скала'],['Railway Station','вокзал Коростень']] }),
|
|
49
|
+
Myrhorod: city({ microdistricts: [['Tsentr','Центр'],['Kurort','Курорт'],['Lychanka','Личанка']], landmarks: [['Myrhorod Resort','курорт Миргород'],['Khorol River','річка Хорол','река Хорол'],['Central Park','Центральний парк','Центральный парк']] }),
|
|
50
|
+
Kaniv: city({ microdistricts: [['Tsentr','Центр'],['Dniprovska','Дніпровська','Днепровская']], landmarks: [['Taras Hill','Тарасова гора'],['Shevchenko Museum','музей Шевченка','музей Шевченко'],['Dnipro Embankment','набережна Дніпра','набережная Днепра']] }),
|
|
51
|
+
Melitopol: city({ microdistricts: [['Tsentr','Центр'],['Mikrorayon','Мікрорайон','Микрорайон'],['Novo-Melitopol','Новий Мелітополь','Новый Мелитополь'],['Kiziiarskyi','Кизиярський','Кизиярский']], landmarks: [['Victory Square','площа Перемоги','площадь Победы'],['Melitopol Railway Station','вокзал Мелітополь','вокзал Мелитополь']] }),
|
|
52
|
+
Berdiansk: city({ microdistricts: [['Tsentr','Центр'],['Kosa','Коса','Бердянська коса','Бердянская коса'],['Lisky','Ліски','Лиски'],['AKZ','АКЗ']], landmarks: [['Berdiansk Spit','Бердянська коса','Бердянская коса'],['Primorska Square','Приморська площа','Приморская площадь'],['Sea Port','морський порт','морской порт']] }),
|
|
53
|
+
Kramatorsk: city({ microdistricts: [['Tsentr','Центр'],['Sotsmisto','Соцмісто','Соцгород'],['Lazurnyi','Лазурний','Лазурный'],['Parkova','Паркова','Парковая']], landmarks: [['Peace Square','площа Миру','площадь Мира'],['Bernatskyi Garden','сад Бернацького','сад Бернацкого'],['Kramatorsk Railway Station','вокзал Краматорськ','вокзал Краматорск']] }),
|
|
54
|
+
Sloviansk: city({ microdistricts: [['Tsentr','Центр'],['Artema','Артема'],['Cherivkivka','Черевківка','Черевковка'],['Khymik','Хімік','Химик']], landmarks: [['Sloviansk Resort','Слов’янський курорт','Славянский курорт'],['Salt Lakes','Солоні озера','Соленые озера'],['Railway Station','вокзал Слов’янськ','вокзал Славянск']] }),
|
|
55
|
+
Mariupol: city({ districts: [['Tsentralnyi','Центральний','Центральный'],['Livoberezhnyi','Лівобережний','Левобережный'],['Kalmiuskyi','Кальміуський','Кальмиусский'],['Prymorskyi','Приморський','Приморский']], microdistricts: [['Tsentr','Центр'],['Skhidnyi','Східний','Восточный'],['Cheremushky','Черемушки'],['Port City','Порт-Сіті','Порт-Сити']], landmarks: [['Drama Theatre','Драматичний театр','Драмтеатр'],['Azovstal','Азовсталь'],['Mariupol Sea Port','Маріупольський морський порт','Мариупольский морской порт'],['City Garden','Міський сад','Городской сад']] }),
|
|
56
|
+
Luhansk: city({ districts: [['Artemivskyi','Артемівський','Артемовский'],['Kamianobridskyi','Кам’янобрідський','Каменнобродский'],['Leninskyi','Ленінський','Ленинский'],['Zhovtnevyi','Жовтневий','Жовтневый']], microdistricts: [['Tsentr','Центр'],['Skhidnyi','Східний','Восточный'],['Yuvileinyi','Ювілейний','Юбилейный'],['Haidara','Гайдара']], landmarks: [['Teatralna Square','Театральна площа','Театральная площадь'],['Railway Station','залізничний вокзал','железнодорожный вокзал'],['Gorky Park','парк Горького']] }),
|
|
57
|
+
});
|
package/src/ukraine.js
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
import { UA_CITIES } from './geography.js';
|
|
2
|
-
import { findCanonical } from './normalization.js';
|
|
3
|
-
import { UA_SECONDARY_CITY_NAMES } from './ua-secondary-cities.js';
|
|
4
|
-
|
|
5
|
-
const HISTORICAL_CITY_ALIASES = Object.freeze({
|
|
6
|
-
Dnipro: ['Днепропетровск', 'Дніпропетровськ', 'Dnipropetrovsk'],
|
|
7
|
-
Kropyvnytskyi: ['Кировоград', 'Кіровоград', 'Kirovograd', 'Kirovohrad', 'Єлисаветград', 'Елисаветград', 'Yelisavetgrad'],
|
|
8
|
-
Rivne: ['Ровно', 'Rovno', 'Rowne'],
|
|
9
|
-
'Ivano-Frankivsk': ['Ивано-Франковск', 'Ivano-Frankovsk', 'Станіслав', 'Станислав', 'Stanislav', 'Stanisławów'],
|
|
10
|
-
Khmelnytskyi: ['Хмельницкий', 'Проскурів', 'Проскуров', 'Proskuriv'],
|
|
11
|
-
Chernihiv: ['Чернигов', 'Chernigov'],
|
|
12
|
-
Mykolaiv: ['Николаев', 'Nikolaev', 'Nikolayev'],
|
|
13
|
-
Odesa: ['Одесса', 'Odessa'],
|
|
14
|
-
Kharkiv: ['Харьков', 'Kharkov'],
|
|
15
|
-
Kyiv: ['Киев', 'Kiev'],
|
|
16
|
-
Lviv: ['Львов', 'Lvov', 'Lwów', 'Lemberg'],
|
|
17
|
-
Zaporizhzhia: ['Запорожье', 'Zaporozhye', 'Zaporozhie'],
|
|
18
|
-
'Kryvyi Rih': ['Кривой Рог', 'Krivoy Rog', 'Krivyi Rig'],
|
|
19
|
-
Chernivtsi: ['Черновцы', 'Chernovtsy', 'Czernowitz', 'Cernăuți'],
|
|
20
|
-
Uzhhorod: ['Uzhgorod', 'Ungvar', 'Ungvár'],
|
|
21
|
-
Ternopil: ['Тернополь', 'Tarnopol', 'Tarnopil'],
|
|
22
|
-
Lutsk: ['Луцк', 'Luck'],
|
|
23
|
-
Kremenchuk: ['Кременчуг', 'Kremenchug'],
|
|
24
|
-
'Bila Tserkva': ['Белая Церковь', 'Belaya Tserkov', 'Bila Cerkva'],
|
|
25
|
-
Vinnytsia: ['Винница', 'Vinnitsa', 'Vinnytsya', 'Vinica'],
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
function flattenAliases(entry) {
|
|
29
|
-
return Object.values(entry.aliases || {}).flat().filter(Boolean);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function cityEntry(canonical, aliases) {
|
|
33
|
-
return Object.freeze({ canonical, aliases: Object.freeze({ all: Object.freeze([...new Set([canonical, ...aliases])]) }), country: 'UA' });
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export const UA_ADDITIONAL_CITIES = Object.freeze([
|
|
37
|
-
cityEntry('Kamianske', ["Кам'янське", 'Каменское', 'Kamianske', 'Дніпродзержинськ', 'Днепродзержинск', 'Dniprodzerzhynsk']),
|
|
38
|
-
cityEntry('Vyshneve', ['Вишневе', 'Вишневое', 'Vyshneve']),
|
|
39
|
-
cityEntry('Boryspil', ['Бориспіль', 'Борисполь', 'Boryspil']),
|
|
40
|
-
cityEntry('Vyshhorod', ['Вишгород', 'Вышгород', 'Vyshhorod']),
|
|
41
|
-
cityEntry('Oleksandriia', ['Олександрія', 'Александрия', 'Oleksandriia', 'Alexandria Ukraine']),
|
|
42
|
-
cityEntry('Pavlohrad', ['Павлоград', 'Pavlohrad', 'Pavlograd']),
|
|
43
|
-
cityEntry('Nikopol', ['Нікополь', 'Никополь', 'Nikopol']),
|
|
44
|
-
cityEntry('Drohobych', ['Дрогобич', 'Дрогобыч', 'Drohobych']),
|
|
45
|
-
cityEntry('Stryi', ['Стрий', 'Stryi', 'Stryj']),
|
|
46
|
-
cityEntry('Kolomyia', ['Коломия', 'Коломыя', 'Kolomyia', 'Kolomea']),
|
|
47
|
-
cityEntry('Kalush', ['Калуш', 'Kalush']),
|
|
48
|
-
cityEntry('Kamianets-Podilskyi', ["Кам'янець-Подільський", 'Каменец-Подольский', 'Kamianets-Podilskyi', 'Kamenets-Podolsky']),
|
|
49
|
-
...UA_SECONDARY_CITY_NAMES.map(([canonical, ...aliases]) => cityEntry(canonical, aliases)),
|
|
50
|
-
]);
|
|
51
|
-
|
|
52
|
-
export const UA_CITY_CATALOG = Object.freeze([
|
|
53
|
-
...UA_CITIES.map((item) => cityEntry(item.canonical, [
|
|
54
|
-
...flattenAliases(item),
|
|
55
|
-
...(HISTORICAL_CITY_ALIASES[item.canonical] || []),
|
|
56
|
-
])),
|
|
57
|
-
...UA_ADDITIONAL_CITIES,
|
|
58
|
-
]);
|
|
59
|
-
|
|
60
|
-
export const UA_CITY_HISTORICAL_ALIASES = HISTORICAL_CITY_ALIASES;
|
|
61
|
-
|
|
62
|
-
export function canonicalUkraineCity(value) {
|
|
63
|
-
return findCanonical(value, UA_CITY_CATALOG)?.canonical || null;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export const UA_LOCATION_TERMS = Object.freeze({
|
|
67
|
-
locality: Object.freeze(['г.', 'г', 'город', 'місто', 'м.', 'city']),
|
|
68
|
-
district: Object.freeze(['район', 'р-н', 'рн', 'р.', 'р-н города', 'район міста', 'district']),
|
|
69
|
-
microdistrict: Object.freeze(['микрорайон', 'мкр', 'мкр.', 'мкр-н', 'мкрн', 'микро-р', 'мікрорайон', 'мікр.', 'neighborhood', 'neighbourhood']),
|
|
70
|
-
massif: Object.freeze(['жилмассив', 'жил. массив', 'ж/м', 'жм', 'житловий масив', 'житломасив']),
|
|
71
|
-
residentialComplex: Object.freeze(['ЖК', 'жк', 'ж.к.', 'жилой комплекс', 'житловий комплекс', 'residential complex', 'residence', 'residences']),
|
|
72
|
-
park: Object.freeze(['парк', 'park', 'сквер', 'сад', 'гай', 'роща']),
|
|
73
|
-
mall: Object.freeze(['ТРЦ', 'ТЦ', 'торговый центр', 'торговельний центр', 'торгово-розважальний центр', 'mall', 'shopping mall']),
|
|
74
|
-
metro: Object.freeze(['метро', 'ст. м.', 'ст.м.', 'станция метро', 'станція метро', 'subway', 'metro']),
|
|
75
|
-
});
|
|
1
|
+
import { UA_CITIES } from './geography.js';
|
|
2
|
+
import { findCanonical } from './normalization.js';
|
|
3
|
+
import { UA_SECONDARY_CITY_NAMES } from './ua-secondary-cities.js';
|
|
4
|
+
|
|
5
|
+
const HISTORICAL_CITY_ALIASES = Object.freeze({
|
|
6
|
+
Dnipro: ['Днепропетровск', 'Дніпропетровськ', 'Dnipropetrovsk'],
|
|
7
|
+
Kropyvnytskyi: ['Кировоград', 'Кіровоград', 'Kirovograd', 'Kirovohrad', 'Єлисаветград', 'Елисаветград', 'Yelisavetgrad'],
|
|
8
|
+
Rivne: ['Ровно', 'Rovno', 'Rowne'],
|
|
9
|
+
'Ivano-Frankivsk': ['Ивано-Франковск', 'Ivano-Frankovsk', 'Станіслав', 'Станислав', 'Stanislav', 'Stanisławów'],
|
|
10
|
+
Khmelnytskyi: ['Хмельницкий', 'Проскурів', 'Проскуров', 'Proskuriv'],
|
|
11
|
+
Chernihiv: ['Чернигов', 'Chernigov'],
|
|
12
|
+
Mykolaiv: ['Николаев', 'Nikolaev', 'Nikolayev'],
|
|
13
|
+
Odesa: ['Одесса', 'Odessa'],
|
|
14
|
+
Kharkiv: ['Харьков', 'Kharkov'],
|
|
15
|
+
Kyiv: ['Киев', 'Kiev'],
|
|
16
|
+
Lviv: ['Львов', 'Lvov', 'Lwów', 'Lemberg'],
|
|
17
|
+
Zaporizhzhia: ['Запорожье', 'Zaporozhye', 'Zaporozhie'],
|
|
18
|
+
'Kryvyi Rih': ['Кривой Рог', 'Krivoy Rog', 'Krivyi Rig'],
|
|
19
|
+
Chernivtsi: ['Черновцы', 'Chernovtsy', 'Czernowitz', 'Cernăuți'],
|
|
20
|
+
Uzhhorod: ['Uzhgorod', 'Ungvar', 'Ungvár'],
|
|
21
|
+
Ternopil: ['Тернополь', 'Tarnopol', 'Tarnopil'],
|
|
22
|
+
Lutsk: ['Луцк', 'Luck'],
|
|
23
|
+
Kremenchuk: ['Кременчуг', 'Kremenchug'],
|
|
24
|
+
'Bila Tserkva': ['Белая Церковь', 'Belaya Tserkov', 'Bila Cerkva'],
|
|
25
|
+
Vinnytsia: ['Винница', 'Vinnitsa', 'Vinnytsya', 'Vinica'],
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
function flattenAliases(entry) {
|
|
29
|
+
return Object.values(entry.aliases || {}).flat().filter(Boolean);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function cityEntry(canonical, aliases) {
|
|
33
|
+
return Object.freeze({ canonical, aliases: Object.freeze({ all: Object.freeze([...new Set([canonical, ...aliases])]) }), country: 'UA' });
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export const UA_ADDITIONAL_CITIES = Object.freeze([
|
|
37
|
+
cityEntry('Kamianske', ["Кам'янське", 'Каменское', 'Kamianske', 'Дніпродзержинськ', 'Днепродзержинск', 'Dniprodzerzhynsk']),
|
|
38
|
+
cityEntry('Vyshneve', ['Вишневе', 'Вишневое', 'Vyshneve']),
|
|
39
|
+
cityEntry('Boryspil', ['Бориспіль', 'Борисполь', 'Boryspil']),
|
|
40
|
+
cityEntry('Vyshhorod', ['Вишгород', 'Вышгород', 'Vyshhorod']),
|
|
41
|
+
cityEntry('Oleksandriia', ['Олександрія', 'Александрия', 'Oleksandriia', 'Alexandria Ukraine']),
|
|
42
|
+
cityEntry('Pavlohrad', ['Павлоград', 'Pavlohrad', 'Pavlograd']),
|
|
43
|
+
cityEntry('Nikopol', ['Нікополь', 'Никополь', 'Nikopol']),
|
|
44
|
+
cityEntry('Drohobych', ['Дрогобич', 'Дрогобыч', 'Drohobych']),
|
|
45
|
+
cityEntry('Stryi', ['Стрий', 'Stryi', 'Stryj']),
|
|
46
|
+
cityEntry('Kolomyia', ['Коломия', 'Коломыя', 'Kolomyia', 'Kolomea']),
|
|
47
|
+
cityEntry('Kalush', ['Калуш', 'Kalush']),
|
|
48
|
+
cityEntry('Kamianets-Podilskyi', ["Кам'янець-Подільський", 'Каменец-Подольский', 'Kamianets-Podilskyi', 'Kamenets-Podolsky']),
|
|
49
|
+
...UA_SECONDARY_CITY_NAMES.map(([canonical, ...aliases]) => cityEntry(canonical, aliases)),
|
|
50
|
+
]);
|
|
51
|
+
|
|
52
|
+
export const UA_CITY_CATALOG = Object.freeze([
|
|
53
|
+
...UA_CITIES.map((item) => cityEntry(item.canonical, [
|
|
54
|
+
...flattenAliases(item),
|
|
55
|
+
...(HISTORICAL_CITY_ALIASES[item.canonical] || []),
|
|
56
|
+
])),
|
|
57
|
+
...UA_ADDITIONAL_CITIES,
|
|
58
|
+
]);
|
|
59
|
+
|
|
60
|
+
export const UA_CITY_HISTORICAL_ALIASES = HISTORICAL_CITY_ALIASES;
|
|
61
|
+
|
|
62
|
+
export function canonicalUkraineCity(value) {
|
|
63
|
+
return findCanonical(value, UA_CITY_CATALOG)?.canonical || null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export const UA_LOCATION_TERMS = Object.freeze({
|
|
67
|
+
locality: Object.freeze(['г.', 'г', 'город', 'місто', 'м.', 'city']),
|
|
68
|
+
district: Object.freeze(['район', 'р-н', 'рн', 'р.', 'р-н города', 'район міста', 'district']),
|
|
69
|
+
microdistrict: Object.freeze(['микрорайон', 'мкр', 'мкр.', 'мкр-н', 'мкрн', 'микро-р', 'мікрорайон', 'мікр.', 'neighborhood', 'neighbourhood']),
|
|
70
|
+
massif: Object.freeze(['жилмассив', 'жил. массив', 'ж/м', 'жм', 'житловий масив', 'житломасив']),
|
|
71
|
+
residentialComplex: Object.freeze(['ЖК', 'жк', 'ж.к.', 'жилой комплекс', 'житловий комплекс', 'residential complex', 'residence', 'residences']),
|
|
72
|
+
park: Object.freeze(['парк', 'park', 'сквер', 'сад', 'гай', 'роща']),
|
|
73
|
+
mall: Object.freeze(['ТРЦ', 'ТЦ', 'торговый центр', 'торговельний центр', 'торгово-розважальний центр', 'mall', 'shopping mall']),
|
|
74
|
+
metro: Object.freeze(['метро', 'ст. м.', 'ст.м.', 'станция метро', 'станція метро', 'subway', 'metro']),
|
|
75
|
+
});
|