@tolgee/core 4.9.2 → 4.9.3-rc.04b22e6.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 (288) hide show
  1. package/dist/tolgee.cjs.js +1277 -7023
  2. package/dist/tolgee.cjs.js.map +1 -1
  3. package/dist/tolgee.cjs.min.js +1 -1
  4. package/dist/tolgee.cjs.min.js.map +1 -1
  5. package/dist/tolgee.esm.js +1407 -0
  6. package/dist/tolgee.esm.js.map +1 -0
  7. package/dist/tolgee.esm.min.mjs +1 -1
  8. package/dist/tolgee.esm.min.mjs.map +1 -1
  9. package/dist/tolgee.umd.js +1277 -7023
  10. package/dist/tolgee.umd.js.map +1 -1
  11. package/dist/tolgee.umd.min.js +1 -1
  12. package/dist/tolgee.umd.min.js.map +1 -1
  13. package/lib/Controller/Cache/Cache.d.ts +22 -0
  14. package/lib/Controller/Cache/helpers.d.ts +4 -0
  15. package/lib/Controller/Controller.d.ts +110 -0
  16. package/lib/Controller/Events/EventEmitter.d.ts +6 -0
  17. package/lib/Controller/Events/EventEmitterSelective.d.ts +7 -0
  18. package/lib/Controller/Events/Events.d.ts +14 -0
  19. package/lib/Controller/Plugins/Plugins.d.ts +36 -0
  20. package/lib/Controller/State/State.d.ts +39 -0
  21. package/lib/Controller/State/helpers.d.ts +6 -0
  22. package/lib/Controller/State/initObserverOptions.d.ts +13 -0
  23. package/lib/Controller/State/initState.d.ts +47 -0
  24. package/lib/Controller/ValueObserver.d.ts +5 -0
  25. package/lib/FormatSimple/FormatError.d.ts +7 -0
  26. package/lib/FormatSimple/FormatSimple.d.ts +3 -0
  27. package/lib/FormatSimple/formatParser.d.ts +1 -0
  28. package/lib/FormatSimple/formatter.d.ts +2 -0
  29. package/lib/Tolgee.d.ts +2 -68
  30. package/lib/TranslateParams.d.ts +2 -0
  31. package/lib/{Constants/Global.d.ts → constants.d.ts} +1 -3
  32. package/lib/helpers.d.ts +3 -0
  33. package/lib/index.d.ts +4 -8
  34. package/lib/types.d.ts +244 -84
  35. package/package.json +21 -29
  36. package/src/Controller/Cache/Cache.ts +296 -0
  37. package/src/Controller/Cache/helpers.ts +37 -0
  38. package/src/Controller/Controller.ts +310 -0
  39. package/src/Controller/Events/EventEmitter.ts +30 -0
  40. package/src/Controller/Events/EventEmitterSelective.test.ts +125 -0
  41. package/src/Controller/Events/EventEmitterSelective.ts +188 -0
  42. package/src/Controller/Events/Events.ts +66 -0
  43. package/src/Controller/Plugins/Plugins.ts +315 -0
  44. package/src/Controller/State/State.ts +175 -0
  45. package/src/Controller/State/helpers.ts +41 -0
  46. package/src/Controller/State/initObserverOptions.ts +38 -0
  47. package/src/Controller/State/initState.ts +81 -0
  48. package/src/Controller/ValueObserver.ts +26 -0
  49. package/src/FormatSimple/FormatError.ts +26 -0
  50. package/src/FormatSimple/FormatSimple.ts +13 -0
  51. package/src/FormatSimple/formatParser.ts +133 -0
  52. package/src/FormatSimple/formatter.test.ts +190 -0
  53. package/src/FormatSimple/formatter.ts +19 -0
  54. package/src/Tolgee.ts +79 -330
  55. package/src/TranslateParams.test.ts +41 -0
  56. package/src/TranslateParams.ts +51 -0
  57. package/src/__test/backend.test.ts +48 -0
  58. package/src/__test/cache.test.ts +148 -0
  59. package/src/__test/client.test.ts +48 -0
  60. package/src/__test/events.test.ts +33 -0
  61. package/src/__test/format.simple.test.ts +26 -0
  62. package/src/__test/initialization.test.ts +85 -0
  63. package/src/__test/jest-setup.ts +2 -0
  64. package/src/__test/languageDetection.test.ts +129 -0
  65. package/src/__test/languageStorage.test.ts +145 -0
  66. package/src/__test/languages.test.ts +112 -0
  67. package/src/__test/loading.test.ts +39 -0
  68. package/src/__test/namespaces.test.ts +99 -0
  69. package/src/__test/namespacesFallback.test.ts +74 -0
  70. package/src/__test/plugins.test.ts +136 -0
  71. package/src/__test/testTools.ts +7 -0
  72. package/src/{Constants/Global.ts → constants.ts} +1 -6
  73. package/src/helpers.ts +17 -0
  74. package/src/index.ts +9 -8
  75. package/src/types.ts +338 -90
  76. package/README.md +0 -45
  77. package/dist/Constants/Global.d.ts +0 -6
  78. package/dist/Constants/ModifierKey.d.ts +0 -6
  79. package/dist/Errors/ApiHttpError.d.ts +0 -5
  80. package/dist/Observer.d.ts +0 -14
  81. package/dist/Observer.test.d.ts +0 -2
  82. package/dist/Properties.d.ts +0 -17
  83. package/dist/Properties.test.d.ts +0 -1
  84. package/dist/Tolgee.d.ts +0 -68
  85. package/dist/Tolgee.test.d.ts +0 -1
  86. package/dist/TolgeeConfig.d.ts +0 -69
  87. package/dist/TolgeeConfig.test.d.ts +0 -1
  88. package/dist/__integration/FormatterIcu.test.d.ts +0 -1
  89. package/dist/__integration/FormatterMissing.d.ts +0 -1
  90. package/dist/__integration/Tolgee.test.d.ts +0 -1
  91. package/dist/__integration/TolgeeInvisible.test.d.ts +0 -1
  92. package/dist/__integration/mockTranslations.d.ts +0 -7
  93. package/dist/__integration/testConfig.d.ts +0 -9
  94. package/dist/__testFixtures/classMock.d.ts +0 -3
  95. package/dist/__testFixtures/createElement.d.ts +0 -2
  96. package/dist/__testFixtures/createTestDom.d.ts +0 -9
  97. package/dist/__testFixtures/mocked.d.ts +0 -20
  98. package/dist/__testFixtures/setupAfterEnv.d.ts +0 -8
  99. package/dist/helpers/NodeHelper.d.ts +0 -14
  100. package/dist/helpers/TextHelper.d.ts +0 -5
  101. package/dist/helpers/TextHelper.test.d.ts +0 -1
  102. package/dist/helpers/commonTypes.d.ts +0 -2
  103. package/dist/helpers/encoderPolyfill.d.ts +0 -8
  104. package/dist/helpers/secret.d.ts +0 -6
  105. package/dist/helpers/secret.test.d.ts +0 -1
  106. package/dist/helpers/sleep.d.ts +0 -1
  107. package/dist/highlighter/HighlightFunctionsInitializer.d.ts +0 -10
  108. package/dist/highlighter/HighlightFunctionsInitializer.test.d.ts +0 -1
  109. package/dist/highlighter/MouseEventHandler.d.ts +0 -29
  110. package/dist/highlighter/MouseEventHandler.test.d.ts +0 -1
  111. package/dist/highlighter/TranslationHighlighter.d.ts +0 -14
  112. package/dist/highlighter/TranslationHighlighter.test.d.ts +0 -1
  113. package/dist/index.d.ts +0 -10
  114. package/dist/internal.d.ts +0 -2
  115. package/dist/modules/IcuFormatter.d.ts +0 -2
  116. package/dist/modules/IcuFormatter.test.d.ts +0 -1
  117. package/dist/modules/index.d.ts +0 -1
  118. package/dist/services/ApiHttpService.d.ts +0 -15
  119. package/dist/services/CoreService.d.ts +0 -18
  120. package/dist/services/CoreService.test.d.ts +0 -1
  121. package/dist/services/DependencyService.d.ts +0 -39
  122. package/dist/services/DependencyService.test.d.ts +0 -1
  123. package/dist/services/ElementRegistrar.d.ts +0 -19
  124. package/dist/services/ElementRegistrar.test.d.ts +0 -1
  125. package/dist/services/EventEmitter.d.ts +0 -13
  126. package/dist/services/EventService.d.ts +0 -9
  127. package/dist/services/ModuleService.d.ts +0 -5
  128. package/dist/services/ScreenshotService.d.ts +0 -15
  129. package/dist/services/Subscription.d.ts +0 -5
  130. package/dist/services/TextService.d.ts +0 -14
  131. package/dist/services/TextService.test.d.ts +0 -1
  132. package/dist/services/TranslationService.d.ts +0 -75
  133. package/dist/services/TranslationService.test.d.ts +0 -1
  134. package/dist/services/__mocks__/CoreService.d.ts +0 -2
  135. package/dist/tolgee.esm.mjs +0 -7150
  136. package/dist/tolgee.esm.mjs.map +0 -1
  137. package/dist/toolsManager/Messages.d.ts +0 -8
  138. package/dist/toolsManager/Messages.test.d.ts +0 -1
  139. package/dist/toolsManager/PluginManager.d.ts +0 -21
  140. package/dist/toolsManager/PluginManager.test.d.ts +0 -1
  141. package/dist/types/DTOs.d.ts +0 -20
  142. package/dist/types/apiSchema.generated.d.ts +0 -6185
  143. package/dist/types.d.ts +0 -123
  144. package/dist/wrappers/AbstractWrapper.d.ts +0 -8
  145. package/dist/wrappers/NodeHandler.d.ts +0 -18
  146. package/dist/wrappers/WrappedHandler.d.ts +0 -8
  147. package/dist/wrappers/invisible/AttributeHandler.d.ts +0 -8
  148. package/dist/wrappers/invisible/Coder.d.ts +0 -7
  149. package/dist/wrappers/invisible/ContentHandler.d.ts +0 -6
  150. package/dist/wrappers/invisible/CoreHandler.d.ts +0 -10
  151. package/dist/wrappers/invisible/InvisibleWrapper.d.ts +0 -18
  152. package/dist/wrappers/invisible/ValueMemory.d.ts +0 -5
  153. package/dist/wrappers/invisible/ValueMemory.test.d.ts +0 -1
  154. package/dist/wrappers/text/AttributeHandler.d.ts +0 -8
  155. package/dist/wrappers/text/AttributeHandler.test.d.ts +0 -1
  156. package/dist/wrappers/text/Coder.d.ts +0 -15
  157. package/dist/wrappers/text/Coder.test.d.ts +0 -1
  158. package/dist/wrappers/text/ContentHandler.d.ts +0 -8
  159. package/dist/wrappers/text/ContentHandler.test.d.ts +0 -1
  160. package/dist/wrappers/text/CoreHandler.d.ts +0 -17
  161. package/dist/wrappers/text/CoreHandler.test.d.ts +0 -1
  162. package/dist/wrappers/text/TextWrapper.d.ts +0 -20
  163. package/index.js +0 -7
  164. package/lib/Constants/ModifierKey.d.ts +0 -6
  165. package/lib/Errors/ApiHttpError.d.ts +0 -5
  166. package/lib/Observer.d.ts +0 -14
  167. package/lib/Properties.d.ts +0 -17
  168. package/lib/TolgeeConfig.d.ts +0 -69
  169. package/lib/helpers/NodeHelper.d.ts +0 -14
  170. package/lib/helpers/TextHelper.d.ts +0 -5
  171. package/lib/helpers/commonTypes.d.ts +0 -2
  172. package/lib/helpers/encoderPolyfill.d.ts +0 -8
  173. package/lib/helpers/secret.d.ts +0 -6
  174. package/lib/helpers/sleep.d.ts +0 -1
  175. package/lib/highlighter/HighlightFunctionsInitializer.d.ts +0 -10
  176. package/lib/highlighter/MouseEventHandler.d.ts +0 -29
  177. package/lib/highlighter/TranslationHighlighter.d.ts +0 -14
  178. package/lib/modules/IcuFormatter.d.ts +0 -2
  179. package/lib/modules/index.d.ts +0 -1
  180. package/lib/services/ApiHttpService.d.ts +0 -15
  181. package/lib/services/CoreService.d.ts +0 -18
  182. package/lib/services/DependencyService.d.ts +0 -39
  183. package/lib/services/ElementRegistrar.d.ts +0 -19
  184. package/lib/services/EventEmitter.d.ts +0 -13
  185. package/lib/services/EventService.d.ts +0 -9
  186. package/lib/services/ModuleService.d.ts +0 -5
  187. package/lib/services/ScreenshotService.d.ts +0 -15
  188. package/lib/services/Subscription.d.ts +0 -5
  189. package/lib/services/TextService.d.ts +0 -14
  190. package/lib/services/TranslationService.d.ts +0 -75
  191. package/lib/toolsManager/Messages.d.ts +0 -8
  192. package/lib/toolsManager/PluginManager.d.ts +0 -21
  193. package/lib/types/DTOs.d.ts +0 -20
  194. package/lib/types/apiSchema.generated.d.ts +0 -6185
  195. package/lib/wrappers/AbstractWrapper.d.ts +0 -8
  196. package/lib/wrappers/NodeHandler.d.ts +0 -18
  197. package/lib/wrappers/WrappedHandler.d.ts +0 -8
  198. package/lib/wrappers/invisible/AttributeHandler.d.ts +0 -8
  199. package/lib/wrappers/invisible/Coder.d.ts +0 -7
  200. package/lib/wrappers/invisible/ContentHandler.d.ts +0 -6
  201. package/lib/wrappers/invisible/CoreHandler.d.ts +0 -10
  202. package/lib/wrappers/invisible/InvisibleWrapper.d.ts +0 -18
  203. package/lib/wrappers/invisible/ValueMemory.d.ts +0 -5
  204. package/lib/wrappers/text/AttributeHandler.d.ts +0 -8
  205. package/lib/wrappers/text/Coder.d.ts +0 -15
  206. package/lib/wrappers/text/ContentHandler.d.ts +0 -8
  207. package/lib/wrappers/text/CoreHandler.d.ts +0 -17
  208. package/lib/wrappers/text/TextWrapper.d.ts +0 -20
  209. package/src/Constants/ModifierKey.ts +0 -6
  210. package/src/Errors/ApiHttpError.ts +0 -8
  211. package/src/Observer.test.ts +0 -119
  212. package/src/Observer.ts +0 -68
  213. package/src/Properties.test.ts +0 -150
  214. package/src/Properties.ts +0 -112
  215. package/src/Tolgee.test.ts +0 -473
  216. package/src/TolgeeConfig.test.ts +0 -21
  217. package/src/TolgeeConfig.ts +0 -134
  218. package/src/__integration/FormatterIcu.test.ts +0 -80
  219. package/src/__integration/FormatterMissing.ts +0 -54
  220. package/src/__integration/Tolgee.test.ts +0 -90
  221. package/src/__integration/TolgeeInvisible.test.ts +0 -145
  222. package/src/__integration/mockTranslations.ts +0 -6
  223. package/src/__integration/testConfig.ts +0 -16
  224. package/src/__testFixtures/classMock.ts +0 -11
  225. package/src/__testFixtures/createElement.ts +0 -43
  226. package/src/__testFixtures/createTestDom.ts +0 -26
  227. package/src/__testFixtures/mocked.ts +0 -25
  228. package/src/__testFixtures/setupAfterEnv.ts +0 -34
  229. package/src/helpers/NodeHelper.ts +0 -90
  230. package/src/helpers/TextHelper.test.ts +0 -62
  231. package/src/helpers/TextHelper.ts +0 -58
  232. package/src/helpers/commonTypes.ts +0 -8
  233. package/src/helpers/encoderPolyfill.ts +0 -96
  234. package/src/helpers/secret.test.ts +0 -61
  235. package/src/helpers/secret.ts +0 -68
  236. package/src/helpers/sleep.ts +0 -2
  237. package/src/highlighter/HighlightFunctionsInitializer.test.ts +0 -40
  238. package/src/highlighter/HighlightFunctionsInitializer.ts +0 -61
  239. package/src/highlighter/MouseEventHandler.test.ts +0 -151
  240. package/src/highlighter/MouseEventHandler.ts +0 -191
  241. package/src/highlighter/TranslationHighlighter.test.ts +0 -177
  242. package/src/highlighter/TranslationHighlighter.ts +0 -113
  243. package/src/internal.ts +0 -2
  244. package/src/modules/IcuFormatter.test.ts +0 -21
  245. package/src/modules/IcuFormatter.ts +0 -39
  246. package/src/modules/index.ts +0 -1
  247. package/src/services/ApiHttpService.ts +0 -85
  248. package/src/services/CoreService.test.ts +0 -141
  249. package/src/services/CoreService.ts +0 -76
  250. package/src/services/DependencyService.test.ts +0 -51
  251. package/src/services/DependencyService.ts +0 -116
  252. package/src/services/ElementRegistrar.test.ts +0 -131
  253. package/src/services/ElementRegistrar.ts +0 -108
  254. package/src/services/EventEmitter.ts +0 -52
  255. package/src/services/EventService.ts +0 -14
  256. package/src/services/ModuleService.ts +0 -14
  257. package/src/services/ScreenshotService.ts +0 -31
  258. package/src/services/Subscription.ts +0 -7
  259. package/src/services/TextService.test.ts +0 -88
  260. package/src/services/TextService.ts +0 -82
  261. package/src/services/TranslationService.test.ts +0 -358
  262. package/src/services/TranslationService.ts +0 -417
  263. package/src/services/__mocks__/CoreService.ts +0 -17
  264. package/src/toolsManager/Messages.test.ts +0 -79
  265. package/src/toolsManager/Messages.ts +0 -60
  266. package/src/toolsManager/PluginManager.test.ts +0 -108
  267. package/src/toolsManager/PluginManager.ts +0 -129
  268. package/src/types/DTOs.ts +0 -25
  269. package/src/types/apiSchema.generated.ts +0 -6208
  270. package/src/wrappers/AbstractWrapper.ts +0 -14
  271. package/src/wrappers/NodeHandler.ts +0 -143
  272. package/src/wrappers/WrappedHandler.ts +0 -28
  273. package/src/wrappers/invisible/AttributeHandler.ts +0 -23
  274. package/src/wrappers/invisible/Coder.ts +0 -65
  275. package/src/wrappers/invisible/ContentHandler.ts +0 -15
  276. package/src/wrappers/invisible/CoreHandler.ts +0 -17
  277. package/src/wrappers/invisible/InvisibleWrapper.ts +0 -59
  278. package/src/wrappers/invisible/ValueMemory.test.ts +0 -25
  279. package/src/wrappers/invisible/ValueMemory.ts +0 -16
  280. package/src/wrappers/text/AttributeHandler.test.ts +0 -118
  281. package/src/wrappers/text/AttributeHandler.ts +0 -25
  282. package/src/wrappers/text/Coder.test.ts +0 -298
  283. package/src/wrappers/text/Coder.ts +0 -202
  284. package/src/wrappers/text/ContentHandler.test.ts +0 -185
  285. package/src/wrappers/text/ContentHandler.ts +0 -21
  286. package/src/wrappers/text/CoreHandler.test.ts +0 -106
  287. package/src/wrappers/text/CoreHandler.ts +0 -45
  288. package/src/wrappers/text/TextWrapper.ts +0 -69
package/lib/types.d.ts CHANGED
@@ -1,84 +1,210 @@
1
- export interface TextInputElementData {
2
- oldValue: string;
3
- valueInputs: string[];
4
- touched: boolean;
5
- oldPlaceholder: string;
6
- placeholderInputs: string[];
7
- }
8
- export declare type TreeTranslationsData = {
9
- [key: string]: string | TreeTranslationsData;
10
- };
11
- export declare type Translations = Record<string, string>;
12
- export declare type TranslationParams = {
13
- [key: string]: string | number | bigint;
14
- };
15
- export declare type TranslationParamsTags<T> = {
16
- [key: string]: string | number | bigint | ((value: T | T[]) => T);
17
- };
18
- export declare type TranslateProps = {
19
- key: string;
20
- defaultValue?: string;
21
- params?: TranslationParams;
1
+ import type { Options } from './Controller/State/initState';
2
+ import type { ObserverOptions } from './Controller/State/initObserverOptions';
3
+ export type { State, Options } from './Controller/State/initState';
4
+ export type { ObserverOptions, ModifierKey, } from './Controller/State/initObserverOptions';
5
+ export type { EventEmitterInstance } from './Controller/Events/EventEmitter';
6
+ export type { EventEmitterSelectiveInstance } from './Controller/Events/EventEmitterSelective';
7
+ export declare type FallbackGeneral = undefined | false | string | string[];
8
+ export declare type FallbackNS = FallbackGeneral;
9
+ export declare type NsType = string;
10
+ export declare type KeyType = string;
11
+ export declare type FallbackNSTranslation = undefined | NsType | NsType[];
12
+ export declare type FallbackLanguage = FallbackGeneral;
13
+ export declare type FallbackLanguageObject = Record<string, FallbackLanguage>;
14
+ export declare type FallbackLanguageOption = FallbackLanguage | FallbackLanguageObject;
15
+ export declare type TranslateOptions<T> = {
16
+ ns?: FallbackNSTranslation;
22
17
  noWrap?: boolean;
23
18
  orEmpty?: boolean;
19
+ params?: TranslateParams<T>;
24
20
  };
25
- export declare type TranslatePropsTags<T> = {
26
- key: string;
21
+ export declare type TranslateProps<T = DefaultParamType> = {
22
+ key: KeyType;
27
23
  defaultValue?: string;
28
- params?: TranslationParamsTags<T>;
29
- noWrap?: boolean;
30
- orEmpty?: boolean;
24
+ } & TranslateOptions<T>;
25
+ export declare type TranslatePropsInternal = TranslateProps & {
26
+ translation?: string;
31
27
  };
32
- export declare type InstantProps = {
33
- key: string;
34
- defaultValue?: string;
35
- params?: TranslationParams;
36
- noWrap?: boolean;
37
- orEmpty?: boolean;
28
+ export declare type TranslationValue = string | undefined | null;
29
+ export declare type TranslationsFlat = Map<string, TranslationValue>;
30
+ export declare type TreeTranslationsData = {
31
+ [key: string]: TranslationValue | TreeTranslationsData;
38
32
  };
39
- export declare type InstantPropsTags<T> = {
40
- key: string;
41
- defaultValue?: string;
42
- params?: TranslationParamsTags<T>;
43
- noWrap?: boolean;
44
- orEmpty?: boolean;
33
+ export declare type CacheAsyncRequests = Map<string, Promise<TreeTranslationsData | undefined> | undefined>;
34
+ export declare type CacheDescriptor = {
35
+ language: string;
36
+ namespace?: string;
37
+ };
38
+ export declare type CacheDescriptorInternal = {
39
+ language: string;
40
+ namespace: string;
41
+ };
42
+ export declare type CacheDescriptorWithKey = CacheDescriptorInternal & {
43
+ key?: string;
45
44
  };
46
45
  export declare type KeyAndParams = {
47
46
  key: string;
48
- params: TranslationParams;
47
+ params?: TranslateParams;
49
48
  defaultValue?: string;
49
+ ns?: FallbackNSTranslation;
50
50
  };
51
- export declare type KeyAndParamsTags<T> = {
52
- key: string;
53
- params: TranslationParamsTags<T>;
54
- defaultValue?: string;
51
+ export declare type Unwrapped = {
52
+ text: string;
53
+ keys: KeyAndParams[];
55
54
  };
56
- export declare type TranslatedWithMetadata = {
57
- translated: string;
58
- key: string;
59
- params: TranslationParams;
60
- defaultValue: string | undefined;
55
+ declare type PropType<TObj> = TObj[keyof TObj];
56
+ export declare type DefaultParamType = string | number | bigint;
57
+ export declare type TranslateParams<T = DefaultParamType> = {
58
+ [key: string]: T;
61
59
  };
62
- export declare type TranslatedWithMetadataTags<T> = {
63
- translated: TranslationTags<T>;
64
- key: string;
65
- params: TranslationParamsTags<T>;
66
- defaultValue: string | undefined;
60
+ export declare type CombinedOptions<T> = TranslateOptions<T> & {
61
+ [key: string]: T | PropType<TranslateOptions<T>>;
62
+ };
63
+ export declare type TFnType<T = DefaultParamType, R = string> = {
64
+ (key: string, defaultValue?: string, options?: CombinedOptions<T>): R;
65
+ (key: string, options?: CombinedOptions<T>): R;
66
+ (props: TranslateProps<T>): R;
67
+ };
68
+ export declare type WrapperWrapProps = Pick<TranslatePropsInternal, 'key' | 'params' | 'defaultValue' | 'ns' | 'translation'>;
69
+ export declare type WrapperWrapFunction = (props: WrapperWrapProps) => string;
70
+ export declare type WrapperUnwrapFunction = (text: string) => Unwrapped;
71
+ export declare type WrapperAttributeXPathGetter = (props: {
72
+ tag: string;
73
+ attribute: string;
74
+ }) => string;
75
+ export declare type WrapperInterface = {
76
+ unwrap: WrapperUnwrapFunction;
77
+ wrap: WrapperWrapFunction;
78
+ getTextXPath: () => string;
79
+ getAttributeXPath: WrapperAttributeXPathGetter;
80
+ };
81
+ export declare type FormatterInterfaceFormatParams = {
82
+ translation: string;
83
+ language: string;
84
+ params: Record<string, any> | undefined;
85
+ };
86
+ export declare type FormatterInterface = {
87
+ format: (props: FormatterInterfaceFormatParams) => string;
67
88
  };
68
- export declare type TranslationTags<T> = string | T[];
69
- export declare type NodeWithMeta = Node & {
70
- _tolgee: NodeMeta;
89
+ export declare type FinalFormatterInterface = {
90
+ format: (props: FormatterInterfaceFormatParams) => any;
71
91
  };
72
- export declare type NodeWithLock = Node & {
73
- _tolgee: NodeLock;
92
+ export declare type ObserverProps = {
93
+ translate: (params: TranslatePropsInternal) => string;
94
+ onClick: TranslationOnClick;
95
+ options: ObserverOptions;
74
96
  };
75
- export declare type ElementWithMeta = Element & ElementCSSInlineStyle & {
76
- _tolgee: ElementMeta;
97
+ export declare type HighlightInterface = (key?: string, ns?: FallbackNSTranslation) => {
98
+ unhighlight(): void;
99
+ };
100
+ export declare type ObserverRunProps = {
101
+ mouseHighlight: boolean;
102
+ };
103
+ export declare type ObserverInterface = (props: ObserverProps) => {
104
+ unwrap: (text: string) => Unwrapped;
105
+ wrap: WrapperWrapFunction;
106
+ retranslate: () => void;
107
+ stop: () => void;
108
+ run: (props: ObserverRunProps) => void;
109
+ highlight: HighlightInterface;
110
+ outputNotFormattable: boolean;
111
+ };
112
+ export declare type LanguageDetectorProps = {
113
+ availableLanguages: string[];
114
+ };
115
+ export declare type LanguageDetectorInterface = {
116
+ getLanguage: (props: LanguageDetectorProps) => string | undefined | Promise<string | undefined>;
117
+ };
118
+ export declare type LanguageStorageInterface = {
119
+ getLanguage: () => string | undefined | Promise<string | undefined>;
120
+ setLanguage: (language: string) => void | Promise<void>;
121
+ };
122
+ export declare type DevCredentials = undefined | {
123
+ apiUrl?: string;
124
+ apiKey?: string;
125
+ };
126
+ export declare type BackendDevProps = {
127
+ apiUrl?: string;
128
+ apiKey?: string;
129
+ projectId?: number;
130
+ };
131
+ export declare type BackendGetRecordProps = {
132
+ language: string;
133
+ namespace?: string;
134
+ };
135
+ export declare type BackendGetRecord = (data: BackendGetRecordProps) => Promise<TreeTranslationsData | undefined> | undefined;
136
+ export interface BackendInterface {
137
+ getRecord: BackendGetRecord;
138
+ }
139
+ export declare type BackendGetDevRecord = (data: BackendGetRecordProps & BackendDevProps) => Promise<TreeTranslationsData | undefined> | undefined;
140
+ export declare type BackendDevInterface = {
141
+ getRecord: BackendGetDevRecord;
142
+ };
143
+ export declare type TolgeeEvent = 'pendingLanguage' | 'language' | 'key' | 'loading' | 'fetching' | 'initialLoad' | 'running' | 'cache' | 'keyUpdate';
144
+ export declare type TolgeeOn = {
145
+ (event: 'pendingLanguage', handler: ListenerHandler<string>): Listener;
146
+ (event: 'language', handler: ListenerHandler<string>): Listener;
147
+ (event: 'key', handler: ListenerHandler<string>): Listener;
148
+ (event: 'loading', handler: ListenerHandler<boolean>): Listener;
149
+ (event: 'fetching', handler: ListenerHandler<boolean>): Listener;
150
+ (event: 'initialLoad', handler: ListenerHandler<void>): Listener;
151
+ (event: 'running', handler: ListenerHandler<boolean>): Listener;
152
+ (event: 'keyUpdate', handler: ListenerHandler<void>): Listener;
153
+ (event: TolgeeEvent, handler: ListenerHandler<any>): Listener;
154
+ };
155
+ export declare type TolgeeInstance = Readonly<{
156
+ on: TolgeeOn;
157
+ onKeyUpdate: (handler: ListenerHandler<void>) => ListenerSelective;
158
+ use: (plugin: TolgeePlugin | undefined) => TolgeeInstance;
159
+ getLanguage: () => string | undefined;
160
+ getPendingLanguage: () => string | undefined;
161
+ changeLanguage: (language: string) => Promise<void>;
162
+ changeTranslation: ChangeTranslationInterface;
163
+ addActiveNs: (ns: FallbackNSTranslation, forget?: boolean) => Promise<void>;
164
+ removeActiveNs: (ns: FallbackNSTranslation) => void;
165
+ loadRecords: (descriptors: CacheDescriptor[]) => Promise<TranslationsFlat[]>;
166
+ loadRecord: (descriptors: CacheDescriptor) => Promise<TranslationsFlat>;
167
+ addStaticData: (data: Options['staticData']) => void;
168
+ getRecord: (descriptor: CacheDescriptor) => TranslationsFlat | undefined;
169
+ getAllRecords: () => CachePublicRecord[];
170
+ isInitialLoading: () => boolean;
171
+ isLoading: (ns?: FallbackNSTranslation) => boolean;
172
+ isLoaded: (ns?: FallbackNSTranslation) => boolean;
173
+ isFetching: (ns?: FallbackNSTranslation) => boolean;
174
+ isRunning: () => boolean;
175
+ highlight: HighlightInterface;
176
+ getInitialOptions: () => Options;
177
+ isDev: () => boolean;
178
+ init: (options: Partial<Options>) => TolgeeInstance;
179
+ run: () => Promise<void>;
180
+ stop: () => void;
181
+ t: TFnType;
182
+ wrap: (params: TranslatePropsInternal) => string | undefined;
183
+ unwrap: (text: string) => Unwrapped;
184
+ setObserverOptions: (options: Partial<ObserverOptions>) => TolgeeInstance;
185
+ }>;
186
+ export declare type PluginServicePublic = Readonly<{
187
+ setFinalFormatter: (formatter: FinalFormatterInterface | undefined) => void;
188
+ addFormatter: (formatter: FormatterInterface | undefined) => void;
189
+ setObserver: (observer: ObserverInterface | undefined) => void;
190
+ hasObserver: () => boolean;
191
+ setUi: (ui: UiLibInterface | undefined) => void;
192
+ hasUi: () => boolean;
193
+ addBackend: (backend: BackendInterface | undefined) => void;
194
+ setDevBackend: (backend: BackendInterface | undefined) => void;
195
+ setLanguageDetector: (languageDetector: LanguageDetectorInterface | undefined) => void;
196
+ setLanguageStorage: (languageStorage: LanguageStorageInterface | undefined) => void;
197
+ overrideCredentials: (credentials: DevCredentials) => void;
198
+ }>;
199
+ export declare type NodeMeta = {
200
+ oldTextContent: string;
201
+ keys: KeyAndParams[];
202
+ keyAttributeOnly?: boolean;
77
203
  };
78
204
  export declare type ElementMeta = {
79
205
  wrappedWithElementOnlyKey?: string;
80
206
  wrappedWithElementOnlyDefaultHtml?: string;
81
- nodes: Set<NodeWithMeta>;
207
+ nodes: Map<Node, NodeMeta>;
82
208
  highlightEl?: HTMLDivElement;
83
209
  highlight?: () => void;
84
210
  unhighlight?: () => void;
@@ -94,30 +220,64 @@ export declare type ElementMeta = {
94
220
  */
95
221
  preventClean?: boolean;
96
222
  };
97
- export declare type NodeMeta = {
98
- oldTextContent: string;
99
- keys: KeyAndParamsTags<any>[];
100
- } & NodeLock;
101
- export declare type NodeLock = {
102
- locked?: boolean;
223
+ export declare type ChangeTranslationInterface = (descriptor: CacheDescriptor, key: string, value: string) => {
224
+ revert: () => void;
103
225
  };
104
- export declare type Scope = 'translations.edit' | 'translations.view' | 'keys.edit' | 'screenshots.upload' | 'screenshots.view' | 'screenshots.delete';
105
- export declare type Mode = 'development' | 'production';
106
- export declare type Unwrapped = {
107
- text: string;
108
- keys: KeyAndParamsTags<any>[];
226
+ export declare type UiProps = {
227
+ apiUrl: string;
228
+ apiKey: string;
229
+ highlight: HighlightInterface;
230
+ changeTranslation: ChangeTranslationInterface;
109
231
  };
110
- export interface Formatter {
111
- format: FormatFunction;
112
- }
113
- interface FormatterStatic {
114
- type: 'formatter';
115
- new (): Formatter;
232
+ export interface UiInterface {
233
+ handleElementClick(event: MouseEvent, keysAndDefaults: UiKeyOption[]): Promise<void>;
116
234
  }
117
- export declare type TolgeeModule = FormatterStatic;
118
- export declare type FormatFunction = (props: {
119
- translation: string;
120
- params: Record<string, any>;
235
+ export declare type UiConstructor = new (props: UiProps) => UiInterface;
236
+ export declare type UiLibInterface = {
237
+ UI: UiConstructor;
238
+ };
239
+ export declare type UiType = UiConstructor | UiLibInterface;
240
+ export declare type UiKeyOption = {
241
+ key: string;
242
+ defaultValue?: string;
243
+ ns: FallbackNSTranslation;
244
+ translation: string | undefined;
245
+ };
246
+ export declare type KeyWithDefault = {
247
+ key: string;
248
+ defaultValue?: string;
249
+ ns: FallbackNSTranslation;
250
+ };
251
+ export declare type TranslationOnClick = (event: MouseEvent, data: {
252
+ keysAndDefaults: KeyWithDefault[];
253
+ el: Element;
254
+ meta: ElementMeta;
255
+ }) => void;
256
+ export declare type Listener = {
257
+ unsubscribe: () => void;
258
+ };
259
+ export declare type KeyDescriptorInternal = {
260
+ key?: string;
261
+ ns?: string[] | undefined;
262
+ };
263
+ export declare type KeyDescriptor = {
264
+ key: string;
265
+ ns?: string | string[];
266
+ };
267
+ export declare type ListenerSelective = {
268
+ unsubscribe: () => void;
269
+ subscribeNs: (ns: FallbackNSTranslation) => ListenerSelective;
270
+ unsubscribeNs: (ns: FallbackNSTranslation) => ListenerSelective;
271
+ subscribeKey: (descriptor: KeyDescriptor) => ListenerSelective;
272
+ unsubscribeKey: (descriptor: KeyDescriptor) => ListenerSelective;
273
+ };
274
+ export declare type ListenerHandlerEvent<T> = {
275
+ value: T;
276
+ };
277
+ export declare type ListenerHandler<T> = (e: ListenerHandlerEvent<T>) => void;
278
+ export declare type TolgeePlugin = (tolgee: TolgeeInstance, tools: PluginServicePublic) => TolgeeInstance;
279
+ export declare type CachePublicRecord = {
280
+ data: TranslationsFlat;
121
281
  language: string;
122
- }) => string | any[];
123
- export {};
282
+ namespace: string;
283
+ };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@tolgee/core",
3
- "version": "4.9.2",
3
+ "version": "4.9.3-rc.04b22e6.0",
4
4
  "description": "Library providing ability to translate messages directly in context of developed application.",
5
- "main": "index.js",
6
- "module": "./dist/tolgee.esm.mjs",
5
+ "main": "./dist/tolgee.cjs.js",
6
+ "module": "./dist/tolgee.esm.js",
7
7
  "types": "./lib/index.d.ts",
8
8
  "repository": {
9
9
  "type": "git",
@@ -19,56 +19,48 @@
19
19
  "languages"
20
20
  ],
21
21
  "declaration": true,
22
+ "exports": {
23
+ "require": "./dist/tolgee.cjs.js",
24
+ "import": "./dist/tolgee.esm.js"
25
+ },
22
26
  "directories": {
23
27
  "lib": "lib",
24
28
  "dist": "dist"
25
29
  },
26
30
  "scripts": {
27
- "build": "rollup -c rollup.config.js && tsc --project tsconfig.prod.json",
28
- "clean": "rm -rf build build-e2e dist dist-e2e lib",
29
- "test": "jest --config ./jest.config.js",
30
- "develop": "concurrently \"rollup -c rollup.config.js -w\" \"tsc --watch --preserveWatchOutput --project tsconfig.prod.json\" ",
31
- "schema": "openapi-typescript http://localhost:8080/v3/api-docs/All%20Internal%20-%20for%20Tolgee%20Web%20application --output ./src/types/apiSchema.generated.ts",
32
- "typedoc": "typedoc --entryPointStrategy expand --out docs src/index.ts src/Tolgee.ts src/types.ts src/services/EventEmitter.ts src/services/Subscription.ts",
33
- "tsc": "tsc --noEmit --emitDeclarationOnly false"
31
+ "build": "rollup -c rollup.config.js && tsc --declaration --emitDeclarationOnly --project tsconfig.prod.json",
32
+ "clean": "rm -rf dist lib",
33
+ "test": "jest --collect-coverage",
34
+ "develop": "concurrently \"rollup -c rollup.config.js -w\" \"tsc --declaration --emitDeclarationOnly --watch --preserveWatchOutput --project tsconfig.prod.json\" ",
35
+ "tsc": "tsc --noEmit"
34
36
  },
35
- "author": "JanCizmar",
37
+ "author": "Tolgee",
36
38
  "license": "MIT",
37
39
  "files": [
38
- "index.js",
39
40
  "lib/**/*",
40
41
  "dist/**/*",
41
42
  "src/**/*"
42
43
  ],
43
44
  "devDependencies": {
44
45
  "@rollup/plugin-node-resolve": "13.3.0",
45
- "@rollup/plugin-replace": "^4.0.0",
46
46
  "@rollup/plugin-typescript": "8.3.4",
47
- "@testing-library/dom": "^8.7.1",
48
- "@testing-library/jest-dom": "^5.11.4",
47
+ "@testing-library/jest-dom": "^5.16.5",
49
48
  "@types/jest": "^27.0.2",
50
49
  "@types/node": "^17.0.8",
51
50
  "@types/testing-library__jest-dom": "^5.14.5",
52
51
  "concurrently": "7.3.0",
53
52
  "intl-messageformat": "^9.9.1",
54
53
  "jest": "^27.2.4",
55
- "jest-environment-jsdom": "^27.5.1",
56
54
  "jest-fetch-mock": "^3.0.3",
57
- "openapi-typescript": "^4.3.0",
58
- "rollup": "^2.78.1",
55
+ "rollup": "^2.56.3",
56
+ "rollup-plugin-bundle-size": "^1.0.3",
59
57
  "rollup-plugin-terser": "7.0.2",
60
- "ts-jest": "^27.0.5",
61
- "tslib": "^2.4.0",
62
- "typedoc": "0.22.15",
63
- "typedoc-plugin-markdown": "3.13.2",
64
- "typescript": "4.7.4"
58
+ "rollup-plugin-visualizer": "^5.8.0",
59
+ "ts-jest": "^27.1.5",
60
+ "typescript": "^4.7.4"
65
61
  },
66
- "exports": {
67
- "require": "./dist/tolgee.cjs.js",
68
- "import": "./dist/tolgee.esm.mjs"
69
- },
70
- "gitHead": "dcbded7f7d158facb5eac126baf2ec1e1dc5699e",
71
62
  "publishConfig": {
72
63
  "access": "public"
73
- }
64
+ },
65
+ "gitHead": "5caa2e5f5a7920d75f5ed25fcb92cb41d249b449"
74
66
  }