@whiteslove/parsing-lexicon 0.6.10 → 0.6.13

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.
Files changed (31) hide show
  1. package/package.json +1 -1
  2. package/src/hiring-skills.js +3 -1
  3. package/src/hiring-source-semantics.js +5 -0
  4. package/src/housing-poi-extensions.js +62 -0
  5. package/src/kg-bishkek-residential-extensions.js +18 -0
  6. package/src/kg-bishkek-street-extensions.js +72 -0
  7. package/src/kg-karakol-location-extensions.js +9 -0
  8. package/src/kg-location-extensions.js +33 -2
  9. package/src/kg-osh-location-extensions.js +25 -0
  10. package/src/kz-address-extensions.js +178 -0
  11. package/src/kz-almaty-cleaned-residential-extensions.js +74 -0
  12. package/src/kz-almaty-street-extensions.js +50 -0
  13. package/src/kz-astana-cleaned-residential-extensions.js +86 -0
  14. package/src/kz-city-residential-extensions.js +14 -0
  15. package/src/kz-kostanay-location-extensions.js +16 -0
  16. package/src/kz-microdistrict-extensions.js +28 -0
  17. package/src/kz-pavlodar-location-extensions.js +11 -0
  18. package/src/kz-primary-address-extensions.js +178 -0
  19. package/src/kz-regional-address-extensions.js +35 -0
  20. package/src/kz-regional-residential-extensions.js +80 -0
  21. package/src/kz-residential-extensions.js +137 -0
  22. package/src/kz-shymkent-cleaned-address-extensions.js +70 -0
  23. package/src/locations-runtime.js +63 -2
  24. package/src/ua-chernihiv-residential-extensions.js +28 -0
  25. package/src/ua-city-location-expansions.js +29 -5
  26. package/src/ua-kharkiv-location-translations.js +19 -0
  27. package/src/ua-kharkiv-microdistrict-extensions.js +10 -0
  28. package/src/ua-residential-extensions.js +53 -0
  29. package/src/uz-bukhara-location-extensions.js +9 -0
  30. package/src/uz-samarkand-context-extensions.js +105 -0
  31. package/src/uz-tashkent-context-extensions.js +76 -0
@@ -0,0 +1,50 @@
1
+ import { aliasesToRegex } from './normalization.js';
2
+
3
+ function street(name, aliases = []) {
4
+ const all = Object.freeze([...new Set([name, ...aliases].filter(Boolean))]);
5
+ return Object.freeze({
6
+ canonical: name,
7
+ name,
8
+ type: 'street',
9
+ entityType: 'street',
10
+ country: 'KZ',
11
+ aliases: all,
12
+ re: aliasesToRegex(all),
13
+ });
14
+ }
15
+
16
+ /**
17
+ * Street names promoted from the cleaned Almaty scrape that are not already
18
+ * owned by the base KZ dictionary or KZ_PRIMARY_ADDRESS_EXTENSIONS.
19
+ * Keep the geo-catalog label as canonical and add listing-friendly spelling,
20
+ * abbreviation and Latin forms without inventing a second physical entity.
21
+ */
22
+ export const KZ_ALMATY_STREET_EXTENSIONS = Object.freeze({
23
+ Almaty: Object.freeze({
24
+ streets: Object.freeze([
25
+ street('15-я улица', ['15 улица', '15-я ул.', '15 ул.', '15th Street']),
26
+ street('2-й переулок', ['2 переулок', '2-й пер.', '2 пер.', '2nd Lane']),
27
+ street('5-ші тұйық көшесі', ['5-ші тұйық', '5 тұйық көшесі', '5 тұйық']),
28
+ street('6-я улица', ['6 улица', '6-я ул.', '6 ул.', '6th Street']),
29
+ street('Алданская улица', ['улица Алданская', 'ул. Алданская', 'Алданская', 'Aldanskaya Street']),
30
+ street('Восточная улица', ['улица Восточная', 'ул. Восточная', 'Восточная', 'Vostochnaya Street']),
31
+ street('Грушевая улица', ['улица Грушевая', 'ул. Грушевая', 'Грушевая', 'Grushevaya Street']),
32
+ street('Жаркентская улица', ['улица Жаркентская', 'ул. Жаркентская', 'Жаркентская', 'Zharkentskaya Street']),
33
+ street('Карьерная улица', ['улица Карьерная', 'ул. Карьерная', 'Карьерная', 'Kariernaya Street', 'Karyernaya Street']),
34
+ street('Молодежная улица', ['Молодёжная улица', 'улица Молодежная', 'улица Молодёжная', 'ул. Молодежная', 'Молодежная', 'Молодёжная', 'Molodezhnaya Street']),
35
+ street('Строительная улица', ['улица Строительная', 'ул. Строительная', 'Строительная', 'Stroitelnaya Street']),
36
+ street('Улица Абдуллиных', ['улица Абдуллиных', 'ул. Абдуллиных', 'Абдуллиных', 'Abdullinykh Street', 'Abdullin Street']),
37
+ street('Улица Артёма', ['улица Артёма', 'улица Артема', 'ул. Артёма', 'ул. Артема', 'Артёма', 'Артема', 'Artyom Street', 'Artema Street']),
38
+ street('Улица Байсултанова', ['улица Байсултанова', 'ул. Байсултанова', 'Байсултанова', 'Байсұлтанов көшесі', 'Baisultanov Street', 'Baysultanov Street']),
39
+ street('Улица Варламова', ['улица Варламова', 'ул. Варламова', 'Варламова', 'Varlamov Street']),
40
+ street('Улица Жакибаева', ['улица Жакибаева', 'ул. Жакибаева', 'Жакибаева', 'Жақыбаев көшесі', 'Zhakibaev Street', 'Zhaqybaev Street']),
41
+ street('Улица Каусар', ['улица Каусар', 'ул. Каусар', 'Каусар', 'Қаусар көшесі', 'Kausar Street', 'Qausar Street']),
42
+ street('Улица Левитана', ['улица Левитана', 'ул. Левитана', 'Левитана', 'Levitan Street']),
43
+ street('Улица Попова', ['улица Попова', 'ул. Попова', 'Попова', 'Popov Street']),
44
+ street('Улица Руханият', ['улица Руханият', 'ул. Руханият', 'Руханият', 'Руханият көшесі', 'Rukhaniyat Street', 'Ruhaniyat Street']),
45
+ street('Улица Теренозек', ['улица Теренозек', 'ул. Теренозек', 'Теренозек', 'Теренөзек көшесі', 'Terenozek Street', 'Terenözek Street']),
46
+ street('Улица Шемякина', ['улица Шемякина', 'ул. Шемякина', 'Шемякина', 'Shemyakin Street', 'Shemyakina Street']),
47
+ street('Улица Юрия Кима', ['улица Юрия Кима', 'ул. Юрия Кима', 'Юрия Кима', 'Юрий Ким көшесі', 'Yuri Kim Street', 'Yuriy Kim Street']),
48
+ ]),
49
+ }),
50
+ });
@@ -0,0 +1,86 @@
1
+ import { aliasesToRegex } from './normalization.js';
2
+
3
+ function residential(name, aliases = []) {
4
+ const all = Object.freeze([...new Set([name, ...aliases].filter(Boolean))]);
5
+ return Object.freeze({
6
+ canonical: name,
7
+ name,
8
+ type: 'residential_complex',
9
+ entityType: 'residential_complex',
10
+ country: 'KZ',
11
+ aliases: all,
12
+ re: aliasesToRegex(all),
13
+ });
14
+ }
15
+
16
+ const row = (name, ...aliases) => residential(name, [
17
+ `ЖК ${name}`,
18
+ `жилой комплекс ${name}`,
19
+ ...aliases,
20
+ ]);
21
+
22
+ /**
23
+ * Remaining Astana residential labels promoted from the cleaned geo-catalog
24
+ * scrape. Names already owned by another canonical (for example Aq-Didar,
25
+ * Jagalau, Inju Promenade, Lazurny Kvartal, Nova City and Triumph) stay in
26
+ * their existing entries and are intentionally not duplicated here.
27
+ */
28
+ export const KZ_ASTANA_CLEANED_RESIDENTIAL_EXTENSIONS = Object.freeze({
29
+ Astana: Object.freeze({
30
+ residentialComplexes: Object.freeze([
31
+ row('Central Park', 'Сентрал Парк', 'ЖК Сентрал Парк'),
32
+ row('Авангард'),
33
+ row('Богенбай батыр', 'Бөгенбай батыр', 'ЖК Бөгенбай батыр'),
34
+ row('Бухар Жырау', 'Бұқар Жырау', 'Бұқар жырау', 'ЖК Бұқар Жырау'),
35
+ row('Визит'),
36
+ row('Восток'),
37
+ row('Времена года Весна'),
38
+ row('Гранд Астана Элит'),
39
+ row('Гранитный'),
40
+ row('Дастур', 'Дәстүр', 'ЖК Дәстүр'),
41
+ row('Евразия'),
42
+ row('Европейский'),
43
+ row('Жагалау-3', 'Жағалау-3', 'ЖК Жағалау-3'),
44
+ row('Жансая'),
45
+ row('Жануя', 'Жанұя', 'ЖК Жанұя'),
46
+ row('Жетису Аксу', 'Жетісу Ақсу', 'ЖК Жетісу Ақсу'),
47
+ row('Жетіген'),
48
+ row('Жибек Жол', 'Жібек Жол', 'Жібек жол', 'ЖК Жібек Жол'),
49
+ row('Жубанова 4'),
50
+ row('Запад'),
51
+ row('Изет', 'Ізет', 'ЖК Ізет'),
52
+ row('Ишим', 'Есіл', 'ЖК Есіл'),
53
+ row('Казахстан', 'Қазақстан', 'ЖК Қазақстан'),
54
+ row('Казына', 'Қазына', 'ЖК Қазына'),
55
+ row('Кайнар', 'Қайнар', 'ЖК Қайнар'),
56
+ row('Камал-3'),
57
+ row('Керемет'),
58
+ row('Кукуруза'),
59
+ row('Махаббат-2'),
60
+ row('Миланский Квартал', 'Миланский квартал'),
61
+ row('Научный'),
62
+ row('Независимость'),
63
+ row('Омир Озен', 'Өмір Өзен', 'Өмір өзен', 'ЖК Өмір Өзен'),
64
+ row('Отандастар'),
65
+ row('Отырар'),
66
+ row('Памир'),
67
+ row('Парижский квартал'),
68
+ row('Рахат'),
69
+ row('Сapital Park Flowers', 'Capital Park Flowers', 'ЖК Capital Park Flowers'),
70
+ row('Самрук', 'Самұрық', 'ЖК Самұрық'),
71
+ row('Сапа 2007'),
72
+ row('Сатурн-2'),
73
+ row('Саулет', 'Сәулет', 'ЖК Сәулет'),
74
+ row('Свечки'),
75
+ row('Сыганак', 'Сығанақ', 'ЖК Сығанақ'),
76
+ row('Тулпар', 'Тұлпар', 'ЖК Тұлпар'),
77
+ row('Тумар', 'Тұмар', 'ЖК Тұмар'),
78
+ row('Успех'),
79
+ row('Формула успеха'),
80
+ row('Французский квартал'),
81
+ row('Целиноград'),
82
+ row('Шеркала'),
83
+ row('Эмират'),
84
+ ]),
85
+ }),
86
+ });
@@ -0,0 +1,14 @@
1
+ import { locationEntries } from './location-merge.js';
2
+
3
+ export const KZ_CITY_RESIDENTIAL_EXTENSIONS = Object.freeze({
4
+ Almaty: Object.freeze({
5
+ residentialComplexes: locationEntries([
6
+ ['Terracotta', 'ЖК Terracotta', 'Жилой комплекс Terracotta'],
7
+ ]),
8
+ }),
9
+ Karaganda: Object.freeze({
10
+ residentialComplexes: locationEntries([
11
+ ['Трилистник', 'ЖК Трилистник', 'Жилой комплекс Трилистник'],
12
+ ]),
13
+ }),
14
+ });
@@ -0,0 +1,16 @@
1
+ import { locationEntries } from './location-merge.js';
2
+
3
+ export const KZ_KOSTANAY_LOCATION_EXTENSIONS = Object.freeze({
4
+ Kostanay: Object.freeze({
5
+ microdistricts: locationEntries([
6
+ ['3-й микрорайон', '3 микрорайон', '3 мкр', '3 мкр.', '3-й мкр'],
7
+ ['5-й микрорайон', '5 микрорайон', '5 мкр', '5 мкр.', '5-й мкр'],
8
+ ['9-й микрорайон', '9 микрорайон', '9 мкр', '9 мкр.', '9-й мкр'],
9
+ ['Наурыз', 'Микрорайон Наурыз', 'микрорайон Наурыз', 'мкр Наурыз', 'Nauryz'],
10
+ ['Береке', 'Микрорайон Береке', 'микрорайон Береке', 'мкр Береке', 'Bereke'],
11
+ ]),
12
+ residentialComplexes: locationEntries([
13
+ ['Алтын Арман', 'Алтын-Арман', 'Altyn Arman', 'ЖК Алтын Арман', 'ЖК Алтын-Арман', 'жилой комплекс Алтын Арман'],
14
+ ]),
15
+ }),
16
+ });
@@ -0,0 +1,28 @@
1
+ import { locationEntries } from './location-merge.js';
2
+
3
+ export const KZ_MICRODISTRICT_EXTENSIONS = Object.freeze({
4
+ Aktobe: Object.freeze({
5
+ microdistricts: locationEntries([
6
+ ['1-й микрорайон', '1 микрорайон', '1 мкр', '1 мкр.', '1-й мкр'],
7
+ ['3-й микрорайон', '3 микрорайон', '3 мкр', '3 мкр.', '3-й мкр'],
8
+ ['8 microdistrict', '8-й микрорайон', '8 микрорайон', '8 мкр', '8 мкр.', '8-й мкр'],
9
+ ]),
10
+ }),
11
+ Karaganda: Object.freeze({
12
+ microdistricts: locationEntries([
13
+ ['16-й микрорайон', '16 микрорайон', '16 мкр', '16 мкр.', '16-й мкр'],
14
+ ]),
15
+ }),
16
+ Shymkent: Object.freeze({
17
+ microdistricts: locationEntries([
18
+ ['8-й микрорайон', '8 микрорайон', '8 мкр', '8 мкр.', '8-й мкр'],
19
+ ['15-й микрорайон', '15 микрорайон', '15 мкр', '15 мкр.', '15-й мкр'],
20
+ ['Нурсат', 'Микрорайон Нурсат', 'микрорайон Нурсат', 'мкр Нурсат'],
21
+ ]),
22
+ }),
23
+ Taraz: Object.freeze({
24
+ microdistricts: locationEntries([
25
+ ['Улы Дала', 'Ұлы Дала', 'Микрорайон Улы Дала', 'микрорайон Улы Дала', 'мкр Улы Дала', 'Uly Dala'],
26
+ ]),
27
+ }),
28
+ });
@@ -0,0 +1,11 @@
1
+ import { locationEntries } from './location-merge.js';
2
+
3
+ export const KZ_PAVLODAR_LOCATION_EXTENSIONS = Object.freeze({
4
+ Pavlodar: Object.freeze({
5
+ microdistricts: locationEntries([
6
+ ['Дачный', 'Дачный микрорайон', 'микрорайон Дачный', 'мкр Дачный', 'Dachny'],
7
+ ['Сарыарка', 'Микрорайон Сарыарка', 'микрорайон Сарыарка', 'мкр Сарыарка', 'Saryarka'],
8
+ ['Усольский', 'Усольский микрорайон', 'микрорайон Усольский', 'мкр Усольский', 'Usolsky'],
9
+ ]),
10
+ }),
11
+ });
@@ -0,0 +1,178 @@
1
+ import { aliasesToRegex } from './normalization.js';
2
+
3
+ function entry(name, aliases, entityType) {
4
+ const all = Object.freeze([...new Set([name, ...aliases].filter(Boolean))]);
5
+ return Object.freeze({
6
+ canonical: name,
7
+ name,
8
+ type: entityType,
9
+ entityType,
10
+ country: 'KZ',
11
+ aliases: all,
12
+ re: aliasesToRegex(all),
13
+ });
14
+ }
15
+
16
+ const microdistrict = (name, aliases = []) => entry(name, aliases, 'microdistrict');
17
+ const street = (name, aliases = []) => entry(name, aliases, 'street');
18
+
19
+ export const KZ_PRIMARY_ADDRESS_EXTENSIONS = Object.freeze({
20
+ Astana: Object.freeze({
21
+ microdistricts: Object.freeze([
22
+ microdistrict('Alatau', [
23
+ 'Алатау', 'микрорайон Алатау', 'мкр Алатау', 'Алатау шағын ауданы', 'Alatau microdistrict',
24
+ ]),
25
+ ]),
26
+ streets: Object.freeze([
27
+ street('Проспект Аль-Фараби', [
28
+ 'проспект Аль-Фараби', 'пр-т Аль-Фараби', 'Аль-Фараби', 'Әл-Фараби даңғылы',
29
+ 'Al-Farabi Avenue', 'Al Farabi Avenue', 'Al-Farabi Prospekt',
30
+ ]),
31
+ street('Улица Айтеке Би', [
32
+ 'улица Айтеке Би', 'ул. Айтеке Би', 'Айтеке Би', 'Әйтеке би көшесі',
33
+ 'Aiteke Bi Street', 'Ayteke Bi Street',
34
+ ]),
35
+ street('Улица Алихана Бокейхана', [
36
+ 'улица Алихана Бокейхана', 'ул. Алихана Бокейхана', 'Алихана Бокейхана',
37
+ 'Әлихан Бөкейхан көшесі', 'Alikhan Bokeikhan Street',
38
+ ]),
39
+ street('Улица Анет Баба', [
40
+ 'улица Анет Баба', 'ул. Анет Баба', 'Анет Баба', 'Әнет баба көшесі', 'Anet Baba Street',
41
+ ]),
42
+ street('Улица Аныракай', [
43
+ 'улица Аныракай', 'ул. Аныракай', 'Аныракай', 'Аңырақай көшесі',
44
+ 'Anyrakai Street', 'Anyraqai Street',
45
+ ]),
46
+ street('Улица Домалак Ана', [
47
+ 'улица Домалак Ана', 'ул. Домалак Ана', 'Домалак Ана', 'Домалақ ана көшесі', 'Domalak Ana Street',
48
+ ]),
49
+ street('Улица Елубая Тайбекова', [
50
+ 'улица Елубая Тайбекова', 'ул. Елубая Тайбекова', 'Елубая Тайбекова',
51
+ 'Елубай Тайбеков көшесі', 'Yelubay Taibekov Street', 'Elubay Taibekov Street',
52
+ ]),
53
+ street('Улица Каракат', [
54
+ 'улица Каракат', 'ул. Каракат', 'Каракат', 'Қарақат көшесі', 'Karakat Street', 'Qaraqat Street',
55
+ ]),
56
+ street('Улица Каршыга Ахмедиярова', [
57
+ 'улица Каршыга Ахмедиярова', 'ул. Каршыга Ахмедиярова', 'Каршыга Ахмедиярова',
58
+ 'Қаршыға Ахмедияров көшесі', 'Karshyga Akhmediyarov Street', 'Qarshyga Akhmediyarov Street',
59
+ ]),
60
+ street('Улица Кенесары', [
61
+ 'улица Кенесары', 'ул. Кенесары', 'Кенесары', 'Кенесары көшесі', 'Kenesary Street',
62
+ ]),
63
+ street('Улица Конституции', [
64
+ 'улица Конституции', 'ул. Конституции', 'Конституции', 'Конституция көшесі', 'Constitution Street',
65
+ ]),
66
+ street('Улица Оралхан Бокей', [
67
+ 'улица Оралхан Бокей', 'ул. Оралхан Бокей', 'Оралхан Бокей', 'Оралхан Бөкей көшесі',
68
+ 'Oralkhan Bokei Street', 'Oralhan Bokei Street',
69
+ ]),
70
+ street('Улица Сембинова', [
71
+ 'улица Сембинова', 'ул. Сембинова', 'Сембинова', 'Sembinov Street',
72
+ ]),
73
+ street('Улица Сырдария', [
74
+ 'улица Сырдария', 'ул. Сырдария', 'Сырдария', 'Сырдария көшесі', 'Syrdariya Street', 'Syr Darya Street',
75
+ ]),
76
+ street('Улица Толе Би', [
77
+ 'улица Толе Би', 'ул. Толе Би', 'Толе Би', 'Төле би көшесі', 'Tole Bi Street', 'Töle Bi Street',
78
+ ]),
79
+ street('Улица Туркестан', [
80
+ 'улица Туркестан', 'ул. Туркестан', 'Туркестан', 'Түркістан көшесі', 'Turkistan Street', 'Turkestan Street',
81
+ ]),
82
+ ]),
83
+ }),
84
+
85
+ Almaty: Object.freeze({
86
+ microdistricts: Object.freeze([
87
+ microdistrict('Samal-1', ['Самал-1', 'Самал 1', 'Самал-1 шағын ауданы', 'Samal 1']),
88
+ microdistrict('Samal-2', ['Самал-2', 'Самал 2', 'Самал-2 шағын ауданы', 'Samal 2']),
89
+ microdistrict('Samal-3', ['Самал-3', 'Самал 3', 'Самал-3 шағын ауданы', 'Samal 3']),
90
+ microdistrict('Aksai-1', ['Аксай-1', 'Ақсай-1', 'Аксай 1', 'Ақсай-1 шағын ауданы', 'Aksai 1', 'Aqsai-1']),
91
+ microdistrict('Aksai-3A', ['Аксай-3А', 'Ақсай-3А', 'Аксай 3А', 'Ақсай-3А шағын ауданы', 'Aksai 3A', 'Aqsai-3A']),
92
+ microdistrict('Koktem-1', ['Коктем-1', 'Көктем-1', 'Коктем 1', 'Көктем-1 шағын ауданы', 'Koktem 1']),
93
+ microdistrict('Koktem-2', ['Коктем-2', 'Көктем-2', 'Коктем 2', 'Көктем-2 шағын ауданы', 'Koktem 2']),
94
+ microdistrict('Koktem-3', ['Коктем-3', 'Көктем-3', 'Коктем 3', 'Көктем-3 шағын ауданы', 'Koktem 3']),
95
+ microdistrict('Zhetysu-1', ['Жетысу-1', 'Жетісу-1', 'Жетысу 1', 'Жетісу-1 шағын ауданы', 'Zhetysu 1', 'Jetisu-1']),
96
+ microdistrict('Zhetysu-3', ['Жетысу-3', 'Жетісу-3', 'Жетысу 3', 'Жетісу-3 шағын ауданы', 'Zhetysu 3', 'Jetisu-3']),
97
+ microdistrict('Orbita-2', ['Орбита-2', 'Орбита 2', 'Орбита-2 шағын ауданы', 'Orbita 2']),
98
+ microdistrict('Orbita-4', ['Орбита-4', 'Орбита 4', 'Орбита-4 шағын ауданы', 'Orbita 4']),
99
+ microdistrict('Mamyr-1', ['Мамыр-1', 'Мамыр 1', 'Мамыр-1 шағын ауданы', 'Mamyr 1']),
100
+ microdistrict('3 microdistrict', [
101
+ '3-й микрорайон', '3 микрорайон', '3 мкр', '3 мкр.', '3-ші шағын аудан', '3 шағын аудан', '3rd microdistrict',
102
+ ]),
103
+ microdistrict('Sayaly', ['Саялы', 'Саялы микрорайон', 'Саялы шағын ауданы', 'Sayaly microdistrict']),
104
+ microdistrict('Nur Alatau', ['Нур Алатау', 'Нұр Алатау', 'Нұр Алатау шағын ауданы', 'Nur Alatau microdistrict']),
105
+ ]),
106
+ streets: Object.freeze([
107
+ street('Al-Farabi Avenue', [
108
+ 'проспект Аль-Фараби', 'Проспект Аль-Фараби', 'пр-т Аль-Фараби', 'Аль-Фараби', 'Әл-Фараби даңғылы',
109
+ 'Al Farabi Avenue', 'Al-Farabi Prospekt',
110
+ ]),
111
+ street('Dostyk Avenue', [
112
+ 'проспект Достык', 'Проспект Достык', 'пр-т Достык', 'Достык', 'Достық даңғылы', 'Dostyq Avenue',
113
+ ]),
114
+ street('Проспект Рыскулова', [
115
+ 'проспект Рыскулова', 'пр-т Рыскулова', 'Рыскулова', 'Рысқұлов даңғылы',
116
+ 'Ryskulov Avenue', 'Rysqulov Avenue',
117
+ ]),
118
+ street('Rozybakiev Street', [
119
+ 'Улица Абдуллы Розыбакиева', 'улица Абдуллы Розыбакиева', 'улица Розыбакиева', 'ул. Розыбакиева',
120
+ 'Розыбакиева', 'Розыбакиев көшесі', 'Abdulla Rozybakiev Street',
121
+ ]),
122
+ street('Улица Басенова', [
123
+ 'улица Басенова', 'ул. Басенова', 'Басенова', 'Басенов көшесі', 'Basenov Street',
124
+ ]),
125
+ street('Улица Богенбай батыра', [
126
+ 'улица Богенбай батыра', 'ул. Богенбай батыра', 'Богенбай батыра', 'Бөгенбай батыр көшесі',
127
+ 'Bogenbay Batyr Street', 'Bögenbai Batyr Street',
128
+ ]),
129
+ street('Улица Газизы Жубановой', [
130
+ 'улица Газизы Жубановой', 'ул. Газизы Жубановой', 'Газизы Жубановой', 'Ғазиза Жұбанова көшесі',
131
+ 'Gaziza Zhubanova Street', 'Ghaziza Zhubanova Street',
132
+ ]),
133
+ street('Улица Гаухартас', [
134
+ 'улица Гаухартас', 'ул. Гаухартас', 'Гаухартас', 'Гауһартас көшесі', 'Gaukhartas Street', 'Gauhartas Street',
135
+ ]),
136
+ street('Улица Егизбаева', [
137
+ 'улица Егизбаева', 'ул. Егизбаева', 'Егизбаева', 'Егізбаев көшесі', 'Egizbaev Street',
138
+ ]),
139
+ street('Улица Кайырбекова', [
140
+ 'улица Кайырбекова', 'ул. Кайырбекова', 'Кайырбекова', 'Қайырбеков көшесі', 'Kaiyrbekov Street', 'Qaiyrbekov Street',
141
+ ]),
142
+ street('Улица Калдаякова', [
143
+ 'улица Калдаякова', 'ул. Калдаякова', 'Калдаякова', 'Қалдаяқов көшесі', 'Kaldaiakov Street', 'Qaldayaqov Street',
144
+ ]),
145
+ street('Улица Маркова', [
146
+ 'улица Маркова', 'ул. Маркова', 'Маркова', 'Марков көшесі', 'Markov Street',
147
+ ]),
148
+ street('Улица Мынбаева', [
149
+ 'улица Мынбаева', 'ул. Мынбаева', 'Мынбаева', 'Мыңбаев көшесі', 'Mynbaev Street', 'Myngbaev Street',
150
+ ]),
151
+ street('Улица Нурмакова', [
152
+ 'улица Нурмакова', 'ул. Нурмакова', 'Нурмакова', 'Нұрмақов көшесі', 'Nurmakov Street',
153
+ ]),
154
+ street('Улица Нуртаса Ондасынова', [
155
+ 'улица Нуртаса Ондасынова', 'ул. Нуртаса Ондасынова', 'Нуртаса Ондасынова',
156
+ 'Нұртас Оңдасынов көшесі', 'Nurtas Ondasynov Street',
157
+ ]),
158
+ street('Улица Рыскулбекова', [
159
+ 'улица Рыскулбекова', 'ул. Рыскулбекова', 'Рыскулбекова', 'Рысқұлбеков көшесі',
160
+ 'Ryskulbekov Street', 'Rysqulbekov Street',
161
+ ]),
162
+ street('Satpayev Street', [
163
+ 'Улица Сатпаева', 'улица Сатпаева', 'ул. Сатпаева', 'Сатпаева', 'Қаныш Сәтбаев көшесі', 'Сәтбаев көшесі',
164
+ 'Kanysh Satpayev Street',
165
+ ]),
166
+ street('Улица Токсына Кулыбекова', [
167
+ 'улица Токсына Кулыбекова', 'ул. Токсына Кулыбекова', 'Токсына Кулыбекова',
168
+ 'Тоқсын Құлыбеков көшесі', 'Toksyn Kulybekov Street', 'Toqsyn Qulybekov Street',
169
+ ]),
170
+ street('Tole Bi Street', [
171
+ 'Улица Толе Би', 'улица Толе Би', 'улица Толе би', 'ул. Толе Би', 'Толе Би', 'Төле би көшесі', 'Töle Bi Street',
172
+ ]),
173
+ street('Улица Шакарима', [
174
+ 'улица Шакарима', 'ул. Шакарима', 'Шакарима', 'Шәкәрім көшесі', 'Shakarim Street',
175
+ ]),
176
+ ]),
177
+ }),
178
+ });
@@ -0,0 +1,35 @@
1
+ import { aliasesToRegex } from './normalization.js';
2
+
3
+ function street(name, aliases = []) {
4
+ const all = Object.freeze([...new Set([name, ...aliases].filter(Boolean))]);
5
+ return Object.freeze({
6
+ canonical: name,
7
+ name,
8
+ type: 'street',
9
+ entityType: 'street',
10
+ country: 'KZ',
11
+ aliases: all,
12
+ re: aliasesToRegex(all),
13
+ });
14
+ }
15
+
16
+ export const KZ_SCRAPED_TAIL_ADDRESS_EXTENSIONS = Object.freeze({
17
+ Taraz: Object.freeze({
18
+ streets: Object.freeze([
19
+ street('Проспект Жамбыла', [
20
+ 'проспект Жамбыла', 'пр-т Жамбыла', 'Жамбыла', 'Жамбыл даңғылы',
21
+ 'Zhambyl Avenue', 'Jambyl Avenue', 'Zhambyl Prospekt',
22
+ ]),
23
+ street('Улица Барбюса', [
24
+ 'улица Барбюса', 'ул. Барбюса', 'Барбюса', 'Барбюс көшесі', 'Barbusse Street', 'Barbyus Street',
25
+ ]),
26
+ street('Улица Жусипа Баласагуна', [
27
+ 'улица Жусипа Баласагуна', 'ул. Жусипа Баласагуна', 'Жусипа Баласагуна',
28
+ 'Жүсіп Баласағұн көшесі', 'Жүсіп Баласағұн', 'Zhusip Balasagun Street', 'Zhusup Balasagyn Street',
29
+ ]),
30
+ street('Улица Пушкина', [
31
+ 'улица Пушкина', 'ул. Пушкина', 'Пушкина', 'Пушкин көшесі', 'Pushkin Street',
32
+ ]),
33
+ ]),
34
+ }),
35
+ });
@@ -0,0 +1,80 @@
1
+ import { aliasesToRegex } from './normalization.js';
2
+
3
+ function residential(name, aliases = []) {
4
+ const all = Object.freeze([...new Set([name, ...aliases].filter(Boolean))]);
5
+ return Object.freeze({
6
+ canonical: name,
7
+ name,
8
+ type: 'residential_complex',
9
+ entityType: 'residential_complex',
10
+ country: 'KZ',
11
+ aliases: all,
12
+ re: aliasesToRegex(all),
13
+ });
14
+ }
15
+
16
+ const residentialEntries = (rows = []) => Object.freeze(rows.map(([name, ...aliases]) => residential(name, aliases)));
17
+
18
+ export const KZ_SCRAPED_SECONDARY_LOCATION_EXTENSIONS = Object.freeze({
19
+ Shymkent: Object.freeze({
20
+ residentialComplexes: residentialEntries([
21
+ ['Asar House III', 'Asar House 3', 'Асар Хаус III', 'Асар Хаус 3', 'ЖК Asar House III'],
22
+ ['Asar house plus', 'Asar House Plus', 'Асар Хаус Плюс', 'ЖК Asar House Plus'],
23
+ ['Asar-City', 'Asar City', 'Асар-Сити', 'Асар Сити', 'ЖК Asar-City'],
24
+ ['Capital Residence', 'Капитал Резиденс', 'ЖК Capital Residence'],
25
+ ['Gagarin park', 'Gagarin Park', 'Гагарин Парк', 'ЖК Gagarin Park'],
26
+ ['Grand Park', 'Гранд Парк', 'ЖК Grand Park', 'ЖК Гранд Парк'],
27
+ ['Sauran', 'Сауран', 'ЖК Sauran', 'ЖК Сауран'],
28
+ ['Smart', 'Смарт', 'ЖК Smart', 'ЖК Смарт'],
29
+ ['Standard City', 'Стандарт Сити', 'ЖК Standard City'],
30
+ ['Sultan', 'Султан', 'ЖК Sultan', 'ЖК Султан'],
31
+ ['Tamerlan Residence', 'Тамерлан Резиденс', 'ЖК Tamerlan Residence'],
32
+ ['Абат', 'Abat', 'ЖК Абат'],
33
+ ['Атамекен', 'Atameken', 'Atameken Residence', 'ЖК Атамекен'],
34
+ ['Capital City', 'Капитал сити', 'Капитал Сити', 'ЖК Capital City', 'ЖК Капитал Сити'],
35
+ ['Каусар', 'Kausar', 'Qausar', 'ЖК Каусар'],
36
+ ['Кок-Жайлау', 'Көк-Жайлау', 'Kok-Zhailau', 'Kok Zhaylau', 'ЖК Кок-Жайлау', 'ЖК Көк-Жайлау'],
37
+ ['Таң-шуақ', 'Таң шуақ', 'Tan-Shuaq', 'Tang-Shuaq', 'Тан-шуак', 'ЖК Таң-шуақ'],
38
+ ['Ұлы Шаңырақ', 'Улы Шанырак', 'Uly Shanyraq', 'Uly Shanyrak', 'ЖК Ұлы Шаңырақ'],
39
+ ]),
40
+ }),
41
+
42
+ Karaganda: Object.freeze({
43
+ residentialComplexes: residentialEntries([
44
+ ['Central City', 'Централ Сити', 'ЖК Central City', 'ЖК Централ Сити'],
45
+ ['Central Park', 'Централ Парк', 'ЖК Central Park', 'ЖК Централ Парк'],
46
+ ['Dream House', 'Дрим Хаус', 'ЖК Dream House', 'ЖК Дрим Хаус'],
47
+ ['Keruen Блок А', 'Keruen Block A', 'Керуен Блок А', 'ЖК Keruen Блок А', 'ЖК Керуен Блок А'],
48
+ ['Otbasy Village', 'Отбасы Вилладж', 'Отбасы Village', 'ЖК Otbasy Village'],
49
+ ['Pride Residence', 'Прайд Резиденс', 'ЖК Pride Residence'],
50
+ ['Tulpar Residence', 'Тулпар Резиденс', 'ЖК Tulpar Residence'],
51
+ ['Tumar', 'Тумар', 'ЖК Tumar', 'ЖК Тумар'],
52
+ ['Zaman 2', 'Заман 2', 'Zaman-2', 'ЖК Zaman 2'],
53
+ ['Алтын Блок А', 'Altyn Block A', 'Алтын Block A', 'ЖК Алтын Блок А'],
54
+ ['Гулдер', 'Гүлдер', 'Gulder', 'Gulder Residence', 'ЖК Гулдер', 'ЖК Гүлдер'],
55
+ ['Дом на Таттимбета', 'Dom na Tattimbeta', 'Tattimbeta House', 'ЖК Дом на Таттимбета'],
56
+ ['Комиссарова', 'Komissarova', 'ЖК Комиссарова'],
57
+ ['Крылова', 'Krylova', 'ЖК Крылова'],
58
+ ['Новый Степной', 'Novyi Stepnoi', 'Novy Stepnoy', 'ЖК Новый Степной'],
59
+ ['Эталон', 'Etalon', 'ЖК Эталон'],
60
+ ]),
61
+ }),
62
+
63
+ Aktobe: Object.freeze({
64
+ residentialComplexes: residentialEntries([
65
+ ['Garden Residence', 'Гарден Резиденс', 'ЖК Garden Residence', 'ЖК Гарден Резиденс'],
66
+ ['Gold Square', 'Голд Сквер', 'ЖК Gold Square', 'ЖК Голд Сквер'],
67
+ ['Grand Nomad', 'Гранд Номад', 'ЖК Grand Nomad', 'ЖК Гранд Номад'],
68
+ ['Арайлы', 'Araily', 'ЖК Арайлы'],
69
+ ['Астана Премиум', 'Astana Premium', 'ЖК Астана Премиум'],
70
+ ['Даулет', 'Дәулет', 'Daulet', 'ЖК Даулет', 'ЖК Дәулет'],
71
+ ['Домино', 'Domino', 'ЖК Домино'],
72
+ ['Жети казына', 'Жеті қазына', 'Zheti Qazyna', 'Zheti Kazyna', 'ЖК Жети казына', 'ЖК Жеті қазына'],
73
+ ['Коктем', 'Көктем', 'Koktem', 'ЖК Коктем', 'ЖК Көктем'],
74
+ ['Куандык', 'Қуандық', 'Kuandyk', 'Quandyq', 'ЖК Куандык', 'ЖК Қуандық'],
75
+ ['Полина', 'Polina', 'ЖК Полина'],
76
+ ['Сконур', 'Skonur', 'ЖК Сконур'],
77
+ ['Сункар', 'Сұңқар', 'Sunkar', 'Sunqar', 'ЖК Сункар', 'ЖК Сұңқар'],
78
+ ]),
79
+ }),
80
+ });