@tolgee/core 4.9.2 → 4.9.3-rc.23424f3.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 (276) hide show
  1. package/dist/tolgee.cjs.js +1127 -7028
  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.min.mjs +1 -1
  6. package/dist/tolgee.esm.min.mjs.map +1 -1
  7. package/dist/tolgee.esm.mjs +1125 -7023
  8. package/dist/tolgee.esm.mjs.map +1 -1
  9. package/dist/tolgee.umd.js +1127 -7028
  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 +146 -0
  16. package/lib/Controller/Events/EventEmitter.d.ts +6 -0
  17. package/lib/Controller/Events/EventEmitterSelective.d.ts +15 -0
  18. package/lib/Controller/Events/Events.d.ts +50 -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/Tolgee.d.ts +2 -68
  26. package/lib/TranslateParams.d.ts +2 -0
  27. package/lib/{Constants/Global.d.ts → constants.d.ts} +1 -2
  28. package/lib/helpers.d.ts +3 -0
  29. package/lib/index.d.ts +3 -8
  30. package/lib/types.d.ts +244 -84
  31. package/package.json +20 -29
  32. package/src/Controller/Cache/Cache.ts +293 -0
  33. package/src/Controller/Cache/helpers.ts +37 -0
  34. package/src/Controller/Controller.ts +310 -0
  35. package/src/Controller/Events/EventEmitter.ts +27 -0
  36. package/src/Controller/Events/EventEmitterSelective.test.ts +125 -0
  37. package/src/Controller/Events/EventEmitterSelective.ts +179 -0
  38. package/src/Controller/Events/Events.ts +66 -0
  39. package/src/Controller/Plugins/Plugins.ts +315 -0
  40. package/src/Controller/State/State.ts +175 -0
  41. package/src/Controller/State/helpers.ts +41 -0
  42. package/src/Controller/State/initObserverOptions.ts +38 -0
  43. package/src/Controller/State/initState.ts +81 -0
  44. package/src/Controller/ValueObserver.ts +23 -0
  45. package/src/Tolgee.ts +79 -330
  46. package/src/TranslateParams.test.ts +41 -0
  47. package/src/TranslateParams.ts +51 -0
  48. package/src/__test/backend.test.ts +48 -0
  49. package/src/__test/cache.test.ts +148 -0
  50. package/src/__test/client.test.ts +48 -0
  51. package/src/__test/events.test.ts +33 -0
  52. package/src/__test/initialization.test.ts +85 -0
  53. package/src/__test/jest-setup.ts +2 -0
  54. package/src/__test/languageDetection.test.ts +129 -0
  55. package/src/__test/languageStorage.test.ts +145 -0
  56. package/src/__test/languages.test.ts +112 -0
  57. package/src/__test/loading.test.ts +39 -0
  58. package/src/__test/namespaces.test.ts +99 -0
  59. package/src/__test/namespacesFallback.test.ts +74 -0
  60. package/src/__test/plugins.test.ts +136 -0
  61. package/src/__test/testTools.ts +7 -0
  62. package/src/{Constants/Global.ts → constants.ts} +1 -3
  63. package/src/helpers.ts +17 -0
  64. package/src/index.ts +9 -8
  65. package/src/types.ts +338 -90
  66. package/README.md +0 -45
  67. package/dist/Constants/Global.d.ts +0 -6
  68. package/dist/Constants/ModifierKey.d.ts +0 -6
  69. package/dist/Errors/ApiHttpError.d.ts +0 -5
  70. package/dist/Observer.d.ts +0 -14
  71. package/dist/Observer.test.d.ts +0 -2
  72. package/dist/Properties.d.ts +0 -17
  73. package/dist/Properties.test.d.ts +0 -1
  74. package/dist/Tolgee.d.ts +0 -68
  75. package/dist/Tolgee.test.d.ts +0 -1
  76. package/dist/TolgeeConfig.d.ts +0 -69
  77. package/dist/TolgeeConfig.test.d.ts +0 -1
  78. package/dist/__integration/FormatterIcu.test.d.ts +0 -1
  79. package/dist/__integration/FormatterMissing.d.ts +0 -1
  80. package/dist/__integration/Tolgee.test.d.ts +0 -1
  81. package/dist/__integration/TolgeeInvisible.test.d.ts +0 -1
  82. package/dist/__integration/mockTranslations.d.ts +0 -7
  83. package/dist/__integration/testConfig.d.ts +0 -9
  84. package/dist/__testFixtures/classMock.d.ts +0 -3
  85. package/dist/__testFixtures/createElement.d.ts +0 -2
  86. package/dist/__testFixtures/createTestDom.d.ts +0 -9
  87. package/dist/__testFixtures/mocked.d.ts +0 -20
  88. package/dist/__testFixtures/setupAfterEnv.d.ts +0 -8
  89. package/dist/helpers/NodeHelper.d.ts +0 -14
  90. package/dist/helpers/TextHelper.d.ts +0 -5
  91. package/dist/helpers/TextHelper.test.d.ts +0 -1
  92. package/dist/helpers/commonTypes.d.ts +0 -2
  93. package/dist/helpers/encoderPolyfill.d.ts +0 -8
  94. package/dist/helpers/secret.d.ts +0 -6
  95. package/dist/helpers/secret.test.d.ts +0 -1
  96. package/dist/helpers/sleep.d.ts +0 -1
  97. package/dist/highlighter/HighlightFunctionsInitializer.d.ts +0 -10
  98. package/dist/highlighter/HighlightFunctionsInitializer.test.d.ts +0 -1
  99. package/dist/highlighter/MouseEventHandler.d.ts +0 -29
  100. package/dist/highlighter/MouseEventHandler.test.d.ts +0 -1
  101. package/dist/highlighter/TranslationHighlighter.d.ts +0 -14
  102. package/dist/highlighter/TranslationHighlighter.test.d.ts +0 -1
  103. package/dist/index.d.ts +0 -10
  104. package/dist/internal.d.ts +0 -2
  105. package/dist/modules/IcuFormatter.d.ts +0 -2
  106. package/dist/modules/IcuFormatter.test.d.ts +0 -1
  107. package/dist/modules/index.d.ts +0 -1
  108. package/dist/services/ApiHttpService.d.ts +0 -15
  109. package/dist/services/CoreService.d.ts +0 -18
  110. package/dist/services/CoreService.test.d.ts +0 -1
  111. package/dist/services/DependencyService.d.ts +0 -39
  112. package/dist/services/DependencyService.test.d.ts +0 -1
  113. package/dist/services/ElementRegistrar.d.ts +0 -19
  114. package/dist/services/ElementRegistrar.test.d.ts +0 -1
  115. package/dist/services/EventEmitter.d.ts +0 -13
  116. package/dist/services/EventService.d.ts +0 -9
  117. package/dist/services/ModuleService.d.ts +0 -5
  118. package/dist/services/ScreenshotService.d.ts +0 -15
  119. package/dist/services/Subscription.d.ts +0 -5
  120. package/dist/services/TextService.d.ts +0 -14
  121. package/dist/services/TextService.test.d.ts +0 -1
  122. package/dist/services/TranslationService.d.ts +0 -75
  123. package/dist/services/TranslationService.test.d.ts +0 -1
  124. package/dist/services/__mocks__/CoreService.d.ts +0 -2
  125. package/dist/toolsManager/Messages.d.ts +0 -8
  126. package/dist/toolsManager/Messages.test.d.ts +0 -1
  127. package/dist/toolsManager/PluginManager.d.ts +0 -21
  128. package/dist/toolsManager/PluginManager.test.d.ts +0 -1
  129. package/dist/types/DTOs.d.ts +0 -20
  130. package/dist/types/apiSchema.generated.d.ts +0 -6185
  131. package/dist/types.d.ts +0 -123
  132. package/dist/wrappers/AbstractWrapper.d.ts +0 -8
  133. package/dist/wrappers/NodeHandler.d.ts +0 -18
  134. package/dist/wrappers/WrappedHandler.d.ts +0 -8
  135. package/dist/wrappers/invisible/AttributeHandler.d.ts +0 -8
  136. package/dist/wrappers/invisible/Coder.d.ts +0 -7
  137. package/dist/wrappers/invisible/ContentHandler.d.ts +0 -6
  138. package/dist/wrappers/invisible/CoreHandler.d.ts +0 -10
  139. package/dist/wrappers/invisible/InvisibleWrapper.d.ts +0 -18
  140. package/dist/wrappers/invisible/ValueMemory.d.ts +0 -5
  141. package/dist/wrappers/invisible/ValueMemory.test.d.ts +0 -1
  142. package/dist/wrappers/text/AttributeHandler.d.ts +0 -8
  143. package/dist/wrappers/text/AttributeHandler.test.d.ts +0 -1
  144. package/dist/wrappers/text/Coder.d.ts +0 -15
  145. package/dist/wrappers/text/Coder.test.d.ts +0 -1
  146. package/dist/wrappers/text/ContentHandler.d.ts +0 -8
  147. package/dist/wrappers/text/ContentHandler.test.d.ts +0 -1
  148. package/dist/wrappers/text/CoreHandler.d.ts +0 -17
  149. package/dist/wrappers/text/CoreHandler.test.d.ts +0 -1
  150. package/dist/wrappers/text/TextWrapper.d.ts +0 -20
  151. package/index.js +0 -7
  152. package/lib/Constants/ModifierKey.d.ts +0 -6
  153. package/lib/Errors/ApiHttpError.d.ts +0 -5
  154. package/lib/Observer.d.ts +0 -14
  155. package/lib/Properties.d.ts +0 -17
  156. package/lib/TolgeeConfig.d.ts +0 -69
  157. package/lib/helpers/NodeHelper.d.ts +0 -14
  158. package/lib/helpers/TextHelper.d.ts +0 -5
  159. package/lib/helpers/commonTypes.d.ts +0 -2
  160. package/lib/helpers/encoderPolyfill.d.ts +0 -8
  161. package/lib/helpers/secret.d.ts +0 -6
  162. package/lib/helpers/sleep.d.ts +0 -1
  163. package/lib/highlighter/HighlightFunctionsInitializer.d.ts +0 -10
  164. package/lib/highlighter/MouseEventHandler.d.ts +0 -29
  165. package/lib/highlighter/TranslationHighlighter.d.ts +0 -14
  166. package/lib/modules/IcuFormatter.d.ts +0 -2
  167. package/lib/modules/index.d.ts +0 -1
  168. package/lib/services/ApiHttpService.d.ts +0 -15
  169. package/lib/services/CoreService.d.ts +0 -18
  170. package/lib/services/DependencyService.d.ts +0 -39
  171. package/lib/services/ElementRegistrar.d.ts +0 -19
  172. package/lib/services/EventEmitter.d.ts +0 -13
  173. package/lib/services/EventService.d.ts +0 -9
  174. package/lib/services/ModuleService.d.ts +0 -5
  175. package/lib/services/ScreenshotService.d.ts +0 -15
  176. package/lib/services/Subscription.d.ts +0 -5
  177. package/lib/services/TextService.d.ts +0 -14
  178. package/lib/services/TranslationService.d.ts +0 -75
  179. package/lib/toolsManager/Messages.d.ts +0 -8
  180. package/lib/toolsManager/PluginManager.d.ts +0 -21
  181. package/lib/types/DTOs.d.ts +0 -20
  182. package/lib/types/apiSchema.generated.d.ts +0 -6185
  183. package/lib/wrappers/AbstractWrapper.d.ts +0 -8
  184. package/lib/wrappers/NodeHandler.d.ts +0 -18
  185. package/lib/wrappers/WrappedHandler.d.ts +0 -8
  186. package/lib/wrappers/invisible/AttributeHandler.d.ts +0 -8
  187. package/lib/wrappers/invisible/Coder.d.ts +0 -7
  188. package/lib/wrappers/invisible/ContentHandler.d.ts +0 -6
  189. package/lib/wrappers/invisible/CoreHandler.d.ts +0 -10
  190. package/lib/wrappers/invisible/InvisibleWrapper.d.ts +0 -18
  191. package/lib/wrappers/invisible/ValueMemory.d.ts +0 -5
  192. package/lib/wrappers/text/AttributeHandler.d.ts +0 -8
  193. package/lib/wrappers/text/Coder.d.ts +0 -15
  194. package/lib/wrappers/text/ContentHandler.d.ts +0 -8
  195. package/lib/wrappers/text/CoreHandler.d.ts +0 -17
  196. package/lib/wrappers/text/TextWrapper.d.ts +0 -20
  197. package/src/Constants/ModifierKey.ts +0 -6
  198. package/src/Errors/ApiHttpError.ts +0 -8
  199. package/src/Observer.test.ts +0 -119
  200. package/src/Observer.ts +0 -68
  201. package/src/Properties.test.ts +0 -150
  202. package/src/Properties.ts +0 -112
  203. package/src/Tolgee.test.ts +0 -473
  204. package/src/TolgeeConfig.test.ts +0 -21
  205. package/src/TolgeeConfig.ts +0 -134
  206. package/src/__integration/FormatterIcu.test.ts +0 -80
  207. package/src/__integration/FormatterMissing.ts +0 -54
  208. package/src/__integration/Tolgee.test.ts +0 -90
  209. package/src/__integration/TolgeeInvisible.test.ts +0 -145
  210. package/src/__integration/mockTranslations.ts +0 -6
  211. package/src/__integration/testConfig.ts +0 -16
  212. package/src/__testFixtures/classMock.ts +0 -11
  213. package/src/__testFixtures/createElement.ts +0 -43
  214. package/src/__testFixtures/createTestDom.ts +0 -26
  215. package/src/__testFixtures/mocked.ts +0 -25
  216. package/src/__testFixtures/setupAfterEnv.ts +0 -34
  217. package/src/helpers/NodeHelper.ts +0 -90
  218. package/src/helpers/TextHelper.test.ts +0 -62
  219. package/src/helpers/TextHelper.ts +0 -58
  220. package/src/helpers/commonTypes.ts +0 -8
  221. package/src/helpers/encoderPolyfill.ts +0 -96
  222. package/src/helpers/secret.test.ts +0 -61
  223. package/src/helpers/secret.ts +0 -68
  224. package/src/helpers/sleep.ts +0 -2
  225. package/src/highlighter/HighlightFunctionsInitializer.test.ts +0 -40
  226. package/src/highlighter/HighlightFunctionsInitializer.ts +0 -61
  227. package/src/highlighter/MouseEventHandler.test.ts +0 -151
  228. package/src/highlighter/MouseEventHandler.ts +0 -191
  229. package/src/highlighter/TranslationHighlighter.test.ts +0 -177
  230. package/src/highlighter/TranslationHighlighter.ts +0 -113
  231. package/src/internal.ts +0 -2
  232. package/src/modules/IcuFormatter.test.ts +0 -21
  233. package/src/modules/IcuFormatter.ts +0 -39
  234. package/src/modules/index.ts +0 -1
  235. package/src/services/ApiHttpService.ts +0 -85
  236. package/src/services/CoreService.test.ts +0 -141
  237. package/src/services/CoreService.ts +0 -76
  238. package/src/services/DependencyService.test.ts +0 -51
  239. package/src/services/DependencyService.ts +0 -116
  240. package/src/services/ElementRegistrar.test.ts +0 -131
  241. package/src/services/ElementRegistrar.ts +0 -108
  242. package/src/services/EventEmitter.ts +0 -52
  243. package/src/services/EventService.ts +0 -14
  244. package/src/services/ModuleService.ts +0 -14
  245. package/src/services/ScreenshotService.ts +0 -31
  246. package/src/services/Subscription.ts +0 -7
  247. package/src/services/TextService.test.ts +0 -88
  248. package/src/services/TextService.ts +0 -82
  249. package/src/services/TranslationService.test.ts +0 -358
  250. package/src/services/TranslationService.ts +0 -417
  251. package/src/services/__mocks__/CoreService.ts +0 -17
  252. package/src/toolsManager/Messages.test.ts +0 -79
  253. package/src/toolsManager/Messages.ts +0 -60
  254. package/src/toolsManager/PluginManager.test.ts +0 -108
  255. package/src/toolsManager/PluginManager.ts +0 -129
  256. package/src/types/DTOs.ts +0 -25
  257. package/src/types/apiSchema.generated.ts +0 -6208
  258. package/src/wrappers/AbstractWrapper.ts +0 -14
  259. package/src/wrappers/NodeHandler.ts +0 -143
  260. package/src/wrappers/WrappedHandler.ts +0 -28
  261. package/src/wrappers/invisible/AttributeHandler.ts +0 -23
  262. package/src/wrappers/invisible/Coder.ts +0 -65
  263. package/src/wrappers/invisible/ContentHandler.ts +0 -15
  264. package/src/wrappers/invisible/CoreHandler.ts +0 -17
  265. package/src/wrappers/invisible/InvisibleWrapper.ts +0 -59
  266. package/src/wrappers/invisible/ValueMemory.test.ts +0 -25
  267. package/src/wrappers/invisible/ValueMemory.ts +0 -16
  268. package/src/wrappers/text/AttributeHandler.test.ts +0 -118
  269. package/src/wrappers/text/AttributeHandler.ts +0 -25
  270. package/src/wrappers/text/Coder.test.ts +0 -298
  271. package/src/wrappers/text/Coder.ts +0 -202
  272. package/src/wrappers/text/ContentHandler.test.ts +0 -185
  273. package/src/wrappers/text/ContentHandler.ts +0 -21
  274. package/src/wrappers/text/CoreHandler.test.ts +0 -106
  275. package/src/wrappers/text/CoreHandler.ts +0 -45
  276. 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 { EventEmitterType } from './Controller/Events/EventEmitter';
6
+ export type { EventEmitterSelectiveType } 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,8 +1,8 @@
1
1
  {
2
2
  "name": "@tolgee/core",
3
- "version": "4.9.2",
3
+ "version": "4.9.3-rc.23424f3.0",
4
4
  "description": "Library providing ability to translate messages directly in context of developed application.",
5
- "main": "index.js",
5
+ "main": "./dist/tolgee.cjs.js",
6
6
  "module": "./dist/tolgee.esm.mjs",
7
7
  "types": "./lib/index.d.ts",
8
8
  "repository": {
@@ -19,56 +19,47 @@
19
19
  "languages"
20
20
  ],
21
21
  "declaration": true,
22
+ "exports": {
23
+ "require": "./dist/tolgee.cjs.js",
24
+ "import": "./dist/tolgee.esm.mjs"
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
- "intl-messageformat": "^9.9.1",
54
52
  "jest": "^27.2.4",
55
- "jest-environment-jsdom": "^27.5.1",
56
53
  "jest-fetch-mock": "^3.0.3",
57
- "openapi-typescript": "^4.3.0",
58
- "rollup": "^2.78.1",
54
+ "rollup": "^2.56.3",
55
+ "rollup-plugin-bundle-size": "^1.0.3",
59
56
  "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"
57
+ "rollup-plugin-visualizer": "^5.8.0",
58
+ "ts-jest": "^27.1.5",
59
+ "typescript": "^4.7.4"
65
60
  },
66
- "exports": {
67
- "require": "./dist/tolgee.cjs.js",
68
- "import": "./dist/tolgee.esm.mjs"
69
- },
70
- "gitHead": "dcbded7f7d158facb5eac126baf2ec1e1dc5699e",
71
61
  "publishConfig": {
72
62
  "access": "public"
73
- }
63
+ },
64
+ "gitHead": "324616512faab733bbac7c2cc63d94ffaa0a733e"
74
65
  }