gt-react 3.1.39 → 3.1.41

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 (289) hide show
  1. package/dist/cjs/client/ClientProvider.d.ts +19 -0
  2. package/dist/cjs/client/ClientProvider.d.ts.map +1 -0
  3. package/dist/cjs/client/ClientProvider.js +29 -0
  4. package/dist/cjs/client/ClientProvider.js.map +1 -0
  5. package/dist/cjs/client/client-only/GTClientProvider.d.ts +13 -0
  6. package/dist/cjs/client/client-only/GTClientProvider.d.ts.map +1 -0
  7. package/dist/cjs/client/client-only/GTClientProvider.js +95 -0
  8. package/dist/cjs/client/client-only/GTClientProvider.js.map +1 -0
  9. package/dist/cjs/client/client-only/helpers/renderDictionary.d.ts +2 -0
  10. package/dist/cjs/client/client-only/helpers/renderDictionary.d.ts.map +1 -0
  11. package/dist/cjs/client/client-only/helpers/renderDictionary.js +150 -0
  12. package/dist/cjs/client/client-only/helpers/renderDictionary.js.map +1 -0
  13. package/dist/cjs/client/hooks/useBrowserLocale.d.ts +7 -0
  14. package/dist/cjs/client/hooks/useBrowserLocale.d.ts.map +1 -0
  15. package/dist/cjs/client/hooks/useBrowserLocale.js +41 -0
  16. package/dist/cjs/client/hooks/useBrowserLocale.js.map +1 -0
  17. package/dist/cjs/client/hooks/useDefaultLocale.d.ts +5 -0
  18. package/dist/cjs/client/hooks/useDefaultLocale.d.ts.map +1 -0
  19. package/dist/cjs/client/hooks/useDefaultLocale.js +13 -0
  20. package/dist/cjs/client/hooks/useDefaultLocale.js.map +1 -0
  21. package/dist/cjs/client/hooks/useGT.d.ts +10 -0
  22. package/dist/cjs/client/hooks/useGT.d.ts.map +1 -0
  23. package/dist/cjs/client/hooks/useGT.js +54 -0
  24. package/dist/cjs/client/hooks/useGT.js.map +1 -0
  25. package/dist/cjs/client/hooks/useLocale.d.ts +5 -0
  26. package/dist/cjs/client/hooks/useLocale.d.ts.map +1 -0
  27. package/dist/cjs/client/hooks/useLocale.js +13 -0
  28. package/dist/cjs/client/hooks/useLocale.js.map +1 -0
  29. package/dist/cjs/client/plural/ClientPlural.d.ts +28 -0
  30. package/dist/cjs/client/plural/ClientPlural.d.ts.map +1 -0
  31. package/dist/cjs/client/plural/ClientPlural.js +78 -0
  32. package/dist/cjs/client/plural/ClientPlural.js.map +1 -0
  33. package/dist/cjs/client/value/ClientValue.d.ts +16 -0
  34. package/dist/cjs/client/value/ClientValue.d.ts.map +1 -0
  35. package/dist/cjs/client/value/ClientValue.js +43 -0
  36. package/dist/cjs/client/value/ClientValue.js.map +1 -0
  37. package/dist/cjs/client/value/RenderClientVariable.d.ts +6 -0
  38. package/dist/cjs/client/value/RenderClientVariable.d.ts.map +1 -0
  39. package/dist/cjs/client/value/RenderClientVariable.js +106 -0
  40. package/dist/cjs/client/value/RenderClientVariable.js.map +1 -0
  41. package/dist/cjs/client/variables/ClientCurrency.d.ts +13 -0
  42. package/dist/cjs/client/variables/ClientCurrency.d.ts.map +1 -0
  43. package/dist/cjs/client/variables/ClientCurrency.js +31 -0
  44. package/dist/cjs/client/variables/ClientCurrency.js.map +1 -0
  45. package/dist/cjs/client/variables/ClientDateTime.d.ts +12 -0
  46. package/dist/cjs/client/variables/ClientDateTime.d.ts.map +1 -0
  47. package/dist/cjs/client/variables/ClientDateTime.js +45 -0
  48. package/dist/cjs/client/variables/ClientDateTime.js.map +1 -0
  49. package/dist/cjs/client/variables/ClientNum.d.ts +12 -0
  50. package/dist/cjs/client/variables/ClientNum.d.ts.map +1 -0
  51. package/dist/cjs/client/variables/ClientNum.js +29 -0
  52. package/dist/cjs/client/variables/ClientNum.js.map +1 -0
  53. package/dist/cjs/client/variables/ClientVar.d.ts +21 -0
  54. package/dist/cjs/client/variables/ClientVar.d.ts.map +1 -0
  55. package/dist/cjs/client/variables/ClientVar.js +26 -0
  56. package/dist/cjs/client/variables/ClientVar.js.map +1 -0
  57. package/dist/cjs/client.d.ts +12 -0
  58. package/dist/cjs/client.d.ts.map +1 -0
  59. package/dist/cjs/client.js +27 -0
  60. package/dist/cjs/client.js.map +1 -0
  61. package/dist/cjs/config/I18NConfiguration.d.ts +135 -0
  62. package/dist/cjs/config/I18NConfiguration.d.ts.map +1 -0
  63. package/dist/cjs/config/I18NConfiguration.js +343 -0
  64. package/dist/cjs/config/I18NConfiguration.js.map +1 -0
  65. package/dist/cjs/config/LocalDictionaryManager.d.ts +31 -0
  66. package/dist/cjs/config/LocalDictionaryManager.d.ts.map +1 -0
  67. package/dist/cjs/config/LocalDictionaryManager.js +95 -0
  68. package/dist/cjs/config/LocalDictionaryManager.js.map +1 -0
  69. package/dist/cjs/config/RemoteDictionaryManager.d.ts +59 -0
  70. package/dist/cjs/config/RemoteDictionaryManager.d.ts.map +1 -0
  71. package/dist/cjs/config/RemoteDictionaryManager.js +120 -0
  72. package/dist/cjs/config/RemoteDictionaryManager.js.map +1 -0
  73. package/dist/cjs/config/determineLocale.d.ts +2 -0
  74. package/dist/cjs/config/determineLocale.d.ts.map +1 -0
  75. package/dist/cjs/config/determineLocale.js +32 -0
  76. package/dist/cjs/config/determineLocale.js.map +1 -0
  77. package/dist/cjs/config/local/getDefaultFromEnv.d.ts +12 -0
  78. package/dist/cjs/config/local/getDefaultFromEnv.d.ts.map +1 -0
  79. package/dist/cjs/config/local/getDefaultFromEnv.js +21 -0
  80. package/dist/cjs/config/local/getDefaultFromEnv.js.map +1 -0
  81. package/dist/cjs/dictionary/createDictFunction.d.ts +3 -0
  82. package/dist/cjs/dictionary/createDictFunction.d.ts.map +1 -0
  83. package/dist/cjs/dictionary/createDictFunction.js +14 -0
  84. package/dist/cjs/dictionary/createDictFunction.js.map +1 -0
  85. package/dist/cjs/dictionary/createExecuteTFunction.d.ts +12 -0
  86. package/dist/cjs/dictionary/createExecuteTFunction.d.ts.map +1 -0
  87. package/dist/cjs/dictionary/createExecuteTFunction.js +94 -0
  88. package/dist/cjs/dictionary/createExecuteTFunction.js.map +1 -0
  89. package/dist/cjs/dictionary/createGetGTFunction.d.ts +3 -0
  90. package/dist/cjs/dictionary/createGetGTFunction.d.ts.map +1 -0
  91. package/dist/cjs/dictionary/createGetGTFunction.js +10 -0
  92. package/dist/cjs/dictionary/createGetGTFunction.js.map +1 -0
  93. package/dist/cjs/dictionary/getDictionaryEntry.d.ts +2 -0
  94. package/dist/cjs/dictionary/getDictionaryEntry.d.ts.map +1 -0
  95. package/dist/cjs/dictionary/getDictionaryEntry.js +14 -0
  96. package/dist/cjs/dictionary/getDictionaryEntry.js.map +1 -0
  97. package/dist/cjs/index.d.ts +6 -0
  98. package/dist/cjs/index.d.ts.map +1 -0
  99. package/dist/cjs/index.js +15 -0
  100. package/dist/cjs/index.js.map +1 -0
  101. package/dist/cjs/intl/createIntlFunction.d.ts +6 -0
  102. package/dist/cjs/intl/createIntlFunction.d.ts.map +1 -0
  103. package/dist/cjs/intl/createIntlFunction.js +48 -0
  104. package/dist/cjs/intl/createIntlFunction.js.map +1 -0
  105. package/dist/cjs/middleware/cookieSettings.d.ts +2 -0
  106. package/dist/cjs/middleware/cookieSettings.d.ts.map +1 -0
  107. package/dist/cjs/middleware/cookieSettings.js +5 -0
  108. package/dist/cjs/middleware/cookieSettings.js.map +1 -0
  109. package/dist/cjs/middleware/createNextMiddleware.d.ts +10 -0
  110. package/dist/cjs/middleware/createNextMiddleware.d.ts.map +1 -0
  111. package/dist/cjs/middleware/createNextMiddleware.js +151 -0
  112. package/dist/cjs/middleware/createNextMiddleware.js.map +1 -0
  113. package/dist/cjs/middleware.d.ts +3 -0
  114. package/dist/cjs/middleware.d.ts.map +1 -0
  115. package/dist/cjs/middleware.js +9 -0
  116. package/dist/cjs/middleware.js.map +1 -0
  117. package/dist/cjs/next/imports/imports.d.ts +6 -0
  118. package/dist/cjs/next/imports/imports.d.ts.map +1 -0
  119. package/dist/cjs/next/imports/imports.js +84 -0
  120. package/dist/cjs/next/imports/imports.js.map +1 -0
  121. package/dist/cjs/next/requestFunctions.d.ts +21 -0
  122. package/dist/cjs/next/requestFunctions.d.ts.map +1 -0
  123. package/dist/cjs/next/requestFunctions.js +58 -0
  124. package/dist/cjs/next/requestFunctions.js.map +1 -0
  125. package/dist/cjs/next.d.ts +38 -0
  126. package/dist/cjs/next.d.ts.map +1 -0
  127. package/dist/cjs/next.js +58 -0
  128. package/dist/cjs/next.js.map +1 -0
  129. package/dist/cjs/primitives/calculateID.d.ts +2 -0
  130. package/dist/cjs/primitives/calculateID.d.ts.map +1 -0
  131. package/dist/cjs/primitives/calculateID.js +49 -0
  132. package/dist/cjs/primitives/calculateID.js.map +1 -0
  133. package/dist/cjs/primitives/createValues.d.ts +6 -0
  134. package/dist/cjs/primitives/createValues.d.ts.map +1 -0
  135. package/dist/cjs/primitives/createValues.js +16 -0
  136. package/dist/cjs/primitives/createValues.js.map +1 -0
  137. package/dist/cjs/primitives/defaultVariableNames.d.ts +3 -0
  138. package/dist/cjs/primitives/defaultVariableNames.d.ts.map +1 -0
  139. package/dist/cjs/primitives/defaultVariableNames.js +10 -0
  140. package/dist/cjs/primitives/defaultVariableNames.js.map +1 -0
  141. package/dist/cjs/primitives/flattenDictionary.d.ts +9 -0
  142. package/dist/cjs/primitives/flattenDictionary.d.ts.map +1 -0
  143. package/dist/cjs/primitives/flattenDictionary.js +29 -0
  144. package/dist/cjs/primitives/flattenDictionary.js.map +1 -0
  145. package/dist/cjs/primitives/getDictionaryReference.d.ts +8 -0
  146. package/dist/cjs/primitives/getDictionaryReference.d.ts.map +1 -0
  147. package/dist/cjs/primitives/getDictionaryReference.js +13 -0
  148. package/dist/cjs/primitives/getDictionaryReference.js.map +1 -0
  149. package/dist/cjs/primitives/getEntryMetadata.d.ts +5 -0
  150. package/dist/cjs/primitives/getEntryMetadata.d.ts.map +1 -0
  151. package/dist/cjs/primitives/getEntryMetadata.js +17 -0
  152. package/dist/cjs/primitives/getEntryMetadata.js.map +1 -0
  153. package/dist/cjs/primitives/getEntryTranslationType.d.ts +2 -0
  154. package/dist/cjs/primitives/getEntryTranslationType.d.ts.map +1 -0
  155. package/dist/cjs/primitives/getEntryTranslationType.js +31 -0
  156. package/dist/cjs/primitives/getEntryTranslationType.js.map +1 -0
  157. package/dist/cjs/primitives/getPluralBranch.d.ts +14 -0
  158. package/dist/cjs/primitives/getPluralBranch.d.ts.map +1 -0
  159. package/dist/cjs/primitives/getPluralBranch.js +88 -0
  160. package/dist/cjs/primitives/getPluralBranch.js.map +1 -0
  161. package/dist/cjs/primitives/getRenderAttributes.d.ts +5 -0
  162. package/dist/cjs/primitives/getRenderAttributes.d.ts.map +1 -0
  163. package/dist/cjs/primitives/getRenderAttributes.js +24 -0
  164. package/dist/cjs/primitives/getRenderAttributes.js.map +1 -0
  165. package/dist/cjs/primitives/getValueBranch.d.ts +9 -0
  166. package/dist/cjs/primitives/getValueBranch.d.ts.map +1 -0
  167. package/dist/cjs/primitives/getValueBranch.js +67 -0
  168. package/dist/cjs/primitives/getValueBranch.js.map +1 -0
  169. package/dist/cjs/primitives/hasTransformation.d.ts +3 -0
  170. package/dist/cjs/primitives/hasTransformation.d.ts.map +1 -0
  171. package/dist/cjs/primitives/hasTransformation.js +16 -0
  172. package/dist/cjs/primitives/hasTransformation.js.map +1 -0
  173. package/dist/cjs/primitives/isValidReactNode.d.ts +15 -0
  174. package/dist/cjs/primitives/isValidReactNode.d.ts.map +1 -0
  175. package/dist/cjs/primitives/isValidReactNode.js +27 -0
  176. package/dist/cjs/primitives/isValidReactNode.js.map +1 -0
  177. package/dist/cjs/server/T.d.ts +15 -0
  178. package/dist/cjs/server/T.d.ts.map +1 -0
  179. package/dist/cjs/server/T.js +98 -0
  180. package/dist/cjs/server/T.js.map +1 -0
  181. package/dist/cjs/server/createTComponent.d.ts +12 -0
  182. package/dist/cjs/server/createTComponent.d.ts.map +1 -0
  183. package/dist/cjs/server/createTComponent.js +31 -0
  184. package/dist/cjs/server/createTComponent.js.map +1 -0
  185. package/dist/cjs/server/helpers/Resolver.d.ts +5 -0
  186. package/dist/cjs/server/helpers/Resolver.d.ts.map +1 -0
  187. package/dist/cjs/server/helpers/Resolver.js +25 -0
  188. package/dist/cjs/server/helpers/Resolver.js.map +1 -0
  189. package/dist/cjs/server/helpers/addGTIdentifier.d.ts +11 -0
  190. package/dist/cjs/server/helpers/addGTIdentifier.d.ts.map +1 -0
  191. package/dist/cjs/server/helpers/addGTIdentifier.js +148 -0
  192. package/dist/cjs/server/helpers/addGTIdentifier.js.map +1 -0
  193. package/dist/cjs/server/helpers/writeChildrenAsObjects.d.ts +11 -0
  194. package/dist/cjs/server/helpers/writeChildrenAsObjects.d.ts.map +1 -0
  195. package/dist/cjs/server/helpers/writeChildrenAsObjects.js +116 -0
  196. package/dist/cjs/server/helpers/writeChildrenAsObjects.js.map +1 -0
  197. package/dist/cjs/server/plural/InnerPlural.d.ts +24 -0
  198. package/dist/cjs/server/plural/InnerPlural.d.ts.map +1 -0
  199. package/dist/cjs/server/plural/InnerPlural.js +35 -0
  200. package/dist/cjs/server/plural/InnerPlural.js.map +1 -0
  201. package/dist/cjs/server/plural/createPluralComponent.d.ts +12 -0
  202. package/dist/cjs/server/plural/createPluralComponent.d.ts.map +1 -0
  203. package/dist/cjs/server/plural/createPluralComponent.js +30 -0
  204. package/dist/cjs/server/plural/createPluralComponent.js.map +1 -0
  205. package/dist/cjs/server/provider/GTProvider.d.ts +13 -0
  206. package/dist/cjs/server/provider/GTProvider.d.ts.map +1 -0
  207. package/dist/cjs/server/provider/GTProvider.js +61 -0
  208. package/dist/cjs/server/provider/GTProvider.js.map +1 -0
  209. package/dist/cjs/server/provider/createGTProviderComponent.d.ts +10 -0
  210. package/dist/cjs/server/provider/createGTProviderComponent.d.ts.map +1 -0
  211. package/dist/cjs/server/provider/createGTProviderComponent.js +30 -0
  212. package/dist/cjs/server/provider/createGTProviderComponent.js.map +1 -0
  213. package/dist/cjs/server/renderChildren.d.ts +24 -0
  214. package/dist/cjs/server/renderChildren.d.ts.map +1 -0
  215. package/dist/cjs/server/renderChildren.js +177 -0
  216. package/dist/cjs/server/renderChildren.js.map +1 -0
  217. package/dist/cjs/server/value/InnerValue.d.ts +12 -0
  218. package/dist/cjs/server/value/InnerValue.d.ts.map +1 -0
  219. package/dist/cjs/server/value/InnerValue.js +30 -0
  220. package/dist/cjs/server/value/InnerValue.js.map +1 -0
  221. package/dist/cjs/server/value/createValueComponent.d.ts +13 -0
  222. package/dist/cjs/server/value/createValueComponent.d.ts.map +1 -0
  223. package/dist/cjs/server/value/createValueComponent.js +29 -0
  224. package/dist/cjs/server/value/createValueComponent.js.map +1 -0
  225. package/dist/cjs/server/value/renderVariable.d.ts +9 -0
  226. package/dist/cjs/server/value/renderVariable.d.ts.map +1 -0
  227. package/dist/cjs/server/value/renderVariable.js +66 -0
  228. package/dist/cjs/server/value/renderVariable.js.map +1 -0
  229. package/dist/cjs/server/variables/Currency/Currency.d.ts +15 -0
  230. package/dist/cjs/server/variables/Currency/Currency.d.ts.map +1 -0
  231. package/dist/cjs/server/variables/Currency/Currency.js +29 -0
  232. package/dist/cjs/server/variables/Currency/Currency.js.map +1 -0
  233. package/dist/cjs/server/variables/Currency/createCurrencyComponent.d.ts +8 -0
  234. package/dist/cjs/server/variables/Currency/createCurrencyComponent.d.ts.map +1 -0
  235. package/dist/cjs/server/variables/Currency/createCurrencyComponent.js +29 -0
  236. package/dist/cjs/server/variables/Currency/createCurrencyComponent.js.map +1 -0
  237. package/dist/cjs/server/variables/DateTime/DateTime.d.ts +13 -0
  238. package/dist/cjs/server/variables/DateTime/DateTime.d.ts.map +1 -0
  239. package/dist/cjs/server/variables/DateTime/DateTime.js +45 -0
  240. package/dist/cjs/server/variables/DateTime/DateTime.js.map +1 -0
  241. package/dist/cjs/server/variables/DateTime/createDateTimeComponent.d.ts +8 -0
  242. package/dist/cjs/server/variables/DateTime/createDateTimeComponent.d.ts.map +1 -0
  243. package/dist/cjs/server/variables/DateTime/createDateTimeComponent.js +29 -0
  244. package/dist/cjs/server/variables/DateTime/createDateTimeComponent.js.map +1 -0
  245. package/dist/cjs/server/variables/Num/Num.d.ts +14 -0
  246. package/dist/cjs/server/variables/Num/Num.d.ts.map +1 -0
  247. package/dist/cjs/server/variables/Num/Num.js +27 -0
  248. package/dist/cjs/server/variables/Num/Num.js.map +1 -0
  249. package/dist/cjs/server/variables/Num/createNumComponent.d.ts +8 -0
  250. package/dist/cjs/server/variables/Num/createNumComponent.d.ts.map +1 -0
  251. package/dist/cjs/server/variables/Num/createNumComponent.js +30 -0
  252. package/dist/cjs/server/variables/Num/createNumComponent.js.map +1 -0
  253. package/dist/cjs/server/variables/Var/Var.d.ts +12 -0
  254. package/dist/cjs/server/variables/Var/Var.d.ts.map +1 -0
  255. package/dist/cjs/server/variables/Var/Var.js +24 -0
  256. package/dist/cjs/server/variables/Var/Var.js.map +1 -0
  257. package/dist/cjs/server/variables/Var/createVarComponent.d.ts +7 -0
  258. package/dist/cjs/server/variables/Var/createVarComponent.d.ts.map +1 -0
  259. package/dist/cjs/server/variables/Var/createVarComponent.js +29 -0
  260. package/dist/cjs/server/variables/Var/createVarComponent.js.map +1 -0
  261. package/dist/cjs/server.d.ts +45 -0
  262. package/dist/cjs/server.d.ts.map +1 -0
  263. package/dist/cjs/server.js +149 -0
  264. package/dist/cjs/server.js.map +1 -0
  265. package/dist/cjs/types/CreateGTProps.d.ts +23 -0
  266. package/dist/cjs/types/CreateGTProps.d.ts.map +1 -0
  267. package/dist/cjs/types/CreateGTProps.js +3 -0
  268. package/dist/cjs/types/CreateGTProps.js.map +1 -0
  269. package/dist/cjs/types/GeneralTranslationInterface.d.ts +118 -0
  270. package/dist/cjs/types/GeneralTranslationInterface.d.ts.map +1 -0
  271. package/dist/cjs/types/GeneralTranslationInterface.js +3 -0
  272. package/dist/cjs/types/GeneralTranslationInterface.js.map +1 -0
  273. package/dist/cjs/types/Variables.d.ts +83 -0
  274. package/dist/cjs/types/Variables.d.ts.map +1 -0
  275. package/dist/cjs/types/Variables.js +3 -0
  276. package/dist/cjs/types/Variables.js.map +1 -0
  277. package/dist/cjs/types/defaultGTProps.d.ts +20 -0
  278. package/dist/cjs/types/defaultGTProps.d.ts.map +1 -0
  279. package/dist/cjs/types/defaultGTProps.js +31 -0
  280. package/dist/cjs/types/defaultGTProps.js.map +1 -0
  281. package/dist/mjs/client/client-only/helpers/renderDictionary.d.ts.map +1 -1
  282. package/dist/mjs/client/client-only/helpers/renderDictionary.js +59 -3
  283. package/dist/mjs/client/client-only/helpers/renderDictionary.js.map +1 -1
  284. package/dist/mjs/client/hooks/useGT.d.ts.map +1 -1
  285. package/dist/mjs/client/hooks/useGT.js +4 -11
  286. package/dist/mjs/client/hooks/useGT.js.map +1 -1
  287. package/dist/mjs/server/renderChildren.d.ts +1 -1
  288. package/dist/mjs/server/renderChildren.d.ts.map +1 -1
  289. package/package.json +1 -1
@@ -0,0 +1,135 @@
1
+ import GT from "generaltranslation";
2
+ type I18NConfigurationParams = {
3
+ apiKey: string;
4
+ projectID: string;
5
+ cacheURL: string;
6
+ baseURL: string;
7
+ remoteSource: boolean;
8
+ automaticTranslation: boolean;
9
+ getLocale: () => string;
10
+ defaultLocale: string;
11
+ approvedLocales?: string[];
12
+ renderPrevious: boolean;
13
+ renderMethod: string;
14
+ renderTimeout: number | null;
15
+ dictionary: Record<string, any>;
16
+ dictionaryName: string;
17
+ translations?: Record<string, () => Promise<Record<string, any>>>;
18
+ maxConcurrentRequests: number;
19
+ batchInterval: number;
20
+ getMetadata: () => Record<string, any>;
21
+ [key: string]: any;
22
+ };
23
+ export default class I18NConfiguration {
24
+ projectID: string;
25
+ remoteSource: boolean;
26
+ automaticTranslation: boolean;
27
+ getLocale: () => string;
28
+ defaultLocale: string;
29
+ approvedLocales: string[] | undefined;
30
+ renderPrevious: boolean;
31
+ renderMethod: string;
32
+ renderTimeout: number | null;
33
+ dictionaryName: string;
34
+ dictionary: Record<string, any>;
35
+ translations?: Record<string, () => Promise<Record<string, any>>>;
36
+ private _localDictionaryManager;
37
+ private _remoteDictionaryManager;
38
+ gt: GT;
39
+ getMetadata: () => Record<string, any>;
40
+ metadata: Record<string, any>;
41
+ maxConcurrentRequests: number;
42
+ batchInterval: number;
43
+ private _queue;
44
+ private _activeRequests;
45
+ private _translationCache;
46
+ constructor({ apiKey, projectID, baseURL, cacheURL, remoteSource, automaticTranslation, getLocale, defaultLocale, approvedLocales, renderPrevious, renderMethod, renderTimeout, dictionary, dictionaryName, translations, maxConcurrentRequests, batchInterval, getMetadata, ...metadata }: I18NConfigurationParams);
47
+ /**
48
+ * Gets the application's default locale
49
+ * @returns {string} A BCP-47 language tag
50
+ */
51
+ getDefaultLocale(): string;
52
+ /**
53
+ * Gets the list of approved locales for this app
54
+ * @returns {string[] | undefined} A list of BCP-47 language tags, or undefined if none were provided
55
+ */
56
+ getApprovedLocales(): string[] | undefined;
57
+ /**
58
+ * Get dictionary
59
+ * @returns The entire dictionary, or an empty object if none found
60
+ */
61
+ getDictionary(): Record<string, any>;
62
+ /**
63
+ * Get an entry from the dictionary
64
+ * @returns An entry from the dictionary determined by id
65
+ */
66
+ getDictionaryEntry(id: string): any;
67
+ /**
68
+ * Get an entry from the dictionary
69
+ * @returns An entry from the dictionary determined by id
70
+ */
71
+ automaticTranslationEnabled(): boolean;
72
+ /**
73
+ * Get the rendering instructions
74
+ * @returns An object containing the current method and timeout.
75
+ * As of 7/31/24: method is "skeleton", "replace", "hang", "subtle".
76
+ * Timeout is a number or null, representing no assigned timeout.
77
+ * renderPrevious determines whether a non-matching previous entry should be rendered while the new translation loads.
78
+ */
79
+ getRenderSettings(): {
80
+ method: string;
81
+ timeout: number | null;
82
+ renderPrevious: boolean;
83
+ };
84
+ /**
85
+ * Check if translation is required based on the user's locale
86
+ * @param locale - The user's locale
87
+ * @returns True if translation is required, otherwise false
88
+ */
89
+ translationRequired(locale: string): boolean;
90
+ /**
91
+ * Get the translation dictionaries for this user's locale, if they exist
92
+ * @param locale - The language set by the user
93
+ * @param dictionaryName - User-defined dictionary name, for distinguishing between multiple translation dictionaries for a single language.
94
+ * @returns A promise that resolves to the translations.
95
+ */
96
+ getTranslations(locale: string, dictionaryName?: string): Promise<{
97
+ local?: any;
98
+ remote?: any;
99
+ }>;
100
+ /**
101
+ * Get the entry in the translation dictionary for the user's locale, if it exists
102
+ * @param locale - The user's locale
103
+ * @param key - Key in the dictionary. For strings, the original language version of that string. For React children, a hash.
104
+ * @param dictionaryName - User-defined dictionary name, for distinguishing between multiple translation dictionaries for a single language.
105
+ * @param translations - Optional translations to search.
106
+ * @returns A promise that resolves to the a value in the translations.
107
+ */
108
+ getTranslation(locale: string, key: string, id?: string, dictionaryName?: string, translations?: {
109
+ local?: any;
110
+ remote?: any;
111
+ }): Promise<any | null>;
112
+ /**
113
+ * Translate content into language
114
+ * @param params - Parameters for translation
115
+ * @returns Translated string
116
+ */
117
+ intl(params: any): Promise<string>;
118
+ /**
119
+ * Translate the children components
120
+ * @param params - Parameters for translation
121
+ * @returns A promise that resolves when translation is complete
122
+ */
123
+ translateChildren(params: any): Promise<any>;
124
+ /**
125
+ * Send a batch request for React translation
126
+ * @param batch - The batch of requests to be sent
127
+ */
128
+ private _sendBatchRequest;
129
+ /**
130
+ * Start the batching process with a set interval
131
+ */
132
+ private _startBatching;
133
+ }
134
+ export {};
135
+ //# sourceMappingURL=I18NConfiguration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"I18NConfiguration.d.ts","sourceRoot":"","sources":["../../../src/config/I18NConfiguration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,343 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __rest = (this && this.__rest) || function (s, e) {
35
+ var t = {};
36
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
37
+ t[p] = s[p];
38
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
39
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
41
+ t[p[i]] = s[p[i]];
42
+ }
43
+ return t;
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ const generaltranslation_1 = __importStar(require("generaltranslation"));
50
+ const RemoteDictionaryManager_1 = __importDefault(require("./RemoteDictionaryManager"));
51
+ const getDictionaryEntry_1 = __importDefault(require("../dictionary/getDictionaryEntry"));
52
+ const LocalDictionaryManager_1 = __importDefault(require("./LocalDictionaryManager"));
53
+ const defaultGTProps_1 = __importDefault(require("../types/defaultGTProps"));
54
+ class I18NConfiguration {
55
+ constructor(_a) {
56
+ var {
57
+ // Cloud integration
58
+ apiKey, projectID, baseURL, cacheURL, remoteSource, automaticTranslation,
59
+ // Locale info
60
+ getLocale, defaultLocale, approvedLocales,
61
+ // Render method
62
+ renderPrevious, renderMethod, renderTimeout,
63
+ // Dictionaries
64
+ dictionary, dictionaryName, translations,
65
+ // Batching config
66
+ maxConcurrentRequests, batchInterval,
67
+ // Other metadata
68
+ getMetadata } = _a, metadata = __rest(_a, ["apiKey", "projectID", "baseURL", "cacheURL", "remoteSource", "automaticTranslation", "getLocale", "defaultLocale", "approvedLocales", "renderPrevious", "renderMethod", "renderTimeout", "dictionary", "dictionaryName", "translations", "maxConcurrentRequests", "batchInterval", "getMetadata"]);
69
+ // Validate required parameters
70
+ if (!apiKey && (automaticTranslation && baseURL === defaultGTProps_1.default.baseURL)) {
71
+ throw new Error("gt-react Error: Automatic translation requires an API key! Get an API key at www.generaltranslation.com.");
72
+ }
73
+ if (!projectID && ((automaticTranslation && baseURL === defaultGTProps_1.default.baseURL) || (remoteSource && cacheURL === defaultGTProps_1.default.cacheURL))) {
74
+ throw new Error("gt-react Error: General Translation cloud services require a project ID! Find yours at www.generaltranslation.com/dashboard.");
75
+ }
76
+ // Cloud integration
77
+ this.projectID = projectID;
78
+ this.remoteSource = remoteSource;
79
+ this.automaticTranslation = automaticTranslation;
80
+ // Locales
81
+ this.getLocale = getLocale;
82
+ this.defaultLocale = defaultLocale;
83
+ this.approvedLocales = approvedLocales;
84
+ // Render method
85
+ this.renderPrevious = renderPrevious;
86
+ this.renderMethod = renderMethod;
87
+ this.renderTimeout = renderTimeout;
88
+ // Dictionaries
89
+ this.dictionary = dictionary;
90
+ this.dictionaryName = dictionaryName;
91
+ this.translations = translations;
92
+ // GT
93
+ this.gt = new generaltranslation_1.default({ projectID, apiKey, defaultLanguage: defaultLocale, baseURL });
94
+ // Other metadata
95
+ this.getMetadata = getMetadata;
96
+ this.metadata = Object.assign(Object.assign({ projectID: this.projectID, defaultLanguage: this.defaultLocale, dictionaryName }, (this.renderTimeout && { timeout: this.renderTimeout - batchInterval })), metadata);
97
+ // Dictionary managers
98
+ if (this.translations) {
99
+ this._localDictionaryManager = new LocalDictionaryManager_1.default({
100
+ translations: this.translations
101
+ });
102
+ }
103
+ if (this.remoteSource) {
104
+ this._remoteDictionaryManager = RemoteDictionaryManager_1.default;
105
+ this._remoteDictionaryManager.setConfig({
106
+ cacheURL, projectID
107
+ });
108
+ }
109
+ // Batching
110
+ this.maxConcurrentRequests = maxConcurrentRequests;
111
+ this.batchInterval = batchInterval;
112
+ this._queue = [];
113
+ this._activeRequests = 0;
114
+ this._translationCache = new Map(); // cache for ongoing promises, so things aren't translated twice
115
+ this._startBatching();
116
+ }
117
+ /**
118
+ * Gets the application's default locale
119
+ * @returns {string} A BCP-47 language tag
120
+ */
121
+ getDefaultLocale() {
122
+ return this.defaultLocale;
123
+ }
124
+ /**
125
+ * Gets the list of approved locales for this app
126
+ * @returns {string[] | undefined} A list of BCP-47 language tags, or undefined if none were provided
127
+ */
128
+ getApprovedLocales() {
129
+ return this.approvedLocales;
130
+ }
131
+ /**
132
+ * Get dictionary
133
+ * @returns The entire dictionary, or an empty object if none found
134
+ */
135
+ getDictionary() {
136
+ return this.dictionary;
137
+ }
138
+ /**
139
+ * Get an entry from the dictionary
140
+ * @returns An entry from the dictionary determined by id
141
+ */
142
+ getDictionaryEntry(id) {
143
+ return (0, getDictionaryEntry_1.default)(id, this.dictionary);
144
+ }
145
+ /**
146
+ * Get an entry from the dictionary
147
+ * @returns An entry from the dictionary determined by id
148
+ */
149
+ automaticTranslationEnabled() {
150
+ return this.automaticTranslation;
151
+ }
152
+ /**
153
+ * Get the rendering instructions
154
+ * @returns An object containing the current method and timeout.
155
+ * As of 7/31/24: method is "skeleton", "replace", "hang", "subtle".
156
+ * Timeout is a number or null, representing no assigned timeout.
157
+ * renderPrevious determines whether a non-matching previous entry should be rendered while the new translation loads.
158
+ */
159
+ getRenderSettings() {
160
+ return {
161
+ method: this.renderMethod,
162
+ timeout: this.renderTimeout,
163
+ renderPrevious: this.renderPrevious
164
+ };
165
+ }
166
+ /**
167
+ * Check if translation is required based on the user's locale
168
+ * @param locale - The user's locale
169
+ * @returns True if translation is required, otherwise false
170
+ */
171
+ translationRequired(locale) {
172
+ if (!locale)
173
+ return false;
174
+ if (this.approvedLocales && !this.approvedLocales.some(approvedLocale => (0, generaltranslation_1.isSameLanguage)(locale, approvedLocale)))
175
+ return false;
176
+ if ((0, generaltranslation_1.isSameLanguage)(locale, this.defaultLocale))
177
+ return false;
178
+ return true;
179
+ }
180
+ /**
181
+ * Get the translation dictionaries for this user's locale, if they exist
182
+ * @param locale - The language set by the user
183
+ * @param dictionaryName - User-defined dictionary name, for distinguishing between multiple translation dictionaries for a single language.
184
+ * @returns A promise that resolves to the translations.
185
+ */
186
+ getTranslations(locale_1) {
187
+ return __awaiter(this, arguments, void 0, function* (locale, dictionaryName = this.dictionaryName) {
188
+ let translations = {};
189
+ const localPromise = this._localDictionaryManager ? this._localDictionaryManager.getDictionary(locale) : Promise.resolve(undefined);
190
+ const remotePromise = this._remoteDictionaryManager ? this._remoteDictionaryManager.getDictionary(locale, dictionaryName) : Promise.resolve(undefined);
191
+ const [local, remote] = yield Promise.all([localPromise, remotePromise]);
192
+ if (local !== undefined) {
193
+ translations.local = local;
194
+ }
195
+ if (remote !== undefined) {
196
+ translations.remote = remote;
197
+ }
198
+ return translations;
199
+ });
200
+ }
201
+ /**
202
+ * Get the entry in the translation dictionary for the user's locale, if it exists
203
+ * @param locale - The user's locale
204
+ * @param key - Key in the dictionary. For strings, the original language version of that string. For React children, a hash.
205
+ * @param dictionaryName - User-defined dictionary name, for distinguishing between multiple translation dictionaries for a single language.
206
+ * @param translations - Optional translations to search.
207
+ * @returns A promise that resolves to the a value in the translations.
208
+ */
209
+ getTranslation(locale_1, key_1) {
210
+ return __awaiter(this, arguments, void 0, function* (locale, key, id = key, dictionaryName = this.dictionaryName, translations) {
211
+ translations = translations || (yield this.getTranslations(locale, dictionaryName));
212
+ if (translations.local) {
213
+ const translation = (0, getDictionaryEntry_1.default)(id, translations.local);
214
+ if (translation)
215
+ return translation;
216
+ }
217
+ if (translations.remote) {
218
+ if (translations.remote[id] && translations.remote[id].k === key)
219
+ return translations.remote[id].t;
220
+ }
221
+ return null;
222
+ });
223
+ }
224
+ /**
225
+ * Translate content into language
226
+ * @param params - Parameters for translation
227
+ * @returns Translated string
228
+ */
229
+ intl(params) {
230
+ return __awaiter(this, void 0, void 0, function* () {
231
+ var _a;
232
+ const cacheKey = JSON.stringify(params);
233
+ if (this._translationCache.has(cacheKey)) {
234
+ return this._translationCache.get(cacheKey);
235
+ }
236
+ const { content, targetLanguage, options } = params;
237
+ const dictionaryName = ((_a = params.options) === null || _a === void 0 ? void 0 : _a.dictionaryName) || this.dictionaryName;
238
+ const translationPromise = new Promise((resolve, reject) => {
239
+ this._queue.push({
240
+ type: "intl",
241
+ data: {
242
+ content,
243
+ targetLanguage,
244
+ projectID: this.projectID,
245
+ metadata: Object.assign(Object.assign(Object.assign({}, this.metadata), this.getMetadata()), options)
246
+ },
247
+ cache: (this._remoteDictionaryManager) ? this._remoteDictionaryManager.getTranslationRequested(targetLanguage, dictionaryName) : false,
248
+ resolve,
249
+ reject
250
+ });
251
+ });
252
+ this._translationCache.set(cacheKey, translationPromise);
253
+ return translationPromise.finally(() => this._translationCache.delete(cacheKey));
254
+ });
255
+ }
256
+ /**
257
+ * Translate the children components
258
+ * @param params - Parameters for translation
259
+ * @returns A promise that resolves when translation is complete
260
+ */
261
+ translateChildren(params) {
262
+ return __awaiter(this, void 0, void 0, function* () {
263
+ var _a;
264
+ const cacheKey = JSON.stringify(params);
265
+ if (this._translationCache.has(cacheKey)) {
266
+ return this._translationCache.get(cacheKey);
267
+ }
268
+ const { children, targetLanguage, metadata } = params;
269
+ const dictionaryName = ((_a = params.options) === null || _a === void 0 ? void 0 : _a.dictionaryName) || this.dictionaryName;
270
+ const translationPromise = new Promise((resolve, reject) => {
271
+ this._queue.push({
272
+ type: "react",
273
+ data: {
274
+ children,
275
+ targetLanguage,
276
+ metadata: Object.assign(Object.assign(Object.assign({}, this.metadata), this.getMetadata()), metadata)
277
+ },
278
+ cache: (this._remoteDictionaryManager) ? this._remoteDictionaryManager.getTranslationRequested(targetLanguage, dictionaryName) : false,
279
+ resolve,
280
+ reject
281
+ });
282
+ });
283
+ this._translationCache.set(cacheKey, translationPromise);
284
+ return translationPromise.finally(() => this._translationCache.delete(cacheKey));
285
+ });
286
+ }
287
+ /**
288
+ * Send a batch request for React translation
289
+ * @param batch - The batch of requests to be sent
290
+ */
291
+ _sendBatchRequest(batch) {
292
+ return __awaiter(this, void 0, void 0, function* () {
293
+ this._activeRequests++;
294
+ try {
295
+ const bundlePromise = this.gt.bundleTranslation(batch);
296
+ batch.forEach((item) => {
297
+ if (this._remoteDictionaryManager && item.cache)
298
+ this._remoteDictionaryManager.setTranslationRequested(item.data.targetLanguage, item.data.metadata.dictionaryName);
299
+ });
300
+ const results = yield bundlePromise;
301
+ batch.forEach((item, index) => {
302
+ const result = results[index];
303
+ if (!result || result.error)
304
+ return resolveBatchError(item);
305
+ if (result && typeof result === 'object') {
306
+ item.resolve(result.translation);
307
+ if (result.translation && result.language && result.reference && this._remoteDictionaryManager) {
308
+ this._remoteDictionaryManager.setDictionary(result.language, result.reference.dictionaryName, result.reference.key, result.reference.id, result.translation);
309
+ }
310
+ }
311
+ });
312
+ }
313
+ catch (error) {
314
+ console.error(error);
315
+ batch.forEach(resolveBatchError);
316
+ }
317
+ finally {
318
+ this._activeRequests--;
319
+ }
320
+ });
321
+ }
322
+ /**
323
+ * Start the batching process with a set interval
324
+ */
325
+ _startBatching() {
326
+ setInterval(() => {
327
+ if (this._queue.length > 0 && this._activeRequests < this.maxConcurrentRequests) {
328
+ this._sendBatchRequest(this._queue);
329
+ this._queue = [];
330
+ }
331
+ }, this.batchInterval);
332
+ }
333
+ }
334
+ exports.default = I18NConfiguration;
335
+ // Resolve errors in the batch request
336
+ const resolveBatchError = (item) => {
337
+ if (item.type === "react")
338
+ return item.resolve(null);
339
+ if (item.type === "intl")
340
+ return item.resolve(item.data.content);
341
+ return item.resolve("");
342
+ };
343
+ //# sourceMappingURL=I18NConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"I18NConfiguration.js","sourceRoot":"","sources":["../../../src/config/I18NConfiguration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * LocalDictionaryManager is responsible for managing dictionaries loaded from local file paths.
3
+ * @class
4
+ */
5
+ export default class LocalDictionaryManager {
6
+ private translations;
7
+ private localeCache;
8
+ private dictionaryMap;
9
+ private fetchPromises;
10
+ /**
11
+ * Creates an instance of LocalDictionaryManager.
12
+ * @param {Object} params - Parameters object.
13
+ * @param {Record<string, () => Promise<Record<string, any>>>} params.translations - A mapping of locale to a function that imports the corresponding dictionary.
14
+ */
15
+ constructor({ translations }: {
16
+ translations: Record<string, () => Promise<Record<string, any>>>;
17
+ });
18
+ /**
19
+ * Retrieves a dictionary based on locale.
20
+ * @param {string} locale - The locale of the dictionary.
21
+ * @returns {Promise<Record<string, any> | null>} The dictionary data or null if not found.
22
+ */
23
+ getDictionary(locale: string): Promise<Record<string, any> | null>;
24
+ /**
25
+ * Fetches a dictionary from the translations object using the provided function.
26
+ * @param {string} locale - The locale of the dictionary.
27
+ * @returns {Promise<Record<string, any> | null>} The fetched dictionary data or null if not found.
28
+ */
29
+ private _fetchDictionary;
30
+ }
31
+ //# sourceMappingURL=LocalDictionaryManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalDictionaryManager.d.ts","sourceRoot":"","sources":["../../../src/config/LocalDictionaryManager.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACvC,OAAO,CAAC,YAAY,CAAqD;IACzE,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,aAAa,CAAmD;IAExE;;;;OAIG;gBACS,EAAE,YAAY,EAAE,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;KAAE;IAOlG;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IA6CxE;;;;OAIG;YACW,gBAAgB;CAWjC"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const generaltranslation_1 = require("generaltranslation");
13
+ /**
14
+ * LocalDictionaryManager is responsible for managing dictionaries loaded from local file paths.
15
+ * @class
16
+ */
17
+ class LocalDictionaryManager {
18
+ /**
19
+ * Creates an instance of LocalDictionaryManager.
20
+ * @param {Object} params - Parameters object.
21
+ * @param {Record<string, () => Promise<Record<string, any>>>} params.translations - A mapping of locale to a function that imports the corresponding dictionary.
22
+ */
23
+ constructor({ translations }) {
24
+ this.translations = translations;
25
+ this.localeCache = new Map();
26
+ this.dictionaryMap = new Map();
27
+ this.fetchPromises = new Map();
28
+ }
29
+ /**
30
+ * Retrieves a dictionary based on locale.
31
+ * @param {string} locale - The locale of the dictionary.
32
+ * @returns {Promise<Record<string, any> | null>} The dictionary data or null if not found.
33
+ */
34
+ getDictionary(locale) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ // Check if the dictionary is already cached
37
+ if (this.dictionaryMap.has(locale)) {
38
+ return this.dictionaryMap.get(locale) || null;
39
+ }
40
+ // Check if there is an ongoing fetch for this locale
41
+ if (this.fetchPromises.has(locale)) {
42
+ return (yield this.fetchPromises.get(locale)) || null;
43
+ }
44
+ // Resolve the final locale
45
+ let finalLocale = locale;
46
+ if (!this.translations[finalLocale]) {
47
+ finalLocale = this.localeCache.get(locale) || '';
48
+ if (!finalLocale) {
49
+ for (const key of Object.keys(this.translations)) {
50
+ if ((0, generaltranslation_1.isSameLanguage)(key, locale)) {
51
+ finalLocale = key;
52
+ break;
53
+ }
54
+ }
55
+ this.localeCache.set(locale, finalLocale);
56
+ }
57
+ }
58
+ // If no valid finalLocale is found, return null
59
+ if (!finalLocale || !this.translations[finalLocale]) {
60
+ return null;
61
+ }
62
+ // Fetch the dictionary and cache the result
63
+ const fetchPromise = this._fetchDictionary(finalLocale);
64
+ this.fetchPromises.set(locale, fetchPromise);
65
+ const retrievedDictionary = yield fetchPromise;
66
+ this.fetchPromises.delete(locale);
67
+ if (retrievedDictionary) {
68
+ this.dictionaryMap.set(locale, retrievedDictionary);
69
+ }
70
+ return retrievedDictionary;
71
+ });
72
+ }
73
+ /**
74
+ * Fetches a dictionary from the translations object using the provided function.
75
+ * @param {string} locale - The locale of the dictionary.
76
+ * @returns {Promise<Record<string, any> | null>} The fetched dictionary data or null if not found.
77
+ */
78
+ _fetchDictionary(locale) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ try {
81
+ const loadDictionary = this.translations[locale];
82
+ if (!loadDictionary)
83
+ throw new Error(`No translation function for locale: ${locale}`);
84
+ const dictionary = yield loadDictionary();
85
+ return dictionary;
86
+ }
87
+ catch (error) {
88
+ console.error(`Error loading dictionary for locale ${locale}:`, error);
89
+ return null;
90
+ }
91
+ });
92
+ }
93
+ }
94
+ exports.default = LocalDictionaryManager;
95
+ //# sourceMappingURL=LocalDictionaryManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalDictionaryManager.js","sourceRoot":"","sources":["../../../src/config/LocalDictionaryManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAAoD;AAEpD;;;GAGG;AACH,MAAqB,sBAAsB;IAMvC;;;;OAIG;IACH,YAAY,EAAE,YAAY,EAAwE;QAC9F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACG,aAAa,CAAC,MAAc;;YAC9B,4CAA4C;YAC5C,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;YAClD,CAAC;YAED,qDAAqD;YACrD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAA,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAI,IAAI,CAAC;YACxD,CAAC;YAED,2BAA2B;YAC3B,IAAI,WAAW,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC/C,IAAI,IAAA,mCAAc,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;4BAC9B,WAAW,GAAG,GAAG,CAAC;4BAClB,MAAM;wBACV,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC;YAED,gDAAgD;YAChD,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,4CAA4C;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAE7C,MAAM,mBAAmB,GAAG,MAAM,YAAY,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,IAAI,mBAAmB,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,mBAAmB,CAAC;QAC/B,CAAC;KAAA;IAED;;;;OAIG;IACW,gBAAgB,CAAC,MAAc;;YACzC,IAAI,CAAC;gBACD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,cAAc;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAC;gBACtF,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;gBAC1C,OAAO,UAAU,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvE,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;KAAA;CACJ;AApFD,yCAoFC"}