@intlayer/core 1.0.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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/getLocaleName.cjs +494 -0
  3. package/dist/cjs/getLocaleName.cjs.map +1 -0
  4. package/dist/cjs/getLocaleName.d.ts +5 -0
  5. package/dist/cjs/index.cjs +51 -0
  6. package/dist/cjs/index.cjs.map +1 -0
  7. package/dist/cjs/index.d.ts +25 -0
  8. package/dist/cjs/localeList.cjs +261 -0
  9. package/dist/cjs/localeList.cjs.map +1 -0
  10. package/dist/cjs/localeList.d.ts +5 -0
  11. package/dist/cjs/transpiler/content_transformers/enumeration/enumeration.cjs +52 -0
  12. package/dist/cjs/transpiler/content_transformers/enumeration/enumeration.cjs.map +1 -0
  13. package/dist/cjs/transpiler/content_transformers/enumeration/enumeration.d.ts +32 -0
  14. package/dist/cjs/transpiler/content_transformers/enumeration/getEnumerationContent.cjs +62 -0
  15. package/dist/cjs/transpiler/content_transformers/enumeration/getEnumerationContent.cjs.map +1 -0
  16. package/dist/cjs/transpiler/content_transformers/enumeration/getEnumerationContent.d.ts +10 -0
  17. package/dist/cjs/transpiler/content_transformers/enumeration/index.cjs +37 -0
  18. package/dist/cjs/transpiler/content_transformers/enumeration/index.cjs.map +1 -0
  19. package/dist/cjs/transpiler/content_transformers/enumeration/index.d.ts +4 -0
  20. package/dist/cjs/transpiler/content_transformers/index.cjs +41 -0
  21. package/dist/cjs/transpiler/content_transformers/index.cjs.map +1 -0
  22. package/dist/cjs/transpiler/content_transformers/index.d.ts +15 -0
  23. package/dist/cjs/transpiler/content_transformers/translation/getTranslationContent.cjs +37 -0
  24. package/dist/cjs/transpiler/content_transformers/translation/getTranslationContent.cjs.map +1 -0
  25. package/dist/cjs/transpiler/content_transformers/translation/getTranslationContent.d.ts +11 -0
  26. package/dist/cjs/transpiler/content_transformers/translation/index.cjs +37 -0
  27. package/dist/cjs/transpiler/content_transformers/translation/index.cjs.map +1 -0
  28. package/dist/cjs/transpiler/content_transformers/translation/index.d.ts +5 -0
  29. package/dist/cjs/transpiler/content_transformers/translation/translations.cjs +54 -0
  30. package/dist/cjs/transpiler/content_transformers/translation/translations.cjs.map +1 -0
  31. package/dist/cjs/transpiler/content_transformers/translation/translations.d.ts +17 -0
  32. package/dist/cjs/transpiler/index.cjs +36 -0
  33. package/dist/cjs/transpiler/index.cjs.map +1 -0
  34. package/dist/cjs/transpiler/index.d.ts +13 -0
  35. package/dist/cjs/types/contentModule.cjs +21 -0
  36. package/dist/cjs/types/contentModule.cjs.map +1 -0
  37. package/dist/cjs/types/contentModule.d.ts +35 -0
  38. package/dist/cjs/types/index.cjs +34 -0
  39. package/dist/cjs/types/index.cjs.map +1 -0
  40. package/dist/cjs/types/index.d.ts +13 -0
  41. package/dist/cjs/types/nodeType.cjs +38 -0
  42. package/dist/cjs/types/nodeType.cjs.map +1 -0
  43. package/dist/cjs/types/nodeType.d.ts +6 -0
  44. package/dist/cjs/utils/getStackTraceInfo.cjs +50 -0
  45. package/dist/cjs/utils/getStackTraceInfo.cjs.map +1 -0
  46. package/dist/cjs/utils/getStackTraceInfo.d.ts +12 -0
  47. package/dist/esm/getLocaleName.d.mts +5 -0
  48. package/dist/esm/getLocaleName.mjs +463 -0
  49. package/dist/esm/getLocaleName.mjs.map +1 -0
  50. package/dist/esm/index.d.mts +25 -0
  51. package/dist/esm/index.mjs +19 -0
  52. package/dist/esm/index.mjs.map +1 -0
  53. package/dist/esm/localeList.d.mts +5 -0
  54. package/dist/esm/localeList.mjs +230 -0
  55. package/dist/esm/localeList.mjs.map +1 -0
  56. package/dist/esm/transpiler/content_transformers/enumeration/enumeration.d.mts +32 -0
  57. package/dist/esm/transpiler/content_transformers/enumeration/enumeration.mjs +21 -0
  58. package/dist/esm/transpiler/content_transformers/enumeration/enumeration.mjs.map +1 -0
  59. package/dist/esm/transpiler/content_transformers/enumeration/getEnumerationContent.d.mts +10 -0
  60. package/dist/esm/transpiler/content_transformers/enumeration/getEnumerationContent.mjs +31 -0
  61. package/dist/esm/transpiler/content_transformers/enumeration/getEnumerationContent.mjs.map +1 -0
  62. package/dist/esm/transpiler/content_transformers/enumeration/index.d.mts +4 -0
  63. package/dist/esm/transpiler/content_transformers/enumeration/index.mjs +3 -0
  64. package/dist/esm/transpiler/content_transformers/enumeration/index.mjs.map +1 -0
  65. package/dist/esm/transpiler/content_transformers/index.d.mts +15 -0
  66. package/dist/esm/transpiler/content_transformers/index.mjs +3 -0
  67. package/dist/esm/transpiler/content_transformers/index.mjs.map +1 -0
  68. package/dist/esm/transpiler/content_transformers/translation/getTranslationContent.d.mts +11 -0
  69. package/dist/esm/transpiler/content_transformers/translation/getTranslationContent.mjs +6 -0
  70. package/dist/esm/transpiler/content_transformers/translation/getTranslationContent.mjs.map +1 -0
  71. package/dist/esm/transpiler/content_transformers/translation/index.d.mts +5 -0
  72. package/dist/esm/transpiler/content_transformers/translation/index.mjs +3 -0
  73. package/dist/esm/transpiler/content_transformers/translation/index.mjs.map +1 -0
  74. package/dist/esm/transpiler/content_transformers/translation/translations.d.mts +17 -0
  75. package/dist/esm/transpiler/content_transformers/translation/translations.mjs +22 -0
  76. package/dist/esm/transpiler/content_transformers/translation/translations.mjs.map +1 -0
  77. package/dist/esm/transpiler/index.d.mts +13 -0
  78. package/dist/esm/transpiler/index.mjs +3 -0
  79. package/dist/esm/transpiler/index.mjs.map +1 -0
  80. package/dist/esm/types/contentModule.d.mts +35 -0
  81. package/dist/esm/types/contentModule.mjs +1 -0
  82. package/dist/esm/types/contentModule.mjs.map +1 -0
  83. package/dist/esm/types/index.d.mts +13 -0
  84. package/dist/esm/types/index.mjs +3 -0
  85. package/dist/esm/types/index.mjs.map +1 -0
  86. package/dist/esm/types/nodeType.d.mts +6 -0
  87. package/dist/esm/types/nodeType.mjs +7 -0
  88. package/dist/esm/types/nodeType.mjs.map +1 -0
  89. package/dist/esm/utils/getStackTraceInfo.d.mts +12 -0
  90. package/dist/esm/utils/getStackTraceInfo.mjs +19 -0
  91. package/dist/esm/utils/getStackTraceInfo.mjs.map +1 -0
  92. package/package.json +86 -0
  93. package/src/getLocaleName.ts +463 -0
  94. package/src/index.ts +23 -0
  95. package/src/localeList.ts +229 -0
  96. package/src/transpiler/content_transformers/enumeration/enumeration.ts +59 -0
  97. package/src/transpiler/content_transformers/enumeration/getEnumerationContent.ts +40 -0
  98. package/src/transpiler/content_transformers/enumeration/index.ts +2 -0
  99. package/src/transpiler/content_transformers/index.ts +2 -0
  100. package/src/transpiler/content_transformers/translation/getTranslationContent.ts +13 -0
  101. package/src/transpiler/content_transformers/translation/index.ts +2 -0
  102. package/src/transpiler/content_transformers/translation/translations.ts +42 -0
  103. package/src/transpiler/index.ts +7 -0
  104. package/src/types/contentModule.ts +32 -0
  105. package/src/types/index.ts +9 -0
  106. package/src/types/nodeType.ts +4 -0
  107. package/src/utils/getStackTraceInfo.ts +39 -0
@@ -0,0 +1,229 @@
1
+ import { Locales } from '@intlayer/config/client';
2
+
3
+ export const localeList: Locales[] = [
4
+ Locales.AFRIKAANS,
5
+ Locales.AFRIKAANS_SOUTH_AFRICA,
6
+ Locales.ARABIC,
7
+ Locales.ARABIC_UNITED_ARAB_EMIRATES,
8
+ Locales.ARABIC_BAHRAIN,
9
+ Locales.ARABIC_ALGERIA,
10
+ Locales.ARABIC_EGYPT,
11
+ Locales.ARABIC_IRAQ,
12
+ Locales.ARABIC_JORDAN,
13
+ Locales.ARABIC_KUWAIT,
14
+ Locales.ARABIC_LEBANON,
15
+ Locales.ARABIC_LIBYA,
16
+ Locales.ARABIC_MOROCCO,
17
+ Locales.ARABIC_OMAN,
18
+ Locales.ARABIC_QATAR,
19
+ Locales.ARABIC_SAUDI_ARABIA,
20
+ Locales.ARABIC_SYRIA,
21
+ Locales.ARABIC_TUNISIA,
22
+ Locales.ARABIC_YEMEN,
23
+ Locales.AZERI_LATIN,
24
+ Locales.AZERI_LATIN_AZERBAIJAN,
25
+ Locales.BELARUSIAN,
26
+ Locales.BELARUSIAN_BELARUS,
27
+ Locales.BULGARIAN,
28
+ Locales.BULGARIAN_BULGARIA,
29
+ Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA,
30
+ Locales.CATALAN,
31
+ Locales.CATALAN_SPAIN,
32
+ Locales.CZECH,
33
+ Locales.CZECH_CZECH_REPUBLIC,
34
+ Locales.WELSH,
35
+ Locales.WELSH_UNITED_KINGDOM,
36
+ Locales.DANISH,
37
+ Locales.DANISH_DENMARK,
38
+ Locales.GERMAN,
39
+ Locales.GERMAN_AUSTRIA,
40
+ Locales.GERMAN_SWITZERLAND,
41
+ Locales.GERMAN_GERMANY,
42
+ Locales.GERMAN_LIECHTENSTEIN,
43
+ Locales.GERMAN_LUXEMBOURG,
44
+ Locales.DIVEHI,
45
+ Locales.DIVEHI_MALDIVES,
46
+ Locales.GREEK,
47
+ Locales.GREEK_GREECE,
48
+ Locales.ENGLISH,
49
+ Locales.ENGLISH_AUSTRALIA,
50
+ Locales.ENGLISH_BELIZE,
51
+ Locales.ENGLISH_CANADA,
52
+ Locales.ENGLISH_CARIBBEAN,
53
+ Locales.ENGLISH_UNITED_KINGDOM,
54
+ Locales.ENGLISH_IRELAND,
55
+ Locales.ENGLISH_JAMAICA,
56
+ Locales.ENGLISH_NEW_ZEALAND,
57
+ Locales.ENGLISH_PHILIPPINES,
58
+ Locales.ENGLISH_TRINIDAD_AND_TOBAGO,
59
+ Locales.ENGLISH_UNITED_STATES,
60
+ Locales.ENGLISH_SOUTH_AFRICA,
61
+ Locales.ENGLISH_ZIMBABWE,
62
+ Locales.ESPERANTO,
63
+ Locales.SPANISH,
64
+ Locales.SPANISH_ARGENTINA,
65
+ Locales.SPANISH_BOLIVIA,
66
+ Locales.SPANISH_CHILE,
67
+ Locales.SPANISH_COLOMBIA,
68
+ Locales.SPANISH_COSTA_RICA,
69
+ Locales.SPANISH_DOMINICAN_REPUBLIC,
70
+ Locales.SPANISH_ECUADOR,
71
+ Locales.SPANISH_SPAIN,
72
+ Locales.SPANISH_GUATEMALA,
73
+ Locales.SPANISH_HONDURAS,
74
+ Locales.SPANISH_MEXICO,
75
+ Locales.SPANISH_NICARAGUA,
76
+ Locales.SPANISH_PANAMA,
77
+ Locales.SPANISH_PERU,
78
+ Locales.SPANISH_PUERTO_RICO,
79
+ Locales.SPANISH_PARAGUAY,
80
+ Locales.SPANISH_EL_SALVADOR,
81
+ Locales.SPANISH_URUGUAY,
82
+ Locales.SPANISH_VENEZUELA,
83
+ Locales.ESTONIAN,
84
+ Locales.ESTONIAN_ESTONIA,
85
+ Locales.BASQUE,
86
+ Locales.BASQUE_SPAIN,
87
+ Locales.FARSI,
88
+ Locales.FARSI_IRAN,
89
+ Locales.FINNISH,
90
+ Locales.FINNISH_FINLAND,
91
+ Locales.FAROESE,
92
+ Locales.FAROESE_FAROE_ISLANDS,
93
+ Locales.FRENCH,
94
+ Locales.FRENCH_BELGIUM,
95
+ Locales.FRENCH_CANADA,
96
+ Locales.FRENCH_SWITZERLAND,
97
+ Locales.FRENCH_FRANCE,
98
+ Locales.FRENCH_LUXEMBOURG,
99
+ Locales.FRENCH_PRINCIPALITY_OF_MONACO,
100
+ Locales.GALICIAN,
101
+ Locales.GALICIAN_SPAIN,
102
+ Locales.GUJARATI,
103
+ Locales.GUJARATI_INDIA,
104
+ Locales.HEBREW,
105
+ Locales.HEBREW_ISRAEL,
106
+ Locales.HINDI,
107
+ Locales.HINDI_INDIA,
108
+ Locales.CROATIAN,
109
+ Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA,
110
+ Locales.CROATIAN_CROATIA,
111
+ Locales.HUNGARIAN,
112
+ Locales.HUNGARIAN_HUNGARY,
113
+ Locales.ARMENIAN,
114
+ Locales.ARMENIAN_ARMENIA,
115
+ Locales.INDONESIAN,
116
+ Locales.INDONESIAN_INDONESIA,
117
+ Locales.ICELANDIC,
118
+ Locales.ICELANDIC_ICELAND,
119
+ Locales.ITALIAN,
120
+ Locales.ITALIAN_SWITZERLAND,
121
+ Locales.ITALIAN_ITALY,
122
+ Locales.JAPANESE,
123
+ Locales.JAPANESE_JAPAN,
124
+ Locales.GEORGIAN,
125
+ Locales.GEORGIAN_GEORGIA,
126
+ Locales.KAZAKH,
127
+ Locales.KAZAKH_KAZAKHSTAN,
128
+ Locales.KANNADA,
129
+ Locales.KANNADA_INDIA,
130
+ Locales.KOREAN,
131
+ Locales.KOREAN_KOREA,
132
+ Locales.KONKANI,
133
+ Locales.KONKANI_INDIA,
134
+ Locales.KYRGYZ,
135
+ Locales.KYRGYZ_KYRGYZSTAN,
136
+ Locales.LITHUANIAN,
137
+ Locales.LITHUANIAN_LITHUANIA,
138
+ Locales.LATVIAN,
139
+ Locales.LATVIAN_LATVIA,
140
+ Locales.MAORI,
141
+ Locales.MAORI_NEW_ZEALAND,
142
+ Locales.FYRO_MACEDONIAN,
143
+ Locales.FYRO_MACEDONIAN_MACEDONIA,
144
+ Locales.MONGOLIAN,
145
+ Locales.MONGOLIAN_MONGOLIA,
146
+ Locales.MARATHI,
147
+ Locales.MARATHI_INDIA,
148
+ Locales.MALAY,
149
+ Locales.MALAY_BRUNEI_DARUSSALAM,
150
+ Locales.MALAY_MALAYSIA,
151
+ Locales.MALTESE,
152
+ Locales.MALTESE_MALTA,
153
+ Locales.NORWEGIAN_BOKMAL,
154
+ Locales.NORWEGIAN_BOKMAL_NORWAY,
155
+ Locales.DUTCH,
156
+ Locales.DUTCH_BELGIUM,
157
+ Locales.DUTCH_NETHERLANDS,
158
+ Locales.NORWEGIAN_NYNORSK_NORWAY,
159
+ Locales.NORTHERN_SOTHO,
160
+ Locales.NORTHERN_SOTHO_SOUTH_AFRICA,
161
+ Locales.PUNJABI,
162
+ Locales.PUNJABI_INDIA,
163
+ Locales.POLISH,
164
+ Locales.POLISH_POLAND,
165
+ Locales.PASHTO,
166
+ Locales.PASHTO_AFGHANISTAN,
167
+ Locales.PORTUGUESE,
168
+ Locales.PORTUGUESE_BRAZIL,
169
+ Locales.PORTUGUESE_PORTUGAL,
170
+ Locales.QUECHUA,
171
+ Locales.QUECHUA_BOLIVIA,
172
+ Locales.QUECHUA_ECUADOR,
173
+ Locales.QUECHUA_PERU,
174
+ Locales.ROMANIAN,
175
+ Locales.ROMANIAN_ROMANIA,
176
+ Locales.RUSSIAN,
177
+ Locales.RUSSIAN_RUSSIA,
178
+ Locales.SANSKRIT,
179
+ Locales.SANSKRIT_INDIA,
180
+ Locales.SAMI_NORTHERN,
181
+ Locales.SAMI_NORTHERN_FINLAND,
182
+ Locales.SAMI_NORTHERN_NORWAY,
183
+ Locales.SAMI_NORTHERN_SWEDEN,
184
+ Locales.SLOVAK,
185
+ Locales.SLOVAK_SLOVAKIA,
186
+ Locales.SLOVENIAN,
187
+ Locales.SLOVENIAN_SLOVENIA,
188
+ Locales.ALBANIAN,
189
+ Locales.ALBANIAN_ALBANIA,
190
+ Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA,
191
+ Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO,
192
+ Locales.SWEDISH,
193
+ Locales.SWEDISH_FINLAND,
194
+ Locales.SWEDISH_SWEDEN,
195
+ Locales.SWAHILI_KENYA,
196
+ Locales.SYRIAC_SYRIA,
197
+ Locales.TAMIL,
198
+ Locales.TAMIL_INDIA,
199
+ Locales.TELUGU,
200
+ Locales.TELUGU_INDIA,
201
+ Locales.THAI,
202
+ Locales.THAI_THAILAND,
203
+ Locales.TAGALOG,
204
+ Locales.TAGALOG_PHILIPPINES,
205
+ Locales.TSWANA,
206
+ Locales.TSWANA_SOUTH_AFRICA,
207
+ Locales.TURKISH,
208
+ Locales.TURKISH_TURKEY,
209
+ Locales.TATAR,
210
+ Locales.TATAR_RUSSIA,
211
+ Locales.TSOGA,
212
+ Locales.UKRAINIAN,
213
+ Locales.UKRAINIAN_UKRAINE,
214
+ Locales.URDU,
215
+ Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN,
216
+ Locales.UZBEK_LATIN,
217
+ Locales.UZBEK_LATIN_UZBEKISTAN,
218
+ Locales.VIETNAMESE,
219
+ Locales.VIETNAMESE_VIET_NAM,
220
+ Locales.XHOSA,
221
+ Locales.XHOSA_SOUTH_AFRICA,
222
+ Locales.CHINESE,
223
+ Locales.CHINESE_SIMPLIFIED,
224
+ Locales.CHINESE_HONG_KONG,
225
+ Locales.CHINESE_MACAU,
226
+ Locales.CHINESE_SINGAPORE,
227
+ Locales.CHINESE_TRADITIONAL,
228
+ Locales.ZULU_SOUTH_AFRICA,
229
+ ];
@@ -0,0 +1,59 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { NodeType } from '../../../types/index';
3
+ import {
4
+ getStackTraceInfo,
5
+ type NoteStackTraceInfo,
6
+ } from '../../../utils/getStackTraceInfo';
7
+
8
+ type Positif = number | `${number}`;
9
+ type Negatif = `-${number}`;
10
+ type Numbers = Positif | Negatif;
11
+
12
+ type Equal = Numbers;
13
+ type EqualString = `=${Numbers}`;
14
+ type Superior = `>${Numbers}`;
15
+ type SuperiorOrEqual = `>=${Numbers}`;
16
+ type Inferior = `<${Numbers}`;
17
+ type InferiorOrEqual = `<=${Numbers}`;
18
+
19
+ type EnterFormat =
20
+ | Equal
21
+ | EqualString
22
+ | Superior
23
+ | SuperiorOrEqual
24
+ | Inferior
25
+ | InferiorOrEqual;
26
+
27
+ export type QuantityContent<Content> = Record<EnterFormat, Content>;
28
+
29
+ export type EnumerationContent<Content> = Partial<QuantityContent<Content>> &
30
+ NoteStackTraceInfo & {
31
+ nodeType: NodeType.Enumeration;
32
+ };
33
+
34
+ /**
35
+ * Create a JSON string with the content and the stack trace information
36
+ */
37
+ const enumeration = <Content>(content?: Partial<QuantityContent<Content>>) => {
38
+ const stackTraceInfo = getStackTraceInfo();
39
+
40
+ if (typeof content === 'string') {
41
+ const result: EnumerationContent<Content> = {
42
+ nodeType: NodeType.Enumeration,
43
+ ...stackTraceInfo,
44
+ 1: content,
45
+ };
46
+
47
+ return result;
48
+ }
49
+
50
+ const result: EnumerationContent<Content> = {
51
+ nodeType: NodeType.Enumeration,
52
+ ...stackTraceInfo,
53
+ ...content,
54
+ };
55
+
56
+ return result;
57
+ };
58
+
59
+ export { enumeration as enu };
@@ -0,0 +1,40 @@
1
+ import type { QuantityContent } from './enumeration';
2
+
3
+ type Key = keyof QuantityContent<string>;
4
+
5
+ export const getEnumerationContent = <Content>(
6
+ enumerationContent: QuantityContent<Content>,
7
+ quantity: number
8
+ ): Content => {
9
+ const numericKeys = Object.keys(enumerationContent);
10
+
11
+ for (const key of numericKeys) {
12
+ const isEqual =
13
+ (!key.startsWith('>') &&
14
+ !key.startsWith('<') &&
15
+ !key.startsWith('=') &&
16
+ parseFloat(key) === quantity) ||
17
+ (key.startsWith('=') && parseFloat(key.slice(1)) === quantity);
18
+ const isSuperior =
19
+ key.startsWith('>') && quantity > parseFloat(key.slice(1));
20
+ const isSuperiorOrEqual =
21
+ key.startsWith('>=') && quantity >= parseFloat(key.slice(2));
22
+ const isInferior =
23
+ key.startsWith('<') && quantity < parseFloat(key.slice(1));
24
+ const isInferiorOrEqual =
25
+ key.startsWith('<=') && quantity <= parseFloat(key.slice(2));
26
+
27
+ if (
28
+ isEqual ||
29
+ isSuperior ||
30
+ isSuperiorOrEqual ||
31
+ isInferior ||
32
+ isInferiorOrEqual
33
+ ) {
34
+ return enumerationContent[key as Key];
35
+ }
36
+ }
37
+
38
+ // Default or error handling if no keys match
39
+ return enumerationContent['1'];
40
+ };
@@ -0,0 +1,2 @@
1
+ export * from './enumeration';
2
+ export * from './getEnumerationContent';
@@ -0,0 +1,2 @@
1
+ export * from './translation/index';
2
+ export * from './enumeration/index';
@@ -0,0 +1,13 @@
1
+ import {
2
+ type Locales,
3
+ intlayerIntlConfiguration,
4
+ } from '@intlayer/config/client';
5
+ import type { LanguageContent } from './translations';
6
+
7
+ const defaultLocale = intlayerIntlConfiguration.defaultLocale;
8
+
9
+ export const getTranslationContent = <Content>(
10
+ languageContent: LanguageContent<Content>,
11
+ locale: Locales
12
+ ): Content =>
13
+ languageContent[locale ?? defaultLocale] ?? languageContent[defaultLocale];
@@ -0,0 +1,2 @@
1
+ export * from './translations';
2
+ export * from './getTranslationContent';
@@ -0,0 +1,42 @@
1
+ import { type Locales, intlayerConfiguration } from '@intlayer/config/client';
2
+ import { NodeType } from '../../../types/index';
3
+ import {
4
+ getStackTraceInfo,
5
+ type NoteStackTraceInfo,
6
+ } from '../../../utils/getStackTraceInfo';
7
+
8
+ export type LanguageContent<Content> = Record<Locales, Content>;
9
+
10
+ export type TranslationContent<Content> = Partial<LanguageContent<Content>> &
11
+ NoteStackTraceInfo & {
12
+ nodeType: NodeType.Translation;
13
+ };
14
+
15
+ /**
16
+ * Create a JSON with the content and the stack trace information
17
+ */
18
+ const translations = <Content>(
19
+ content?: Partial<LanguageContent<Content>> | string
20
+ ) => {
21
+ const stackTraceInfo = getStackTraceInfo();
22
+
23
+ if (typeof content === 'string') {
24
+ const result: TranslationContent<Content> = {
25
+ nodeType: NodeType.Translation,
26
+ ...stackTraceInfo,
27
+ [intlayerConfiguration.internationalization.defaultLocale]: content,
28
+ };
29
+
30
+ return result;
31
+ }
32
+
33
+ const result: TranslationContent<Content> = {
34
+ nodeType: NodeType.Translation,
35
+ ...stackTraceInfo,
36
+ ...content,
37
+ };
38
+
39
+ return result;
40
+ };
41
+
42
+ export { translations as t };
@@ -0,0 +1,7 @@
1
+ export type {
2
+ LanguageContent,
3
+ TranslationContent,
4
+ EnumerationContent,
5
+ QuantityContent,
6
+ } from './content_transformers/index';
7
+ export { t, enu } from './content_transformers/index';
@@ -0,0 +1,32 @@
1
+ import type {
2
+ EnumerationContent,
3
+ TranslationContent,
4
+ } from '../transpiler/index';
5
+
6
+ export type TypedNode =
7
+ | TranslationContent<unknown>
8
+ | EnumerationContent<unknown>;
9
+
10
+ export type ContentValue =
11
+ | string
12
+ | {
13
+ [key: string]: ContentValue;
14
+ }
15
+ | (() => ContentValue)
16
+ | Promise<ContentValue>
17
+ | TypedNode;
18
+
19
+ export type Content = Record<string, ContentValue | undefined>;
20
+
21
+ export type FlatContentValue =
22
+ | string
23
+ | {
24
+ [key: string]: FlatContentValue;
25
+ }
26
+ | TypedNode;
27
+
28
+ export type FlatContent = Record<string, FlatContentValue | undefined>;
29
+
30
+ export type ContentModule = Content & {
31
+ id: string;
32
+ };
@@ -0,0 +1,9 @@
1
+ export type {
2
+ ContentValue,
3
+ Content,
4
+ FlatContentValue,
5
+ FlatContent,
6
+ TypedNode,
7
+ ContentModule,
8
+ } from './contentModule';
9
+ export { NodeType } from './nodeType';
@@ -0,0 +1,4 @@
1
+ export enum NodeType {
2
+ Translation = 'translation',
3
+ Enumeration = 'enumeration',
4
+ }
@@ -0,0 +1,39 @@
1
+ export type NoteStackTraceInfo = {
2
+ file?: string;
3
+ line?: string;
4
+ column?: string;
5
+ };
6
+
7
+ /**
8
+ * Get the file path, line number, and column number of the caller of this function
9
+ * @returns {Object} An object containing file, line, and column numbers
10
+ */
11
+ export const getStackTraceInfo = (): NoteStackTraceInfo => {
12
+ // Create a new Error object to capture the stack trace
13
+ const err = new Error();
14
+ const stack = err.stack ?? '';
15
+
16
+ // Split the stack trace into lines and find the line where this function was called
17
+ // Adjust the line index as necessary based on how your environment's stack trace format
18
+ const stackLines = stack.split('\n');
19
+ const callerLine = stackLines[2] ?? ''; // Adjust the index 2 if needed
20
+
21
+ // Extract file path, line number, and column number using a regular expression
22
+ // This regex pattern might need adjustments based on your environment
23
+ const match = callerLine.match(/at\s[^(:]+\([^:]+:(\d+):(\d+)\)?/);
24
+
25
+ // const file = match?.[1];
26
+ const line = match?.[1];
27
+ const column = match?.[2];
28
+
29
+ if (match) {
30
+ return {
31
+ // file,
32
+ line,
33
+ column,
34
+ };
35
+ }
36
+
37
+ // Return empty object if parsing fails
38
+ return {};
39
+ };