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