@intlayer/core 5.4.0-canary.0 → 5.4.1

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 (97) hide show
  1. package/dist/cjs/localization/getLocaleName.cjs +17 -251
  2. package/dist/cjs/localization/getLocaleName.cjs.map +1 -1
  3. package/dist/cjs/localization/getPathWithoutLocale.cjs.map +1 -1
  4. package/dist/cjs/localization/localeMapper.cjs +6 -11
  5. package/dist/cjs/localization/localeMapper.cjs.map +1 -1
  6. package/dist/cjs/localization/localeResolver.cjs.map +1 -1
  7. package/dist/esm/localization/getLocaleName.mjs +17 -251
  8. package/dist/esm/localization/getLocaleName.mjs.map +1 -1
  9. package/dist/esm/localization/getPathWithoutLocale.mjs.map +1 -1
  10. package/dist/esm/localization/localeMapper.mjs +6 -11
  11. package/dist/esm/localization/localeMapper.mjs.map +1 -1
  12. package/dist/esm/localization/localeResolver.mjs.map +1 -1
  13. package/dist/types/localization/getLocaleName.d.ts +1 -8
  14. package/dist/types/localization/getLocaleName.d.ts.map +1 -1
  15. package/dist/types/localization/getPathWithoutLocale.d.ts.map +1 -1
  16. package/dist/types/localization/localeMapper.d.ts +2 -2
  17. package/dist/types/localization/localeMapper.d.ts.map +1 -1
  18. package/dist/types/localization/localeResolver.d.ts.map +1 -1
  19. package/package.json +11 -11
  20. package/dist/cjs/localization/localeNames/ar.cjs +0 -262
  21. package/dist/cjs/localization/localeNames/ar.cjs.map +0 -1
  22. package/dist/cjs/localization/localeNames/du.cjs +0 -262
  23. package/dist/cjs/localization/localeNames/du.cjs.map +0 -1
  24. package/dist/cjs/localization/localeNames/en.cjs +0 -262
  25. package/dist/cjs/localization/localeNames/en.cjs.map +0 -1
  26. package/dist/cjs/localization/localeNames/es.cjs +0 -262
  27. package/dist/cjs/localization/localeNames/es.cjs.map +0 -1
  28. package/dist/cjs/localization/localeNames/fr.cjs +0 -262
  29. package/dist/cjs/localization/localeNames/fr.cjs.map +0 -1
  30. package/dist/cjs/localization/localeNames/hi.cjs +0 -262
  31. package/dist/cjs/localization/localeNames/hi.cjs.map +0 -1
  32. package/dist/cjs/localization/localeNames/it.cjs +0 -262
  33. package/dist/cjs/localization/localeNames/it.cjs.map +0 -1
  34. package/dist/cjs/localization/localeNames/ja.cjs +0 -262
  35. package/dist/cjs/localization/localeNames/ja.cjs.map +0 -1
  36. package/dist/cjs/localization/localeNames/ko.cjs +0 -262
  37. package/dist/cjs/localization/localeNames/ko.cjs.map +0 -1
  38. package/dist/cjs/localization/localeNames/ownLocalesName.cjs +0 -262
  39. package/dist/cjs/localization/localeNames/ownLocalesName.cjs.map +0 -1
  40. package/dist/cjs/localization/localeNames/pt.cjs +0 -262
  41. package/dist/cjs/localization/localeNames/pt.cjs.map +0 -1
  42. package/dist/cjs/localization/localeNames/ru.cjs +0 -262
  43. package/dist/cjs/localization/localeNames/ru.cjs.map +0 -1
  44. package/dist/cjs/localization/localeNames/zh.cjs +0 -262
  45. package/dist/cjs/localization/localeNames/zh.cjs.map +0 -1
  46. package/dist/esm/localization/localeNames/ar.mjs +0 -238
  47. package/dist/esm/localization/localeNames/ar.mjs.map +0 -1
  48. package/dist/esm/localization/localeNames/du.mjs +0 -238
  49. package/dist/esm/localization/localeNames/du.mjs.map +0 -1
  50. package/dist/esm/localization/localeNames/en.mjs +0 -238
  51. package/dist/esm/localization/localeNames/en.mjs.map +0 -1
  52. package/dist/esm/localization/localeNames/es.mjs +0 -238
  53. package/dist/esm/localization/localeNames/es.mjs.map +0 -1
  54. package/dist/esm/localization/localeNames/fr.mjs +0 -238
  55. package/dist/esm/localization/localeNames/fr.mjs.map +0 -1
  56. package/dist/esm/localization/localeNames/hi.mjs +0 -238
  57. package/dist/esm/localization/localeNames/hi.mjs.map +0 -1
  58. package/dist/esm/localization/localeNames/it.mjs +0 -238
  59. package/dist/esm/localization/localeNames/it.mjs.map +0 -1
  60. package/dist/esm/localization/localeNames/ja.mjs +0 -238
  61. package/dist/esm/localization/localeNames/ja.mjs.map +0 -1
  62. package/dist/esm/localization/localeNames/ko.mjs +0 -238
  63. package/dist/esm/localization/localeNames/ko.mjs.map +0 -1
  64. package/dist/esm/localization/localeNames/ownLocalesName.mjs +0 -238
  65. package/dist/esm/localization/localeNames/ownLocalesName.mjs.map +0 -1
  66. package/dist/esm/localization/localeNames/pt.mjs +0 -238
  67. package/dist/esm/localization/localeNames/pt.mjs.map +0 -1
  68. package/dist/esm/localization/localeNames/ru.mjs +0 -238
  69. package/dist/esm/localization/localeNames/ru.mjs.map +0 -1
  70. package/dist/esm/localization/localeNames/zh.mjs +0 -238
  71. package/dist/esm/localization/localeNames/zh.mjs.map +0 -1
  72. package/dist/types/localization/localeNames/ar.d.ts +0 -3
  73. package/dist/types/localization/localeNames/ar.d.ts.map +0 -1
  74. package/dist/types/localization/localeNames/du.d.ts +0 -3
  75. package/dist/types/localization/localeNames/du.d.ts.map +0 -1
  76. package/dist/types/localization/localeNames/en.d.ts +0 -3
  77. package/dist/types/localization/localeNames/en.d.ts.map +0 -1
  78. package/dist/types/localization/localeNames/es.d.ts +0 -3
  79. package/dist/types/localization/localeNames/es.d.ts.map +0 -1
  80. package/dist/types/localization/localeNames/fr.d.ts +0 -3
  81. package/dist/types/localization/localeNames/fr.d.ts.map +0 -1
  82. package/dist/types/localization/localeNames/hi.d.ts +0 -3
  83. package/dist/types/localization/localeNames/hi.d.ts.map +0 -1
  84. package/dist/types/localization/localeNames/it.d.ts +0 -3
  85. package/dist/types/localization/localeNames/it.d.ts.map +0 -1
  86. package/dist/types/localization/localeNames/ja.d.ts +0 -3
  87. package/dist/types/localization/localeNames/ja.d.ts.map +0 -1
  88. package/dist/types/localization/localeNames/ko.d.ts +0 -3
  89. package/dist/types/localization/localeNames/ko.d.ts.map +0 -1
  90. package/dist/types/localization/localeNames/ownLocalesName.d.ts +0 -3
  91. package/dist/types/localization/localeNames/ownLocalesName.d.ts.map +0 -1
  92. package/dist/types/localization/localeNames/pt.d.ts +0 -3
  93. package/dist/types/localization/localeNames/pt.d.ts.map +0 -1
  94. package/dist/types/localization/localeNames/ru.d.ts +0 -3
  95. package/dist/types/localization/localeNames/ru.d.ts.map +0 -1
  96. package/dist/types/localization/localeNames/zh.d.ts +0 -3
  97. package/dist/types/localization/localeNames/zh.d.ts.map +0 -1
@@ -1,255 +1,21 @@
1
- import { Locales } from "@intlayer/config/client";
2
- import { arabicLocales } from "./localeNames/ar.mjs";
3
- import { germanLocales } from "./localeNames/du.mjs";
4
- import { englishLocales } from "./localeNames/en.mjs";
5
- import { spanishLocales } from "./localeNames/es.mjs";
6
- import { frenchLocales } from "./localeNames/fr.mjs";
7
- import { hindiLocales } from "./localeNames/hi.mjs";
8
- import { italianLocales } from "./localeNames/it.mjs";
9
- import { japaneseLocales } from "./localeNames/ja.mjs";
10
- import { koreanLocales } from "./localeNames/ko.mjs";
11
- import { ownLocalesName } from "./localeNames/ownLocalesName.mjs";
12
- import { portugueseLocales } from "./localeNames/pt.mjs";
13
- import { russianLocales } from "./localeNames/ru.mjs";
14
- import { chineseLocales } from "./localeNames/zh.mjs";
15
- const localeNameTranslations = {
16
- [Locales.ENGLISH]: englishLocales,
17
- [Locales.ENGLISH_AUSTRALIA]: englishLocales,
18
- [Locales.ENGLISH_BELIZE]: englishLocales,
19
- [Locales.ENGLISH_CANADA]: englishLocales,
20
- [Locales.ENGLISH_CARIBBEAN]: englishLocales,
21
- [Locales.ENGLISH_UNITED_KINGDOM]: englishLocales,
22
- [Locales.ENGLISH_IRELAND]: englishLocales,
23
- [Locales.ENGLISH_JAMAICA]: englishLocales,
24
- [Locales.ENGLISH_NEW_ZEALAND]: englishLocales,
25
- [Locales.ENGLISH_PHILIPPINES]: englishLocales,
26
- [Locales.ENGLISH_TRINIDAD_AND_TOBAGO]: englishLocales,
27
- [Locales.ENGLISH_UNITED_STATES]: englishLocales,
28
- [Locales.ENGLISH_SOUTH_AFRICA]: englishLocales,
29
- [Locales.ENGLISH_ZIMBABWE]: englishLocales,
30
- [Locales.FRENCH]: frenchLocales,
31
- [Locales.FRENCH_BELGIUM]: frenchLocales,
32
- [Locales.FRENCH_CANADA]: frenchLocales,
33
- [Locales.FRENCH_SWITZERLAND]: frenchLocales,
34
- [Locales.FRENCH_FRANCE]: frenchLocales,
35
- [Locales.FRENCH_LUXEMBOURG]: frenchLocales,
36
- [Locales.FRENCH_PRINCIPALITY_OF_MONACO]: frenchLocales,
37
- [Locales.SPANISH]: spanishLocales,
38
- [Locales.SPANISH_ARGENTINA]: spanishLocales,
39
- [Locales.SPANISH_BOLIVIA]: spanishLocales,
40
- [Locales.SPANISH_CHILE]: spanishLocales,
41
- [Locales.SPANISH_COLOMBIA]: spanishLocales,
42
- [Locales.SPANISH_COSTA_RICA]: spanishLocales,
43
- [Locales.SPANISH_DOMINICAN_REPUBLIC]: spanishLocales,
44
- [Locales.SPANISH_ECUADOR]: spanishLocales,
45
- [Locales.SPANISH_SPAIN]: spanishLocales,
46
- [Locales.SPANISH_GUATEMALA]: spanishLocales,
47
- [Locales.SPANISH_HONDURAS]: spanishLocales,
48
- [Locales.SPANISH_MEXICO]: spanishLocales,
49
- [Locales.SPANISH_NICARAGUA]: spanishLocales,
50
- [Locales.SPANISH_PANAMA]: spanishLocales,
51
- [Locales.SPANISH_PERU]: spanishLocales,
52
- [Locales.SPANISH_PUERTO_RICO]: spanishLocales,
53
- [Locales.SPANISH_PARAGUAY]: spanishLocales,
54
- [Locales.SPANISH_EL_SALVADOR]: spanishLocales,
55
- [Locales.SPANISH_URUGUAY]: spanishLocales,
56
- [Locales.SPANISH_VENEZUELA]: spanishLocales,
57
- [Locales.PORTUGUESE]: portugueseLocales,
58
- [Locales.PORTUGUESE_BRAZIL]: portugueseLocales,
59
- [Locales.PORTUGUESE_PORTUGAL]: portugueseLocales,
60
- [Locales.ITALIAN]: italianLocales,
61
- [Locales.ITALIAN_SWITZERLAND]: italianLocales,
62
- [Locales.ITALIAN_ITALY]: italianLocales,
63
- [Locales.GERMAN]: germanLocales,
64
- [Locales.GERMAN_AUSTRIA]: germanLocales,
65
- [Locales.GERMAN_SWITZERLAND]: germanLocales,
66
- [Locales.GERMAN_GERMANY]: germanLocales,
67
- [Locales.GERMAN_LIECHTENSTEIN]: germanLocales,
68
- [Locales.GERMAN_LUXEMBOURG]: germanLocales,
69
- [Locales.CHINESE]: chineseLocales,
70
- [Locales.CHINESE_HONG_KONG]: chineseLocales,
71
- [Locales.CHINESE_MACAU]: chineseLocales,
72
- [Locales.CHINESE_SINGAPORE]: chineseLocales,
73
- [Locales.CHINESE_SIMPLIFIED]: chineseLocales,
74
- [Locales.CHINESE_SIMPLIFIED_CHINA]: chineseLocales,
75
- [Locales.CHINESE_TRADITIONAL]: chineseLocales,
76
- [Locales.RUSSIAN]: russianLocales,
77
- [Locales.RUSSIAN_RUSSIA]: russianLocales,
78
- [Locales.ARABIC]: arabicLocales,
79
- [Locales.ARABIC_UNITED_ARAB_EMIRATES]: arabicLocales,
80
- [Locales.ARABIC_BAHRAIN]: arabicLocales,
81
- [Locales.ARABIC_ALGERIA]: arabicLocales,
82
- [Locales.ARABIC_EGYPT]: arabicLocales,
83
- [Locales.ARABIC_IRAQ]: arabicLocales,
84
- [Locales.ARABIC_JORDAN]: arabicLocales,
85
- [Locales.ARABIC_KUWAIT]: arabicLocales,
86
- [Locales.ARABIC_LEBANON]: arabicLocales,
87
- [Locales.ARABIC_LIBYA]: arabicLocales,
88
- [Locales.ARABIC_MOROCCO]: arabicLocales,
89
- [Locales.ARABIC_OMAN]: arabicLocales,
90
- [Locales.ARABIC_QATAR]: arabicLocales,
91
- [Locales.ARABIC_SAUDI_ARABIA]: arabicLocales,
92
- [Locales.ARABIC_SYRIA]: arabicLocales,
93
- [Locales.ARABIC_TUNISIA]: arabicLocales,
94
- [Locales.ARABIC_YEMEN]: arabicLocales,
95
- [Locales.JAPANESE]: japaneseLocales,
96
- [Locales.JAPANESE_JAPAN]: japaneseLocales,
97
- [Locales.KOREAN]: koreanLocales,
98
- [Locales.KOREAN_KOREA]: koreanLocales,
99
- [Locales.HINDI]: hindiLocales,
100
- [Locales.DUTCH_BELGIUM]: void 0,
101
- [Locales.DUTCH_NETHERLANDS]: void 0,
102
- [Locales.DIVEHI_MALDIVES]: void 0,
103
- [Locales.AFRIKAANS]: void 0,
104
- [Locales.AZERI_LATIN]: void 0,
105
- [Locales.BELARUSIAN]: void 0,
106
- [Locales.BULGARIAN]: void 0,
107
- [Locales.BOSNIAN]: void 0,
108
- [Locales.CATALAN]: void 0,
109
- [Locales.CZECH]: void 0,
110
- [Locales.WELSH]: void 0,
111
- [Locales.DANISH]: void 0,
112
- [Locales.DIVEHI]: void 0,
113
- [Locales.GREEK]: void 0,
114
- [Locales.ESPERANTO]: void 0,
115
- [Locales.ESTONIAN]: void 0,
116
- [Locales.BASQUE]: void 0,
117
- [Locales.FARSI]: void 0,
118
- [Locales.FINNISH]: void 0,
119
- [Locales.FAROESE]: void 0,
120
- [Locales.GALICIAN]: void 0,
121
- [Locales.GUJARATI]: void 0,
122
- [Locales.HEBREW]: void 0,
123
- [Locales.CROATIAN]: void 0,
124
- [Locales.HUNGARIAN]: void 0,
125
- [Locales.ARMENIAN]: void 0,
126
- [Locales.INDONESIAN]: void 0,
127
- [Locales.ICELANDIC]: void 0,
128
- [Locales.GEORGIAN]: void 0,
129
- [Locales.KAZAKH]: void 0,
130
- [Locales.KANNADA]: void 0,
131
- [Locales.KONKANI]: void 0,
132
- [Locales.KYRGYZ]: void 0,
133
- [Locales.LITHUANIAN]: void 0,
134
- [Locales.LATVIAN]: void 0,
135
- [Locales.MAORI]: void 0,
136
- [Locales.FYRO_MACEDONIAN]: void 0,
137
- [Locales.MONGOLIAN]: void 0,
138
- [Locales.MARATHI]: void 0,
139
- [Locales.MALAY]: void 0,
140
- [Locales.MALTESE]: void 0,
141
- [Locales.NORWEGIAN_BOKMAL]: void 0,
142
- [Locales.DUTCH]: void 0,
143
- [Locales.NORTHERN_SOTHO]: void 0,
144
- [Locales.PUNJABI]: void 0,
145
- [Locales.POLISH]: void 0,
146
- [Locales.PASHTO]: void 0,
147
- [Locales.QUECHUA]: void 0,
148
- [Locales.ROMANIAN]: void 0,
149
- [Locales.SANSKRIT]: void 0,
150
- [Locales.SAMI_NORTHERN]: void 0,
151
- [Locales.SLOVAK]: void 0,
152
- [Locales.SLOVENIAN]: void 0,
153
- [Locales.ALBANIAN]: void 0,
154
- [Locales.SERBIAN_LATIN]: void 0,
155
- [Locales.SWEDISH]: void 0,
156
- [Locales.SWEDISH_FINLAND]: void 0,
157
- [Locales.SWEDISH_SWEDEN]: void 0,
158
- [Locales.SWAHILI]: void 0,
159
- [Locales.SYRIAC]: void 0,
160
- [Locales.TAMIL]: void 0,
161
- [Locales.TELUGU]: void 0,
162
- [Locales.THAI]: void 0,
163
- [Locales.TAGALOG]: void 0,
164
- [Locales.TSWANA]: void 0,
165
- [Locales.TURKISH]: void 0,
166
- [Locales.TATAR]: void 0,
167
- [Locales.UKRAINIAN]: void 0,
168
- [Locales.URDU]: void 0,
169
- [Locales.UZBEK_LATIN]: void 0,
170
- [Locales.VIETNAMESE]: void 0,
171
- [Locales.XHOSA]: void 0,
172
- [Locales.ZULU]: void 0,
173
- [Locales.AFRIKAANS_SOUTH_AFRICA]: void 0,
174
- [Locales.AZERI_LATIN_AZERBAIJAN]: void 0,
175
- [Locales.BELARUSIAN_BELARUS]: void 0,
176
- [Locales.BULGARIAN_BULGARIA]: void 0,
177
- [Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA]: void 0,
178
- [Locales.CATALAN_SPAIN]: void 0,
179
- [Locales.CZECH_CZECH_REPUBLIC]: void 0,
180
- [Locales.WELSH_UNITED_KINGDOM]: void 0,
181
- [Locales.DANISH_DENMARK]: void 0,
182
- [Locales.GREEK_GREECE]: void 0,
183
- [Locales.ESTONIAN_ESTONIA]: void 0,
184
- [Locales.BASQUE_SPAIN]: void 0,
185
- [Locales.FARSI_IRAN]: void 0,
186
- [Locales.FINNISH_FINLAND]: void 0,
187
- [Locales.FAROESE_FAROE_ISLANDS]: void 0,
188
- [Locales.GALICIAN_SPAIN]: void 0,
189
- [Locales.GUJARATI_INDIA]: void 0,
190
- [Locales.HEBREW_ISRAEL]: void 0,
191
- [Locales.HINDI_INDIA]: void 0,
192
- [Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA]: void 0,
193
- [Locales.CROATIAN_CROATIA]: void 0,
194
- [Locales.HUNGARIAN_HUNGARY]: void 0,
195
- [Locales.ARMENIAN_ARMENIA]: void 0,
196
- [Locales.INDONESIAN_INDONESIA]: void 0,
197
- [Locales.ICELANDIC_ICELAND]: void 0,
198
- [Locales.GEORGIAN_GEORGIA]: void 0,
199
- [Locales.KAZAKH_KAZAKHSTAN]: void 0,
200
- [Locales.KANNADA_INDIA]: void 0,
201
- [Locales.KONKANI_INDIA]: void 0,
202
- [Locales.KYRGYZ_KYRGYZSTAN]: void 0,
203
- [Locales.LITHUANIAN_LITHUANIA]: void 0,
204
- [Locales.LATVIAN_LATVIA]: void 0,
205
- [Locales.MAORI_NEW_ZEALAND]: void 0,
206
- [Locales.FYRO_MACEDONIAN_MACEDONIA]: void 0,
207
- [Locales.MONGOLIAN_MONGOLIA]: void 0,
208
- [Locales.MARATHI_INDIA]: void 0,
209
- [Locales.MALAY_BRUNEI_DARUSSALAM]: void 0,
210
- [Locales.MALAY_MALAYSIA]: void 0,
211
- [Locales.MALTESE_MALTA]: void 0,
212
- [Locales.NORWEGIAN_BOKMAL_NORWAY]: void 0,
213
- [Locales.NORWEGIAN_NYNORSK_NORWAY]: void 0,
214
- [Locales.NORTHERN_SOTHO_SOUTH_AFRICA]: void 0,
215
- [Locales.PUNJABI_INDIA]: void 0,
216
- [Locales.POLISH_POLAND]: void 0,
217
- [Locales.PASHTO_AFGHANISTAN]: void 0,
218
- [Locales.QUECHUA_BOLIVIA]: void 0,
219
- [Locales.QUECHUA_ECUADOR]: void 0,
220
- [Locales.QUECHUA_PERU]: void 0,
221
- [Locales.ROMANIAN_ROMANIA]: void 0,
222
- [Locales.SANSKRIT_INDIA]: void 0,
223
- [Locales.SAMI_NORTHERN_FINLAND]: void 0,
224
- [Locales.SAMI_NORTHERN_NORWAY]: void 0,
225
- [Locales.SAMI_NORTHERN_SWEDEN]: void 0,
226
- [Locales.SLOVAK_SLOVAKIA]: void 0,
227
- [Locales.SLOVENIAN_SLOVENIA]: void 0,
228
- [Locales.ALBANIAN_ALBANIA]: void 0,
229
- [Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA]: void 0,
230
- [Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO]: void 0,
231
- [Locales.SWAHILI_KENYA]: void 0,
232
- [Locales.SYRIAC_SYRIA]: void 0,
233
- [Locales.TAMIL_INDIA]: void 0,
234
- [Locales.TELUGU_INDIA]: void 0,
235
- [Locales.THAI_THAILAND]: void 0,
236
- [Locales.TAGALOG_PHILIPPINES]: void 0,
237
- [Locales.TSWANA_SOUTH_AFRICA]: void 0,
238
- [Locales.TURKISH_TURKEY]: void 0,
239
- [Locales.TATAR_RUSSIA]: void 0,
240
- [Locales.TSOGA]: void 0,
241
- [Locales.UKRAINIAN_UKRAINE]: void 0,
242
- [Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN]: void 0,
243
- [Locales.UZBEK_LATIN_UZBEKISTAN]: void 0,
244
- [Locales.VIETNAMESE_VIET_NAM]: void 0,
245
- [Locales.XHOSA_SOUTH_AFRICA]: void 0,
246
- [Locales.ZULU_SOUTH_AFRICA]: void 0
247
- };
248
- const getLocaleName = (displayLocale, targetLocale) => {
249
- if (!targetLocale) {
250
- return ownLocalesName[displayLocale];
1
+ const getLocaleName = (displayLocale, targetLocale = displayLocale) => {
2
+ if (typeof Intl?.DisplayNames === "function") {
3
+ try {
4
+ const displayNames = new Intl.DisplayNames([targetLocale], {
5
+ type: "language"
6
+ });
7
+ return displayNames.of(displayLocale) ?? "Unknown locale";
8
+ } catch {
9
+ return displayLocale;
10
+ }
11
+ }
12
+ const isDev = process.env.NODE_ENV === "development";
13
+ if (isDev) {
14
+ console.warn(
15
+ `getLocaleName: Intl.DisplayNames is not supported in this browser. Using displayLocale: ${displayLocale}`
16
+ );
251
17
  }
252
- return localeNameTranslations[targetLocale]?.[displayLocale] ?? ownLocalesName[displayLocale] ?? "Unknown locale";
18
+ return displayLocale;
253
19
  };
254
20
  export {
255
21
  getLocaleName
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/getLocaleName.ts"],"sourcesContent":["import { Locales, type LocalesValues } from '@intlayer/config/client';\nimport { arabicLocales } from './localeNames/ar';\nimport { germanLocales } from './localeNames/du';\nimport { englishLocales } from './localeNames/en';\nimport { spanishLocales } from './localeNames/es';\nimport { frenchLocales } from './localeNames/fr';\nimport { hindiLocales } from './localeNames/hi';\nimport { italianLocales } from './localeNames/it';\nimport { japaneseLocales } from './localeNames/ja';\nimport { koreanLocales } from './localeNames/ko';\nimport { ownLocalesName } from './localeNames/ownLocalesName';\nimport { portugueseLocales } from './localeNames/pt';\nimport { russianLocales } from './localeNames/ru';\nimport { chineseLocales } from './localeNames/zh';\n\nconst localeNameTranslations: Record<\n Locales,\n Record<LocalesValues, string> | undefined\n> = {\n [Locales.ENGLISH]: englishLocales,\n [Locales.ENGLISH_AUSTRALIA]: englishLocales,\n [Locales.ENGLISH_BELIZE]: englishLocales,\n [Locales.ENGLISH_CANADA]: englishLocales,\n [Locales.ENGLISH_CARIBBEAN]: englishLocales,\n [Locales.ENGLISH_UNITED_KINGDOM]: englishLocales,\n [Locales.ENGLISH_IRELAND]: englishLocales,\n [Locales.ENGLISH_JAMAICA]: englishLocales,\n [Locales.ENGLISH_NEW_ZEALAND]: englishLocales,\n [Locales.ENGLISH_PHILIPPINES]: englishLocales,\n [Locales.ENGLISH_TRINIDAD_AND_TOBAGO]: englishLocales,\n [Locales.ENGLISH_UNITED_STATES]: englishLocales,\n [Locales.ENGLISH_SOUTH_AFRICA]: englishLocales,\n [Locales.ENGLISH_ZIMBABWE]: englishLocales,\n [Locales.FRENCH]: frenchLocales,\n [Locales.FRENCH_BELGIUM]: frenchLocales,\n [Locales.FRENCH_CANADA]: frenchLocales,\n [Locales.FRENCH_SWITZERLAND]: frenchLocales,\n [Locales.FRENCH_FRANCE]: frenchLocales,\n [Locales.FRENCH_LUXEMBOURG]: frenchLocales,\n [Locales.FRENCH_PRINCIPALITY_OF_MONACO]: frenchLocales,\n [Locales.SPANISH]: spanishLocales,\n [Locales.SPANISH_ARGENTINA]: spanishLocales,\n [Locales.SPANISH_BOLIVIA]: spanishLocales,\n [Locales.SPANISH_CHILE]: spanishLocales,\n [Locales.SPANISH_COLOMBIA]: spanishLocales,\n [Locales.SPANISH_COSTA_RICA]: spanishLocales,\n [Locales.SPANISH_DOMINICAN_REPUBLIC]: spanishLocales,\n [Locales.SPANISH_ECUADOR]: spanishLocales,\n [Locales.SPANISH_SPAIN]: spanishLocales,\n [Locales.SPANISH_GUATEMALA]: spanishLocales,\n [Locales.SPANISH_HONDURAS]: spanishLocales,\n [Locales.SPANISH_MEXICO]: spanishLocales,\n [Locales.SPANISH_NICARAGUA]: spanishLocales,\n [Locales.SPANISH_PANAMA]: spanishLocales,\n [Locales.SPANISH_PERU]: spanishLocales,\n [Locales.SPANISH_PUERTO_RICO]: spanishLocales,\n [Locales.SPANISH_PARAGUAY]: spanishLocales,\n [Locales.SPANISH_EL_SALVADOR]: spanishLocales,\n [Locales.SPANISH_URUGUAY]: spanishLocales,\n [Locales.SPANISH_VENEZUELA]: spanishLocales,\n [Locales.PORTUGUESE]: portugueseLocales,\n [Locales.PORTUGUESE_BRAZIL]: portugueseLocales,\n [Locales.PORTUGUESE_PORTUGAL]: portugueseLocales,\n [Locales.ITALIAN]: italianLocales,\n [Locales.ITALIAN_SWITZERLAND]: italianLocales,\n [Locales.ITALIAN_ITALY]: italianLocales,\n [Locales.GERMAN]: germanLocales,\n [Locales.GERMAN_AUSTRIA]: germanLocales,\n [Locales.GERMAN_SWITZERLAND]: germanLocales,\n [Locales.GERMAN_GERMANY]: germanLocales,\n [Locales.GERMAN_LIECHTENSTEIN]: germanLocales,\n [Locales.GERMAN_LUXEMBOURG]: germanLocales,\n [Locales.CHINESE]: chineseLocales,\n [Locales.CHINESE_HONG_KONG]: chineseLocales,\n [Locales.CHINESE_MACAU]: chineseLocales,\n [Locales.CHINESE_SINGAPORE]: chineseLocales,\n [Locales.CHINESE_SIMPLIFIED]: chineseLocales,\n [Locales.CHINESE_SIMPLIFIED_CHINA]: chineseLocales,\n [Locales.CHINESE_TRADITIONAL]: chineseLocales,\n [Locales.RUSSIAN]: russianLocales,\n [Locales.RUSSIAN_RUSSIA]: russianLocales,\n [Locales.ARABIC]: arabicLocales,\n [Locales.ARABIC_UNITED_ARAB_EMIRATES]: arabicLocales,\n [Locales.ARABIC_BAHRAIN]: arabicLocales,\n [Locales.ARABIC_ALGERIA]: arabicLocales,\n [Locales.ARABIC_EGYPT]: arabicLocales,\n [Locales.ARABIC_IRAQ]: arabicLocales,\n [Locales.ARABIC_JORDAN]: arabicLocales,\n [Locales.ARABIC_KUWAIT]: arabicLocales,\n [Locales.ARABIC_LEBANON]: arabicLocales,\n [Locales.ARABIC_LIBYA]: arabicLocales,\n [Locales.ARABIC_MOROCCO]: arabicLocales,\n [Locales.ARABIC_OMAN]: arabicLocales,\n [Locales.ARABIC_QATAR]: arabicLocales,\n [Locales.ARABIC_SAUDI_ARABIA]: arabicLocales,\n [Locales.ARABIC_SYRIA]: arabicLocales,\n [Locales.ARABIC_TUNISIA]: arabicLocales,\n [Locales.ARABIC_YEMEN]: arabicLocales,\n [Locales.JAPANESE]: japaneseLocales,\n [Locales.JAPANESE_JAPAN]: japaneseLocales,\n [Locales.KOREAN]: koreanLocales,\n [Locales.KOREAN_KOREA]: koreanLocales,\n [Locales.HINDI]: hindiLocales,\n\n [Locales.DUTCH_BELGIUM]: undefined,\n [Locales.DUTCH_NETHERLANDS]: undefined,\n [Locales.DIVEHI_MALDIVES]: undefined,\n [Locales.AFRIKAANS]: undefined,\n [Locales.AZERI_LATIN]: undefined,\n [Locales.BELARUSIAN]: undefined,\n [Locales.BULGARIAN]: undefined,\n [Locales.BOSNIAN]: undefined,\n [Locales.CATALAN]: undefined,\n [Locales.CZECH]: undefined,\n [Locales.WELSH]: undefined,\n [Locales.DANISH]: undefined,\n [Locales.DIVEHI]: undefined,\n [Locales.GREEK]: undefined,\n [Locales.ESPERANTO]: undefined,\n [Locales.ESTONIAN]: undefined,\n [Locales.BASQUE]: undefined,\n [Locales.FARSI]: undefined,\n [Locales.FINNISH]: undefined,\n [Locales.FAROESE]: undefined,\n [Locales.GALICIAN]: undefined,\n [Locales.GUJARATI]: undefined,\n [Locales.HEBREW]: undefined,\n [Locales.CROATIAN]: undefined,\n [Locales.HUNGARIAN]: undefined,\n [Locales.ARMENIAN]: undefined,\n [Locales.INDONESIAN]: undefined,\n [Locales.ICELANDIC]: undefined,\n [Locales.GEORGIAN]: undefined,\n [Locales.KAZAKH]: undefined,\n [Locales.KANNADA]: undefined,\n [Locales.KONKANI]: undefined,\n [Locales.KYRGYZ]: undefined,\n [Locales.LITHUANIAN]: undefined,\n [Locales.LATVIAN]: undefined,\n [Locales.MAORI]: undefined,\n [Locales.FYRO_MACEDONIAN]: undefined,\n [Locales.MONGOLIAN]: undefined,\n [Locales.MARATHI]: undefined,\n [Locales.MALAY]: undefined,\n [Locales.MALTESE]: undefined,\n [Locales.NORWEGIAN_BOKMAL]: undefined,\n [Locales.DUTCH]: undefined,\n [Locales.NORTHERN_SOTHO]: undefined,\n [Locales.PUNJABI]: undefined,\n [Locales.POLISH]: undefined,\n [Locales.PASHTO]: undefined,\n [Locales.QUECHUA]: undefined,\n [Locales.ROMANIAN]: undefined,\n [Locales.SANSKRIT]: undefined,\n [Locales.SAMI_NORTHERN]: undefined,\n [Locales.SLOVAK]: undefined,\n [Locales.SLOVENIAN]: undefined,\n [Locales.ALBANIAN]: undefined,\n [Locales.SERBIAN_LATIN]: undefined,\n [Locales.SWEDISH]: undefined,\n [Locales.SWEDISH_FINLAND]: undefined,\n [Locales.SWEDISH_SWEDEN]: undefined,\n [Locales.SWAHILI]: undefined,\n [Locales.SYRIAC]: undefined,\n [Locales.TAMIL]: undefined,\n [Locales.TELUGU]: undefined,\n [Locales.THAI]: undefined,\n [Locales.TAGALOG]: undefined,\n [Locales.TSWANA]: undefined,\n [Locales.TURKISH]: undefined,\n [Locales.TATAR]: undefined,\n [Locales.UKRAINIAN]: undefined,\n [Locales.URDU]: undefined,\n [Locales.UZBEK_LATIN]: undefined,\n [Locales.VIETNAMESE]: undefined,\n [Locales.XHOSA]: undefined,\n [Locales.ZULU]: undefined,\n [Locales.AFRIKAANS_SOUTH_AFRICA]: undefined,\n [Locales.AZERI_LATIN_AZERBAIJAN]: undefined,\n [Locales.BELARUSIAN_BELARUS]: undefined,\n [Locales.BULGARIAN_BULGARIA]: undefined,\n [Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.CATALAN_SPAIN]: undefined,\n [Locales.CZECH_CZECH_REPUBLIC]: undefined,\n [Locales.WELSH_UNITED_KINGDOM]: undefined,\n [Locales.DANISH_DENMARK]: undefined,\n [Locales.GREEK_GREECE]: undefined,\n [Locales.ESTONIAN_ESTONIA]: undefined,\n [Locales.BASQUE_SPAIN]: undefined,\n [Locales.FARSI_IRAN]: undefined,\n [Locales.FINNISH_FINLAND]: undefined,\n [Locales.FAROESE_FAROE_ISLANDS]: undefined,\n [Locales.GALICIAN_SPAIN]: undefined,\n [Locales.GUJARATI_INDIA]: undefined,\n [Locales.HEBREW_ISRAEL]: undefined,\n [Locales.HINDI_INDIA]: undefined,\n [Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.CROATIAN_CROATIA]: undefined,\n [Locales.HUNGARIAN_HUNGARY]: undefined,\n [Locales.ARMENIAN_ARMENIA]: undefined,\n [Locales.INDONESIAN_INDONESIA]: undefined,\n [Locales.ICELANDIC_ICELAND]: undefined,\n [Locales.GEORGIAN_GEORGIA]: undefined,\n [Locales.KAZAKH_KAZAKHSTAN]: undefined,\n [Locales.KANNADA_INDIA]: undefined,\n [Locales.KONKANI_INDIA]: undefined,\n [Locales.KYRGYZ_KYRGYZSTAN]: undefined,\n [Locales.LITHUANIAN_LITHUANIA]: undefined,\n [Locales.LATVIAN_LATVIA]: undefined,\n [Locales.MAORI_NEW_ZEALAND]: undefined,\n [Locales.FYRO_MACEDONIAN_MACEDONIA]: undefined,\n [Locales.MONGOLIAN_MONGOLIA]: undefined,\n [Locales.MARATHI_INDIA]: undefined,\n [Locales.MALAY_BRUNEI_DARUSSALAM]: undefined,\n [Locales.MALAY_MALAYSIA]: undefined,\n [Locales.MALTESE_MALTA]: undefined,\n [Locales.NORWEGIAN_BOKMAL_NORWAY]: undefined,\n [Locales.NORWEGIAN_NYNORSK_NORWAY]: undefined,\n [Locales.NORTHERN_SOTHO_SOUTH_AFRICA]: undefined,\n [Locales.PUNJABI_INDIA]: undefined,\n [Locales.POLISH_POLAND]: undefined,\n [Locales.PASHTO_AFGHANISTAN]: undefined,\n [Locales.QUECHUA_BOLIVIA]: undefined,\n [Locales.QUECHUA_ECUADOR]: undefined,\n [Locales.QUECHUA_PERU]: undefined,\n [Locales.ROMANIAN_ROMANIA]: undefined,\n [Locales.SANSKRIT_INDIA]: undefined,\n [Locales.SAMI_NORTHERN_FINLAND]: undefined,\n [Locales.SAMI_NORTHERN_NORWAY]: undefined,\n [Locales.SAMI_NORTHERN_SWEDEN]: undefined,\n [Locales.SLOVAK_SLOVAKIA]: undefined,\n [Locales.SLOVENIAN_SLOVENIA]: undefined,\n [Locales.ALBANIAN_ALBANIA]: undefined,\n [Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA]: undefined,\n [Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO]: undefined,\n [Locales.SWAHILI_KENYA]: undefined,\n [Locales.SYRIAC_SYRIA]: undefined,\n [Locales.TAMIL_INDIA]: undefined,\n [Locales.TELUGU_INDIA]: undefined,\n [Locales.THAI_THAILAND]: undefined,\n [Locales.TAGALOG_PHILIPPINES]: undefined,\n [Locales.TSWANA_SOUTH_AFRICA]: undefined,\n [Locales.TURKISH_TURKEY]: undefined,\n [Locales.TATAR_RUSSIA]: undefined,\n [Locales.TSOGA]: undefined,\n [Locales.UKRAINIAN_UKRAINE]: undefined,\n [Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN]: undefined,\n [Locales.UZBEK_LATIN_UZBEKISTAN]: undefined,\n [Locales.VIETNAMESE_VIET_NAM]: undefined,\n [Locales.XHOSA_SOUTH_AFRICA]: undefined,\n [Locales.ZULU_SOUTH_AFRICA]: undefined,\n};\n\n/**\n * Given a displayLocale (the locale in which you want the name displayed)\n * and a targetLocale (the locale whose name you want),\n * returns the localized name.\n *\n * If no targetLocale is provided, the displayLocale's own name is returned.\n */\nexport const getLocaleName = (\n displayLocale: LocalesValues,\n targetLocale?: LocalesValues\n): string => {\n if (!targetLocale) {\n // Fallback to the displayLocale's own name if targetLocale is not provided\n return ownLocalesName[displayLocale];\n }\n\n return (\n localeNameTranslations[targetLocale]?.[displayLocale] ??\n ownLocalesName[displayLocale] ??\n 'Unknown locale'\n );\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/getLocaleName.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/config/client';\n\nexport const getLocaleName = (\n displayLocale: LocalesValues,\n targetLocale: LocalesValues = displayLocale\n): string => {\n // Native path (modern browsers & Node 18+)\n if (typeof Intl?.DisplayNames === 'function') {\n try {\n const displayNames = new Intl.DisplayNames([targetLocale], {\n type: 'language',\n });\n return displayNames.of(displayLocale) ?? 'Unknown locale';\n } catch {\n return displayLocale;\n }\n }\n\n const isDev = process.env.NODE_ENV === 'development';\n\n if (isDev) {\n console.warn(\n `getLocaleName: Intl.DisplayNames is not supported in this browser. Using displayLocale: ${displayLocale}`\n );\n }\n\n return displayLocale;\n};\n"],"mappings":"AAEO,MAAM,gBAAgB,CAC3B,eACA,eAA8B,kBACnB;AAEX,MAAI,OAAO,MAAM,iBAAiB,YAAY;AAC5C,QAAI;AACF,YAAM,eAAe,IAAI,KAAK,aAAa,CAAC,YAAY,GAAG;AAAA,QACzD,MAAM;AAAA,MACR,CAAC;AACD,aAAO,aAAa,GAAG,aAAa,KAAK;AAAA,IAC3C,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,QAAQ,QAAQ,IAAI,aAAa;AAEvC,MAAI,OAAO;AACT,YAAQ;AAAA,MACN,2FAA2F,aAAa;AAAA,IAC1G;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/getPathWithoutLocale.ts"],"sourcesContent":["import { type Locales, type LocalesValues } from '@intlayer/config/client';\nimport configuration from '@intlayer/config/built';\n\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\n\n/**\n * Removes the locale segment from the given URL or pathname if present.\n *\n * This function get the locales from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * getPathWithoutLocale('/en/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('/fr/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('dashboard') // Returns 'dashboard'\n * getPathWithoutLocale('https://example.com/en/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/fr/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/dashboard') // Returns 'https://example.com/dashboard'\n * ```\n *\n * @param inputUrl - The complete URL string or pathname to process.\n * @param locales - Optional array of supported locales. Defaults to `localesDefault`.\n * @returns The URL string or pathname without the locale segment.\n */\nexport const getPathWithoutLocale = (\n inputUrl: string,\n locales: LocalesValues[] = configuration.internationalization\n .locales as LocalesValues[]\n): string => {\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);\n\n let fixedInputUrl = inputUrl;\n\n if (inputUrl.endsWith('/')) {\n fixedInputUrl = inputUrl.slice(0, -1);\n }\n\n // Initialize a URL object if the URL is absolute\n // For relative URLs, use a dummy base to leverage the URL API\n const url = isAbsoluteUrl\n ? new URL(fixedInputUrl)\n : new URL(fixedInputUrl, 'http://example.com');\n\n const pathname = url.pathname;\n\n // Ensure the pathname starts with '/'\n if (!pathname.startsWith('/')) {\n // If not, return the URL as is\n url.pathname = `/${pathname}`;\n }\n\n // Split the pathname to extract the first segment\n const pathSegments = pathname.split('/');\n const firstSegment = pathSegments[1]; // The segment after the first '/'\n\n // Check if the first segment is a supported locale\n if (locales.includes(firstSegment as Locales)) {\n // Remove the locale segment from the pathname\n pathSegments.splice(1, 1); // Remove the first segment\n\n // Reconstruct the pathname\n const newPathname = pathSegments.join('/') ?? '/';\n url.pathname = newPathname;\n }\n\n if (isAbsoluteUrl) {\n // Return the modified URL as a string\n return url.toString();\n }\n\n // Return the modified URL as a string\n return url.toString().replace('http://example.com', '');\n};\n"],"mappings":"AACA,OAAO,mBAAmB;AAE1B,SAAS,0BAA0B;AAuB5B,MAAM,uBAAuB,CAClC,UACA,UAA2B,cAAc,qBACtC,YACQ;AAEX,QAAM,gBAAgB,mBAAmB,QAAQ;AAEjD,MAAI,gBAAgB;AAEpB,MAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,oBAAgB,SAAS,MAAM,GAAG,EAAE;AAAA,EACtC;AAIA,QAAM,MAAM,gBACR,IAAI,IAAI,aAAa,IACrB,IAAI,IAAI,eAAe,oBAAoB;AAE/C,QAAM,WAAW,IAAI;AAGrB,MAAI,CAAC,SAAS,WAAW,GAAG,GAAG;AAE7B,QAAI,WAAW,IAAI,QAAQ;AAAA,EAC7B;AAGA,QAAM,eAAe,SAAS,MAAM,GAAG;AACvC,QAAM,eAAe,aAAa,CAAC;AAGnC,MAAI,QAAQ,SAAS,YAAuB,GAAG;AAE7C,iBAAa,OAAO,GAAG,CAAC;AAGxB,UAAM,cAAc,aAAa,KAAK,GAAG,KAAK;AAC9C,QAAI,WAAW;AAAA,EACjB;AAEA,MAAI,eAAe;AAEjB,WAAO,IAAI,SAAS;AAAA,EACtB;AAGA,SAAO,IAAI,SAAS,EAAE,QAAQ,sBAAsB,EAAE;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/getPathWithoutLocale.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport { type Locales, type LocalesValues } from '@intlayer/config/client';\n\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\n\n/**\n * Removes the locale segment from the given URL or pathname if present.\n *\n * This function get the locales from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * getPathWithoutLocale('/en/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('/fr/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('/dashboard') // Returns '/dashboard'\n * getPathWithoutLocale('dashboard') // Returns 'dashboard'\n * getPathWithoutLocale('https://example.com/en/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/fr/dashboard') // Returns 'https://example.com/dashboard'\n * getPathWithoutLocale('https://example.com/dashboard') // Returns 'https://example.com/dashboard'\n * ```\n *\n * @param inputUrl - The complete URL string or pathname to process.\n * @param locales - Optional array of supported locales. Defaults to `localesDefault`.\n * @returns The URL string or pathname without the locale segment.\n */\nexport const getPathWithoutLocale = (\n inputUrl: string,\n locales: LocalesValues[] = configuration.internationalization\n .locales as LocalesValues[]\n): string => {\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(inputUrl);\n\n let fixedInputUrl = inputUrl;\n\n if (inputUrl.endsWith('/')) {\n fixedInputUrl = inputUrl.slice(0, -1);\n }\n\n // Initialize a URL object if the URL is absolute\n // For relative URLs, use a dummy base to leverage the URL API\n const url = isAbsoluteUrl\n ? new URL(fixedInputUrl)\n : new URL(fixedInputUrl, 'http://example.com');\n\n const pathname = url.pathname;\n\n // Ensure the pathname starts with '/'\n if (!pathname.startsWith('/')) {\n // If not, return the URL as is\n url.pathname = `/${pathname}`;\n }\n\n // Split the pathname to extract the first segment\n const pathSegments = pathname.split('/');\n const firstSegment = pathSegments[1]; // The segment after the first '/'\n\n // Check if the first segment is a supported locale\n if (locales.includes(firstSegment as Locales)) {\n // Remove the locale segment from the pathname\n pathSegments.splice(1, 1); // Remove the first segment\n\n // Reconstruct the pathname\n const newPathname = pathSegments.join('/') ?? '/';\n url.pathname = newPathname;\n }\n\n if (isAbsoluteUrl) {\n // Return the modified URL as a string\n return url.toString();\n }\n\n // Return the modified URL as a string\n return url.toString().replace('http://example.com', '');\n};\n"],"mappings":"AAAA,OAAO,mBAAmB;AAG1B,SAAS,0BAA0B;AAuB5B,MAAM,uBAAuB,CAClC,UACA,UAA2B,cAAc,qBACtC,YACQ;AAEX,QAAM,gBAAgB,mBAAmB,QAAQ;AAEjD,MAAI,gBAAgB;AAEpB,MAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,oBAAgB,SAAS,MAAM,GAAG,EAAE;AAAA,EACtC;AAIA,QAAM,MAAM,gBACR,IAAI,IAAI,aAAa,IACrB,IAAI,IAAI,eAAe,oBAAoB;AAE/C,QAAM,WAAW,IAAI;AAGrB,MAAI,CAAC,SAAS,WAAW,GAAG,GAAG;AAE7B,QAAI,WAAW,IAAI,QAAQ;AAAA,EAC7B;AAGA,QAAM,eAAe,SAAS,MAAM,GAAG;AACvC,QAAM,eAAe,aAAa,CAAC;AAGnC,MAAI,QAAQ,SAAS,YAAuB,GAAG;AAE7C,iBAAa,OAAO,GAAG,CAAC;AAGxB,UAAM,cAAc,aAAa,KAAK,GAAG,KAAK;AAC9C,QAAI,WAAW;AAAA,EACjB;AAEA,MAAI,eAAe;AAEjB,WAAO,IAAI,SAAS;AAAA,EACtB;AAGA,SAAO,IAAI,SAAS,EAAE,QAAQ,sBAAsB,EAAE;AACxD;","names":[]}
@@ -1,23 +1,18 @@
1
1
  import configuration from "@intlayer/config/built";
2
- const { internationalization, middleware } = configuration;
3
- const { prefixDefault } = middleware;
4
- const { locales, defaultLocale } = internationalization;
5
- const baseLocaleData = {
6
- defaultLocale,
7
- locales
8
- };
9
- const localeMap = (mapper) => locales.map(
2
+ const localeMap = (mapper, locales = configuration.internationalization.locales, defaultLocale = configuration.internationalization.defaultLocale, prefixDefault = configuration.middleware.prefixDefault) => locales.map(
10
3
  (locale) => mapper({
11
- ...baseLocaleData,
12
4
  locale,
5
+ defaultLocale,
6
+ locales,
13
7
  isDefault: locale === defaultLocale,
14
8
  urlPrefix: locale === defaultLocale && !prefixDefault ? "" : `/${locale}`
15
9
  })
16
10
  );
17
- const localeFlatMap = (mapper) => locales.flatMap(
11
+ const localeFlatMap = (mapper, locales = configuration.internationalization.locales, defaultLocale = configuration.internationalization.defaultLocale, prefixDefault = configuration.middleware.prefixDefault) => locales.flatMap(
18
12
  (locale) => mapper({
19
- ...baseLocaleData,
20
13
  locale,
14
+ defaultLocale,
15
+ locales,
21
16
  isDefault: locale === defaultLocale,
22
17
  urlPrefix: locale === defaultLocale && !prefixDefault ? "" : `/${locale}`
23
18
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/localeMapper.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport { LocalesValues } from '@intlayer/config/client';\n\nconst { internationalization, middleware } = configuration;\nconst { prefixDefault } = middleware;\nconst { locales, defaultLocale } = internationalization;\n\nexport type LocaleData = {\n locale: LocalesValues;\n defaultLocale: LocalesValues;\n isDefault: boolean;\n locales: LocalesValues[];\n urlPrefix: string;\n};\n\nconst baseLocaleData = {\n defaultLocale: defaultLocale,\n locales,\n} satisfies Partial<LocaleData>;\n\n/**\n * Map the locale data to an array of objects\n *\n * @example\n * ```ts\n * const routes = localeMap((localizedData) =>\n * ({\n * path: localizedData.urlPrefix,\n * name: localizedData.locale,\n * isDefault: localizedData.isDefault,\n * locales: localizedData.locales,\n * defaultLocale: localizedData.defaultLocale,\n * }),\n * );\n *\n * // Result\n * [\n * { path: '/', name: 'en', isDefault: true, locales: ['en'], defaultLocale: 'en', urlPrefix: '' },\n * { path: '/fr', name: 'fr', isDefault: false, locales: ['fr'], defaultLocale: 'en', urlPrefix: '/fr' },\n * { path: '/es', name: 'es', isDefault: false, locales: ['es'], defaultLocale: 'en', urlPrefix: '/es' },\n * ]\n * ```\n *\n * @param mapper - The mapper function that returns an object\n * @returns An array of objects\n */\nexport const localeMap = <T extends object>(\n mapper: (locale: LocaleData) => T\n): T[] =>\n locales.map((locale) =>\n mapper({\n ...baseLocaleData,\n locale,\n isDefault: locale === defaultLocale,\n urlPrefix: locale === defaultLocale && !prefixDefault ? '' : `/${locale}`,\n })\n );\n\n/**\n * Flatten the locale map into a single array of objects\n *\n * @example\n * ```ts\n * const routes = localeMap((localizedData) =>\n * [{\n * path: localizedData.urlPrefix,\n * name: localizedData.locale,\n * isDefault: localizedData.isDefault,\n * locales: localizedData.locales,\n * defaultLocale: localizedData.defaultLocale,\n * }],\n * );\n *\n * // Result\n * [\n * { path: '/', name: 'en', isDefault: true, locales: ['en'], defaultLocale: 'en', urlPrefix: '' },\n * { path: '/fr', name: 'fr', isDefault: false, locales: ['fr'], defaultLocale: 'en', urlPrefix: '/fr' },\n * { path: '/es', name: 'es', isDefault: false, locales: ['es'], defaultLocale: 'en', urlPrefix: '/es' },\n * ]\n * ```\n *\n * @param mapper - The mapper function that returns an array of objects\n * @returns An array of objects\n */\nexport const localeFlatMap = <T>(mapper: (locale: LocaleData) => T[]): T[] =>\n locales.flatMap((locale) =>\n mapper({\n ...baseLocaleData,\n locale,\n isDefault: locale === defaultLocale,\n urlPrefix: locale === defaultLocale && !prefixDefault ? '' : `/${locale}`,\n })\n );\n"],"mappings":"AAAA,OAAO,mBAAmB;AAG1B,MAAM,EAAE,sBAAsB,WAAW,IAAI;AAC7C,MAAM,EAAE,cAAc,IAAI;AAC1B,MAAM,EAAE,SAAS,cAAc,IAAI;AAUnC,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AACF;AA4BO,MAAM,YAAY,CACvB,WAEA,QAAQ;AAAA,EAAI,CAAC,WACX,OAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,WAAW,WAAW;AAAA,IACtB,WAAW,WAAW,iBAAiB,CAAC,gBAAgB,KAAK,IAAI,MAAM;AAAA,EACzE,CAAC;AACH;AA4BK,MAAM,gBAAgB,CAAI,WAC/B,QAAQ;AAAA,EAAQ,CAAC,WACf,OAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,WAAW,WAAW;AAAA,IACtB,WAAW,WAAW,iBAAiB,CAAC,gBAAgB,KAAK,IAAI,MAAM;AAAA,EACzE,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/localeMapper.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport { LocalesValues } from '@intlayer/config/client';\n\nexport type LocaleData = {\n locale: LocalesValues;\n defaultLocale: LocalesValues;\n isDefault: boolean;\n locales: LocalesValues[];\n urlPrefix: string;\n};\n\n/**\n * Map the locale data to an array of objects\n *\n * @example\n * ```ts\n * const routes = localeMap((localizedData) =>\n * ({\n * path: localizedData.urlPrefix,\n * name: localizedData.locale,\n * isDefault: localizedData.isDefault,\n * locales: localizedData.locales,\n * defaultLocale: localizedData.defaultLocale,\n * }),\n * );\n *\n * // Result\n * [\n * { path: '/', name: 'en', isDefault: true, locales: ['en'], defaultLocale: 'en', urlPrefix: '' },\n * { path: '/fr', name: 'fr', isDefault: false, locales: ['fr'], defaultLocale: 'en', urlPrefix: '/fr' },\n * { path: '/es', name: 'es', isDefault: false, locales: ['es'], defaultLocale: 'en', urlPrefix: '/es' },\n * ]\n * ```\n *\n * @param mapper - The mapper function that returns an object\n * @returns An array of objects\n */\nexport const localeMap = <T extends object>(\n mapper: (locale: LocaleData) => T,\n locales: LocalesValues[] = configuration.internationalization.locales,\n defaultLocale: LocalesValues = configuration.internationalization\n .defaultLocale,\n prefixDefault: boolean = configuration.middleware.prefixDefault\n): T[] =>\n locales.map((locale) =>\n mapper({\n locale,\n defaultLocale,\n locales,\n isDefault: locale === defaultLocale,\n urlPrefix: locale === defaultLocale && !prefixDefault ? '' : `/${locale}`,\n })\n );\n\n/**\n * Flatten the locale map into a single array of objects\n *\n * @example\n * ```ts\n * const routes = localeMap((localizedData) =>\n * [{\n * path: localizedData.urlPrefix,\n * name: localizedData.locale,\n * isDefault: localizedData.isDefault,\n * locales: localizedData.locales,\n * defaultLocale: localizedData.defaultLocale,\n * }],\n * );\n *\n * // Result\n * [\n * { path: '/', name: 'en', isDefault: true, locales: ['en'], defaultLocale: 'en', urlPrefix: '' },\n * { path: '/fr', name: 'fr', isDefault: false, locales: ['fr'], defaultLocale: 'en', urlPrefix: '/fr' },\n * { path: '/es', name: 'es', isDefault: false, locales: ['es'], defaultLocale: 'en', urlPrefix: '/es' },\n * ]\n * ```\n *\n * @param mapper - The mapper function that returns an array of objects\n * @returns An array of objects\n */\nexport const localeFlatMap = <T>(\n mapper: (locale: LocaleData) => T[],\n locales: LocalesValues[] = configuration.internationalization.locales,\n defaultLocale: LocalesValues = configuration.internationalization\n .defaultLocale,\n prefixDefault: boolean = configuration.middleware.prefixDefault\n): T[] =>\n locales.flatMap((locale) =>\n mapper({\n locale,\n defaultLocale,\n locales,\n isDefault: locale === defaultLocale,\n urlPrefix: locale === defaultLocale && !prefixDefault ? '' : `/${locale}`,\n })\n );\n"],"mappings":"AAAA,OAAO,mBAAmB;AAqCnB,MAAM,YAAY,CACvB,QACA,UAA2B,cAAc,qBAAqB,SAC9D,gBAA+B,cAAc,qBAC1C,eACH,gBAAyB,cAAc,WAAW,kBAElD,QAAQ;AAAA,EAAI,CAAC,WACX,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,WAAW;AAAA,IACtB,WAAW,WAAW,iBAAiB,CAAC,gBAAgB,KAAK,IAAI,MAAM;AAAA,EACzE,CAAC;AACH;AA4BK,MAAM,gBAAgB,CAC3B,QACA,UAA2B,cAAc,qBAAqB,SAC9D,gBAA+B,cAAc,qBAC1C,eACH,gBAAyB,cAAc,WAAW,kBAElD,QAAQ;AAAA,EAAQ,CAAC,WACf,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,WAAW;AAAA,IACtB,WAAW,WAAW,iBAAiB,CAAC,gBAAgB,KAAK,IAAI,MAAM;AAAA,EACzE,CAAC;AACH;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/localization/localeResolver.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/config/client';\nimport configuration from '@intlayer/config/built';\n\n/**\n * Resolves the most specific locale from a user-provided list,\n * or falls back to the default locale if no match is found.\n */\nexport const localeResolver = (\n selectedLocale: LocalesValues | LocalesValues[],\n locales: LocalesValues[] = configuration.internationalization.locales,\n defaultLocale: LocalesValues = configuration.internationalization\n .defaultLocale\n): LocalesValues => {\n // Ensure we can handle both a single locale or an array of locales uniformly\n const requestedLocales = [selectedLocale].flat();\n\n // Simple helper to normalize locale strings (e.g. \"en-US\" => \"en-us\")\n const normalize = (locale: string): string => locale.trim().toLowerCase();\n\n try {\n // Check each requested locale in order\n for (const requested of requestedLocales) {\n const normalizedRequested = normalize(requested);\n\n // 1) Attempt exact match\n const exactMatch = locales.find(\n (loc) => normalize(loc) === normalizedRequested\n );\n if (exactMatch) {\n return exactMatch;\n }\n\n // 2) Attempt partial match on language subtag\n // e.g. if requested is \"en-US\" and not found,\n // see if \"en\" is available among locales\n const [requestedLang] = normalizedRequested.split('-');\n const partialMatch = locales.find(\n (loc) => normalize(loc).split('-')[0] === requestedLang\n );\n if (partialMatch) {\n return partialMatch;\n }\n }\n } catch (_error) {\n // If anything unexpected happened, fall back to default\n }\n\n // If no match was found, return the default\n return defaultLocale;\n};\n"],"mappings":"AACA,OAAO,mBAAmB;AAMnB,MAAM,iBAAiB,CAC5B,gBACA,UAA2B,cAAc,qBAAqB,SAC9D,gBAA+B,cAAc,qBAC1C,kBACe;AAElB,QAAM,mBAAmB,CAAC,cAAc,EAAE,KAAK;AAG/C,QAAM,YAAY,CAAC,WAA2B,OAAO,KAAK,EAAE,YAAY;AAExE,MAAI;AAEF,eAAW,aAAa,kBAAkB;AACxC,YAAM,sBAAsB,UAAU,SAAS;AAG/C,YAAM,aAAa,QAAQ;AAAA,QACzB,CAAC,QAAQ,UAAU,GAAG,MAAM;AAAA,MAC9B;AACA,UAAI,YAAY;AACd,eAAO;AAAA,MACT;AAKA,YAAM,CAAC,aAAa,IAAI,oBAAoB,MAAM,GAAG;AACrD,YAAM,eAAe,QAAQ;AAAA,QAC3B,CAAC,QAAQ,UAAU,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM;AAAA,MAC5C;AACA,UAAI,cAAc;AAChB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,QAAQ;AAAA,EAEjB;AAGA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/localization/localeResolver.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { LocalesValues } from '@intlayer/config/client';\n\n/**\n * Resolves the most specific locale from a user-provided list,\n * or falls back to the default locale if no match is found.\n */\nexport const localeResolver = (\n selectedLocale: LocalesValues | LocalesValues[],\n locales: LocalesValues[] = configuration.internationalization.locales,\n defaultLocale: LocalesValues = configuration.internationalization\n .defaultLocale\n): LocalesValues => {\n // Ensure we can handle both a single locale or an array of locales uniformly\n const requestedLocales = [selectedLocale].flat();\n\n // Simple helper to normalize locale strings (e.g. \"en-US\" => \"en-us\")\n const normalize = (locale: string): string => locale.trim().toLowerCase();\n\n try {\n // Check each requested locale in order\n for (const requested of requestedLocales) {\n const normalizedRequested = normalize(requested);\n\n // 1) Attempt exact match\n const exactMatch = locales.find(\n (loc) => normalize(loc) === normalizedRequested\n );\n if (exactMatch) {\n return exactMatch;\n }\n\n // 2) Attempt partial match on language subtag\n // e.g. if requested is \"en-US\" and not found,\n // see if \"en\" is available among locales\n const [requestedLang] = normalizedRequested.split('-');\n const partialMatch = locales.find(\n (loc) => normalize(loc).split('-')[0] === requestedLang\n );\n if (partialMatch) {\n return partialMatch;\n }\n }\n } catch (_error) {\n // If anything unexpected happened, fall back to default\n }\n\n // If no match was found, return the default\n return defaultLocale;\n};\n"],"mappings":"AAAA,OAAO,mBAAmB;AAOnB,MAAM,iBAAiB,CAC5B,gBACA,UAA2B,cAAc,qBAAqB,SAC9D,gBAA+B,cAAc,qBAC1C,kBACe;AAElB,QAAM,mBAAmB,CAAC,cAAc,EAAE,KAAK;AAG/C,QAAM,YAAY,CAAC,WAA2B,OAAO,KAAK,EAAE,YAAY;AAExE,MAAI;AAEF,eAAW,aAAa,kBAAkB;AACxC,YAAM,sBAAsB,UAAU,SAAS;AAG/C,YAAM,aAAa,QAAQ;AAAA,QACzB,CAAC,QAAQ,UAAU,GAAG,MAAM;AAAA,MAC9B;AACA,UAAI,YAAY;AACd,eAAO;AAAA,MACT;AAKA,YAAM,CAAC,aAAa,IAAI,oBAAoB,MAAM,GAAG;AACrD,YAAM,eAAe,QAAQ;AAAA,QAC3B,CAAC,QAAQ,UAAU,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM;AAAA,MAC5C;AACA,UAAI,cAAc;AAChB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,QAAQ;AAAA,EAEjB;AAGA,SAAO;AACT;","names":[]}
@@ -1,10 +1,3 @@
1
- import { type LocalesValues } from '@intlayer/config/client';
2
- /**
3
- * Given a displayLocale (the locale in which you want the name displayed)
4
- * and a targetLocale (the locale whose name you want),
5
- * returns the localized name.
6
- *
7
- * If no targetLocale is provided, the displayLocale's own name is returned.
8
- */
1
+ import type { LocalesValues } from '@intlayer/config/client';
9
2
  export declare const getLocaleName: (displayLocale: LocalesValues, targetLocale?: LocalesValues) => string;
10
3
  //# sourceMappingURL=getLocaleName.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getLocaleName.d.ts","sourceRoot":"","sources":["../../../src/localization/getLocaleName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA6PtE;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,eAAe,aAAa,EAC5B,eAAe,aAAa,KAC3B,MAWF,CAAC"}
1
+ {"version":3,"file":"getLocaleName.d.ts","sourceRoot":"","sources":["../../../src/localization/getLocaleName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,aAAa,GACxB,eAAe,aAAa,EAC5B,eAAc,aAA6B,KAC1C,MAsBF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPathWithoutLocale.d.ts","sourceRoot":"","sources":["../../../src/localization/getPathWithoutLocale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAK3E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,UAAS,aAAa,EACO,KAC5B,MA6CF,CAAC"}
1
+ {"version":3,"file":"getPathWithoutLocale.d.ts","sourceRoot":"","sources":["../../../src/localization/getPathWithoutLocale.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI3E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,UAAS,aAAa,EACO,KAC5B,MA6CF,CAAC"}
@@ -32,7 +32,7 @@ export type LocaleData = {
32
32
  * @param mapper - The mapper function that returns an object
33
33
  * @returns An array of objects
34
34
  */
35
- export declare const localeMap: <T extends object>(mapper: (locale: LocaleData) => T) => T[];
35
+ export declare const localeMap: <T extends object>(mapper: (locale: LocaleData) => T, locales?: LocalesValues[], defaultLocale?: LocalesValues, prefixDefault?: boolean) => T[];
36
36
  /**
37
37
  * Flatten the locale map into a single array of objects
38
38
  *
@@ -59,5 +59,5 @@ export declare const localeMap: <T extends object>(mapper: (locale: LocaleData)
59
59
  * @param mapper - The mapper function that returns an array of objects
60
60
  * @returns An array of objects
61
61
  */
62
- export declare const localeFlatMap: <T>(mapper: (locale: LocaleData) => T[]) => T[];
62
+ export declare const localeFlatMap: <T>(mapper: (locale: LocaleData) => T[], locales?: LocalesValues[], defaultLocale?: LocalesValues, prefixDefault?: boolean) => T[];
63
63
  //# sourceMappingURL=localeMapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localeMapper.d.ts","sourceRoot":"","sources":["../../../src/localization/localeMapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAMxD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,KAChC,CAAC,EAQD,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,EAAE,KAAG,CAAC,EAQrE,CAAC"}
1
+ {"version":3,"file":"localeMapper.d.ts","sourceRoot":"","sources":["../../../src/localization/localeMapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,EACjC,UAAS,aAAa,EAA+C,EACrE,gBAAe,aACC,EAChB,gBAAe,OAAgD,KAC9D,CAAC,EASD,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,EAAE,EACnC,UAAS,aAAa,EAA+C,EACrE,gBAAe,aACC,EAChB,gBAAe,OAAgD,KAC9D,CAAC,EASD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"localeResolver.d.ts","sourceRoot":"","sources":["../../../src/localization/localeResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,gBAAgB,aAAa,GAAG,aAAa,EAAE,EAC/C,UAAS,aAAa,EAA+C,EACrE,gBAAe,aACC,KACf,aAqCF,CAAC"}
1
+ {"version":3,"file":"localeResolver.d.ts","sourceRoot":"","sources":["../../../src/localization/localeResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,gBAAgB,aAAa,GAAG,aAAa,EAAE,EAC/C,UAAS,aAAa,EAA+C,EACrE,gBAAe,aACC,KACf,aAqCF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/core",
3
- "version": "5.4.0-canary.0",
3
+ "version": "5.4.1",
4
4
  "private": false,
5
5
  "description": "Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.",
6
6
  "keywords": [
@@ -75,9 +75,9 @@
75
75
  ],
76
76
  "dependencies": {
77
77
  "negotiator": "^1.0.0",
78
- "@intlayer/api": "5.4.0-canary.0",
79
- "@intlayer/config": "5.4.0-canary.0",
80
- "@intlayer/dictionaries-entry": "5.4.0-canary.0"
78
+ "@intlayer/config": "5.4.1",
79
+ "@intlayer/api": "5.4.1",
80
+ "@intlayer/dictionaries-entry": "5.4.1"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@types/negotiator": "^0.6.3",
@@ -90,16 +90,16 @@
90
90
  "tsc-alias": "^1.8.11",
91
91
  "tsup": "^8.4.0",
92
92
  "typescript": "^5.8.2",
93
- "@utils/ts-config-types": "1.0.4",
94
- "@utils/tsup-config": "1.0.4",
93
+ "@utils/eslint-config": "1.0.4",
95
94
  "@utils/ts-config": "1.0.4",
96
- "@utils/eslint-config": "1.0.4"
95
+ "@utils/ts-config-types": "1.0.4",
96
+ "@utils/tsup-config": "1.0.4"
97
97
  },
98
98
  "peerDependencies": {
99
- "@intlayer/config": "5.4.0-canary.0",
100
- "@intlayer/dictionaries-entry": "5.4.0-canary.0",
101
- "@intlayer/api": "5.4.0-canary.0",
102
- "intlayer": "5.4.0-canary.0"
99
+ "@intlayer/api": "5.4.1",
100
+ "@intlayer/config": "5.4.1",
101
+ "@intlayer/dictionaries-entry": "5.4.1",
102
+ "intlayer": "5.4.1"
103
103
  },
104
104
  "engines": {
105
105
  "node": ">=14.18"