@whiteslove/parsing-lexicon 0.6.13 → 0.6.15
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/package.json +1 -1
- package/src/geography-detection.js +13 -2
- package/src/geography.js +1 -1
- package/src/kg-bishkek-area-extensions.js +17 -0
- package/src/kg-bishkek-residential-extensions.js +30 -0
- package/src/kg-bishkek-street-extensions.js +16 -1
- package/src/kg-jalal-abad-location-extensions.js +36 -0
- package/src/kg-karakol-location-extensions.js +43 -0
- package/src/kg-location-extensions.js +4 -0
- package/src/kg-osh-location-extensions.js +38 -1
- package/src/kz-almaty-cleaned-residential-extensions.js +1 -0
- package/src/kz-city-residential-extensions.js +18 -0
- package/src/kz-kostanay-location-extensions.js +8 -0
- package/src/kz-microdistrict-extensions.js +16 -0
- package/src/kz-pavlodar-location-extensions.js +3 -0
- package/src/locations-runtime.js +78 -12
- package/src/ua-chernihiv-street-extensions.js +12 -0
- package/src/ua-dnipro-street-extensions.js +14 -0
- package/src/ua-kharkiv-street-extensions.js +16 -0
- package/src/ua-kryvyi-rih-street-extensions.js +51 -0
- package/src/ua-kyiv-street-extensions.js +9 -0
- package/src/ua-mykolaiv-street-extensions.js +20 -0
- package/src/ua-vinnytsia-street-extensions.js +28 -0
- package/src/ua-zaporizhzhia-street-extensions.js +46 -0
- package/src/uz-andijan-street-extensions.js +22 -0
- package/src/uz-bukhara-location-extensions.js +27 -0
- package/src/uz-fergana-street-extensions.js +16 -0
- package/src/uz-namangan-street-extensions.js +27 -0
- package/src/uz-nukus-street-extensions.js +28 -0
- package/src/uz-qarshi-street-extensions.js +25 -0
- package/src/uz-samarkand-context-extensions.js +10 -1
- package/src/uz-tashkent-context-extensions.js +40 -1
- package/src/uz-tashkent-reviewed-residential-extensions.js +30 -0
- package/src/uz-tashkent-reviewed-street-extensions.js +34 -0
package/package.json
CHANGED
|
@@ -33,14 +33,25 @@ const COUNTRY_MATCHERS = COUNTRIES.map((item) => {
|
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
const US_STATE_RE = /\b[A-Z][A-Za-z.'-]+(?:\s+[A-Z][A-Za-z.'-]+){0,3}\s*,?\s+(?:AL|AK|AZ|AR|CA|CO|CT|DE|FL|GA|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VT|VA|WA|WV|WI|WY|DC)\b/;
|
|
36
|
-
const CITY_CONTEXT_RE = /(?:shahr(?:i)?|город(?:а|е|у|ом)?|city|viloyat(?:i)?|област\p{L}{0,4})/iu;
|
|
36
|
+
const CITY_CONTEXT_RE = /(?:shahr(?:i)?|шаар(?:ы|ында|ына|ынан)?|город(?:а|е|у|ом)?|city|viloyat(?:i)?|област\p{L}{0,4})/iu;
|
|
37
|
+
|
|
38
|
+
function matchedAliasNeedsContext(item, matchedText) {
|
|
39
|
+
if (item.contextRequired === true) return true;
|
|
40
|
+
const guarded = item.contextRequiredAliases || [];
|
|
41
|
+
if (!guarded.length) return false;
|
|
42
|
+
const matched = normalizeForMatch(matchedText);
|
|
43
|
+
return guarded.some((alias) => {
|
|
44
|
+
const normalized = normalizeForMatch(alias);
|
|
45
|
+
return normalized && (matched === normalized || matched.startsWith(normalized));
|
|
46
|
+
});
|
|
47
|
+
}
|
|
37
48
|
|
|
38
49
|
function cityTextMatch(text, matcher) {
|
|
39
50
|
const exact = text.match(matcher.exact);
|
|
40
51
|
const inflected = exact || !matcher.inflected ? null : text.match(matcher.inflected);
|
|
41
52
|
const match = exact || inflected;
|
|
42
53
|
if (!match) return null;
|
|
43
|
-
if (!matcher.item
|
|
54
|
+
if (!matchedAliasNeedsContext(matcher.item, match[0])) return match;
|
|
44
55
|
|
|
45
56
|
const start = match.index ?? 0;
|
|
46
57
|
const end = start + match[0].length;
|
package/src/geography.js
CHANGED
|
@@ -59,7 +59,7 @@ export const RO_CITIES = Object.freeze([...RO_CITIES_BASE, ...RO_CITY_EXTENSIONS
|
|
|
59
59
|
export const KG_CITIES = Object.freeze([
|
|
60
60
|
entity('Bishkek', { ky: ['Бишкек'], ru: ['Бишкек'], en: ['Bishkek'], kk: ['Бішкек'], uzLatn: ['Bishkek'] }, { country: 'KG', type: 'city' }),
|
|
61
61
|
entity('Osh', { ky: ['Ош'], ru: ['Ош'], en: ['Osh'], kk: ['Ош'], uzLatn: ['Osh'] }, { country: 'KG', type: 'city' }),
|
|
62
|
-
entity('
|
|
62
|
+
entity('Manas', { ky: ['Манас', 'Манас шаары', 'Жалал-Абад', 'Жалал Абад'], ru: ['Манас', 'город Манас', 'Джалал-Абад', 'Джалал Абад'], en: ['Manas', 'Manas city', 'Jalal-Abad', 'Jalalabad'] }, { country: 'KG', type: 'city', contextRequiredAliases: ['Manas', 'Манас'] }),
|
|
63
63
|
entity('Karakol', { ky: ['Каракол'], ru: ['Каракол', 'Пржевальск'], en: ['Karakol', 'Przhevalsk'], kk: ['Қаракөл'], uzLatn: ['Karakol'] }, { country: 'KG', type: 'city' }),
|
|
64
64
|
entity('Tokmok', { ky: ['Токмок'], ru: ['Токмок'], en: ['Tokmok'] }, { country: 'KG', type: 'city' }),
|
|
65
65
|
entity('Naryn', { ky: ['Нарын'], ru: ['Нарын'], en: ['Naryn'] }, { country: 'KG', type: 'city' }),
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const KG_BISHKEK_AREA_EXTENSIONS = Object.freeze({
|
|
4
|
+
Bishkek: Object.freeze({
|
|
5
|
+
districts: locationEntries([
|
|
6
|
+
['Pervomaisky', 'Первомайский', 'Первомайский район', 'Первомайский административный район', 'Биринчи Май', 'Биринчи Май району', 'Биринчи май административдик району'],
|
|
7
|
+
['Leninsky', 'Ленинский', 'Ленинский район', 'Ленинский административный район', 'Ленин району', 'Ленин административдик району'],
|
|
8
|
+
['Oktyabrsky', 'Октябрьский', 'Октябрьский район', 'Октябрьский административный район', 'Октябрь району', 'Октябрь административдик району'],
|
|
9
|
+
['Sverdlovsky', 'Свердловский', 'Свердловский район', 'Свердловский административный район', 'Свердлов району', 'Свердлов административдик району'],
|
|
10
|
+
]),
|
|
11
|
+
microdistricts: locationEntries([
|
|
12
|
+
['4-й микрорайон', '4 микрорайон', '4 мкр', '4 мкр.', '4-й мкр', '4th microdistrict'],
|
|
13
|
+
['5-й микрорайон', '5 микрорайон', '5 мкр', '5 мкр.', '5-й мкр', '5th microdistrict'],
|
|
14
|
+
['9-й микрорайон', '9 микрорайон', '9 мкр', '9 мкр.', '9-й мкр', '9th microdistrict'],
|
|
15
|
+
]),
|
|
16
|
+
}),
|
|
17
|
+
});
|
|
@@ -13,6 +13,36 @@ export const KG_BISHKEK_RESIDENTIAL_EXTENSIONS = Object.freeze({
|
|
|
13
13
|
['TIANSHAN-1', 'Tianshan-1', 'TIAN SHAN-1', 'Tian Shan 1', 'Тяньшань-1', 'Тянь-Шань-1', 'ЖК TIANSHAN-1', 'ЖК Тянь-Шань-1', 'TIANSHAN-1 турак жай комплекси'],
|
|
14
14
|
['Anka Tower', 'ANKA Tower', 'ANKA TOWER', 'Анка Тауэр', 'Анка Тауэр турак жай комплекси', 'ЖК Anka Tower', 'ЖК Анка Тауэр', 'Anka Tower турак жай комплекси'],
|
|
15
15
|
['УРПАК', 'Урпак', 'URPAK', 'Urpak', 'ЖК УРПАК', 'ЖК Урпак', 'жилой комплекс УРПАК', 'УРПАК турак жай комплекси', 'Urpak турак жай комплекси', 'Кут Урпак'],
|
|
16
|
+
['Французский квартал', 'ЖК Французский квартал', 'Французский Квартал', 'French Quarter', 'French quarter'],
|
|
17
|
+
['Аккула', 'ЖК Аккула', 'ЖК «Аккула»', 'Akkula'],
|
|
18
|
+
['Алтын Булак', 'ЖК Алтын Булак', 'ЖК «Алтын Булак»', 'Altyn Bulak'],
|
|
19
|
+
['Ботанический сад', 'ЖК Ботанический сад', 'ЖК «Ботанический сад»', 'Botanicheskiy Sad'],
|
|
20
|
+
['Флагман', 'ЖК Флагман', 'Жилой комплекс Флагман', 'Жилой комплекс "Флагман"', 'Flagman'],
|
|
21
|
+
['Хан-Теңири', 'Хан Теңири', 'Хан Тенгри', 'ЖК Хан-Теңири', 'ЖК "Хан-Теңири"', 'Khan Tengiri'],
|
|
22
|
+
['Кудайберген', 'ЖК Кудайберген', 'ЖК «Кудайберген»', 'Kudaybergen'],
|
|
23
|
+
['Панорама', 'ЖК Панорама', 'Жилой комплекс Панорама', 'Жилой Комплекс "Панорама"', 'Panorama'],
|
|
24
|
+
['Панорама 2', 'Панорама-2', 'ЖК Панорама 2', 'ЖК Панорама-2', 'Жилой комплекс "Панорама 2"', 'Panorama 2'],
|
|
25
|
+
['Сейтек', 'ЖК Сейтек', 'Жилой комплекс Сейтек', 'Seytek', 'Seitek'],
|
|
26
|
+
['Сымбат Classic', 'Сымбат Классик', 'ЖК Сымбат Classic', 'Жилой комплекс "Сымбат Classic"', 'Symbat Classic'],
|
|
27
|
+
['Тянь-Шань бермети', 'Тянь-Шань Бермети', 'ЖК Тянь-Шань бермети', 'ЖК «Тянь-Шань бермети»', 'Tyan-Shan Bermeti'],
|
|
28
|
+
['Южный', 'ЖК Южный', 'Жилой комплекс Южный', 'Жилой комплекс "Южный"', 'Yuzhny'],
|
|
29
|
+
['Легенда', 'ЖК Легенда', 'ЖК «Легенда»', 'Жилой комплекс Легенда', 'Legenda'],
|
|
30
|
+
['Meridian', 'MERIDIAN', 'Меридиан', 'ЖК Meridian', 'ЖК «Meridian»', 'Жилой комплекс Meridian'],
|
|
31
|
+
['Tokyo City', 'ЖК Tokyo', 'ЖК «Tokyo»', 'Строящийся жилой комплекс "Tokyo"'],
|
|
32
|
+
['Ачекей', 'ЖК Ачекей', 'Жилой комплекс Ачекей', "Жилой комплекс ''Ачекей''"],
|
|
33
|
+
['Арбат', 'ЖК Арбат', 'Жилой комплекс Арбат', 'Arbat'],
|
|
34
|
+
['Чынгыз Айтматов Ордосу', 'ЖК Чынгыз Айтматов Ордосу', 'Жилой комплекс Чынгыз Айтматов Ордосу', 'ЖК Чынгыз Айтматов', 'Жилой комплекс Чынгыз Айтматов'],
|
|
35
|
+
['Jal Artis', 'JAL ARTIS', 'Джал Артис', 'ЖК Jal Artis', 'ЖК Джал Артис', 'Жилой комплекс Джал Артис'],
|
|
36
|
+
['Флоренция', 'ЖК Флоренция', 'Жилой комплекс Флоренция', 'Florence'],
|
|
37
|
+
['IHLAS Residence', 'Ihlas Residence', 'ЖК IHLAS Residence', 'Жилой комплекс IHLAS Residence'],
|
|
38
|
+
['Империал', 'ЖК Империал', 'Жилой комплекс Империал', 'Imperial'],
|
|
39
|
+
['Jibekcity', 'JIBEK CITY', 'Jibek City', 'ЖИБЕК СИТИ', 'ЖК Jibekcity', 'ЖК JIBEK CITY', 'Жилой комплекс JIBEK CITY'],
|
|
40
|
+
['Континенталь', 'ЖК Континенталь', 'Жилой комплекс Континенталь', 'Continental'],
|
|
41
|
+
['Кремлевский', 'Кремлёвский', 'ЖК Кремлевский', 'ЖК Кремлёвский', 'Жилой комплекс Кремлевский', 'Kremlevskiy'],
|
|
42
|
+
['Malina', 'MALINA', 'Малина', 'ЖК Malina', 'ЖК MALINA', 'ЖК Малина'],
|
|
43
|
+
['Мурас', 'ЖК Мурас', 'Жилой комплекс Мурас', 'Muras'],
|
|
44
|
+
['Пионер', 'ЖК Пионер', 'Жилой комплекс Пионер', 'Pioner'],
|
|
45
|
+
['Royal', 'ROYAL', 'Роял', 'ЖК Royal', 'Жилой комплекс Royal'],
|
|
16
46
|
]),
|
|
17
47
|
}),
|
|
18
48
|
});
|
|
@@ -9,7 +9,7 @@ export const KG_BISHKEK_STREET_EXTENSIONS = Object.freeze({
|
|
|
9
9
|
['Chui Avenue', 'Chuy Avenue', 'Chui avenue', 'Чуйский проспект', 'проспект Чуй', 'проспект Чүй', 'Чүй проспекти'],
|
|
10
10
|
['Baitik Baatyr Street', 'Baitik baatyr Street', 'Baytik Baatyr Street', 'улица Байтик-Баатыра', 'улица Байтик Баатыра', 'ул. Байтик-Баатыра', 'Байтик Баатыр көчөсү'],
|
|
11
11
|
['Nasirdin Isanov Street', 'Isanov Street', 'улица Исанова', 'улица Насирдина Исанова', 'ул. Исанова', 'Насирдин Исанов көчөсү'],
|
|
12
|
-
['Ibraimov Street', 'Ibragimov Street', 'улица Ибраимова', 'ул. Ибраимова', 'Ибраимов көчөсү'],
|
|
12
|
+
['Ibraimov Street', 'Ibragimov Street', 'улица Ибраимова', 'улице Ибраимова', 'ул. Ибраимова', 'Ибраимов көчөсү'],
|
|
13
13
|
['Toktogul Street', 'Toktogul Satylganov Street', 'улица Токтогула', 'улица Токтогула Сатылганова', 'ул. Токтогула', 'Токтогул көчөсү', 'Токтогул Сатылганов көчөсү'],
|
|
14
14
|
['Joomart Bokonbayev Street', 'Joomart Bokonbaev Street', 'Bokonbayev Street', 'Bokonbaev Street', 'улица Боконбаева', 'улица Жоомарта Боконбаева', 'ул. Боконбаева', 'Жоомарт Бөкөнбаев көчөсү'],
|
|
15
15
|
['Jusup Abdrakhmanov Street', 'Yusup Abdrakhmanov Street', 'Abdrakhmanov Street', 'улица Юсупа Абдрахманова', 'улица Жусупа Абдрахманова', 'ул. Абдрахманова', 'Жусуп Абдрахманов көчөсү'],
|
|
@@ -67,6 +67,21 @@ export const KG_BISHKEK_STREET_EXTENSIONS = Object.freeze({
|
|
|
67
67
|
['Murmanskaya Street', 'Murmansk Street', 'Мурманская улица', 'улица Мурманская'],
|
|
68
68
|
['Valdayskaya Street', 'Valdai Street', 'Валдайская улица', 'улица Валдайская'],
|
|
69
69
|
['Ala-Archinskaya Street', 'Ala Archa Street', 'Ала-Арчинская улица', 'улица Ала-Арчинская'],
|
|
70
|
+
['Бишкек-1 улица', 'улица Бишкек-1', 'Бишкек 1 улица'],
|
|
71
|
+
['Бишкек-2 улица', 'улица Бишкек-2', 'Бишкек 2 улица'],
|
|
72
|
+
['Бишкек-3 улица', 'улица Бишкек-3', 'Бишкек 3 улица'],
|
|
73
|
+
['Бишкек-4 улица', 'улица Бишкек-4', 'Бишкек 4 улица'],
|
|
74
|
+
['Бишкек-5 улица', 'улица Бишкек-5', 'Бишкек 5 улица'],
|
|
75
|
+
['Бишкек-6 улица', 'улица Бишкек-6', 'Бишкек 6 улица'],
|
|
76
|
+
['Бишкек-7 улица', 'улица Бишкек-7', 'Бишкек 7 улица'],
|
|
77
|
+
['Бишкек-8 улица', 'улица Бишкек-8', 'Бишкек 8 улица'],
|
|
78
|
+
['Улица Бишкек-9', 'Бишкек-9 улица', 'улица Бишкек 9'],
|
|
79
|
+
['Улица Абдумомунова', 'Абдумомунова улица', 'ул. Абдумомунова'],
|
|
80
|
+
['Улица Байгазак Арпачиева', 'Байгазак Арпачиева улица', 'ул. Байгазак Арпачиева'],
|
|
81
|
+
['Улица квартал Кирова', 'квартал Кирова улица'],
|
|
82
|
+
['Парковая улица', 'улица Парковая', 'ул. Парковая'],
|
|
83
|
+
['Улица Тунгуч', 'Тунгуч улица', 'ул. Тунгуч'],
|
|
84
|
+
['Улица Турусбекова', 'Турусбекова улица', 'ул. Турусбекова'],
|
|
70
85
|
]),
|
|
71
86
|
}),
|
|
72
87
|
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const KG_JALAL_ABAD_LOCATION_EXTENSIONS = Object.freeze({
|
|
4
|
+
'Jalal-Abad': Object.freeze({
|
|
5
|
+
microdistricts: locationEntries([
|
|
6
|
+
['Микрорайон Курманбек', 'Курманбек микрорайон', 'мкр Курманбек'],
|
|
7
|
+
]),
|
|
8
|
+
residentialComplexes: locationEntries([
|
|
9
|
+
['Асман Резиденс 1', 'Асман Резиденс №1', 'ЖК Асман Резиденс 1', 'ЖК «Асман Резиденс 1»', 'ЖК «Асман Резиденс 1» (ГИК)'],
|
|
10
|
+
['Асман Резиденс 9', 'Асман Резиденс №9', 'ЖК Асман Резиденс 9', 'ЖК «Асман Резиденс 9»', 'ЖК «Асман Резиденс 9» (ГИК)'],
|
|
11
|
+
]),
|
|
12
|
+
streets: locationEntries([
|
|
13
|
+
['10-я улица Электорон'],
|
|
14
|
+
['2-я улица ПТФ'],
|
|
15
|
+
['5-я улица Электорон'],
|
|
16
|
+
['Абдукаимов көчөсү'],
|
|
17
|
+
['Улица Арстанбаева 1-я', 'Арстанбаева 1-я'],
|
|
18
|
+
['Улица Арстанбаева 2-я', 'Арстанбаева 2-я'],
|
|
19
|
+
['Барпы Рысбаев көчөсү'],
|
|
20
|
+
['Улица Чынгыза Айтматова 3 1-я', 'Чынгыза Айтматова 3 1-я'],
|
|
21
|
+
['Улица Чынгыза Айтматова 3 3-я', 'Чынгыза Айтматова 3 3-я'],
|
|
22
|
+
['Улица Чынгыза Айтматова 3 5-я', 'Чынгыза Айтматова 3 5-я'],
|
|
23
|
+
['Фабричная көчөсү'],
|
|
24
|
+
['Куренкеев көчөсү'],
|
|
25
|
+
['Улица Курортная', 'Курортная улица', 'ул. Курортная'],
|
|
26
|
+
['Лесная улица', 'улица Лесная', 'ул. Лесная', 'Лесной улице', 'на Лесной улице'],
|
|
27
|
+
['Островский көчөсү'],
|
|
28
|
+
['Проспект Тумонбая Байзакова', 'Тумонбая Байзакова проспект', 'Түмөнбай Байзаков проспекти', 'Түмөнбай Байзаков көчөсү (Москва)', 'проспекте Тумонбая Байзакова', 'на проспекте Тумонбая Байзакова'],
|
|
29
|
+
['Умаркулов Саке көчөсү'],
|
|
30
|
+
['Улица Жени-Жок', 'улица Жени жок', 'Жени-Жок көчөсү', 'улице Жени-Жок', 'на улице Жени-Жок'],
|
|
31
|
+
['Мурзакулов Урубай көчөсү'],
|
|
32
|
+
['Пролетар көчөсү'],
|
|
33
|
+
['Тоголок Молдо көчөсү'],
|
|
34
|
+
]),
|
|
35
|
+
}),
|
|
36
|
+
});
|
|
@@ -4,6 +4,49 @@ export const KG_KARAKOL_LOCATION_EXTENSIONS = Object.freeze({
|
|
|
4
4
|
Karakol: Object.freeze({
|
|
5
5
|
microdistricts: locationEntries([
|
|
6
6
|
['Voshod', 'Восход', 'микрорайон Восход', 'мкр Восход', 'Восход микрорайон', 'Voshod microdistrict'],
|
|
7
|
+
['Кашка-Суу', 'Кашка Суу', 'Kashka-Suu', 'Kashka Suu', 'микрорайон Кашка-Суу', 'мкр Кашка-Суу', 'Кашка-Суу м-н'],
|
|
8
|
+
['Хан-Теңири', 'Хан Теңири', 'Хан-Тенгри', 'Хан Тенгри', 'Khan-Tengri', 'Khan Tengri', 'Khan Tengiri', 'микрорайон Хан-Теңири', 'микрорайон Хан-Тенгри', 'мкр Хан-Теңири', 'мкр Хан-Тенгри'],
|
|
9
|
+
]),
|
|
10
|
+
residentialComplexes: locationEntries([
|
|
11
|
+
['Karakol Residence', 'KARAKOL RESIDENCE', 'Karakol residence', 'ЖК Karakol Residence', 'жилой комплекс Karakol Residence', 'Karakol Residence турак жай комплекси'],
|
|
12
|
+
]),
|
|
13
|
+
streets: locationEntries([
|
|
14
|
+
['Улица Алдашева', 'Алдашева', 'ул. Алдашева', 'Aldasheva Street'],
|
|
15
|
+
['Улица Гебзе', 'Гебзе', 'ул. Гебзе', 'Gebze Street'],
|
|
16
|
+
['Улица Карасаева', 'Карасаева', 'ул. Карасаева', 'Karasaeva Street'],
|
|
17
|
+
['Улица Ленина', 'Ленина', 'ул. Ленина', 'Lenina Street'],
|
|
18
|
+
['Улица Пржевальского', 'Пржевальского', 'ул. Пржевальского', 'Przhevalskogo Street'],
|
|
19
|
+
['Улица Шопокова', 'Шопокова', 'ул. Шопокова', 'Shopokova Street'],
|
|
20
|
+
['Улица Токтогула', 'Токтогула', 'ул. Токтогула', 'Toktogula Street'],
|
|
21
|
+
['Улица Тыныстанова', 'Тыныстанова', 'ул. Тыныстанова', 'Tynystanova Street'],
|
|
22
|
+
['Улица Жамансариева', 'Жамансариева', 'ул. Жамансариева', 'Zhamansarieva Street'],
|
|
23
|
+
['Улица Ю. Абдрахманова', 'Ю. Абдрахманова', 'Абдрахманова Ю.', 'Абдрахманова Ю.улица', 'Абдрахманова Ю. улица', 'ул. Ю. Абдрахманова'],
|
|
24
|
+
['Арычная улица', 'Арычная', 'ул. Арычная'],
|
|
25
|
+
['Улица Н. Айтматовой', 'Н. Айтматовой', 'Айтматовой Н.', 'Айтматовой Н. улица', 'ул. Н. Айтматовой'],
|
|
26
|
+
['Улица Конкина', 'Конкина', 'Конкина улица', 'ул. Конкина'],
|
|
27
|
+
['Улица Кошевого', 'Кошевого', 'Кошевого улица', 'ул. Кошевого'],
|
|
28
|
+
['Улица Кыштобаева', 'Кыштобаева', 'Кыштобаева улица', 'ул. Кыштобаева'],
|
|
29
|
+
['Улица Мичурина', 'Мичурина', 'Мичурина улица', 'ул. Мичурина'],
|
|
30
|
+
['Молодёжная улица', 'Молодёжная', 'Молодежная', 'ул. Молодёжная', 'ул. Молодежная'],
|
|
31
|
+
['Московская улица', 'Московская', 'ул. Московская'],
|
|
32
|
+
['Улица Садыбекова', 'Садыбекова', 'Садыбекова улица', 'ул. Садыбекова'],
|
|
33
|
+
['Улица Шапак-баатыра', 'Шапак-баатыра', 'Шапак баатыра', 'Шапак-баатыра улица', 'ул. Шапак-баатыра'],
|
|
34
|
+
['Сталинградская улица', 'Сталинградская', 'ул. Сталинградская'],
|
|
35
|
+
['Улица Ворошилова', 'Ворошилова', 'Ворошилова улица', 'ул. Ворошилова'],
|
|
36
|
+
['Улица Жакшылык', 'Жакшылык', 'Жакшылык улица', 'ул. Жакшылык'],
|
|
37
|
+
['2-я улица Карасаева', '2 улица Карасаева', '2-я ул. Карасаева'],
|
|
38
|
+
['Улица Дербишева', 'Дербишева', 'ул. Дербишева'],
|
|
39
|
+
['Улица Кадыр аке 1-я', 'Кадыр аке 1-я', '1-я улица Кадыр аке'],
|
|
40
|
+
['Улица Кадыр аке 3-я', 'Кадыр аке 3-я', '3-я улица Кадыр аке'],
|
|
41
|
+
['Улица Кадыр аке 4-я', 'Кадыр аке 4-я', '4-я улица Кадыр аке'],
|
|
42
|
+
['Улица Кадыр аке 5-я', 'Кадыр аке 5-я', '5-я улица Кадыр аке'],
|
|
43
|
+
['Каракольская улица', 'Каракольская', 'ул. Каракольская'],
|
|
44
|
+
['Улица Кутманалиева', 'Кутманалиева', 'ул. Кутманалиева'],
|
|
45
|
+
['Улица Кузбасская 9-я', 'Кузбасская 9-я', '9-я Кузбасская улица'],
|
|
46
|
+
['Улица Кузбасская 10-я', 'Кузбасская 10-я', '10-я Кузбасская улица'],
|
|
47
|
+
['Улица Кузбасская 14-я', 'Кузбасская 14-я', '14-я Кузбасская улица'],
|
|
48
|
+
['Улица Масалиева', 'Масалиева', 'ул. Масалиева'],
|
|
49
|
+
['Улица Торгоева', 'Торгоева', 'ул. Торгоева'],
|
|
7
50
|
]),
|
|
8
51
|
}),
|
|
9
52
|
});
|
|
@@ -41,6 +41,7 @@ export const KG_LOCATION_EXTENSIONS = Object.freeze({
|
|
|
41
41
|
microdistricts: [
|
|
42
42
|
['Asanbay', 'Асанбай', 'Асанбай микрорайон', 'Асанбай кичирайону'],
|
|
43
43
|
['Jal', 'Джал', 'Жал', 'Джал микрорайон', 'Жал кичирайону'],
|
|
44
|
+
['Джал-15', 'Джал 15', 'Жал-15', 'Жал 15', 'мкр Джал-15', 'мкр. Джал-15', 'микрорайон Джал-15'],
|
|
44
45
|
['Tunguch', 'Тунгуч', 'Тунгуч микрорайон'],
|
|
45
46
|
['Ulan', 'Улан', 'Улан микрорайон'],
|
|
46
47
|
['Kok-Jar', 'Кок-Жар', 'Көк-Жар', 'Кок Жар', 'Көк Жар'],
|
|
@@ -50,7 +51,10 @@ export const KG_LOCATION_EXTENSIONS = Object.freeze({
|
|
|
50
51
|
['Vostok-5', 'Восток-5', 'Восток 5', '5-й микрорайон Восток'],
|
|
51
52
|
['Vostok-6', 'Восток-6', 'Восток 6', '6-й микрорайон Восток'],
|
|
52
53
|
['Dordoi', 'Дордой', 'Дордой массив', 'Дордой конушу'],
|
|
54
|
+
['Учкун', 'Учкун микрорайон', 'микрорайон Учкун', 'Учкун мкр'],
|
|
55
|
+
['Жилгородок Совмина', 'жилгородок Совмина', 'Жилгородок Совмин', 'Совмин жилгородок', 'Совмин'],
|
|
53
56
|
['3-й микрорайон', '3 микрорайон', '3 мкр', '3 мкр.', '3-й мкр', '3rd microdistrict'],
|
|
57
|
+
['6-й микрорайон', '6 микрорайон', '6 мкр', '6 мкр.', '6-й мкр', '6th microdistrict'],
|
|
54
58
|
['7-й микрорайон', '7 микрорайон', '7 мкр', '7 мкр.', '7-й мкр', '7th microdistrict'],
|
|
55
59
|
['8-й микрорайон', '8 микрорайон', '8 мкр', '8 мкр.', '8-й мкр', '8th microdistrict'],
|
|
56
60
|
['10-й микрорайон', '10 микрорайон', '10 мкр', '10 мкр.', '10-й мкр', '10th microdistrict'],
|
|
@@ -2,9 +2,16 @@ import { locationEntries } from './location-merge.js';
|
|
|
2
2
|
|
|
3
3
|
export const KG_OSH_LOCATION_EXTENSIONS = Object.freeze({
|
|
4
4
|
Osh: Object.freeze({
|
|
5
|
+
districts: locationEntries([
|
|
6
|
+
['Керме-Тоо', 'Керме Тоо', 'Kerme-Too', 'Kerme Too', 'МТУ Керме-Тоо', 'МАБ Керме-Тоо', 'Керме-Тоо муниципалдык аймагы'],
|
|
7
|
+
]),
|
|
5
8
|
microdistricts: locationEntries([
|
|
6
9
|
['Anar', 'Анар', 'микрорайон Анар', 'мкр Анар', 'Анар микрорайон', 'Anar microdistrict'],
|
|
7
10
|
['Tuleyken', 'Тулейкен', 'Толойкон', 'Төлөйкөн', 'микрорайон Тулейкен', 'микрорайон Толойкон', 'мкр Тулейкен', 'Tuleyken microdistrict', 'Toloikon microdistrict'],
|
|
11
|
+
['Кулатов', 'Т. Кулатова', 'Кулатова', 'микрорайон Кулатов', 'микрорайон Т. Кулатова', 'мкр Кулатов', 'Кулатов микрорайон', 'Кулатов кичи району'],
|
|
12
|
+
['ДЭУ-21', 'ДЭУ 21', 'DEU-21', 'DEU 21', 'микрорайон ДЭУ-21', 'мкр ДЭУ-21'],
|
|
13
|
+
['МЖК-2', 'МЖК 2', 'MZHK-2', 'MZHK 2', 'микрорайон МЖК-2', 'мкр МЖК-2'],
|
|
14
|
+
['Ошский', 'Ошский микрорайон', 'Ошском микрорайоне', 'микрорайон Ошский', 'мкр Ошский', 'Oshskiy microdistrict'],
|
|
8
15
|
]),
|
|
9
16
|
settlements: locationEntries([
|
|
10
17
|
['Кеңеш', 'Кенеш', 'Kenesh', 'Кеңеш айылы', 'село Кеңеш', 'село Кенеш'],
|
|
@@ -19,7 +26,37 @@ export const KG_OSH_LOCATION_EXTENSIONS = Object.freeze({
|
|
|
19
26
|
]),
|
|
20
27
|
residentialComplexes: locationEntries([
|
|
21
28
|
['Asman Residence 1', 'Asman Residence-1', 'ASMAN RESIDENCE 1', 'Асман Резиденс 1', 'Асман Резиденс-1', 'ЖК Asman Residence 1', 'ЖК Асман Резиденс 1', 'Asman Residence 1 турак жай комплекси'],
|
|
22
|
-
['Mon Paris', 'MON PARIS', 'Mon Paris Ош', 'Mon Paris Osh', 'ЖК Mon Paris', 'ЖК Мон Париж', 'Мон Париж', 'Мон Пари', 'жилой комплекс Мон Париж', 'Mon Paris турак жай комплекси'],
|
|
29
|
+
['Mon Paris', 'MON PARIS', 'Mon Paris Ош', 'Mon Paris Osh', 'ЖК Mon Paris', 'ЖК Мон Париж', 'Мон Париж', 'Мон Пари', 'жилой комплекс Мон Париж', 'Mon Paris турак жай комплекси', 'Ихлас Ош', 'ЖК Ихлас Ош', 'жилой комплекс Ихлас Ош', 'жилой комплекс "Ихлас Ош"'],
|
|
30
|
+
['Аристократ', 'ЖК Аристократ', 'жилой комплекс Аристократ', 'Аристократ, жилой комплекс'],
|
|
31
|
+
['Фрунзенский', 'ЖК Фрунзенский', 'жилой комплекс Фрунзенский', 'Фрунзенский, жилой комплекс'],
|
|
32
|
+
['Миллион', 'ЖК Миллион', 'жилой комплекс Миллион', 'Миллион, жилой комплекс'],
|
|
33
|
+
['Osh Plaza', 'OSH PLAZA', 'Ош Плаза', 'ЖК Osh Plaza', 'ЖК Ош Плаза', 'жилой комплекс Osh Plaza'],
|
|
34
|
+
['Сере', 'ЖК Сере', 'жилой комплекс Сере', 'Жилой комплекс "Сере"'],
|
|
35
|
+
['Ак-Бата', 'Ак Бата', 'ЖК Ак-Бата', 'ЖК Ак Бата', 'жилой комплекс Ак-Бата', 'Стройка ЖК «Ак-Бата»'],
|
|
36
|
+
['Ак-Бата 2', 'Ак Бата 2', 'ЖК Ак-Бата 2', 'ЖК Ак Бата 2', 'жилой комплекс Ак-Бата 2', 'Стройка ЖК «Ак-Бата 2»'],
|
|
37
|
+
['Манас', 'ЖК Манас', 'жилой комплекс Манас', 'Стройка ЖК «Манас»'],
|
|
38
|
+
['ЖК Сулайман Тоо', 'ЖК Сулайман-Тоо', 'жилой комплекс Сулайман Тоо', 'жилой комплекс Сулайман-Тоо', 'Жилой комплекс "Сулайман Тоо"'],
|
|
39
|
+
['Таберик', 'ЖК Таберик', 'жилой комплекс Таберик', 'Таберик, жилой комплекс'],
|
|
40
|
+
['Юджин', 'ЖК Юджин', 'жилой комплекс Юджин', 'Юджин, жилой комплекс'],
|
|
41
|
+
]),
|
|
42
|
+
streets: locationEntries([
|
|
43
|
+
['Аскар Шакиров көчөсү'],
|
|
44
|
+
['Асранкулов көчөсү'],
|
|
45
|
+
['Иминов көчөсү'],
|
|
46
|
+
['Келечек көчөсү'],
|
|
47
|
+
['Улица Хан-Ордо', 'ул. Хан-Ордо'],
|
|
48
|
+
['Улица Кочконова Турдали', 'ул. Кочконова Турдали'],
|
|
49
|
+
['Кулатов көчөсү'],
|
|
50
|
+
['Улица Курманжан датка', 'ул. Курманжан датка'],
|
|
51
|
+
['Улица Мамырова', 'ул. Мамырова'],
|
|
52
|
+
['Улица Монуева', 'ул. Монуева'],
|
|
53
|
+
['Улица Насирдинова', 'ул. Насирдинова'],
|
|
54
|
+
['Ошская улица', 'улица Ошская', 'ул. Ошская'],
|
|
55
|
+
['Улица Раимбекова', 'ул. Раимбекова'],
|
|
56
|
+
['Саргалчаев көчөсү'],
|
|
57
|
+
['Ташмамата Джумабаева улица', 'улица Ташмамата Джумабаева', 'ул. Ташмамата Джумабаева'],
|
|
58
|
+
['Тоголок Молдо көчөсү'],
|
|
59
|
+
['Төрөбек Абакир уулу көчөсү'],
|
|
23
60
|
]),
|
|
24
61
|
}),
|
|
25
62
|
});
|
|
@@ -69,6 +69,7 @@ export const KZ_ALMATY_CLEANED_RESIDENTIAL_EXTENSIONS = Object.freeze({
|
|
|
69
69
|
row('Шахристан', 'Shakhristan', 'Shahristan'),
|
|
70
70
|
row('Шугыла', 'Шұғыла', 'Shugyla', 'Shughyla', 'ЖК Шұғыла'),
|
|
71
71
|
row('Юбилейный', 'Yubileinyi', 'Yubileynyi'),
|
|
72
|
+
row('Премьера', 'Premiera', 'Премьера ЖК', 'ЖК Премьера'),
|
|
72
73
|
]),
|
|
73
74
|
}),
|
|
74
75
|
});
|
|
@@ -11,4 +11,22 @@ export const KZ_CITY_RESIDENTIAL_EXTENSIONS = Object.freeze({
|
|
|
11
11
|
['Трилистник', 'ЖК Трилистник', 'Жилой комплекс Трилистник'],
|
|
12
12
|
]),
|
|
13
13
|
}),
|
|
14
|
+
Shymkent: Object.freeze({
|
|
15
|
+
residentialComplexes: locationEntries([
|
|
16
|
+
['Кок-Жайлау', 'Кок жайлау', 'ЖК Кок-Жайлау', 'ЖК Кок жайлау', 'Жилой комплекс Кок жайлау'],
|
|
17
|
+
['Биик', 'БИИК', 'Biik', 'ЖК Биик', 'ЖК БИИК', 'жилой комплекс Биик'],
|
|
18
|
+
]),
|
|
19
|
+
}),
|
|
20
|
+
Taraz: Object.freeze({
|
|
21
|
+
residentialComplexes: locationEntries([
|
|
22
|
+
['Атшабар', 'Atshabar', 'ЖК Атшабар', 'жилой комплекс Атшабар'],
|
|
23
|
+
]),
|
|
24
|
+
}),
|
|
25
|
+
Oskemen: Object.freeze({
|
|
26
|
+
residentialComplexes: locationEntries([
|
|
27
|
+
['Оазис', 'ЖК Оазис', 'Жилой комплекс Оазис', 'Жилой Комплекс "Оазис"', 'Оазис жилой комплекс'],
|
|
28
|
+
['Рахат', 'ЖК Рахат', 'Рахат жилой комплекс'],
|
|
29
|
+
['Renesans', 'ЖК Renesans', 'ЖК "Renesans"', 'Жилой комплекс Renesans'],
|
|
30
|
+
]),
|
|
31
|
+
}),
|
|
14
32
|
});
|
|
@@ -3,14 +3,22 @@ import { locationEntries } from './location-merge.js';
|
|
|
3
3
|
export const KZ_KOSTANAY_LOCATION_EXTENSIONS = Object.freeze({
|
|
4
4
|
Kostanay: Object.freeze({
|
|
5
5
|
microdistricts: locationEntries([
|
|
6
|
+
['1-й микрорайон', '1 микрорайон', '1 мкр', '1 мкр.', '1-й мкр'],
|
|
7
|
+
['2-й микрорайон', '2 микрорайон', '2 мкр', '2 мкр.', '2-й мкр'],
|
|
6
8
|
['3-й микрорайон', '3 микрорайон', '3 мкр', '3 мкр.', '3-й мкр'],
|
|
7
9
|
['5-й микрорайон', '5 микрорайон', '5 мкр', '5 мкр.', '5-й мкр'],
|
|
10
|
+
['6-й микрорайон', '6 микрорайон', '6 мкр', '6 мкр.', '6-й мкр'],
|
|
11
|
+
['7-й микрорайон', '7 микрорайон', '7 мкр', '7 мкр.', '7-й мкр'],
|
|
12
|
+
['8-й микрорайон', '8 микрорайон', '8 мкр', '8 мкр.', '8-й мкр'],
|
|
8
13
|
['9-й микрорайон', '9 микрорайон', '9 мкр', '9 мкр.', '9-й мкр'],
|
|
9
14
|
['Наурыз', 'Микрорайон Наурыз', 'микрорайон Наурыз', 'мкр Наурыз', 'Nauryz'],
|
|
10
15
|
['Береке', 'Микрорайон Береке', 'микрорайон Береке', 'мкр Береке', 'Bereke'],
|
|
11
16
|
]),
|
|
12
17
|
residentialComplexes: locationEntries([
|
|
13
18
|
['Алтын Арман', 'Алтын-Арман', 'Altyn Arman', 'ЖК Алтын Арман', 'ЖК Алтын-Арман', 'жилой комплекс Алтын Арман'],
|
|
19
|
+
['Керемет', 'Keremet', 'ЖК Керемет', 'жилой комплекс Керемет'],
|
|
20
|
+
['Марсель', 'Marsel', 'Marseille', 'ЖК Марсель', 'жилой комплекс Марсель'],
|
|
21
|
+
['Rakhat', 'Рахат', 'ЖК Rakhat', 'ЖК Рахат', 'жилой комплекс Rakhat'],
|
|
14
22
|
]),
|
|
15
23
|
}),
|
|
16
24
|
});
|
|
@@ -1,27 +1,43 @@
|
|
|
1
1
|
import { locationEntries } from './location-merge.js';
|
|
2
2
|
|
|
3
3
|
export const KZ_MICRODISTRICT_EXTENSIONS = Object.freeze({
|
|
4
|
+
Almaty: Object.freeze({
|
|
5
|
+
microdistricts: locationEntries([
|
|
6
|
+
['1-й микрорайон', '1 микрорайон', '1 мкр', '1 мкр.', '1-й мкр', '1 microdistrict'],
|
|
7
|
+
['6-й микрорайон', '6 микрорайон', '6 мкр', '6 мкр.', '6-й мкр', '6 microdistrict'],
|
|
8
|
+
['12-й микрорайон', '12 микрорайон', '12 мкр', '12 мкр.', '12-й мкр', '12 microdistrict'],
|
|
9
|
+
]),
|
|
10
|
+
}),
|
|
4
11
|
Aktobe: Object.freeze({
|
|
5
12
|
microdistricts: locationEntries([
|
|
6
13
|
['1-й микрорайон', '1 микрорайон', '1 мкр', '1 мкр.', '1-й мкр'],
|
|
14
|
+
['2-й микрорайон', '2 микрорайон', '2 мкр', '2 мкр.', '2-й мкр'],
|
|
7
15
|
['3-й микрорайон', '3 микрорайон', '3 мкр', '3 мкр.', '3-й мкр'],
|
|
16
|
+
['4-й микрорайон', '4 микрорайон', '4 мкр', '4 мкр.', '4-й мкр'],
|
|
8
17
|
['8 microdistrict', '8-й микрорайон', '8 микрорайон', '8 мкр', '8 мкр.', '8-й мкр'],
|
|
9
18
|
]),
|
|
10
19
|
}),
|
|
11
20
|
Karaganda: Object.freeze({
|
|
12
21
|
microdistricts: locationEntries([
|
|
22
|
+
['15-й микрорайон', '15 микрорайон', '15 мкр', '15 мкр.', '15-й мкр'],
|
|
13
23
|
['16-й микрорайон', '16 микрорайон', '16 мкр', '16 мкр.', '16-й мкр'],
|
|
24
|
+
['19-й микрорайон', '19 микрорайон', '19 мкр', '19 мкр.', '19-й мкр'],
|
|
14
25
|
]),
|
|
15
26
|
}),
|
|
16
27
|
Shymkent: Object.freeze({
|
|
17
28
|
microdistricts: locationEntries([
|
|
18
29
|
['8-й микрорайон', '8 микрорайон', '8 мкр', '8 мкр.', '8-й мкр'],
|
|
30
|
+
['11-й микрорайон', '11 микрорайон', '11 мкр', '11 мкр.', '11-й мкр'],
|
|
19
31
|
['15-й микрорайон', '15 микрорайон', '15 мкр', '15 мкр.', '15-й мкр'],
|
|
20
32
|
['Нурсат', 'Микрорайон Нурсат', 'микрорайон Нурсат', 'мкр Нурсат'],
|
|
21
33
|
]),
|
|
22
34
|
}),
|
|
23
35
|
Taraz: Object.freeze({
|
|
24
36
|
microdistricts: locationEntries([
|
|
37
|
+
['Алатау', 'Микрорайон Алатау', 'микрорайон Алатау', 'мкр Алатау', 'Alatau'],
|
|
38
|
+
['Мынбулак', 'Микрорайон Мынбулак', 'микрорайон Мынбулак', 'мкр Мынбулак', 'Мыңбұлақ', 'Mynbulak'],
|
|
39
|
+
['Самал', 'Микрорайон Самал', 'микрорайон Самал', 'мкр Самал', 'Samal'],
|
|
40
|
+
['Шанырак', 'Микрорайон Шанырак', 'микрорайон Шанырак', 'мкр Шанырак', 'Шаңырақ', 'Shanyrak'],
|
|
25
41
|
['Улы Дала', 'Ұлы Дала', 'Микрорайон Улы Дала', 'микрорайон Улы Дала', 'мкр Улы Дала', 'Uly Dala'],
|
|
26
42
|
]),
|
|
27
43
|
}),
|
|
@@ -7,5 +7,8 @@ export const KZ_PAVLODAR_LOCATION_EXTENSIONS = Object.freeze({
|
|
|
7
7
|
['Сарыарка', 'Микрорайон Сарыарка', 'микрорайон Сарыарка', 'мкр Сарыарка', 'Saryarka'],
|
|
8
8
|
['Усольский', 'Усольский микрорайон', 'микрорайон Усольский', 'мкр Усольский', 'Usolsky'],
|
|
9
9
|
]),
|
|
10
|
+
residentialComplexes: locationEntries([
|
|
11
|
+
['Ирина', 'Irina', 'ЖК Ирина', 'жилой комплекс Ирина'],
|
|
12
|
+
]),
|
|
10
13
|
}),
|
|
11
14
|
});
|
package/src/locations-runtime.js
CHANGED
|
@@ -6,11 +6,14 @@ import {
|
|
|
6
6
|
matchUkraineSecondaryCity,
|
|
7
7
|
} from './locations.js';
|
|
8
8
|
import { LOCATION_LIST_KEYS, mergeLocationCountries } from './location-merge.js';
|
|
9
|
+
import { canonicalCity } from './geography.js';
|
|
9
10
|
import { KG_LOCATION_EXTENSIONS } from './kg-location-extensions.js';
|
|
11
|
+
import { KG_BISHKEK_AREA_EXTENSIONS } from './kg-bishkek-area-extensions.js';
|
|
10
12
|
import { KG_BISHKEK_STREET_EXTENSIONS } from './kg-bishkek-street-extensions.js';
|
|
11
13
|
import { KG_BISHKEK_RESIDENTIAL_EXTENSIONS } from './kg-bishkek-residential-extensions.js';
|
|
12
14
|
import { KG_OSH_LOCATION_EXTENSIONS } from './kg-osh-location-extensions.js';
|
|
13
15
|
import { KG_KARAKOL_LOCATION_EXTENSIONS } from './kg-karakol-location-extensions.js';
|
|
16
|
+
import { KG_JALAL_ABAD_LOCATION_EXTENSIONS } from './kg-jalal-abad-location-extensions.js';
|
|
14
17
|
import { KZ_DISTRICT_EXTENSIONS } from './kz-district-extensions.js';
|
|
15
18
|
import { KZ_SCRAPED_ADDRESS_EXTENSIONS as KZ_ADDRESS_EXTENSIONS } from './kz-address-extensions.js';
|
|
16
19
|
import { KZ_PRIMARY_ADDRESS_EXTENSIONS } from './kz-primary-address-extensions.js';
|
|
@@ -28,17 +31,46 @@ import { KZ_CITY_RESIDENTIAL_EXTENSIONS } from './kz-city-residential-extensions
|
|
|
28
31
|
import { UA_RESIDENTIAL_EXTENSIONS } from './ua-residential-extensions.js';
|
|
29
32
|
import { UA_CHERNIHIV_RESIDENTIAL_EXTENSIONS } from './ua-chernihiv-residential-extensions.js';
|
|
30
33
|
import { UA_KHARKIV_MICRODISTRICT_EXTENSIONS } from './ua-kharkiv-microdistrict-extensions.js';
|
|
34
|
+
import { UA_KYIV_STREET_EXTENSIONS } from './ua-kyiv-street-extensions.js';
|
|
35
|
+
import { UA_KHARKIV_STREET_EXTENSIONS } from './ua-kharkiv-street-extensions.js';
|
|
36
|
+
import { UA_DNIPRO_STREET_EXTENSIONS } from './ua-dnipro-street-extensions.js';
|
|
37
|
+
import { UA_ZAPORIZHZHIA_STREET_EXTENSIONS } from './ua-zaporizhzhia-street-extensions.js';
|
|
38
|
+
import { UA_KRYVYI_RIH_STREET_EXTENSIONS } from './ua-kryvyi-rih-street-extensions.js';
|
|
39
|
+
import { UA_MYKOLAIV_STREET_EXTENSIONS } from './ua-mykolaiv-street-extensions.js';
|
|
40
|
+
import { UA_VINNYTSIA_STREET_EXTENSIONS } from './ua-vinnytsia-street-extensions.js';
|
|
41
|
+
import { UA_CHERNIHIV_STREET_EXTENSIONS } from './ua-chernihiv-street-extensions.js';
|
|
31
42
|
import { UZ_TASHKENT_CONTEXT_EXTENSIONS } from './uz-tashkent-context-extensions.js';
|
|
43
|
+
import { UZ_TASHKENT_REVIEWED_RESIDENTIAL_EXTENSIONS } from './uz-tashkent-reviewed-residential-extensions.js';
|
|
44
|
+
import { UZ_TASHKENT_REVIEWED_STREET_EXTENSIONS } from './uz-tashkent-reviewed-street-extensions.js';
|
|
32
45
|
import { UZ_SAMARKAND_CONTEXT_EXTENSIONS } from './uz-samarkand-context-extensions.js';
|
|
33
46
|
import { UZ_BUKHARA_LOCATION_EXTENSIONS } from './uz-bukhara-location-extensions.js';
|
|
47
|
+
import { UZ_NUKUS_STREET_EXTENSIONS } from './uz-nukus-street-extensions.js';
|
|
48
|
+
import { UZ_NAMANGAN_STREET_EXTENSIONS } from './uz-namangan-street-extensions.js';
|
|
49
|
+
import { UZ_FERGANA_STREET_EXTENSIONS } from './uz-fergana-street-extensions.js';
|
|
50
|
+
import { UZ_ANDIJAN_STREET_EXTENSIONS } from './uz-andijan-street-extensions.js';
|
|
51
|
+
import { UZ_QARSHI_STREET_EXTENSIONS } from './uz-qarshi-street-extensions.js';
|
|
34
52
|
|
|
35
53
|
export { UA_REGION_ENTRIES, UA_SECONDARY_CITIES, matchUkraineRegion, matchUkraineSecondaryCity };
|
|
36
54
|
|
|
55
|
+
const TASHKENT_SHIFOKORLAR_STREET_ADDRESS_FORMS = new Set([
|
|
56
|
+
'Shifokorlar-5',
|
|
57
|
+
'Shifokorlar-6',
|
|
58
|
+
]);
|
|
59
|
+
|
|
37
60
|
// Sattepo is a mahalla in the canonical Samarkand layer. The legacy base seed
|
|
38
61
|
// also exposes the same physical place as the Sartepa microdistrict; remove
|
|
39
|
-
// that duplicate owner before runtime extensions are merged.
|
|
62
|
+
// that duplicate owner before runtime extensions are merged. Shifokorlar-5/6
|
|
63
|
+
// are street/address forms, not standalone Tashkent local areas, so remove the
|
|
64
|
+
// stale local-area owners before the reviewed street extension is merged.
|
|
40
65
|
const UZ_RUNTIME_BASE_LOCATION_DICTIONARIES = Object.freeze({
|
|
41
66
|
...(BASE_LOCATION_DICTIONARIES.UZ || {}),
|
|
67
|
+
Tashkent: Object.freeze({
|
|
68
|
+
...(BASE_LOCATION_DICTIONARIES.UZ?.Tashkent || {}),
|
|
69
|
+
localAreas: Object.freeze(
|
|
70
|
+
(BASE_LOCATION_DICTIONARIES.UZ?.Tashkent?.localAreas || [])
|
|
71
|
+
.filter(({ name }) => !TASHKENT_SHIFOKORLAR_STREET_ADDRESS_FORMS.has(name)),
|
|
72
|
+
),
|
|
73
|
+
}),
|
|
42
74
|
Samarkand: Object.freeze({
|
|
43
75
|
...(BASE_LOCATION_DICTIONARIES.UZ?.Samarkand || {}),
|
|
44
76
|
microdistricts: Object.freeze(
|
|
@@ -48,6 +80,25 @@ const UZ_RUNTIME_BASE_LOCATION_DICTIONARIES = Object.freeze({
|
|
|
48
80
|
}),
|
|
49
81
|
});
|
|
50
82
|
|
|
83
|
+
const KG_LEGACY_LOCATION_DICTIONARIES = mergeLocationCountries(
|
|
84
|
+
BASE_LOCATION_DICTIONARIES.KG || {},
|
|
85
|
+
KG_LOCATION_EXTENSIONS,
|
|
86
|
+
KG_BISHKEK_AREA_EXTENSIONS,
|
|
87
|
+
KG_BISHKEK_STREET_EXTENSIONS,
|
|
88
|
+
KG_BISHKEK_RESIDENTIAL_EXTENSIONS,
|
|
89
|
+
KG_OSH_LOCATION_EXTENSIONS,
|
|
90
|
+
KG_KARAKOL_LOCATION_EXTENSIONS,
|
|
91
|
+
KG_JALAL_ABAD_LOCATION_EXTENSIONS,
|
|
92
|
+
);
|
|
93
|
+
const {
|
|
94
|
+
'Jalal-Abad': legacyJalalAbadLocations,
|
|
95
|
+
...KG_CANONICAL_LOCATION_DICTIONARIES
|
|
96
|
+
} = KG_LEGACY_LOCATION_DICTIONARIES;
|
|
97
|
+
const KG_RUNTIME_LOCATION_DICTIONARIES = Object.freeze({
|
|
98
|
+
...KG_CANONICAL_LOCATION_DICTIONARIES,
|
|
99
|
+
Manas: KG_CANONICAL_LOCATION_DICTIONARIES.Manas || legacyJalalAbadLocations || Object.freeze({}),
|
|
100
|
+
});
|
|
101
|
+
|
|
51
102
|
export const LOCATION_DICTIONARIES = Object.freeze({
|
|
52
103
|
...BASE_LOCATION_DICTIONARIES,
|
|
53
104
|
UA: mergeLocationCountries(
|
|
@@ -55,12 +106,27 @@ export const LOCATION_DICTIONARIES = Object.freeze({
|
|
|
55
106
|
UA_RESIDENTIAL_EXTENSIONS,
|
|
56
107
|
UA_CHERNIHIV_RESIDENTIAL_EXTENSIONS,
|
|
57
108
|
UA_KHARKIV_MICRODISTRICT_EXTENSIONS,
|
|
109
|
+
UA_KYIV_STREET_EXTENSIONS,
|
|
110
|
+
UA_KHARKIV_STREET_EXTENSIONS,
|
|
111
|
+
UA_DNIPRO_STREET_EXTENSIONS,
|
|
112
|
+
UA_ZAPORIZHZHIA_STREET_EXTENSIONS,
|
|
113
|
+
UA_KRYVYI_RIH_STREET_EXTENSIONS,
|
|
114
|
+
UA_MYKOLAIV_STREET_EXTENSIONS,
|
|
115
|
+
UA_VINNYTSIA_STREET_EXTENSIONS,
|
|
116
|
+
UA_CHERNIHIV_STREET_EXTENSIONS,
|
|
58
117
|
),
|
|
59
118
|
UZ: mergeLocationCountries(
|
|
60
119
|
UZ_RUNTIME_BASE_LOCATION_DICTIONARIES,
|
|
61
120
|
UZ_TASHKENT_CONTEXT_EXTENSIONS,
|
|
121
|
+
UZ_TASHKENT_REVIEWED_RESIDENTIAL_EXTENSIONS,
|
|
122
|
+
UZ_TASHKENT_REVIEWED_STREET_EXTENSIONS,
|
|
62
123
|
UZ_SAMARKAND_CONTEXT_EXTENSIONS,
|
|
63
124
|
UZ_BUKHARA_LOCATION_EXTENSIONS,
|
|
125
|
+
UZ_NUKUS_STREET_EXTENSIONS,
|
|
126
|
+
UZ_NAMANGAN_STREET_EXTENSIONS,
|
|
127
|
+
UZ_FERGANA_STREET_EXTENSIONS,
|
|
128
|
+
UZ_ANDIJAN_STREET_EXTENSIONS,
|
|
129
|
+
UZ_QARSHI_STREET_EXTENSIONS,
|
|
64
130
|
),
|
|
65
131
|
KZ: mergeLocationCountries(
|
|
66
132
|
BASE_LOCATION_DICTIONARIES.KZ || {},
|
|
@@ -79,18 +145,17 @@ export const LOCATION_DICTIONARIES = Object.freeze({
|
|
|
79
145
|
KZ_MICRODISTRICT_EXTENSIONS,
|
|
80
146
|
KZ_CITY_RESIDENTIAL_EXTENSIONS,
|
|
81
147
|
),
|
|
82
|
-
KG:
|
|
83
|
-
BASE_LOCATION_DICTIONARIES.KG || {},
|
|
84
|
-
KG_LOCATION_EXTENSIONS,
|
|
85
|
-
KG_BISHKEK_STREET_EXTENSIONS,
|
|
86
|
-
KG_BISHKEK_RESIDENTIAL_EXTENSIONS,
|
|
87
|
-
KG_OSH_LOCATION_EXTENSIONS,
|
|
88
|
-
KG_KARAKOL_LOCATION_EXTENSIONS,
|
|
89
|
-
),
|
|
148
|
+
KG: KG_RUNTIME_LOCATION_DICTIONARIES,
|
|
90
149
|
});
|
|
91
150
|
|
|
151
|
+
function canonicalDictionaryCity(countryCode, city) {
|
|
152
|
+
if (!city) return null;
|
|
153
|
+
return canonicalCity(city, countryCode) || city;
|
|
154
|
+
}
|
|
155
|
+
|
|
92
156
|
export function dictionaryFor(countryCode, city) {
|
|
93
|
-
|
|
157
|
+
const canonical = canonicalDictionaryCity(countryCode, city);
|
|
158
|
+
return canonical ? LOCATION_DICTIONARIES[countryCode]?.[canonical] || null : null;
|
|
94
159
|
}
|
|
95
160
|
|
|
96
161
|
export function locationCities(countryCode) {
|
|
@@ -99,7 +164,8 @@ export function locationCities(countryCode) {
|
|
|
99
164
|
|
|
100
165
|
export function matchDictionaryLocation(text, countryCode, city = null) {
|
|
101
166
|
const country = locationCities(countryCode);
|
|
102
|
-
const
|
|
167
|
+
const canonical = canonicalDictionaryCity(countryCode, city);
|
|
168
|
+
const cities = canonical && country[canonical] ? [[canonical, country[canonical]]] : Object.entries(country);
|
|
103
169
|
const value = String(text || '');
|
|
104
170
|
let best = null;
|
|
105
171
|
|
|
@@ -120,4 +186,4 @@ export function matchDictionaryLocation(text, countryCode, city = null) {
|
|
|
120
186
|
if (!best) return null;
|
|
121
187
|
const { start: _start, end: _end, ...result } = best;
|
|
122
188
|
return result;
|
|
123
|
-
}
|
|
189
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UA_CHERNIHIV_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Chernihiv: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['провулок Коти', 'пров. Коти'],
|
|
7
|
+
['провулок Квітки Цісик', 'пров. Квітки Цісик'],
|
|
8
|
+
['провулок Поліський', 'пров. Поліський'],
|
|
9
|
+
['вулиця Євгена Онацького', 'вул. Євгена Онацького'],
|
|
10
|
+
]),
|
|
11
|
+
}),
|
|
12
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UA_DNIPRO_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Dnipro: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['Батальона «Днепр» бульвар', 'бульвар Батальона «Днепр»', 'бул. Батальона «Днепр»', 'Батальона «Днепр» бул.'],
|
|
7
|
+
['Славы бульвар', 'бульвар Славы', 'Славы бул.'],
|
|
8
|
+
['Звёздный бульвар', 'бульвар Звёздный', 'Звёздный бул.'],
|
|
9
|
+
['Театральный бульвар', 'бульвар Театральный', 'Театральный бул.'],
|
|
10
|
+
['Черновола бульвар', 'бульвар Черновола', 'Черновола бул.'],
|
|
11
|
+
['Кельнський бульвар', 'бульвар Кельнський', 'Кельнський бул.'],
|
|
12
|
+
]),
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UA_KHARKIV_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Kharkiv: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['Гончаровский бульвар', 'Гончаровский бул.'],
|
|
7
|
+
['Жасминовый бульвар', 'Жасминовый бул.'],
|
|
8
|
+
['Профсоюзный бульвар', 'Профсоюзный бул.'],
|
|
9
|
+
['бульвар Фронтовиков', 'бул. Фронтовиков'],
|
|
10
|
+
['Садовый бульвар', 'Садовый бул.'],
|
|
11
|
+
['бульвар Юрьева', 'бул. Юрьева'],
|
|
12
|
+
['бульвар Богдана Хмельницкого', 'бул. Богдана Хмельницкого'],
|
|
13
|
+
['бульвар Дмитрия Антоновича', 'бул. Дмитрия Антоновича'],
|
|
14
|
+
]),
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UA_KRYVYI_RIH_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
'Kryvyi Rih': Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['вулиця Генерала Безручка', 'вул. Генерала Безручка'],
|
|
7
|
+
['Свято-Вознесенська вулиця', 'вулиця Свято-Вознесенська', 'вул. Свято-Вознесенська'],
|
|
8
|
+
['вулиця Пелагеї Литвинової', 'вул. Пелагеї Литвинової'],
|
|
9
|
+
['Низова вулиця', 'вулиця Низова', 'вул. Низова'],
|
|
10
|
+
['Андижанська вулиця', 'вулиця Андижанська', 'вул. Андижанська'],
|
|
11
|
+
['вулиця 80-ї Десантно-Штурмової Бригади', 'вул. 80-ї Десантно-Штурмової Бригади'],
|
|
12
|
+
['вулиця Віри Нікітіної', 'вул. Віри Нікітіної'],
|
|
13
|
+
['улица Андрея Дробиленко', 'ул. Андрея Дробиленко'],
|
|
14
|
+
['Софии Русовой улица', 'улица Софии Русовой', 'ул. Софии Русовой'],
|
|
15
|
+
['Панаса Мирного улица', 'улица Панаса Мирного', 'ул. Панаса Мирного'],
|
|
16
|
+
['Почтовый проспект', 'проспект Почтовый', 'просп. Почтовый', 'пр-т Почтовый'],
|
|
17
|
+
['Победы проспект', 'проспект Победы', 'просп. Победы', 'пр-т Победы'],
|
|
18
|
+
['Центральный проспект', 'проспект Центральный', 'просп. Центральный', 'пр-т Центральный'],
|
|
19
|
+
['проспект Ивана Нечуя-Левицкого', 'просп. Ивана Нечуя-Левицкого', 'пр-т Ивана Нечуя-Левицкого'],
|
|
20
|
+
['проспект Мира', 'просп. Мира', 'пр-т Мира'],
|
|
21
|
+
['провулок Тельмана', 'пров. Тельмана'],
|
|
22
|
+
['Рудничний провулок', 'провулок Рудничний', 'пров. Рудничний'],
|
|
23
|
+
['Гімназичний провулок', 'провулок Гімназичний', 'пров. Гімназичний'],
|
|
24
|
+
['3-й Сальський провулок', 'провулок 3-й Сальський', 'пров. 3-й Сальський'],
|
|
25
|
+
['Варшавский переулок', 'переулок Варшавский', 'пер. Варшавский'],
|
|
26
|
+
['Бугский переулок', 'переулок Бугский', 'пер. Бугский'],
|
|
27
|
+
['переулок Сергея Байдака', 'пер. Сергея Байдака'],
|
|
28
|
+
['переулок Ампера', 'пер. Ампера'],
|
|
29
|
+
['Артековский переулок', 'переулок Артековский', 'пер. Артековский'],
|
|
30
|
+
['Козацька вулиця', 'вулиця Козацька', 'вул. Козацька'],
|
|
31
|
+
['Чехословацька вулиця', 'вулиця Чехословацька', 'вул. Чехословацька'],
|
|
32
|
+
['вулиця Нестора Махна', 'вул. Нестора Махна'],
|
|
33
|
+
['вулиця Волонтерів', 'вул. Волонтерів'],
|
|
34
|
+
['Карагандинська вулиця', 'вулиця Карагандинська', 'вул. Карагандинська'],
|
|
35
|
+
['Каменедробильна вулиця', 'вулиця Каменедробильна', 'вул. Каменедробильна'],
|
|
36
|
+
['вулиця Гойї', 'вул. Гойї'],
|
|
37
|
+
['Репина улица', 'улица Репина', 'ул. Репина'],
|
|
38
|
+
['Костя Гордиенко улица', 'улица Костя Гордиенко', 'ул. Костя Гордиенко'],
|
|
39
|
+
['Южный проспект', 'проспект Южный', 'просп. Южный', 'пр-т Южный'],
|
|
40
|
+
['Университетский проспект', 'проспект Университетский', 'просп. Университетский', 'пр-т Университетский'],
|
|
41
|
+
['200-летия Кривого Рога проспект', 'проспект 200-летия Кривого Рога', 'просп. 200-летия Кривого Рога', 'пр-т 200-летия Кривого Рога'],
|
|
42
|
+
['Економічний провулок', 'провулок Економічний', 'пров. Економічний'],
|
|
43
|
+
['Азовський провулок', 'провулок Азовський', 'пров. Азовський'],
|
|
44
|
+
['Рубіновий провулок', 'провулок Рубіновий', 'пров. Рубіновий'],
|
|
45
|
+
['провулок Слави', 'пров. Слави'],
|
|
46
|
+
['Грушевского переулок', 'переулок Грушевского', 'пер. Грушевского'],
|
|
47
|
+
['переулок Казака Рога', 'пер. Казака Рога'],
|
|
48
|
+
['Новолозоватский переулок', 'переулок Новолозоватский', 'пер. Новолозоватский'],
|
|
49
|
+
]),
|
|
50
|
+
}),
|
|
51
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UA_MYKOLAIV_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Mykolaiv: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['провулок Курортний', 'пров. Курортний'],
|
|
7
|
+
['Армійський провулок', 'провулок Армійський', 'пров. Армійський'],
|
|
8
|
+
['Фінський провулок', 'провулок Фінський', 'пров. Фінський'],
|
|
9
|
+
['Міжрічковий провулок', 'провулок Міжрічковий', 'пров. Міжрічковий'],
|
|
10
|
+
['Перший провулок', 'провулок Перший', 'пров. Перший'],
|
|
11
|
+
['Очаковский переулок', 'переулок Очаковский', 'пер. Очаковский'],
|
|
12
|
+
['Измаильский переулок', 'переулок Измаильский', 'пер. Измаильский'],
|
|
13
|
+
['4-й Парниковый переулок', 'переулок 4-й Парниковый', 'пер. 4-й Парниковый'],
|
|
14
|
+
['1-й Парниковый переулок', 'переулок 1-й Парниковый', 'пер. 1-й Парниковый'],
|
|
15
|
+
['2-й Парниковый переулок', 'переулок 2-й Парниковый', 'пер. 2-й Парниковый'],
|
|
16
|
+
['Офицерский бульвар', 'бульвар Офицерский', 'Офицерский бул.'],
|
|
17
|
+
['Бузький бульвар', 'бульвар Бузький', 'бул. Бузький', 'Бугский бульвар', 'бульвар Бугский', 'бул. Бугский'],
|
|
18
|
+
]),
|
|
19
|
+
}),
|
|
20
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UA_VINNYTSIA_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Vinnytsia: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['Свободы бульвар', 'бульвар Свободы', 'бул. Свободы'],
|
|
7
|
+
['Марко Вовчок бульвар', 'бульвар Марко Вовчок', 'Марко Вовчок бул.'],
|
|
8
|
+
['провулок Івана Світличного', 'пров. Івана Світличного'],
|
|
9
|
+
['вулиця Уласа Самчука', 'вул. Уласа Самчука'],
|
|
10
|
+
['Ольги Кобылянской улица', 'улица Ольги Кобылянской', 'ул. Ольги Кобылянской'],
|
|
11
|
+
['Марии Гавриш улица', 'улица Марии Гавриш', 'ул. Марии Гавриш'],
|
|
12
|
+
['Августовская улица', 'улица Августовская', 'ул. Августовская'],
|
|
13
|
+
['Днепровская улица', 'улица Днепровская', 'ул. Днепровская'],
|
|
14
|
+
['Юности проспект', 'проспект Юности', 'просп. Юности', 'пр-т Юности'],
|
|
15
|
+
['проспект Космонавтів', 'просп. Космонавтів', 'пр-т Космонавтів'],
|
|
16
|
+
['Коцюбинского проспект', 'проспект Коцюбинского', 'просп. Коцюбинского', 'пр-т Коцюбинского'],
|
|
17
|
+
['2-й провулок Тетяни Яблонської', 'провулок 2-й Тетяни Яблонської', 'пров. 2-й Тетяни Яблонської'],
|
|
18
|
+
['1-й провулок Тетяни Яблонської', 'провулок 1-й Тетяни Яблонської', 'пров. 1-й Тетяни Яблонської'],
|
|
19
|
+
['1-й Восточный переулок', 'переулок 1-й Восточный', 'пер. 1-й Восточный'],
|
|
20
|
+
['Привокзальный переулок', 'переулок Привокзальный', 'пер. Привокзальный'],
|
|
21
|
+
['1-й Ботанический переулок', 'переулок 1-й Ботанический', 'пер. 1-й Ботанический'],
|
|
22
|
+
['3-й Руданского переулок', 'переулок 3-й Руданского', 'пер. 3-й Руданского'],
|
|
23
|
+
['Игоря Савченко переулок', 'переулок Игоря Савченко', 'пер. Игоря Савченко'],
|
|
24
|
+
['2-й Ботанический переулок', 'переулок 2-й Ботанический', 'пер. 2-й Ботанический'],
|
|
25
|
+
['2-й Одесский переулок', 'переулок 2-й Одесский', 'пер. 2-й Одесский'],
|
|
26
|
+
]),
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UA_ZAPORIZHZHIA_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Zaporizhzhia: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['вулиця Білогірська', 'вул. Білогірська'],
|
|
7
|
+
['вулиця Мирна', 'вул. Мирна'],
|
|
8
|
+
['вулиця Молочна', 'вул. Молочна'],
|
|
9
|
+
['вулиця Почаївська', 'вул. Почаївська'],
|
|
10
|
+
['вулиця Радіальна', 'вул. Радіальна'],
|
|
11
|
+
['вулиця Радісна', 'вул. Радісна'],
|
|
12
|
+
['вулиця Садівництва', 'вул. Садівництва'],
|
|
13
|
+
['вулиця Слобожанська', 'вул. Слобожанська'],
|
|
14
|
+
['вулиця Теслярська', 'вул. Теслярська'],
|
|
15
|
+
['вулиця Фонтанна', 'вул. Фонтанна'],
|
|
16
|
+
['проспект Інженера Преображенського', 'просп. Інженера Преображенського', 'пр-т Інженера Преображенського'],
|
|
17
|
+
['проспект Героїв Національної Гвардії України', 'просп. Героїв Національної Гвардії України', 'пр-т Героїв Національної Гвардії України'],
|
|
18
|
+
['проспект Металургів', 'просп. Металургів', 'пр-т Металургів'],
|
|
19
|
+
['проспект Соборний', 'просп. Соборний', 'пр-т Соборний'],
|
|
20
|
+
['проспект Ювілейний', 'просп. Ювілейний', 'пр-т Ювілейний'],
|
|
21
|
+
['Арабатський провулок', 'провулок Арабатський', 'пров. Арабатський'],
|
|
22
|
+
['Балхашський провулок', 'провулок Балхашський', 'пров. Балхашський'],
|
|
23
|
+
['Березневий провулок', 'провулок Березневий', 'пров. Березневий'],
|
|
24
|
+
['Вірний провулок', 'провулок Вірний', 'пров. Вірний'],
|
|
25
|
+
['Галицький провулок', 'провулок Галицький', 'пров. Галицький'],
|
|
26
|
+
['Гурзуфський провулок', 'провулок Гурзуфський', 'пров. Гурзуфський'],
|
|
27
|
+
['Гімалайський провулок', 'провулок Гімалайський', 'пров. Гімалайський'],
|
|
28
|
+
['Дніпрорудний провулок', 'провулок Дніпрорудний', 'пров. Дніпрорудний'],
|
|
29
|
+
['Олега Мельниченка провулок', 'провулок Олега Мельниченка', 'пров. Олега Мельниченка'],
|
|
30
|
+
['Прохолодний провулок', 'провулок Прохолодний', 'пров. Прохолодний'],
|
|
31
|
+
['Спасівський провулок', 'провулок Спасівський', 'пров. Спасівський'],
|
|
32
|
+
['Тираспольський провулок', 'провулок Тираспольський', 'пров. Тираспольський'],
|
|
33
|
+
['Хвилясний провулок', 'провулок Хвилясний', 'пров. Хвилясний'],
|
|
34
|
+
['Ширшова провулок', 'провулок Ширшова', 'пров. Ширшова'],
|
|
35
|
+
['провулок Бакинський', 'пров. Бакинський'],
|
|
36
|
+
['провулок Березовий', 'пров. Березовий'],
|
|
37
|
+
['Бельфорський бульвар', 'бульвар Бельфорський', 'Бельфорський бул.'],
|
|
38
|
+
['бульвар Будівельників', 'бул. Будівельників'],
|
|
39
|
+
['бульвар Героїв полку Азов', 'бул. Героїв полку Азов'],
|
|
40
|
+
['бульвар Марії Примаченко', 'бул. Марії Примаченко'],
|
|
41
|
+
['бульвар Парковий', 'бул. Парковий'],
|
|
42
|
+
['бульвар Центральний', 'бул. Центральний'],
|
|
43
|
+
['бульвар Шевченка', 'бул. Шевченка'],
|
|
44
|
+
]),
|
|
45
|
+
}),
|
|
46
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UZ_ANDIJAN_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Andijan: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['улица Абдулазиза Юлдашева', 'ул. Абдулазиза Юлдашева'],
|
|
7
|
+
['Тинчлик улица', 'Тинчлик ул.'],
|
|
8
|
+
['улица Атабекова', 'ул. Атабекова'],
|
|
9
|
+
['улица Т. Келдиева', 'ул. Т. Келдиева'],
|
|
10
|
+
['улица Шабнам', 'ул. Шабнам'],
|
|
11
|
+
['улица Токлик', 'ул. Токлик'],
|
|
12
|
+
['улица Абдурауфа Фитрата', 'ул. Абдурауфа Фитрата'],
|
|
13
|
+
['улица Обихаёт', 'ул. Обихаёт'],
|
|
14
|
+
['улица Дамарик', 'ул. Дамарик'],
|
|
15
|
+
['улица Хурсандлик', 'ул. Хурсандлик'],
|
|
16
|
+
['улица Ифтихор', 'ул. Ифтихор'],
|
|
17
|
+
['улица Бахоуддина Накшбанди', 'ул. Бахоуддина Накшбанди'],
|
|
18
|
+
['Сарбонтепа улица', 'Сарбонтепа ул.'],
|
|
19
|
+
['улица Саиды Зуннуновой', 'ул. Саиды Зуннуновой'],
|
|
20
|
+
]),
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
@@ -4,6 +4,33 @@ export const UZ_BUKHARA_LOCATION_EXTENSIONS = Object.freeze({
|
|
|
4
4
|
Bukhara: Object.freeze({
|
|
5
5
|
microdistricts: locationEntries([
|
|
6
6
|
['1-й микрорайон', '1 микрорайон', '1 мкр', '1 мкр.', '1-й мкр'],
|
|
7
|
+
['2-й микрорайон', '2 микрорайон', '2 мкр', '2 мкр.', '2-й мкр'],
|
|
8
|
+
['3-й микрорайон', '3 микрорайон', '3 мкр', '3 мкр.', '3-й мкр'],
|
|
9
|
+
['4-й микрорайон', '4 микрорайон', '4 мкр', '4 мкр.', '4-й мкр'],
|
|
10
|
+
['5А микрорайон', '5а микрорайон', '5A микрорайон', '5А мкр', '5а мкр', '5A mkr'],
|
|
11
|
+
['5Б микрорайон', '5б микрорайон', '5Б мкр', '5б мкр'],
|
|
12
|
+
['5В микрорайон', '5в микрорайон', '5V микрорайон', '5В мкр', '5в мкр'],
|
|
13
|
+
['6A микрорайон', '6А микрорайон', '6а микрорайон', '6A мкр', '6А мкр'],
|
|
14
|
+
['6Б микрорайон', '6б микрорайон', '6Б мкр', '6б мкр'],
|
|
15
|
+
['7-й микрорайон', '7 микрорайон', '7 мкр', '7 мкр.', '7-й мкр'],
|
|
16
|
+
['Северный микрорайон', 'Северный мкр', 'мкр Северный'],
|
|
17
|
+
]),
|
|
18
|
+
localAreas: locationEntries([
|
|
19
|
+
['Жилмассив Сафедмуй'],
|
|
20
|
+
]),
|
|
21
|
+
streets: locationEntries([
|
|
22
|
+
['1-й поворот улицы Махтумкули улица'],
|
|
23
|
+
['Улица 1-й улицы Муборак'],
|
|
24
|
+
['1-я улица Хавзи Бодом'],
|
|
25
|
+
['1-я улица Шейхон'],
|
|
26
|
+
['2-я улица Хавзи Бодом'],
|
|
27
|
+
['Чашмаи Аюб улица'],
|
|
28
|
+
['улица Хафиза Шеразия', 'ул. Хафиза Шеразия'],
|
|
29
|
+
['улица Марата Каримова', 'ул. Марата Каримова'],
|
|
30
|
+
['Мирдустим улица'],
|
|
31
|
+
['Мухтара Ашрафи улица'],
|
|
32
|
+
['Отабая Эшанова улица'],
|
|
33
|
+
['Писташиканон улица'],
|
|
7
34
|
]),
|
|
8
35
|
}),
|
|
9
36
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UZ_FERGANA_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Fergana: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['Кувасайская улица', 'Кувасайская ул.'],
|
|
7
|
+
['улица Конституции', 'ул. Конституции'],
|
|
8
|
+
['улица Нихол', 'ул. Нихол'],
|
|
9
|
+
['улица Белова', 'ул. Белова'],
|
|
10
|
+
['улица Ворис', 'ул. Ворис'],
|
|
11
|
+
['улица Гулистон', 'ул. Гулистон'],
|
|
12
|
+
['улица Бинафша', 'ул. Бинафша'],
|
|
13
|
+
['улица Янги Хаёт', 'ул. Янги Хаёт'],
|
|
14
|
+
]),
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UZ_NAMANGAN_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Namangan: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['улица Гузал', 'ул. Гузал'],
|
|
7
|
+
['Гирванбулакская улица', 'Гирванбулакская ул.'],
|
|
8
|
+
['улица Янги Арик', 'ул. Янги Арик'],
|
|
9
|
+
['улица Х.Хайитов', 'ул. Х.Хайитов'],
|
|
10
|
+
['улица Казанбулак', 'ул. Казанбулак'],
|
|
11
|
+
['улица Ипакчи', 'ул. Ипакчи'],
|
|
12
|
+
['улица Дилшод', 'ул. Дилшод'],
|
|
13
|
+
['улица Чаманзор', 'ул. Чаманзор'],
|
|
14
|
+
['улица Янгиарык 2-й проезд', 'ул. Янгиарык 2-й проезд'],
|
|
15
|
+
['улица Шарк гузали', 'ул. Шарк гузали'],
|
|
16
|
+
['1-я улица Достон', '1-я ул. Достон'],
|
|
17
|
+
['улица Олмазора', 'ул. Олмазора'],
|
|
18
|
+
['1-я улица Чархпалак', '1-я ул. Чархпалак'],
|
|
19
|
+
['улица Бунёдкор', 'ул. Бунёдкор'],
|
|
20
|
+
['улица Мингтерак', 'ул. Мингтерак'],
|
|
21
|
+
['2-я улица Табаррук', '2-я ул. Табаррук'],
|
|
22
|
+
['улица 20-летия Независимости', 'ул. 20-летия Независимости'],
|
|
23
|
+
['улица Янги Бог', 'ул. Янги Бог'],
|
|
24
|
+
['3-я улица Хасанабад', '3-я ул. Хасанабад'],
|
|
25
|
+
]),
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UZ_NUKUS_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Nukus: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['улица А. Мусаева', 'ул. А. Мусаева'],
|
|
7
|
+
['улица Уллы жол', 'ул. Уллы жол'],
|
|
8
|
+
['улица Шагласын', 'ул. Шагласын'],
|
|
9
|
+
['улица Каруан жолы', 'ул. Каруан жолы'],
|
|
10
|
+
['улица Нур ата', 'ул. Нур ата'],
|
|
11
|
+
['улица Кенимех', 'ул. Кенимех'],
|
|
12
|
+
['улица Мажнунтал', 'ул. Мажнунтал'],
|
|
13
|
+
['улица Дашти кыпшак', 'ул. Дашти кыпшак'],
|
|
14
|
+
['улица Сахра гули', 'ул. Сахра гули'],
|
|
15
|
+
['улица Саламатлык', 'ул. Саламатлык'],
|
|
16
|
+
['улица А. Досназарова', 'ул. А. Досназарова'],
|
|
17
|
+
['улица Айбек', 'ул. Айбек'],
|
|
18
|
+
['улица Гауир кала', 'ул. Гауир кала'],
|
|
19
|
+
['улица Табыс', 'ул. Табыс'],
|
|
20
|
+
['улица К. Айымбетова', 'ул. К. Айымбетова'],
|
|
21
|
+
['улица Кос кол-3', 'ул. Кос кол-3'],
|
|
22
|
+
['улица Темир жол', 'ул. Темир жол'],
|
|
23
|
+
['улица Каракалпакстан', 'ул. Каракалпакстан'],
|
|
24
|
+
['улица Бирликли', 'ул. Бирликли'],
|
|
25
|
+
['улица Ораз Ахун', 'ул. Ораз Ахун'],
|
|
26
|
+
]),
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
export const UZ_QARSHI_STREET_EXTENSIONS = Object.freeze({
|
|
4
|
+
Qarshi: Object.freeze({
|
|
5
|
+
streets: locationEntries([
|
|
6
|
+
['улица Шерозий', 'ул. Шерозий'],
|
|
7
|
+
['улица Бунёдкор', 'ул. Бунёдкор'],
|
|
8
|
+
['улица Узумзор', 'ул. Узумзор'],
|
|
9
|
+
['улица Мукумий', 'ул. Мукумий'],
|
|
10
|
+
['Кум Кишлак улица', 'Кум Кишлак ул.'],
|
|
11
|
+
['улица Халклар Дустлиги', 'ул. Халклар Дустлиги'],
|
|
12
|
+
['Коратепа улица', 'Коратепа ул.'],
|
|
13
|
+
['улица Корлугбогот', 'ул. Корлугбогот'],
|
|
14
|
+
['улица Нуристон', 'ул. Нуристон'],
|
|
15
|
+
['улица Хусниобод', 'ул. Хусниобод'],
|
|
16
|
+
['улица Туркистон', 'ул. Туркистон'],
|
|
17
|
+
['Буюк Туран улица', 'Буюк Туран ул.'],
|
|
18
|
+
['улица Жуковского', 'ул. Жуковского'],
|
|
19
|
+
['улица Маргилон', 'ул. Маргилон'],
|
|
20
|
+
['улица Кургантепа', 'ул. Кургантепа'],
|
|
21
|
+
['улица Хужабог', 'ул. Хужабог'],
|
|
22
|
+
['улица Зарафшон', 'ул. Зарафшон'],
|
|
23
|
+
]),
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
@@ -22,7 +22,7 @@ const residential = (canonical, aliases, labels) => entry(
|
|
|
22
22
|
labels,
|
|
23
23
|
);
|
|
24
24
|
|
|
25
|
-
const street = (canonical, aliases, labels) => entry(
|
|
25
|
+
const street = (canonical, aliases = [], labels = null) => entry(
|
|
26
26
|
canonical,
|
|
27
27
|
'street',
|
|
28
28
|
aliases,
|
|
@@ -100,6 +100,15 @@ export const UZ_SAMARKAND_CONTEXT_EXTENSIONS = Object.freeze({
|
|
|
100
100
|
street('Buyuk Ipak Yuli Street', [
|
|
101
101
|
'Buyuk Ipak yo‘li ko‘chasi', "Buyuk Ipak yo'li ko'chasi", 'улица Буюк Ипак Йули', 'улица Великий Шёлковый путь',
|
|
102
102
|
], { en: 'Buyuk Ipak Yuli Street', uz: "Buyuk Ipak yo'li ko'chasi", ru: 'улица Буюк Ипак Йули' }),
|
|
103
|
+
street('2-я Кызылкумская'),
|
|
104
|
+
street('1-я Самарканд улица'),
|
|
105
|
+
street('2-я Самарканд улица'),
|
|
106
|
+
street('Халила Султана улица'),
|
|
107
|
+
street('Улица Махорат', ['ул. Махорат']),
|
|
108
|
+
street('Намазгох переулок', ['пер. Намазгох']),
|
|
109
|
+
street('Улица Расадхона', ['ул. Расадхона']),
|
|
110
|
+
street('Улица Шахмурада', ['ул. Шахмурада']),
|
|
111
|
+
street('Улица Устозлар', ['ул. Устозлар']),
|
|
103
112
|
]),
|
|
104
113
|
}),
|
|
105
114
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TASHKENT_AREAS } from './geo.js';
|
|
2
|
+
import { locationEntries } from './location-merge.js';
|
|
2
3
|
import { aliasesToRegex } from './normalization.js';
|
|
3
4
|
|
|
4
5
|
function legacyAreaEntry(district, canonical) {
|
|
@@ -44,9 +45,44 @@ function residentialEntry(canonical, aliases = []) {
|
|
|
44
45
|
// a second C-1 canonical or consumer-local regex.
|
|
45
46
|
const C1 = legacyAreaEntry('Mirzo Ulugbek', 'Buyuk Ipak Yuli');
|
|
46
47
|
|
|
48
|
+
const REVIEWED_LOCAL_AREAS = locationEntries([
|
|
49
|
+
['Ibn Sino-2', 'Abu Ali ibn Sina-2', 'Абу Али ибн Сина-2', 'Abu Ali ibn Sino-2', 'Абу Али ибн Сино-2', 'Abu Ali ibn Sino-2 dahasi', 'Массив Калинина 2'],
|
|
50
|
+
['Ahmad Yugnakiy', 'Ахмада Югнаки', 'Ахмада Югнаки (Солнечный)', 'Ahmad Yugnakiy (Solnechnyy)'],
|
|
51
|
+
['Aviasozlar-2', 'Авиасозлар-2', 'Авиасозлар 2', 'Aviasozlar 2'],
|
|
52
|
+
['Aviasozlar-3', 'Авиасозлар-3', 'Авиасозлар 3', 'Aviasozlar 3'],
|
|
53
|
+
['Beltepa', 'Белтепа', 'Белтепа массив', 'Beltepa massiv', 'Beltepa massivi'],
|
|
54
|
+
['Feruza-3', 'Феруза-3', 'Феруза 3', 'Feruza 3'],
|
|
55
|
+
['Guliston', 'Гулистон', 'Гулистан', 'Жилмассив Гулистон', 'Guliston massivi', 'массив Гулистан'],
|
|
56
|
+
['Humoyun', 'Хумаюн', 'Хумаюн (Ясный)', 'Humoyun (Yasnyy)'],
|
|
57
|
+
['Tuzel-2', 'Тузель-2', 'Тузель 2', 'Tuzel 2'],
|
|
58
|
+
['Yalangach', 'Ялангач', 'Ялангач (Высоковольтный)', 'Yalangach (Vysokovoltnyy)'],
|
|
59
|
+
["Yo'ldosh-2", 'Йулдош 2', 'Йулдош (Спутник) 2', 'Спутник 2', 'Yoldosh-2'],
|
|
60
|
+
["Yo'ldosh-9", 'Йулдош 9', 'Йулдош (Спутник) 9', 'Спутник 9', 'Yoldosh-9'],
|
|
61
|
+
["Yo'ldosh-16", 'Йулдош 16', 'Йулдош (Спутник) 16', 'Спутник 16', 'Yoldosh-16'],
|
|
62
|
+
["Yo'ldosh-17", 'Йулдош 17', 'Йулдош (Спутник) 17', 'Спутник 17', 'Yoldosh-17'],
|
|
63
|
+
["Yo'ldosh-C2", 'Йулдош Ц2', 'Йулдош (Спутник) Ц2', 'Спутник Ц2', 'Yoldosh-C2'],
|
|
64
|
+
]);
|
|
65
|
+
|
|
66
|
+
const REVIEWED_MICRODISTRICTS = locationEntries([
|
|
67
|
+
['Chilanzar-6', 'Чиланзар-6', 'Чиланзар 6', 'Chilonzor-6', 'Chilonzor 6 mavzesi', '6-mavze'],
|
|
68
|
+
['Chilanzar-7', 'Чиланзар-7', 'Чиланзар 7', 'Chilonzor-7', 'Chilonzor 7 mavzesi', '7-mavze'],
|
|
69
|
+
['Chilanzar-8', 'Чиланзар-8', 'Чиланзар 8', 'Chilonzor-8', 'Chilonzor 8 mavzesi', '8-mavze'],
|
|
70
|
+
['Chilanzar-14', 'Чиланзар-14', 'Чиланзар 14', 'Chilonzor-14', 'Chilonzor 14 mavzesi', '14-mavze'],
|
|
71
|
+
['Chilanzar-20', 'Чиланзар-20', 'Чиланзар 20', 'Chilonzor-20', 'Chilonzor 20 mavzesi', '20-mavze'],
|
|
72
|
+
['Chilanzar-21', 'Чиланзар-21', 'Чиланзар 21', 'Chilonzor-21', 'Chilonzor 21 mavzesi', '21-mavze', 'Чиланзар 21-й квартал'],
|
|
73
|
+
['Chilanzar-22', 'Чиланзар-22', 'Чиланзар 22', 'Chilonzor-22', 'Chilonzor 22 mavzesi', '22-mavze', 'Чиланзар 22-й квартал'],
|
|
74
|
+
['Dilbulok', 'Дилбулок', 'Микрорайон Дилбулок', 'Dilbuloq', 'Dilbuloq mikrohududi'],
|
|
75
|
+
]);
|
|
76
|
+
|
|
77
|
+
const REVIEWED_MAHALLAS = locationEntries([
|
|
78
|
+
['Yangi Tashkent', 'Махалля Янги Тошкент', 'Янги Тошкент махалля', 'Yangi Toshkent mahallasi'],
|
|
79
|
+
]);
|
|
80
|
+
|
|
47
81
|
export const UZ_TASHKENT_CONTEXT_EXTENSIONS = Object.freeze({
|
|
48
82
|
Tashkent: Object.freeze({
|
|
49
|
-
|
|
83
|
+
mahallas: REVIEWED_MAHALLAS,
|
|
84
|
+
microdistricts: REVIEWED_MICRODISTRICTS,
|
|
85
|
+
localAreas: Object.freeze([C1, ...REVIEWED_LOCAL_AREAS]),
|
|
50
86
|
residentialComplexes: Object.freeze([
|
|
51
87
|
residentialEntry('Eco Dream', [
|
|
52
88
|
'ЖК Eco Dream', 'Eco Dream TJM', 'Eco Dream turar joy majmuasi', 'Eco Dream turar-joy majmuasi',
|
|
@@ -108,6 +144,9 @@ export const UZ_TASHKENT_CONTEXT_EXTENSIONS = Object.freeze({
|
|
|
108
144
|
'Turkiston Avenue', 'TJM Turkiston', 'ЖК Turkiston', 'Turkiston TJM', 'Turkiston turar joy majmuasi',
|
|
109
145
|
'Туркистон', 'ЖК Туркистон', 'Туркистон Авеню',
|
|
110
146
|
]),
|
|
147
|
+
residentialEntry('Karasaray', [
|
|
148
|
+
'Карасарай', 'ЖК Карасарай', 'Жилой комплекс Карасарай', 'Karasaray TJM', 'Karasaray turar joy majmuasi',
|
|
149
|
+
]),
|
|
111
150
|
]),
|
|
112
151
|
}),
|
|
113
152
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Lexical owners for the reviewed Tashkent residential OSM batch.
|
|
5
|
+
* Canonical names mirror geo-catalog; aliases only remove generic residential prefixes
|
|
6
|
+
* or harmless quote/case variants without inventing a translated brand name.
|
|
7
|
+
*/
|
|
8
|
+
export const UZ_TASHKENT_REVIEWED_RESIDENTIAL_EXTENSIONS = Object.freeze({
|
|
9
|
+
Tashkent: Object.freeze({
|
|
10
|
+
residentialComplexes: locationEntries([
|
|
11
|
+
['ЖК "Актепа Сохил буйи"', 'ЖК Актепа Сохил буйи', 'Актепа Сохил буйи'],
|
|
12
|
+
['ЖК "Бтги Шамол"', 'ЖК Бтги Шамол', 'Бтги Шамол'],
|
|
13
|
+
['Жилой комплекс Elegant', 'ЖК Elegant', 'Elegant'],
|
|
14
|
+
['ЖК "Грин Сити" (Дровосеки)', 'ЖК Грин Сити (Дровосеки)', 'Грин Сити (Дровосеки)', 'Грин Сити'],
|
|
15
|
+
['жилой комплекс Гульсарай', 'ЖК Гульсарай', 'Гульсарай'],
|
|
16
|
+
['Хувайдо жилой комплекс', 'ЖК Хувайдо', 'Хувайдо'],
|
|
17
|
+
['Жилой комплекс LOTUS 7', 'ЖК LOTUS 7', 'LOTUS 7', 'Lotus 7'],
|
|
18
|
+
['жилой комплекс "Milliy House" от NESS', 'ЖК Milliy House', 'Milliy House', 'Milliy House от NESS'],
|
|
19
|
+
['ЖК "Ness City"', 'ЖК Ness City', 'Ness City'],
|
|
20
|
+
['жилой комплекс "Ness One" от Ness', 'ЖК Ness One', 'Ness One', 'Ness One от Ness'],
|
|
21
|
+
['ЖК "Ness Sebzar"', 'ЖК Ness Sebzar', 'Ness Sebzar'],
|
|
22
|
+
["Жилой комплекс 'Оазис'", 'Жилой комплекс Оазис', 'ЖК Оазис', 'Оазис'],
|
|
23
|
+
['Переспектива жилой комплекс', 'ЖК Переспектива', 'Переспектива'],
|
|
24
|
+
['Sultania ЖК', 'ЖК Sultania', 'Sultania'],
|
|
25
|
+
['ЖК Учтепа Авению', 'Учтепа Авению'],
|
|
26
|
+
['ЖК Янгибахт', 'Янгибахт'],
|
|
27
|
+
['Жилой комплекс “Замок счастья”', 'Жилой комплекс Замок счастья', 'ЖК Замок счастья', 'Замок счастья'],
|
|
28
|
+
]),
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { locationEntries } from './location-merge.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Reviewed Tashkent street aliases from provider-backed geo/address evidence.
|
|
5
|
+
* Keep aliases street-qualified so generic area/mahalla references are not captured.
|
|
6
|
+
*/
|
|
7
|
+
export const UZ_TASHKENT_REVIEWED_STREET_EXTENSIONS = Object.freeze({
|
|
8
|
+
Tashkent: Object.freeze({
|
|
9
|
+
streets: locationEntries([
|
|
10
|
+
['Тараккиёт 4-мавзе улица', 'Тараккиёт 4 мавзе улица'],
|
|
11
|
+
['Улица Ташкент', 'ул. Ташкент'],
|
|
12
|
+
['Shifokorlar Street',
|
|
13
|
+
'Shifokorlar ko‘chasi',
|
|
14
|
+
"Shifokorlar ko'chasi",
|
|
15
|
+
'Шифокорлар кўчаси',
|
|
16
|
+
'улица Шифокорлар',
|
|
17
|
+
'ул. Шифокорлар',
|
|
18
|
+
'Shifokorlar-5',
|
|
19
|
+
'Shifokorlar 5',
|
|
20
|
+
'Шифокорлар-5',
|
|
21
|
+
'Шифокорлар 5',
|
|
22
|
+
'Shifokorlar-6',
|
|
23
|
+
'Shifokorlar 6',
|
|
24
|
+
'Шифокорлар-6',
|
|
25
|
+
'Шифокорлар 6',
|
|
26
|
+
'улица Шифокорлар, 5',
|
|
27
|
+
'ул. Шифокорлар, 5',
|
|
28
|
+
'улица Шифокорлар, 6',
|
|
29
|
+
'ул. Шифокорлар, 6',
|
|
30
|
+
],
|
|
31
|
+
['Shimoliy Olmazor Street', 'Shimoliy Olmazor ko‘chasi', "Shimoliy Olmazor ko'chasi", 'Шимолий Олмазор кўчаси', 'улица Шимолий Олмазор', 'ул. Шимолий Олмазор'],
|
|
32
|
+
]),
|
|
33
|
+
}),
|
|
34
|
+
});
|