@tolgee/core 4.9.2 → 5.0.0-rc.0b3e627.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 (273) hide show
  1. package/dist/tolgee.cjs.js +1069 -7029
  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 +1067 -7024
  8. package/dist/tolgee.esm.mjs.map +1 -1
  9. package/dist/tolgee.umd.js +1069 -7029
  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 +23 -0
  14. package/lib/Controller/Cache/helpers.d.ts +4 -0
  15. package/lib/Controller/Controller.d.ts +93 -0
  16. package/lib/Controller/Plugins/Plugins.d.ts +41 -0
  17. package/lib/Controller/State/State.d.ts +22 -0
  18. package/lib/Controller/State/helpers.d.ts +6 -0
  19. package/lib/Controller/State/initState.d.ts +55 -0
  20. package/lib/Controller/ValueObserver.d.ts +5 -0
  21. package/lib/Events/EventEmitter.d.ts +6 -0
  22. package/lib/Events/EventEmitterSelective.d.ts +15 -0
  23. package/lib/Events/Events.d.ts +50 -0
  24. package/lib/Tolgee.d.ts +2 -68
  25. package/lib/TranslateParams.d.ts +2 -0
  26. package/lib/{Constants/Global.d.ts → constants.d.ts} +1 -2
  27. package/lib/helpers.d.ts +3 -0
  28. package/lib/index.d.ts +3 -8
  29. package/lib/types.d.ts +235 -84
  30. package/package.json +20 -29
  31. package/src/Controller/Cache/Cache.ts +295 -0
  32. package/src/Controller/Cache/helpers.ts +39 -0
  33. package/src/Controller/Controller.ts +289 -0
  34. package/src/Controller/Plugins/Plugins.ts +305 -0
  35. package/src/Controller/State/State.ts +165 -0
  36. package/src/Controller/State/helpers.ts +41 -0
  37. package/src/Controller/State/initState.ts +90 -0
  38. package/src/Controller/ValueObserver.ts +23 -0
  39. package/src/Events/EventEmitter.ts +27 -0
  40. package/src/Events/EventEmitterSelective.test.ts +108 -0
  41. package/src/Events/EventEmitterSelective.ts +160 -0
  42. package/src/Events/Events.ts +66 -0
  43. package/src/Tolgee.ts +75 -333
  44. package/src/TranslateParams.test.ts +41 -0
  45. package/src/TranslateParams.ts +51 -0
  46. package/src/__test/backend.test.ts +48 -0
  47. package/src/__test/client.test.ts +48 -0
  48. package/src/__test/events.test.ts +33 -0
  49. package/src/__test/initialization.test.ts +73 -0
  50. package/src/__test/jest-setup.ts +2 -0
  51. package/src/__test/languageDetection.test.ts +123 -0
  52. package/src/__test/languageStorage.test.ts +145 -0
  53. package/src/__test/languages.test.ts +106 -0
  54. package/src/__test/loading.test.ts +39 -0
  55. package/src/__test/namespaces.test.ts +99 -0
  56. package/src/__test/namespacesFallback.test.ts +73 -0
  57. package/src/__test/plugins.test.ts +98 -0
  58. package/src/__test/testTools.ts +7 -0
  59. package/src/{Constants/Global.ts → constants.ts} +1 -3
  60. package/src/helpers.ts +17 -0
  61. package/src/index.ts +9 -8
  62. package/src/types.ts +324 -90
  63. package/README.md +0 -45
  64. package/dist/Constants/Global.d.ts +0 -6
  65. package/dist/Constants/ModifierKey.d.ts +0 -6
  66. package/dist/Errors/ApiHttpError.d.ts +0 -5
  67. package/dist/Observer.d.ts +0 -14
  68. package/dist/Observer.test.d.ts +0 -2
  69. package/dist/Properties.d.ts +0 -17
  70. package/dist/Properties.test.d.ts +0 -1
  71. package/dist/Tolgee.d.ts +0 -68
  72. package/dist/Tolgee.test.d.ts +0 -1
  73. package/dist/TolgeeConfig.d.ts +0 -69
  74. package/dist/TolgeeConfig.test.d.ts +0 -1
  75. package/dist/__integration/FormatterIcu.test.d.ts +0 -1
  76. package/dist/__integration/FormatterMissing.d.ts +0 -1
  77. package/dist/__integration/Tolgee.test.d.ts +0 -1
  78. package/dist/__integration/TolgeeInvisible.test.d.ts +0 -1
  79. package/dist/__integration/mockTranslations.d.ts +0 -7
  80. package/dist/__integration/testConfig.d.ts +0 -9
  81. package/dist/__testFixtures/classMock.d.ts +0 -3
  82. package/dist/__testFixtures/createElement.d.ts +0 -2
  83. package/dist/__testFixtures/createTestDom.d.ts +0 -9
  84. package/dist/__testFixtures/mocked.d.ts +0 -20
  85. package/dist/__testFixtures/setupAfterEnv.d.ts +0 -8
  86. package/dist/helpers/NodeHelper.d.ts +0 -14
  87. package/dist/helpers/TextHelper.d.ts +0 -5
  88. package/dist/helpers/TextHelper.test.d.ts +0 -1
  89. package/dist/helpers/commonTypes.d.ts +0 -2
  90. package/dist/helpers/encoderPolyfill.d.ts +0 -8
  91. package/dist/helpers/secret.d.ts +0 -6
  92. package/dist/helpers/secret.test.d.ts +0 -1
  93. package/dist/helpers/sleep.d.ts +0 -1
  94. package/dist/highlighter/HighlightFunctionsInitializer.d.ts +0 -10
  95. package/dist/highlighter/HighlightFunctionsInitializer.test.d.ts +0 -1
  96. package/dist/highlighter/MouseEventHandler.d.ts +0 -29
  97. package/dist/highlighter/MouseEventHandler.test.d.ts +0 -1
  98. package/dist/highlighter/TranslationHighlighter.d.ts +0 -14
  99. package/dist/highlighter/TranslationHighlighter.test.d.ts +0 -1
  100. package/dist/index.d.ts +0 -10
  101. package/dist/internal.d.ts +0 -2
  102. package/dist/modules/IcuFormatter.d.ts +0 -2
  103. package/dist/modules/IcuFormatter.test.d.ts +0 -1
  104. package/dist/modules/index.d.ts +0 -1
  105. package/dist/services/ApiHttpService.d.ts +0 -15
  106. package/dist/services/CoreService.d.ts +0 -18
  107. package/dist/services/CoreService.test.d.ts +0 -1
  108. package/dist/services/DependencyService.d.ts +0 -39
  109. package/dist/services/DependencyService.test.d.ts +0 -1
  110. package/dist/services/ElementRegistrar.d.ts +0 -19
  111. package/dist/services/ElementRegistrar.test.d.ts +0 -1
  112. package/dist/services/EventEmitter.d.ts +0 -13
  113. package/dist/services/EventService.d.ts +0 -9
  114. package/dist/services/ModuleService.d.ts +0 -5
  115. package/dist/services/ScreenshotService.d.ts +0 -15
  116. package/dist/services/Subscription.d.ts +0 -5
  117. package/dist/services/TextService.d.ts +0 -14
  118. package/dist/services/TextService.test.d.ts +0 -1
  119. package/dist/services/TranslationService.d.ts +0 -75
  120. package/dist/services/TranslationService.test.d.ts +0 -1
  121. package/dist/services/__mocks__/CoreService.d.ts +0 -2
  122. package/dist/toolsManager/Messages.d.ts +0 -8
  123. package/dist/toolsManager/Messages.test.d.ts +0 -1
  124. package/dist/toolsManager/PluginManager.d.ts +0 -21
  125. package/dist/toolsManager/PluginManager.test.d.ts +0 -1
  126. package/dist/types/DTOs.d.ts +0 -20
  127. package/dist/types/apiSchema.generated.d.ts +0 -6185
  128. package/dist/types.d.ts +0 -123
  129. package/dist/wrappers/AbstractWrapper.d.ts +0 -8
  130. package/dist/wrappers/NodeHandler.d.ts +0 -18
  131. package/dist/wrappers/WrappedHandler.d.ts +0 -8
  132. package/dist/wrappers/invisible/AttributeHandler.d.ts +0 -8
  133. package/dist/wrappers/invisible/Coder.d.ts +0 -7
  134. package/dist/wrappers/invisible/ContentHandler.d.ts +0 -6
  135. package/dist/wrappers/invisible/CoreHandler.d.ts +0 -10
  136. package/dist/wrappers/invisible/InvisibleWrapper.d.ts +0 -18
  137. package/dist/wrappers/invisible/ValueMemory.d.ts +0 -5
  138. package/dist/wrappers/invisible/ValueMemory.test.d.ts +0 -1
  139. package/dist/wrappers/text/AttributeHandler.d.ts +0 -8
  140. package/dist/wrappers/text/AttributeHandler.test.d.ts +0 -1
  141. package/dist/wrappers/text/Coder.d.ts +0 -15
  142. package/dist/wrappers/text/Coder.test.d.ts +0 -1
  143. package/dist/wrappers/text/ContentHandler.d.ts +0 -8
  144. package/dist/wrappers/text/ContentHandler.test.d.ts +0 -1
  145. package/dist/wrappers/text/CoreHandler.d.ts +0 -17
  146. package/dist/wrappers/text/CoreHandler.test.d.ts +0 -1
  147. package/dist/wrappers/text/TextWrapper.d.ts +0 -20
  148. package/index.js +0 -7
  149. package/lib/Constants/ModifierKey.d.ts +0 -6
  150. package/lib/Errors/ApiHttpError.d.ts +0 -5
  151. package/lib/Observer.d.ts +0 -14
  152. package/lib/Properties.d.ts +0 -17
  153. package/lib/TolgeeConfig.d.ts +0 -69
  154. package/lib/helpers/NodeHelper.d.ts +0 -14
  155. package/lib/helpers/TextHelper.d.ts +0 -5
  156. package/lib/helpers/commonTypes.d.ts +0 -2
  157. package/lib/helpers/encoderPolyfill.d.ts +0 -8
  158. package/lib/helpers/secret.d.ts +0 -6
  159. package/lib/helpers/sleep.d.ts +0 -1
  160. package/lib/highlighter/HighlightFunctionsInitializer.d.ts +0 -10
  161. package/lib/highlighter/MouseEventHandler.d.ts +0 -29
  162. package/lib/highlighter/TranslationHighlighter.d.ts +0 -14
  163. package/lib/modules/IcuFormatter.d.ts +0 -2
  164. package/lib/modules/index.d.ts +0 -1
  165. package/lib/services/ApiHttpService.d.ts +0 -15
  166. package/lib/services/CoreService.d.ts +0 -18
  167. package/lib/services/DependencyService.d.ts +0 -39
  168. package/lib/services/ElementRegistrar.d.ts +0 -19
  169. package/lib/services/EventEmitter.d.ts +0 -13
  170. package/lib/services/EventService.d.ts +0 -9
  171. package/lib/services/ModuleService.d.ts +0 -5
  172. package/lib/services/ScreenshotService.d.ts +0 -15
  173. package/lib/services/Subscription.d.ts +0 -5
  174. package/lib/services/TextService.d.ts +0 -14
  175. package/lib/services/TranslationService.d.ts +0 -75
  176. package/lib/toolsManager/Messages.d.ts +0 -8
  177. package/lib/toolsManager/PluginManager.d.ts +0 -21
  178. package/lib/types/DTOs.d.ts +0 -20
  179. package/lib/types/apiSchema.generated.d.ts +0 -6185
  180. package/lib/wrappers/AbstractWrapper.d.ts +0 -8
  181. package/lib/wrappers/NodeHandler.d.ts +0 -18
  182. package/lib/wrappers/WrappedHandler.d.ts +0 -8
  183. package/lib/wrappers/invisible/AttributeHandler.d.ts +0 -8
  184. package/lib/wrappers/invisible/Coder.d.ts +0 -7
  185. package/lib/wrappers/invisible/ContentHandler.d.ts +0 -6
  186. package/lib/wrappers/invisible/CoreHandler.d.ts +0 -10
  187. package/lib/wrappers/invisible/InvisibleWrapper.d.ts +0 -18
  188. package/lib/wrappers/invisible/ValueMemory.d.ts +0 -5
  189. package/lib/wrappers/text/AttributeHandler.d.ts +0 -8
  190. package/lib/wrappers/text/Coder.d.ts +0 -15
  191. package/lib/wrappers/text/ContentHandler.d.ts +0 -8
  192. package/lib/wrappers/text/CoreHandler.d.ts +0 -17
  193. package/lib/wrappers/text/TextWrapper.d.ts +0 -20
  194. package/src/Constants/ModifierKey.ts +0 -6
  195. package/src/Errors/ApiHttpError.ts +0 -8
  196. package/src/Observer.test.ts +0 -119
  197. package/src/Observer.ts +0 -68
  198. package/src/Properties.test.ts +0 -150
  199. package/src/Properties.ts +0 -112
  200. package/src/Tolgee.test.ts +0 -473
  201. package/src/TolgeeConfig.test.ts +0 -21
  202. package/src/TolgeeConfig.ts +0 -134
  203. package/src/__integration/FormatterIcu.test.ts +0 -80
  204. package/src/__integration/FormatterMissing.ts +0 -54
  205. package/src/__integration/Tolgee.test.ts +0 -90
  206. package/src/__integration/TolgeeInvisible.test.ts +0 -145
  207. package/src/__integration/mockTranslations.ts +0 -6
  208. package/src/__integration/testConfig.ts +0 -16
  209. package/src/__testFixtures/classMock.ts +0 -11
  210. package/src/__testFixtures/createElement.ts +0 -43
  211. package/src/__testFixtures/createTestDom.ts +0 -26
  212. package/src/__testFixtures/mocked.ts +0 -25
  213. package/src/__testFixtures/setupAfterEnv.ts +0 -34
  214. package/src/helpers/NodeHelper.ts +0 -90
  215. package/src/helpers/TextHelper.test.ts +0 -62
  216. package/src/helpers/TextHelper.ts +0 -58
  217. package/src/helpers/commonTypes.ts +0 -8
  218. package/src/helpers/encoderPolyfill.ts +0 -96
  219. package/src/helpers/secret.test.ts +0 -61
  220. package/src/helpers/secret.ts +0 -68
  221. package/src/helpers/sleep.ts +0 -2
  222. package/src/highlighter/HighlightFunctionsInitializer.test.ts +0 -40
  223. package/src/highlighter/HighlightFunctionsInitializer.ts +0 -61
  224. package/src/highlighter/MouseEventHandler.test.ts +0 -151
  225. package/src/highlighter/MouseEventHandler.ts +0 -191
  226. package/src/highlighter/TranslationHighlighter.test.ts +0 -177
  227. package/src/highlighter/TranslationHighlighter.ts +0 -113
  228. package/src/internal.ts +0 -2
  229. package/src/modules/IcuFormatter.test.ts +0 -21
  230. package/src/modules/IcuFormatter.ts +0 -39
  231. package/src/modules/index.ts +0 -1
  232. package/src/services/ApiHttpService.ts +0 -85
  233. package/src/services/CoreService.test.ts +0 -141
  234. package/src/services/CoreService.ts +0 -76
  235. package/src/services/DependencyService.test.ts +0 -51
  236. package/src/services/DependencyService.ts +0 -116
  237. package/src/services/ElementRegistrar.test.ts +0 -131
  238. package/src/services/ElementRegistrar.ts +0 -108
  239. package/src/services/EventEmitter.ts +0 -52
  240. package/src/services/EventService.ts +0 -14
  241. package/src/services/ModuleService.ts +0 -14
  242. package/src/services/ScreenshotService.ts +0 -31
  243. package/src/services/Subscription.ts +0 -7
  244. package/src/services/TextService.test.ts +0 -88
  245. package/src/services/TextService.ts +0 -82
  246. package/src/services/TranslationService.test.ts +0 -358
  247. package/src/services/TranslationService.ts +0 -417
  248. package/src/services/__mocks__/CoreService.ts +0 -17
  249. package/src/toolsManager/Messages.test.ts +0 -79
  250. package/src/toolsManager/Messages.ts +0 -60
  251. package/src/toolsManager/PluginManager.test.ts +0 -108
  252. package/src/toolsManager/PluginManager.ts +0 -129
  253. package/src/types/DTOs.ts +0 -25
  254. package/src/types/apiSchema.generated.ts +0 -6208
  255. package/src/wrappers/AbstractWrapper.ts +0 -14
  256. package/src/wrappers/NodeHandler.ts +0 -143
  257. package/src/wrappers/WrappedHandler.ts +0 -28
  258. package/src/wrappers/invisible/AttributeHandler.ts +0 -23
  259. package/src/wrappers/invisible/Coder.ts +0 -65
  260. package/src/wrappers/invisible/ContentHandler.ts +0 -15
  261. package/src/wrappers/invisible/CoreHandler.ts +0 -17
  262. package/src/wrappers/invisible/InvisibleWrapper.ts +0 -59
  263. package/src/wrappers/invisible/ValueMemory.test.ts +0 -25
  264. package/src/wrappers/invisible/ValueMemory.ts +0 -16
  265. package/src/wrappers/text/AttributeHandler.test.ts +0 -118
  266. package/src/wrappers/text/AttributeHandler.ts +0 -25
  267. package/src/wrappers/text/Coder.test.ts +0 -298
  268. package/src/wrappers/text/Coder.ts +0 -202
  269. package/src/wrappers/text/ContentHandler.test.ts +0 -185
  270. package/src/wrappers/text/ContentHandler.ts +0 -21
  271. package/src/wrappers/text/CoreHandler.test.ts +0 -106
  272. package/src/wrappers/text/CoreHandler.ts +0 -45
  273. package/src/wrappers/text/TextWrapper.ts +0 -69
package/lib/types.d.ts CHANGED
@@ -1,84 +1,201 @@
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
+ export type { State, Options } from './Controller/State/initState';
3
+ export type { EventEmitterType } from './Events/EventEmitter';
4
+ export type { EventEmitterSelectiveType } from './Events/EventEmitterSelective';
5
+ export declare type FallbackGeneral = undefined | false | string | string[];
6
+ export declare type FallbackNS = FallbackGeneral;
7
+ export declare type NsType = string;
8
+ export declare type KeyType = string;
9
+ export declare type FallbackNSTranslation = undefined | NsType | NsType[];
10
+ export declare type FallbackLanguage = FallbackGeneral;
11
+ export declare type FallbackLanguageObject = Record<string, FallbackLanguage>;
12
+ export declare type FallbackLanguageOption = FallbackLanguage | FallbackLanguageObject;
13
+ export declare type TranslateOptions<T> = {
14
+ ns?: FallbackNSTranslation;
22
15
  noWrap?: boolean;
23
16
  orEmpty?: boolean;
17
+ params?: TranslateParams<T>;
24
18
  };
25
- export declare type TranslatePropsTags<T> = {
26
- key: string;
19
+ export declare type TranslateProps<T = DefaultParamType> = {
20
+ key: KeyType;
27
21
  defaultValue?: string;
28
- params?: TranslationParamsTags<T>;
29
- noWrap?: boolean;
30
- orEmpty?: boolean;
22
+ } & TranslateOptions<T>;
23
+ export declare type TranslatePropsInternal = TranslateProps & {
24
+ translation?: string;
31
25
  };
32
- export declare type InstantProps = {
33
- key: string;
34
- defaultValue?: string;
35
- params?: TranslationParams;
36
- noWrap?: boolean;
37
- orEmpty?: boolean;
26
+ export declare type TranslationValue = string | undefined | null;
27
+ export declare type TranslationsFlat = Map<string, TranslationValue>;
28
+ export declare type TreeTranslationsData = {
29
+ [key: string]: TranslationValue | TreeTranslationsData;
38
30
  };
39
- export declare type InstantPropsTags<T> = {
40
- key: string;
41
- defaultValue?: string;
42
- params?: TranslationParamsTags<T>;
43
- noWrap?: boolean;
44
- orEmpty?: boolean;
31
+ export declare type CacheAsyncRequests = Map<string, Promise<TreeTranslationsData | undefined> | undefined>;
32
+ export declare type CacheDescriptor = {
33
+ language: string;
34
+ namespace?: string;
35
+ };
36
+ export declare type CacheDescriptorInternal = {
37
+ language: string;
38
+ namespace: string;
39
+ };
40
+ export declare type CacheDescriptorWithKey = CacheDescriptorInternal & {
41
+ key?: string;
45
42
  };
46
43
  export declare type KeyAndParams = {
47
44
  key: string;
48
- params: TranslationParams;
45
+ params?: TranslateParams;
49
46
  defaultValue?: string;
47
+ ns?: FallbackNSTranslation;
50
48
  };
51
- export declare type KeyAndParamsTags<T> = {
52
- key: string;
53
- params: TranslationParamsTags<T>;
54
- defaultValue?: string;
49
+ export declare type Unwrapped = {
50
+ text: string;
51
+ keys: KeyAndParams[];
55
52
  };
56
- export declare type TranslatedWithMetadata = {
57
- translated: string;
58
- key: string;
59
- params: TranslationParams;
60
- defaultValue: string | undefined;
53
+ declare type PropType<TObj> = TObj[keyof TObj];
54
+ export declare type DefaultParamType = string | number | bigint;
55
+ export declare type TranslateParams<T = DefaultParamType> = {
56
+ [key: string]: T;
61
57
  };
62
- export declare type TranslatedWithMetadataTags<T> = {
63
- translated: TranslationTags<T>;
64
- key: string;
65
- params: TranslationParamsTags<T>;
66
- defaultValue: string | undefined;
58
+ export declare type CombinedOptions<T> = TranslateOptions<T> & {
59
+ [key: string]: T | PropType<TranslateOptions<T>>;
60
+ };
61
+ export declare type TFnType<T = DefaultParamType, R = string> = {
62
+ (key: string, defaultValue?: string, options?: CombinedOptions<T>): R;
63
+ (key: string, options?: CombinedOptions<T>): R;
64
+ (props: TranslateProps<T>): R;
65
+ };
66
+ export declare type WrapperWrapProps = Pick<TranslatePropsInternal, 'key' | 'params' | 'defaultValue' | 'ns' | 'translation'>;
67
+ export declare type WrapperWrapFunction = (props: WrapperWrapProps) => string;
68
+ export declare type WrapperUnwrapFunction = (text: string) => Unwrapped;
69
+ export declare type WrapperAttributeXPathGetter = (props: {
70
+ tag: string;
71
+ attribute: string;
72
+ }) => string;
73
+ export declare type WrapperInterface = {
74
+ unwrap: WrapperUnwrapFunction;
75
+ wrap: WrapperWrapFunction;
76
+ getTextXPath: () => string;
77
+ getAttributeXPath: WrapperAttributeXPathGetter;
78
+ };
79
+ export declare type FormatterInterfaceFormatParams = {
80
+ translation: string;
81
+ language: string;
82
+ params: Record<string, any> | undefined;
83
+ };
84
+ export declare type FormatterInterface = {
85
+ format: (props: FormatterInterfaceFormatParams) => string;
67
86
  };
68
- export declare type TranslationTags<T> = string | T[];
69
- export declare type NodeWithMeta = Node & {
70
- _tolgee: NodeMeta;
87
+ export declare type FinalFormatterInterface = {
88
+ format: (props: FormatterInterfaceFormatParams) => any;
71
89
  };
72
- export declare type NodeWithLock = Node & {
73
- _tolgee: NodeLock;
90
+ export declare type ObserverProps = {
91
+ translate: (params: TranslatePropsInternal) => string;
92
+ onClick: TranslationOnClick;
74
93
  };
75
- export declare type ElementWithMeta = Element & ElementCSSInlineStyle & {
76
- _tolgee: ElementMeta;
94
+ export declare type HighlightInterface = (key?: string, ns?: FallbackNSTranslation) => {
95
+ unhighlight(): void;
96
+ };
97
+ export declare type ObserverRunProps = {
98
+ mouseHighlight: boolean;
99
+ };
100
+ export declare type ObserverInterface = (props: ObserverProps) => {
101
+ unwrap: (text: string) => Unwrapped;
102
+ wrap: WrapperWrapFunction;
103
+ retranslate: () => void;
104
+ stop: () => void;
105
+ run: (props: ObserverRunProps) => void;
106
+ highlight: HighlightInterface;
107
+ outputNotFormattable: boolean;
108
+ };
109
+ export declare type LanguageDetectorProps = {
110
+ availableLanguages: string[];
111
+ };
112
+ export declare type LanguageDetectorInterface = {
113
+ getLanguage: (props: LanguageDetectorProps) => string | undefined | Promise<string | undefined>;
114
+ };
115
+ export declare type LanguageStorageInterface = {
116
+ getLanguage: () => string | undefined | Promise<string | undefined>;
117
+ setLanguage: (language: string) => void | Promise<void>;
118
+ };
119
+ export declare type BackendDevProps = {
120
+ apiUrl?: string;
121
+ apiKey?: string;
122
+ projectId?: number;
123
+ };
124
+ export declare type BackendGetRecordProps = {
125
+ language: string;
126
+ namespace?: string;
127
+ };
128
+ export declare type BackendGetRecord = (data: BackendGetRecordProps) => Promise<TreeTranslationsData | undefined> | undefined;
129
+ export interface BackendInterface {
130
+ getRecord: BackendGetRecord;
131
+ }
132
+ export declare type BackendGetDevRecord = (data: BackendGetRecordProps & BackendDevProps) => Promise<TreeTranslationsData | undefined> | undefined;
133
+ export declare type BackendDevInterface = {
134
+ getRecord: BackendGetDevRecord;
135
+ };
136
+ export declare type TolgeeEvent = 'pendingLanguage' | 'language' | 'key' | 'loading' | 'fetching' | 'initialLoad' | 'running' | 'cache' | 'keyUpdate';
137
+ export declare type TolgeeOn = {
138
+ (event: 'pendingLanguage', handler: ListenerHandler<string>): Listener;
139
+ (event: 'language', handler: ListenerHandler<string>): Listener;
140
+ (event: 'key', handler: ListenerHandler<string>): Listener;
141
+ (event: 'loading', handler: ListenerHandler<boolean>): Listener;
142
+ (event: 'fetching', handler: ListenerHandler<boolean>): Listener;
143
+ (event: 'initialLoad', handler: ListenerHandler<void>): Listener;
144
+ (event: 'running', handler: ListenerHandler<boolean>): Listener;
145
+ (event: 'keyUpdate', handler: ListenerHandler<void>): Listener;
146
+ (event: TolgeeEvent, handler: ListenerHandler<any>): Listener;
147
+ };
148
+ export declare type TolgeeInstance = Readonly<{
149
+ on: TolgeeOn;
150
+ onKeyUpdate: (handler: ListenerHandler<void>) => ListenerSelective;
151
+ use: (plugin: TolgeePlugin | undefined) => TolgeeInstance;
152
+ getLanguage: () => string | undefined;
153
+ getPendingLanguage: () => string | undefined;
154
+ changeLanguage: (language: string) => Promise<void>;
155
+ changeTranslation: ChangeTranslationInterface;
156
+ addActiveNs: (ns: FallbackNSTranslation, forget?: boolean) => Promise<void>;
157
+ removeActiveNs: (ns: FallbackNSTranslation) => void;
158
+ loadRecords: (descriptors: CacheDescriptor[]) => Promise<TranslationsFlat[]>;
159
+ loadRecord: (descriptors: CacheDescriptor) => Promise<TranslationsFlat>;
160
+ addStaticData: (data: Options['staticData']) => void;
161
+ getRecord: (descriptor: CacheDescriptorInternal) => TranslationsFlat | undefined;
162
+ getAllRecords: () => CachePublicRecord[];
163
+ isInitialLoading: () => boolean;
164
+ isLoading: (ns?: FallbackNSTranslation) => boolean;
165
+ isLoaded: (ns?: FallbackNSTranslation) => boolean;
166
+ isFetching: (ns?: FallbackNSTranslation) => boolean;
167
+ isRunning: () => boolean;
168
+ highlight: HighlightInterface;
169
+ getInitialOptions: () => Options;
170
+ isDev: () => boolean;
171
+ init: (options: Partial<Options>) => TolgeeInstance;
172
+ run: () => Promise<void>;
173
+ stop: () => void;
174
+ t: (props: TranslatePropsInternal) => string;
175
+ wrap: (params: TranslatePropsInternal) => string | undefined;
176
+ unwrap: (text: string) => Unwrapped;
177
+ }>;
178
+ export declare type PluginServicePublic = Readonly<{
179
+ setFinalFormatter: (formatter: FinalFormatterInterface | undefined) => void;
180
+ addFormatter: (formatter: FormatterInterface | undefined) => void;
181
+ setObserver: (observer: ObserverInterface | undefined) => void;
182
+ getObserver: () => ReturnType<ObserverInterface> | undefined;
183
+ setUi: (ui: UiLibInterface | undefined) => void;
184
+ getUi: () => UiConstructor | undefined;
185
+ addBackend: (backend: BackendInterface | undefined) => void;
186
+ setDevBackend: (backend: BackendInterface | undefined) => void;
187
+ setLanguageDetector: (languageDetector: LanguageDetectorInterface | undefined) => void;
188
+ setLanguageStorage: (languageStorage: LanguageStorageInterface | undefined) => void;
189
+ }>;
190
+ export declare type NodeMeta = {
191
+ oldTextContent: string;
192
+ keys: KeyAndParams[];
193
+ keyAttributeOnly?: boolean;
77
194
  };
78
195
  export declare type ElementMeta = {
79
196
  wrappedWithElementOnlyKey?: string;
80
197
  wrappedWithElementOnlyDefaultHtml?: string;
81
- nodes: Set<NodeWithMeta>;
198
+ nodes: Map<Node, NodeMeta>;
82
199
  highlightEl?: HTMLDivElement;
83
200
  highlight?: () => void;
84
201
  unhighlight?: () => void;
@@ -94,30 +211,64 @@ export declare type ElementMeta = {
94
211
  */
95
212
  preventClean?: boolean;
96
213
  };
97
- export declare type NodeMeta = {
98
- oldTextContent: string;
99
- keys: KeyAndParamsTags<any>[];
100
- } & NodeLock;
101
- export declare type NodeLock = {
102
- locked?: boolean;
214
+ export declare type ChangeTranslationInterface = (descriptor: CacheDescriptor, key: string, value: string) => {
215
+ revert: () => void;
103
216
  };
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>[];
217
+ export declare type UiProps = {
218
+ apiUrl: string;
219
+ apiKey: string;
220
+ highlight: HighlightInterface;
221
+ changeTranslation: ChangeTranslationInterface;
109
222
  };
110
- export interface Formatter {
111
- format: FormatFunction;
112
- }
113
- interface FormatterStatic {
114
- type: 'formatter';
115
- new (): Formatter;
223
+ export interface UiInterface {
224
+ handleElementClick(event: MouseEvent, keysAndDefaults: UiKeyOption[]): Promise<void>;
116
225
  }
117
- export declare type TolgeeModule = FormatterStatic;
118
- export declare type FormatFunction = (props: {
119
- translation: string;
120
- params: Record<string, any>;
226
+ export declare type UiConstructor = new (props: UiProps) => UiInterface;
227
+ export declare type UiLibInterface = {
228
+ UI: UiConstructor;
229
+ };
230
+ export declare type UiType = UiConstructor | UiLibInterface;
231
+ export declare type UiKeyOption = {
232
+ key: string;
233
+ defaultValue?: string;
234
+ ns: string[];
235
+ translation: string | undefined;
236
+ };
237
+ export declare type KeyWithDefault = {
238
+ key: string;
239
+ defaultValue?: string;
240
+ ns: FallbackNSTranslation;
241
+ };
242
+ export declare type TranslationOnClick = (event: MouseEvent, data: {
243
+ keysAndDefaults: KeyWithDefault[];
244
+ el: Element;
245
+ meta: ElementMeta;
246
+ }) => void;
247
+ export declare type Listener = {
248
+ unsubscribe: () => void;
249
+ };
250
+ export declare type KeyDescriptorInternal = {
251
+ key?: string;
252
+ ns?: string[] | undefined;
253
+ };
254
+ export declare type KeyDescriptor = {
255
+ key: string;
256
+ ns?: string | string[];
257
+ };
258
+ export declare type ListenerSelective = {
259
+ unsubscribe: () => void;
260
+ subscribeNs: (ns: FallbackNSTranslation) => ListenerSelective;
261
+ unsubscribeNs: (ns: FallbackNSTranslation) => ListenerSelective;
262
+ subscribeKey: (descriptor: KeyDescriptor) => ListenerSelective;
263
+ unsubscribeKey: (descriptor: KeyDescriptor) => ListenerSelective;
264
+ };
265
+ export declare type ListenerHandlerEvent<T> = {
266
+ value: T;
267
+ };
268
+ export declare type ListenerHandler<T> = (e: ListenerHandlerEvent<T>) => void;
269
+ export declare type TolgeePlugin = (tolgee: TolgeeInstance, tools: PluginServicePublic) => TolgeeInstance;
270
+ export declare type CachePublicRecord = {
271
+ data: TranslationsFlat;
121
272
  language: string;
122
- }) => string | any[];
123
- export {};
273
+ namespace: string;
274
+ };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@tolgee/core",
3
- "version": "4.9.2",
3
+ "version": "5.0.0-rc.0b3e627.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": "f5584ce9d50b1c54351a66c5b3f03477fadfc09e"
74
65
  }