@whiteslove/parsing-lexicon 0.2.0

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 (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +137 -0
  3. package/index.d.ts +375 -0
  4. package/package.json +75 -0
  5. package/src/central-asia-locations.js +211 -0
  6. package/src/central-asia.js +233 -0
  7. package/src/contact.d.ts +44 -0
  8. package/src/contact.js +159 -0
  9. package/src/countries.js +175 -0
  10. package/src/country-context.d.ts +10 -0
  11. package/src/country-context.js +22 -0
  12. package/src/currency.d.ts +14 -0
  13. package/src/currency.js +66 -0
  14. package/src/geo.js +169 -0
  15. package/src/geography-central-asia.js +42 -0
  16. package/src/geography-detection.d.ts +14 -0
  17. package/src/geography-detection.js +64 -0
  18. package/src/geography-display.d.ts +13 -0
  19. package/src/geography-display.js +113 -0
  20. package/src/geography.js +210 -0
  21. package/src/hiring-advanced.js +147 -0
  22. package/src/hiring-candidate-fields.d.ts +9 -0
  23. package/src/hiring-candidate-fields.js +92 -0
  24. package/src/hiring-context.d.ts +64 -0
  25. package/src/hiring-context.js +412 -0
  26. package/src/hiring-language-extensions.d.ts +19 -0
  27. package/src/hiring-language-extensions.js +139 -0
  28. package/src/hiring-languages.js +135 -0
  29. package/src/hiring-location-fields.d.ts +3 -0
  30. package/src/hiring-location-fields.js +53 -0
  31. package/src/hiring-professions-ro.js +191 -0
  32. package/src/hiring-professions.js +437 -0
  33. package/src/hiring-requirements.d.ts +16 -0
  34. package/src/hiring-requirements.js +170 -0
  35. package/src/hiring-salary-context.d.ts +27 -0
  36. package/src/hiring-salary-context.js +76 -0
  37. package/src/hiring-semantics.d.ts +29 -0
  38. package/src/hiring-semantics.js +218 -0
  39. package/src/hiring-skills.d.ts +21 -0
  40. package/src/hiring-skills.js +315 -0
  41. package/src/hiring-source-aliases.d.ts +32 -0
  42. package/src/hiring-source-aliases.js +186 -0
  43. package/src/hiring-source-semantics.d.ts +31 -0
  44. package/src/hiring-source-semantics.js +293 -0
  45. package/src/hiring-temporal.d.ts +15 -0
  46. package/src/hiring-temporal.js +67 -0
  47. package/src/hiring-vacancy-fields.d.ts +5 -0
  48. package/src/hiring-vacancy-fields.js +23 -0
  49. package/src/hiring-work-semantics.d.ts +34 -0
  50. package/src/hiring-work-semantics.js +72 -0
  51. package/src/hiring.js +180 -0
  52. package/src/housing-address.d.ts +18 -0
  53. package/src/housing-address.js +210 -0
  54. package/src/housing-context.d.ts +36 -0
  55. package/src/housing-context.js +183 -0
  56. package/src/housing-features.js +30 -0
  57. package/src/housing-intent.d.ts +9 -0
  58. package/src/housing-intent.js +132 -0
  59. package/src/housing-listing-fields.js +131 -0
  60. package/src/housing-money.d.ts +7 -0
  61. package/src/housing-money.js +102 -0
  62. package/src/housing-source-aliases.d.ts +8 -0
  63. package/src/housing-source-aliases.js +51 -0
  64. package/src/housing-structured.d.ts +55 -0
  65. package/src/housing-structured.js +219 -0
  66. package/src/housing.js +200 -0
  67. package/src/index.js +44 -0
  68. package/src/kz-location-extensions.js +307 -0
  69. package/src/landmarks.js +21 -0
  70. package/src/lexicon-core.js +58 -0
  71. package/src/location-merge.js +106 -0
  72. package/src/locations.js +456 -0
  73. package/src/money-core.d.ts +10 -0
  74. package/src/money-core.js +81 -0
  75. package/src/money-lexicon.d.ts +5 -0
  76. package/src/money-lexicon.js +79 -0
  77. package/src/money.js +154 -0
  78. package/src/normalization.js +384 -0
  79. package/src/odesa-metropolitan.js +145 -0
  80. package/src/romania-geography.js +47 -0
  81. package/src/tashkent-colloquial.js +72 -0
  82. package/src/tashkent-housing-geography.d.ts +38 -0
  83. package/src/tashkent-housing-geography.js +211 -0
  84. package/src/tashkent-pois.js +215 -0
  85. package/src/tashkent-residential-complexes.js +272 -0
  86. package/src/ua-location-extensions-major.js +118 -0
  87. package/src/ua-location-extensions-metro.js +9 -0
  88. package/src/ua-location-extensions-regional.js +246 -0
  89. package/src/ua-secondary-cities.d.ts +2 -0
  90. package/src/ua-secondary-cities.js +57 -0
  91. package/src/ukraine.js +75 -0
  92. package/src/uz-location-extensions.js +259 -0
package/src/housing.js ADDED
@@ -0,0 +1,200 @@
1
+ import { lexiconEntity } from './lexicon-core.js';
2
+ import { HOUSING_DEAL_TYPES } from './housing-intent.js';
3
+ const group = (canonical, aliases, extra = {}) => lexiconEntity(canonical, aliases, extra);
4
+
5
+ export const ADDRESS_TERMS = Object.freeze({
6
+ label: group('address', {
7
+ ru: ['адрес', 'адреса', 'местоположение'], en: ['address', 'location'], uk: ['адреса', 'місцезнаходження'], ro: ['adresă', 'adresa', 'locație', 'locatie'],
8
+ uzLatn: ['manzil', 'joylashuv'], uzCyrl: ['манзил', 'жойлашув'], kk: ['мекенжай', 'орналасқан жері', 'орналасуы'],
9
+ }),
10
+ street: group('street', {
11
+ ru: ['улица', 'ул', 'ул.', 'переулок', 'пер', 'проезд'], en: ['street', 'st', 'road', 'rd', 'lane'], uk: ['вулиця', 'вул', 'вул.', 'провулок', 'проїзд'], ro: ['stradă', 'strada', 'str.', 'alee', 'cale'],
12
+ uzLatn: ["ko'cha", 'ko‘cha', 'koʻcha', "ko'chasi", 'ko‘chasi', 'koʻchasi'], uzCyrl: ['кўча', 'кўчаси'], kk: ['көше', 'көшесі'],
13
+ }),
14
+ avenue: group('avenue', {
15
+ ru: ['проспект', 'пр-т'], en: ['avenue', 'ave', 'boulevard', 'blvd'], uk: ['проспект', 'просп.', 'бульвар'], ro: ['bulevard', 'bd.', 'b-dul'],
16
+ uzLatn: ['shoh ko‘cha', "shoh ko'cha", 'shohkocha'], uzCyrl: ['шоҳ кўча'], kk: ['даңғыл', 'даңғылы'],
17
+ }),
18
+ district: group('district', {
19
+ ru: ['район', 'р-н'], en: ['district', 'sector'], uk: ['район', 'р-н'], ro: ['sector', 'cartier administrativ'],
20
+ uzLatn: ['tuman', 'tumani'], uzCyrl: ['туман', 'тумани'], kk: ['аудан', 'ауданы'],
21
+ }),
22
+ neighborhood: group('neighborhood', {
23
+ ru: ['микрорайон', 'мкр', 'мкр.', 'квартал', 'массив', 'махалля', 'махалла'], en: ['neighborhood', 'quarter', 'microdistrict', 'residential area'],
24
+ uk: ['мікрорайон', 'мкр', 'квартал', 'масив'], ro: ['cartier', 'zonă', 'zona', 'ansamblu de cartier'],
25
+ uzLatn: ['mahalla', 'mahallasi', 'mavze', 'daha', 'massiv', 'massivi'], uzCyrl: ['маҳалла', 'маҳалласи', 'мавзе', 'даҳа', 'массив'], kk: ['шағынаудан', 'ықшамаудан', 'квартал'],
26
+ }),
27
+ residentialComplex: group('residentialComplex', {
28
+ ru: ['жилой комплекс', 'жк'], en: ['residential complex', 'residence', 'housing complex'], uk: ['житловий комплекс', 'жк'], ro: ['ansamblu rezidențial', 'ansamblu rezidential', 'complex rezidențial', 'complex rezidential'],
29
+ uzLatn: ['turar joy majmuasi', 'tjm'], uzCyrl: ['турар жой мажмуаси'], kk: ['тұрғын үй кешені', 'түк'],
30
+ }),
31
+ house: group('houseNumber', {
32
+ ru: ['дом', 'д.', 'д'], en: ['house', 'house number', 'no.'], uk: ['будинок', 'буд.', 'б'], ro: ['număr', 'numar', 'nr.', 'casă', 'casa'],
33
+ uzLatn: ['uy', 'uy raqami'], uzCyrl: ['уй', 'уй рақами'], kk: ['үй', 'үй нөмірі'],
34
+ }),
35
+ building: group('building', {
36
+ ru: ['корпус', 'корп.', 'строение'], en: ['block', 'building'], uk: ['корпус', 'корп.', 'будівля'], ro: ['bloc', 'clădire', 'cladire', 'corp'],
37
+ uzLatn: ['bino', 'korpus'], uzCyrl: ['бино', 'корпус'], kk: ['ғимарат', 'корпус'],
38
+ }),
39
+ entrance: group('entrance', {
40
+ ru: ['подъезд', 'подьезд'], en: ['entrance', 'staircase'], uk: ['під’їзд', "під'їзд", 'підїзд'], ro: ['scară', 'scara', 'intrare'],
41
+ uzLatn: ['kirish', 'podyezd'], uzCyrl: ['кириш', 'подъезд'], kk: ['кіреберіс', 'подъезд'],
42
+ }),
43
+ landmark: group('landmark', {
44
+ ru: ['ориентир', 'рядом с', 'возле', 'напротив'], en: ['landmark', 'near', 'next to', 'opposite'], uk: ['орієнтир', 'поруч', 'біля', 'навпроти'], ro: ['reper', 'lângă', 'langa', 'în apropiere', 'in apropiere', 'vizavi'],
45
+ uzLatn: ['mo‘ljal', "mo'ljal", 'yaqinida', 'yonida', 'ro‘parasida'], uzCyrl: ['мўлжал', 'яқинида', 'ёнида', 'рўпарасида'], kk: ['бағдар', 'жанында', 'маңында', 'қарсысында'],
46
+ }),
47
+ });
48
+
49
+ export const DEAL_TYPES = HOUSING_DEAL_TYPES;
50
+
51
+ /** Occupancy is orthogonal to deal type: longRent + room/sharedRoom is valid. */
52
+ export const HOUSING_OCCUPANCY_TYPES = Object.freeze([
53
+ group('wholeProperty', {
54
+ ru: ['целиком', 'вся квартира', 'весь дом'], en: ['whole property', 'entire apartment', 'entire home'], uk: ['цілком', 'вся квартира', 'весь будинок'], ro: ['apartament întreg', 'apartament intreg', 'locuință întreagă', 'locuinta intreaga'],
55
+ uzLatn: ['butun uy', 'butun kvartira'], uzCyrl: ['бутун уй', 'бутун квартира'], kk: ['толық пәтер', 'бүкіл үй'],
56
+ }),
57
+ group('room', {
58
+ ru: ['аренда комнаты', 'сдам комнату', 'сдается комната', 'комната в квартире'], en: ['room for rent', 'rent a room', 'private room'], uk: ['оренда кімнати', 'здам кімнату', 'кімната в квартирі'], ro: ['cameră de închiriat', 'camera de inchiriat', 'închiriez cameră', 'inchiriez camera'],
59
+ uzLatn: ['xona ijaraga', 'xona beriladi', 'alohida xona'], uzCyrl: ['хона ижарага', 'хона берилади', 'алоҳида хона'], kk: ['бөлме жалға', 'бөлме жалға беріледі', 'жеке бөлме'],
60
+ }),
61
+ group('sharedRoom', {
62
+ ru: ['подселение', 'подселюсь', 'ищу соседа', 'ищу соседку', 'сосед в комнату', 'место в комнате'], en: ['room share', 'shared room', 'flatmate wanted', 'roommate wanted', 'looking for roommate'],
63
+ uk: ['підселення', 'підселюсь', 'шукаю сусіда', 'шукаю сусідку', 'місце в кімнаті'], ro: ['cameră la comun', 'camera la comun', 'caut coleg de apartament', 'caut colegă de apartament', 'coleg de cameră'],
64
+ uzLatn: ['sherik kerak', 'xonaga sherik', 'birga turishga', 'qiz olinadi', 'yigit olinadi', 'podseleniye'], uzCyrl: ['шерик керак', 'хонага шерик', 'бирга туришга', 'қиз олинади', 'йигит олинади'], kk: ['бірге тұруға', 'бөлмелес керек', 'көрші керек', 'ортақ бөлме'],
65
+ }),
66
+ group('bedSpace', {
67
+ ru: ['койко-место', 'койкоместо', 'спальное место'], en: ['bed space', 'bedspace', 'bed for rent'], uk: ['ліжко-місце', 'ліжкомісце', 'спальне місце'], ro: ['loc de dormit', 'pat de închiriat', 'pat de inchiriat'],
68
+ uzLatn: ['yotoq joy', 'joy ijaraga', 'koyka joy'], uzCyrl: ['ётоқ жой', 'жой ижарага'], kk: ['жатын орын', 'төсек орын'],
69
+ }),
70
+ ]);
71
+
72
+ export const PROPERTY_TYPES = Object.freeze([
73
+ group('flat', {
74
+ ru: ['квартира', 'кв', 'апартаменты'], en: ['apartment', 'flat'], uk: ['квартира', 'апартаменти'], ro: ['apartament', 'apartamente'],
75
+ uzLatn: ['kvartira', 'xonadon'], uzCyrl: ['квартира', 'хонадон'], kk: ['пәтер'],
76
+ }),
77
+ group('house', {
78
+ ru: ['дом', 'частный дом', 'коттедж'], en: ['house', 'home', 'cottage'], uk: ['будинок', 'приватний будинок', 'котедж'], ro: ['casă', 'casa', 'vilă', 'vila'],
79
+ uzLatn: ['uy', 'hovli', 'xovli'], uzCyrl: ['уй', 'ҳовли', 'ховли'], kk: ['үй', 'жеке үй', 'коттедж'],
80
+ }),
81
+ group('room', {
82
+ ru: ['комната', 'комнату'], en: ['room'], uk: ['кімната'], ro: ['cameră', 'camera'], uzLatn: ['xona', 'hona'], uzCyrl: ['хона'], kk: ['бөлме'],
83
+ }),
84
+ group('studio', {
85
+ ru: ['студия'], en: ['studio'], uk: ['студія'], ro: ['garsonieră', 'garsoniera', 'studio'], uzLatn: ['studiya'], uzCyrl: ['студия'], kk: ['студия'],
86
+ }),
87
+ group('townhouse', {
88
+ ru: ['таунхаус'], en: ['townhouse', 'town house'], uk: ['таунхаус'], ro: ['casă înșiruită', 'casa insiruita', 'townhouse'], uzLatn: ['taunhaus'], uzCyrl: ['таунхаус'], kk: ['таунхаус'],
89
+ }),
90
+ group('dormitory', {
91
+ ru: ['общежитие', 'общага'], en: ['dormitory', 'dorm', 'hostel room'], uk: ['гуртожиток'], ro: ['cămin', 'camin', 'cămin studențesc', 'camin studentesc'], uzLatn: ['yotoqxona', 'obshijit'], uzCyrl: ['ётоқхона', 'общежитие'], kk: ['жатақхана'],
92
+ }),
93
+ ]);
94
+
95
+ export const ROOM_TERMS = Object.freeze({
96
+ room: group('room', { ru: ['комната', 'комнаты', 'комнат', 'комн'], en: ['room', 'rooms'], uk: ['кімната', 'кімнати', 'кімнат'], ro: ['cameră', 'camera', 'camere'], uzLatn: ['xona'], uzCyrl: ['хона'], kk: ['бөлме'] }),
97
+ bedroom: group('bedroom', { ru: ['спальня', 'спальни'], en: ['bedroom', 'bedrooms'], uk: ['спальня', 'спальні'], ro: ['dormitor', 'dormitoare'], uzLatn: ['yotoqxona'], uzCyrl: ['ётоқхона'], kk: ['жатын бөлме'] }),
98
+ });
99
+
100
+ export const FLOOR_TERMS = Object.freeze({
101
+ floor: group('floor', { ru: ['этаж', 'эт'], en: ['floor', 'storey', 'story'], uk: ['поверх', 'пов.'], ro: ['etaj', 'et.'], uzLatn: ['qavat'], uzCyrl: ['қават'], kk: ['қабат'] }),
102
+ totalFloors: group('totalFloors', { ru: ['этажей', 'этажный', 'этажность'], en: ['floors total', 'storeys'], uk: ['поверхів', 'поверховий'], ro: ['etaje', 'număr etaje', 'numar etaje'], uzLatn: ['qavatli'], uzCyrl: ['қаватли'], kk: ['қабатты'] }),
103
+ });
104
+
105
+ export const AREA_TERMS = Object.freeze({
106
+ area: group('area', { ru: ['площадь', 'плошадь', 'квадратов'], en: ['area', 'size'], uk: ['площа', 'квадратів'], ro: ['suprafață', 'suprafata', 'suprafață utilă', 'suprafata utila'], uzLatn: ['maydon', 'maydoni'], uzCyrl: ['майдон', 'майдони'], kk: ['аудан', 'көлемі'] }),
107
+ squareMeter: group('sqm', { ru: ['м2', 'м²', 'кв м', 'кв.м'], en: ['m2', 'm²', 'sqm', 'sq m'], uk: ['м2', 'м²', 'кв м'], ro: ['m2', 'm²', 'mp', 'm.p.'], uzLatn: ['m2', 'm²', 'kv m'], uzCyrl: ['м2', 'м²'], kk: ['м2', 'м²', 'ш.м'] }),
108
+ });
109
+
110
+ export const CURRENCIES = Object.freeze([
111
+ group('USD', { ru: ['$', 'usd', 'доллар', 'долларов', 'у.е.', 'у е'], en: ['$', 'usd', 'dollar', 'dollars'], uk: ['$', 'usd', 'долар', 'доларів'], ro: ['$', 'usd', 'dolari', 'dolar'], uzLatn: ['$', 'usd', 'dollar'], uzCyrl: ['$', 'доллар'], kk: ['$', 'usd', 'доллар'] }),
112
+ group('EUR', { ru: ['€', 'eur', 'евро'], en: ['€', 'eur', 'euro'], uk: ['€', 'eur', 'євро'], ro: ['€', 'eur', 'euro'], uzLatn: ['€', 'eur', 'yevro'], uzCyrl: ['€', 'евро'], kk: ['€', 'eur', 'еуро'] }),
113
+ group('UZS', { ru: ['сум', 'сумов', 'узс'], en: ['uzs'], uk: ['uzs', 'сум'], ro: ['uzs'], uzLatn: ["so'm", 'so‘m', 'soʻm', 'sum', 'uzs'], uzCyrl: ['сўм', 'сум'], kk: ['uzs'] }),
114
+ group('KZT', { ru: ['тенге', 'тг'], en: ['kzt', 'tenge'], uk: ['тенге', 'kzt'], ro: ['kzt', 'tenge'], uzLatn: ['kzt'], uzCyrl: ['kzt'], kk: ['теңге', 'тг', 'kzt'] }),
115
+ group('UAH', { ru: ['грн', 'гривна', 'гривен'], en: ['uah', 'hryvnia'], uk: ['грн', 'гривня', 'гривень', '₴'], ro: ['uah', 'hrivne', 'grivne'], uzLatn: ['uah'], uzCyrl: ['uah'], kk: ['uah'] }),
116
+ group('RON', { ru: ['ron', 'лей', 'леев'], en: ['ron', 'romanian leu', 'lei'], uk: ['ron', 'лей', 'леїв'], ro: ['ron', 'leu', 'lei'], uzLatn: ['ron'], uzCyrl: ['ron'], kk: ['ron'] }),
117
+ group('KGS', { ru: ['kgs', 'сом', 'сомов'], en: ['kgs', 'kyrgyz som'], uk: ['kgs', 'сом'], ro: ['kgs'], uzLatn: ['kgs', 'som'], uzCyrl: ['kgs', 'сом'], kk: ['kgs', 'сом'] }),
118
+ ]);
119
+
120
+ export const SELLER_TERMS = Object.freeze({
121
+ owner: group('owner', {
122
+ ru: ['собственник', 'хозяин', 'от хозяина', 'без посредников'], en: ['owner', 'direct owner', 'no agent'], uk: ['власник', 'власниця', 'від власника', 'без посередників'], ro: ['proprietar', 'direct proprietar', 'fără agenție', 'fara agentie', 'fără intermediari'],
123
+ uzLatn: ['egasi', 'uy egasi', 'mulkdor', 'maklersiz', 'vositachisiz'], uzCyrl: ['эгаси', 'уй эгаси', 'мулкдор', 'маклерсиз', 'воситачисиз'], kk: ['иесі', 'үй иесі', 'меншік иесі', 'делдалсыз'],
124
+ }),
125
+ agency: group('agency', {
126
+ ru: ['агентство', 'агент', 'риелтор', 'риэлтор', 'маклер', 'посредник'], en: ['agency', 'agent', 'realtor', 'broker'], uk: ['агентство', 'агент', 'рієлтор', 'риелтор', 'посередник'], ro: ['agenție', 'agentie', 'agent imobiliar', 'agenție imobiliară', 'agentie imobiliara', 'broker'],
127
+ uzLatn: ['agentlik', 'agent', 'rieltor', 'makler', 'vositachi'], uzCyrl: ['агентлик', 'агент', 'риелтор', 'маклер', 'воситачи'], kk: ['агенттік', 'агент', 'риэлтор', 'делдал'],
128
+ }),
129
+ commission: group('commission', {
130
+ ru: ['комиссия', 'комиссионные'], en: ['commission', 'agency fee'], uk: ['комісія', 'комісійні'], ro: ['comision', 'comision agenție', 'comision agentie'], uzLatn: ['komissiya', 'xizmat haqi'], uzCyrl: ['комиссия', 'хизмат ҳақи'], kk: ['комиссия', 'қызмет ақысы', 'делдал ақысы'],
131
+ }),
132
+ noCommission: group('noCommission', {
133
+ ru: ['без комиссии', 'комиссия 0', '0% комиссия'], en: ['no commission', 'zero commission'], uk: ['без комісії', 'комісія 0', '0% комісії'], ro: ['fără comision', 'fara comision', 'comision 0', '0% comision'], uzLatn: ['komissiyasiz', 'komissiya yoq', "komissiya yo'q"], uzCyrl: ['комиссиясиз', 'комиссия йўқ'], kk: ['комиссиясыз', 'делдалсыз'],
134
+ }),
135
+ });
136
+
137
+ export const DEPOSIT_TERMS = Object.freeze({
138
+ deposit: group('deposit', {
139
+ ru: ['депозит', 'залог', 'страховой депозит', 'обеспечительный платеж'], en: ['deposit', 'security deposit', 'damage deposit'], uk: ['депозит', 'застава', 'страховий депозит', 'гарантійний платіж'], ro: ['garanție', 'garantie', 'depozit', 'garanție chirie', 'garantie chirie'],
140
+ uzLatn: ['depozit', 'zalog', 'garov puli'], uzCyrl: ['депозит', 'залог', 'гаров пули'], kk: ['депозит', 'кепіл', 'кепілақы'],
141
+ }),
142
+ noDeposit: group('noDeposit', {
143
+ ru: ['без депозита', 'без залога'], en: ['no deposit', 'deposit free'], uk: ['без депозиту', 'без застави'], ro: ['fără garanție', 'fara garantie', 'fără depozit'], uzLatn: ['depozitsiz', 'zalogsiz', 'garovsiz'], uzCyrl: ['депозитсиз', 'залогсиз', 'гаровсиз'], kk: ['депозитсіз', 'кепілсіз'],
144
+ }),
145
+ advance: group('advance', {
146
+ ru: ['предоплата', 'аванс', 'оплата вперед'], en: ['advance payment', 'prepayment', 'paid in advance'], uk: ['передоплата', 'аванс', 'оплата наперед'], ro: ['avans', 'plată în avans', 'plata in avans'], uzLatn: ['oldindan tolov', "oldindan to'lov", 'avans'], uzCyrl: ['олдиндан тўлов', 'аванс'], kk: ['алдын ала төлем', 'аванс'],
147
+ }),
148
+ firstAndLastMonth: group('firstAndLastMonth', {
149
+ ru: ['первый и последний месяц', 'за первый и последний месяц'], en: ['first and last month', 'first month plus last month'], uk: ['перший і останній місяць', 'за перший та останній місяць'], ro: ['prima și ultima lună', 'prima si ultima luna'], uzLatn: ['birinchi va oxirgi oy'], uzCyrl: ['биринчи ва охирги ой'], kk: ['бірінші және соңғы ай'],
150
+ }),
151
+ refundable: group('refundableDeposit', {
152
+ ru: ['возвратный депозит', 'залог возвращается'], en: ['refundable deposit'], uk: ['поворотний депозит', 'застава повертається'], ro: ['garanție returnabilă', 'garantie returnabila'], uzLatn: ['qaytariladigan depozit'], uzCyrl: ['қайтариладиган депозит'], kk: ['қайтарылатын депозит'],
153
+ }),
154
+ });
155
+
156
+ export const UTILITY_TERMS = Object.freeze({
157
+ included: group('utilitiesIncluded', { ru: ['коммунальные включены', 'коммуналка включена'], en: ['utilities included', 'bills included'], uk: ['комунальні включені', 'комуналка включена'], ro: ['utilități incluse', 'utilitati incluse', 'întreținere inclusă', 'intretinere inclusa'], uzLatn: ['kommunal ichida', 'kommunal tolovlar ichida'], uzCyrl: ['коммунал ичида', 'коммунал тўловлар ичида'], kk: ['коммуналдық төлемдер кіреді'] }),
158
+ separate: group('utilitiesSeparate', { ru: ['коммунальные отдельно', 'плюс коммунальные'], en: ['utilities separate', 'plus utilities', 'bills extra'], uk: ['комунальні окремо', 'плюс комунальні'], ro: ['utilități separat', 'utilitati separat', 'plus utilități', 'plus utilitati'], uzLatn: ['kommunal alohida'], uzCyrl: ['коммунал алоҳида'], kk: ['коммуналдық төлем бөлек'] }),
159
+ });
160
+
161
+ export const APPLIANCE_TERMS = Object.freeze({
162
+ washingMachine: group('washingMachine', { ru: ['стиральная машина', 'стиралка'], en: ['washing machine', 'washer'], uk: ['пральна машина', 'пралка'], ro: ['mașină de spălat', 'masina de spalat'], uzLatn: ['kir yuvish mashinasi', 'stiralka'], uzCyrl: ['кир ювиш машинаси', 'стиралка'], kk: ['кір жуғыш машина'] }),
163
+ refrigerator: group('refrigerator', { ru: ['холодильник'], en: ['refrigerator', 'fridge'], uk: ['холодильник'], ro: ['frigider'], uzLatn: ['muzlatgich', 'xolodilnik'], uzCyrl: ['музлатгич', 'холодильник'], kk: ['тоңазытқыш'] }),
164
+ dishwasher: group('dishwasher', { ru: ['посудомоечная машина', 'посудомойка'], en: ['dishwasher'], uk: ['посудомийна машина'], ro: ['mașină de spălat vase', 'masina de spalat vase'], uzLatn: ['idish yuvish mashinasi'], uzCyrl: ['идиш ювиш машинаси'], kk: ['ыдыс жуғыш машина'] }),
165
+ television: group('television', { ru: ['телевизор', 'тв'], en: ['television', 'tv'], uk: ['телевізор', 'тв'], ro: ['televizor', 'tv'], uzLatn: ['televizor', 'tv'], uzCyrl: ['телевизор'], kk: ['теледидар'] }),
166
+ airConditioner: group('airConditioner', { ru: ['кондиционер', 'сплит система'], en: ['air conditioner', 'air conditioning', 'ac'], uk: ['кондиціонер'], ro: ['aer condiționat', 'aer conditionat', 'climă', 'clima'], uzLatn: ['konditsioner'], uzCyrl: ['кондиционер'], kk: ['кондиционер'] }),
167
+ microwave: group('microwave', { ru: ['микроволновка', 'свч'], en: ['microwave', 'microwave oven'], uk: ['мікрохвильовка', 'мікрохвильова піч'], ro: ['cuptor cu microunde', 'microunde'], uzLatn: ['mikroto‘lqinli pech', 'mikrovolnovka'], uzCyrl: ['микротўлқинли печ'], kk: ['микротолқынды пеш'] }),
168
+ oven: group('oven', { ru: ['духовка', 'духовой шкаф'], en: ['oven'], uk: ['духовка', 'духова шафа'], ro: ['cuptor'], uzLatn: ['duxovka', 'pech'], uzCyrl: ['духовка', 'печ'], kk: ['пеш', 'духовка'] }),
169
+ stove: group('stove', { ru: ['плита', 'варочная панель'], en: ['stove', 'cooktop', 'hob'], uk: ['плита', 'варильна поверхня'], ro: ['aragaz', 'plită', 'plita'], uzLatn: ['plita', 'gaz plita'], uzCyrl: ['плита', 'газ плита'], kk: ['плита', 'пісіру панелі'] }),
170
+ kettle: group('kettle', { ru: ['чайник', 'электрочайник'], en: ['kettle', 'electric kettle'], uk: ['чайник', 'електрочайник'], ro: ['fierbător', 'fierbator'], uzLatn: ['choynak', 'elektr choynak'], uzCyrl: ['чойнак', 'электр чойнак'], kk: ['шәйнек', 'электр шәйнек'] }),
171
+ boiler: group('boiler', { ru: ['бойлер', 'водонагреватель'], en: ['boiler', 'water heater'], uk: ['бойлер', 'водонагрівач'], ro: ['boiler', 'centrală', 'centrala', 'încălzitor de apă', 'incalzitor de apa'], uzLatn: ['boyler', 'suv isitgich'], uzCyrl: ['бойлер', 'сув иситгич'], kk: ['бойлер', 'су жылытқыш'] }),
172
+ vacuumCleaner: group('vacuumCleaner', { ru: ['пылесос'], en: ['vacuum cleaner'], uk: ['пилосос'], ro: ['aspirator'], uzLatn: ['changyutgich', 'pilesos'], uzCyrl: ['чангютгич', 'пылесос'], kk: ['шаңсорғыш'] }),
173
+ router: group('router', { ru: ['роутер', 'wifi роутер', 'wi-fi роутер'], en: ['router', 'wifi router', 'wi-fi router'], uk: ['роутер', 'wifi роутер'], ro: ['router', 'router wifi'], uzLatn: ['router', 'wifi router'], uzCyrl: ['роутер'], kk: ['роутер', 'wifi роутер'] }),
174
+ iron: group('iron', { ru: ['утюг'], en: ['iron'], uk: ['праска'], ro: ['fier de călcat', 'fier de calcat'], uzLatn: ['dazmol'], uzCyrl: ['дазмол'], kk: ['үтік'] }),
175
+ });
176
+
177
+ export const AMENITY_TERMS = Object.freeze({
178
+ furnished: group('furnished', { ru: ['с мебелью', 'меблированная', 'мебель есть'], en: ['furnished', 'with furniture'], uk: ['з меблями', 'мебльована'], ro: ['mobilat', 'mobilată', 'mobilata'], uzLatn: ['mebelli', 'mebel bor'], uzCyrl: ['мебелли', 'мебель бор'], kk: ['жиһазбен', 'жиһаздалған'] }),
179
+ unfurnished: group('unfurnished', { ru: ['без мебели', 'пустая'], en: ['unfurnished', 'without furniture'], uk: ['без меблів', 'порожня'], ro: ['nemobilat', 'nemobilată'], uzLatn: ['mebelsiz'], uzCyrl: ['мебелсиз'], kk: ['жиһазсыз'] }),
180
+ parking: group('parking', { ru: ['парковка', 'паркинг', 'гараж'], en: ['parking', 'garage'], uk: ['парковка', 'паркінг', 'гараж'], ro: ['parcare', 'loc de parcare', 'garaj'], uzLatn: ['parking', 'avtoturargoh', 'garaj'], uzCyrl: ['паркинг', 'автотураргоҳ', 'гараж'], kk: ['тұрақ', 'автотұрақ', 'гараж'] }),
181
+ internet: group('internet', { ru: ['интернет', 'wifi', 'wi-fi'], en: ['internet', 'wifi', 'wi-fi'], uk: ['інтернет', 'wifi', 'wi-fi'], ro: ['internet', 'wifi', 'wi-fi'], uzLatn: ['internet', 'wifi'], uzCyrl: ['интернет', 'wifi'], kk: ['интернет', 'wifi'] }),
182
+ elevator: group('elevator', { ru: ['лифт'], en: ['elevator', 'lift'], uk: ['ліфт'], ro: ['lift', 'ascensor'], uzLatn: ['lift'], uzCyrl: ['лифт'], kk: ['лифт'] }),
183
+ balcony: group('balcony', { ru: ['балкон', 'лоджия'], en: ['balcony', 'loggia'], uk: ['балкон', 'лоджія'], ro: ['balcon', 'logie'], uzLatn: ['balkon', 'lodjiya'], uzCyrl: ['балкон', 'лоджия'], kk: ['балкон', 'лоджия'] }),
184
+ terrace: group('terrace', { ru: ['терраса'], en: ['terrace'], uk: ['тераса'], ro: ['terasă', 'terasa'], uzLatn: ['terrasa'], uzCyrl: ['терраса'], kk: ['терраса'] }),
185
+ security: group('security', { ru: ['охрана', 'консьерж', 'видеонаблюдение'], en: ['security', 'concierge', 'cctv'], uk: ['охорона', 'консьєрж', 'відеоспостереження'], ro: ['pază', 'paza', 'concierge', 'supraveghere video'], uzLatn: ['qoriqlash', 'kuzatuv kamera'], uzCyrl: ['қўриқлаш', 'кузатув камера'], kk: ['күзет', 'бейнебақылау'] }),
186
+ });
187
+
188
+ export const TENANT_TERMS = Object.freeze({
189
+ family: group('family', { ru: ['семье', 'семейным', 'семейная пара'], en: ['family', 'couple'], uk: ['сім’ї', "сім'ї", 'сімейним', 'сімейна пара'], ro: ['familie', 'cuplu'], uzLatn: ['oilaga', 'oilali', 'oila'], uzCyrl: ['оилага', 'оилали', 'оила'], kk: ['отбасына', 'отбасылы', 'жанұяға'] }),
190
+ students: group('students', { ru: ['студентам', 'студенты'], en: ['students'], uk: ['студентам', 'студенти'], ro: ['studenți', 'studenti'], uzLatn: ['talabalarga', 'talabalar'], uzCyrl: ['талабаларга', 'талабалар'], kk: ['студенттерге', 'студенттер'] }),
191
+ girls: group('girls', { ru: ['девушкам', 'девушки'], en: ['girls', 'women'], uk: ['дівчатам', 'дівчата'], ro: ['fete', 'femei'], uzLatn: ['qizlarga', 'qizlar'], uzCyrl: ['қизларга', 'қизлар'], kk: ['қыздарға', 'қыздар'] }),
192
+ boys: group('boys', { ru: ['парням', 'мужчинам'], en: ['men', 'guys'], uk: ['хлопцям', 'чоловікам'], ro: ['bărbați', 'barbati', 'băieți', 'baieti'], uzLatn: ['yigitlarga', 'yigitlar'], uzCyrl: ['йигитларга', 'йигитлар'], kk: ['жігіттерге', 'жігіттер'] }),
193
+ childrenAllowed: group('childrenAllowed', { ru: ['можно с детьми', 'с детьми можно'], en: ['children allowed', 'kids allowed'], uk: ['можна з дітьми'], ro: ['acceptă copii', 'accepta copii', 'copii acceptați'], uzLatn: ['bolalar mumkin', 'bolali oila'], uzCyrl: ['болалар мумкин', 'болали оила'], kk: ['балалармен болады', 'балаларға болады'] }),
194
+ petsAllowed: group('petsAllowed', { ru: ['можно с животными', 'с питомцами можно'], en: ['pets allowed', 'pet friendly'], uk: ['можна з тваринами'], ro: ['acceptă animale', 'accepta animale', 'pet friendly'], uzLatn: ['hayvon bilan mumkin'], uzCyrl: ['ҳайвон билан мумкин'], kk: ['үй жануарларымен болады'] }),
195
+ });
196
+
197
+ export function flattenAliases(item) {
198
+ if (!item?.aliases) return [];
199
+ return Object.values(item.aliases).flat();
200
+ }
package/src/index.js ADDED
@@ -0,0 +1,44 @@
1
+ export * from './lexicon-core.js';
2
+ export * from './normalization.js';
3
+ export * from './countries.js';
4
+ export {
5
+ TASHKENT_DISTRICTS,
6
+ canonicalTashkentDistrict,
7
+ TASHKENT_METRO,
8
+ tashkentMetroStation,
9
+ canonicalTashkentMetro,
10
+ tashkentMetroLabels,
11
+ TASHKENT_AREAS,
12
+ UZ_CITIES,
13
+ KZ_CITIES,
14
+ } from './geo.js';
15
+ export * from './geography.js';
16
+ export * from './geography-display.js';
17
+ export * from './central-asia.js';
18
+ export * from './ukraine.js';
19
+ export * from './location-merge.js';
20
+ export * from './locations.js';
21
+ export * from './kz-location-extensions.js';
22
+ export * from './uz-location-extensions.js';
23
+ export * from './central-asia-locations.js';
24
+ export * from './ua-location-extensions-major.js';
25
+ export * from './ua-location-extensions-regional.js';
26
+ export * from './ua-location-extensions-metro.js';
27
+ export * from './landmarks.js';
28
+ export * from './tashkent-colloquial.js';
29
+ export * from './tashkent-residential-complexes.js';
30
+ export * from './tashkent-pois.js';
31
+ export * from './odesa-metropolitan.js';
32
+ export * from './housing.js';
33
+ export * from './housing-intent.js';
34
+ export * from './housing-context.js';
35
+ export * from './housing-address.js';
36
+ export * from './housing-features.js';
37
+ export * from './housing-listing-fields.js';
38
+ export * from './housing-structured.js';
39
+ export * from './hiring.js';
40
+ export * from './hiring-languages.js';
41
+ export * from './hiring-context.js';
42
+ export * from './money.js';
43
+ export * from './hiring-professions.js';
44
+ export * from './hiring-advanced.js';