@tolgee/core 3.0.0 → 3.1.3

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 (158) hide show
  1. package/dist/tolgee.cjs.js +169 -149
  2. package/dist/tolgee.cjs.js.map +1 -1
  3. package/dist/tolgee.cjs.min.js +1 -1
  4. package/dist/tolgee.cjs.min.js.map +1 -1
  5. package/dist/tolgee.esm.js +1 -1
  6. package/dist/tolgee.esm.js.map +1 -1
  7. package/dist/tolgee.umd.js +169 -149
  8. package/dist/tolgee.umd.js.map +1 -1
  9. package/dist/tolgee.umd.min.js +1 -1
  10. package/dist/tolgee.umd.min.js.map +1 -1
  11. package/lib/Constants/Global.d.ts +0 -0
  12. package/lib/Constants/Global.js +0 -0
  13. package/lib/Constants/Global.js.map +0 -0
  14. package/lib/Constants/ModifierKey.d.ts +0 -0
  15. package/lib/Constants/ModifierKey.js +0 -0
  16. package/lib/Constants/ModifierKey.js.map +0 -0
  17. package/lib/Errors/ApiHttpError.d.ts +0 -0
  18. package/lib/Errors/ApiHttpError.js +0 -0
  19. package/lib/Errors/ApiHttpError.js.map +0 -0
  20. package/lib/Observer.d.ts +0 -0
  21. package/lib/Observer.js +0 -0
  22. package/lib/Observer.js.map +0 -0
  23. package/lib/Properties.d.ts +0 -0
  24. package/lib/Properties.js +0 -0
  25. package/lib/Properties.js.map +0 -0
  26. package/lib/Tolgee.d.ts +37 -8
  27. package/lib/Tolgee.js +87 -60
  28. package/lib/Tolgee.js.map +1 -1
  29. package/lib/TolgeeConfig.d.ts +0 -0
  30. package/lib/TolgeeConfig.js +0 -0
  31. package/lib/TolgeeConfig.js.map +0 -0
  32. package/lib/helpers/NodeHelper.d.ts +0 -0
  33. package/lib/helpers/NodeHelper.js +0 -0
  34. package/lib/helpers/NodeHelper.js.map +0 -0
  35. package/lib/helpers/TextHelper.d.ts +0 -0
  36. package/lib/helpers/TextHelper.js +0 -0
  37. package/lib/helpers/TextHelper.js.map +0 -0
  38. package/lib/helpers/commonTypes.d.ts +0 -0
  39. package/lib/helpers/commonTypes.js +0 -0
  40. package/lib/helpers/commonTypes.js.map +0 -0
  41. package/lib/helpers/encoderPolyfill.d.ts +0 -0
  42. package/lib/helpers/encoderPolyfill.js +0 -0
  43. package/lib/helpers/encoderPolyfill.js.map +0 -0
  44. package/lib/helpers/secret.d.ts +0 -0
  45. package/lib/helpers/secret.js +0 -0
  46. package/lib/helpers/secret.js.map +0 -0
  47. package/lib/helpers/sleep.d.ts +0 -0
  48. package/lib/helpers/sleep.js +0 -0
  49. package/lib/helpers/sleep.js.map +0 -0
  50. package/lib/highlighter/HighlightFunctionsInitializer.d.ts +0 -0
  51. package/lib/highlighter/HighlightFunctionsInitializer.js +0 -0
  52. package/lib/highlighter/HighlightFunctionsInitializer.js.map +0 -0
  53. package/lib/highlighter/MouseEventHandler.d.ts +0 -0
  54. package/lib/highlighter/MouseEventHandler.js +0 -0
  55. package/lib/highlighter/MouseEventHandler.js.map +0 -0
  56. package/lib/highlighter/TranslationHighlighter.d.ts +0 -0
  57. package/lib/highlighter/TranslationHighlighter.js +0 -0
  58. package/lib/highlighter/TranslationHighlighter.js.map +0 -0
  59. package/lib/index.d.ts +0 -0
  60. package/lib/index.js +0 -0
  61. package/lib/index.js.map +0 -0
  62. package/lib/modules/IcuFormatter.d.ts +0 -0
  63. package/lib/modules/IcuFormatter.js +0 -0
  64. package/lib/modules/IcuFormatter.js.map +0 -0
  65. package/lib/modules/index.d.ts +0 -0
  66. package/lib/modules/index.js +0 -0
  67. package/lib/modules/index.js.map +0 -0
  68. package/lib/services/ApiHttpService.d.ts +0 -0
  69. package/lib/services/ApiHttpService.js +0 -0
  70. package/lib/services/ApiHttpService.js.map +0 -0
  71. package/lib/services/CoreService.d.ts +1 -0
  72. package/lib/services/CoreService.js +18 -0
  73. package/lib/services/CoreService.js.map +1 -1
  74. package/lib/services/DependencyService.d.ts +0 -0
  75. package/lib/services/DependencyService.js +0 -0
  76. package/lib/services/DependencyService.js.map +0 -0
  77. package/lib/services/ElementRegistrar.d.ts +0 -0
  78. package/lib/services/ElementRegistrar.js +0 -0
  79. package/lib/services/ElementRegistrar.js.map +0 -0
  80. package/lib/services/EventEmitter.d.ts +0 -0
  81. package/lib/services/EventEmitter.js +0 -0
  82. package/lib/services/EventEmitter.js.map +0 -0
  83. package/lib/services/EventService.d.ts +0 -0
  84. package/lib/services/EventService.js +0 -0
  85. package/lib/services/EventService.js.map +0 -0
  86. package/lib/services/ModuleService.d.ts +0 -0
  87. package/lib/services/ModuleService.js +0 -0
  88. package/lib/services/ModuleService.js.map +0 -0
  89. package/lib/services/ScreenshotService.d.ts +0 -0
  90. package/lib/services/ScreenshotService.js +0 -0
  91. package/lib/services/ScreenshotService.js.map +0 -0
  92. package/lib/services/Subscription.d.ts +0 -0
  93. package/lib/services/Subscription.js +0 -0
  94. package/lib/services/Subscription.js.map +0 -0
  95. package/lib/services/TextService.d.ts +0 -0
  96. package/lib/services/TextService.js +0 -0
  97. package/lib/services/TextService.js.map +0 -0
  98. package/lib/services/TranslationService.d.ts +2 -2
  99. package/lib/services/TranslationService.js +12 -10
  100. package/lib/services/TranslationService.js.map +1 -1
  101. package/lib/toolsManager/Messages.d.ts +0 -0
  102. package/lib/toolsManager/Messages.js +0 -0
  103. package/lib/toolsManager/Messages.js.map +0 -0
  104. package/lib/toolsManager/PluginManager.d.ts +0 -0
  105. package/lib/toolsManager/PluginManager.js +0 -0
  106. package/lib/toolsManager/PluginManager.js.map +0 -0
  107. package/lib/types/DTOs.d.ts +0 -0
  108. package/lib/types/DTOs.js +0 -0
  109. package/lib/types/DTOs.js.map +0 -0
  110. package/lib/types/apiSchema.generated.d.ts +0 -0
  111. package/lib/types/apiSchema.generated.js +0 -0
  112. package/lib/types/apiSchema.generated.js.map +0 -0
  113. package/lib/types.d.ts +0 -0
  114. package/lib/types.js +0 -0
  115. package/lib/types.js.map +0 -0
  116. package/lib/wrappers/AbstractWrapper.d.ts +1 -1
  117. package/lib/wrappers/AbstractWrapper.js +0 -0
  118. package/lib/wrappers/AbstractWrapper.js.map +0 -0
  119. package/lib/wrappers/NodeHandler.d.ts +0 -0
  120. package/lib/wrappers/NodeHandler.js +0 -0
  121. package/lib/wrappers/NodeHandler.js.map +0 -0
  122. package/lib/wrappers/WrappedHandler.d.ts +0 -0
  123. package/lib/wrappers/WrappedHandler.js +0 -0
  124. package/lib/wrappers/WrappedHandler.js.map +0 -0
  125. package/lib/wrappers/invisible/AttributeHandler.d.ts +0 -0
  126. package/lib/wrappers/invisible/AttributeHandler.js +0 -0
  127. package/lib/wrappers/invisible/AttributeHandler.js.map +0 -0
  128. package/lib/wrappers/invisible/Coder.d.ts +1 -1
  129. package/lib/wrappers/invisible/Coder.js +18 -59
  130. package/lib/wrappers/invisible/Coder.js.map +1 -1
  131. package/lib/wrappers/invisible/ContentHandler.d.ts +0 -0
  132. package/lib/wrappers/invisible/ContentHandler.js +0 -0
  133. package/lib/wrappers/invisible/ContentHandler.js.map +0 -0
  134. package/lib/wrappers/invisible/CoreHandler.d.ts +0 -0
  135. package/lib/wrappers/invisible/CoreHandler.js +0 -0
  136. package/lib/wrappers/invisible/CoreHandler.js.map +0 -0
  137. package/lib/wrappers/invisible/InvisibleWrapper.d.ts +1 -1
  138. package/lib/wrappers/invisible/InvisibleWrapper.js +0 -0
  139. package/lib/wrappers/invisible/InvisibleWrapper.js.map +0 -0
  140. package/lib/wrappers/invisible/ValueMemory.d.ts +0 -0
  141. package/lib/wrappers/invisible/ValueMemory.js +0 -0
  142. package/lib/wrappers/invisible/ValueMemory.js.map +0 -0
  143. package/lib/wrappers/text/AttributeHandler.d.ts +0 -0
  144. package/lib/wrappers/text/AttributeHandler.js +0 -0
  145. package/lib/wrappers/text/AttributeHandler.js.map +0 -0
  146. package/lib/wrappers/text/Coder.d.ts +1 -1
  147. package/lib/wrappers/text/Coder.js +34 -92
  148. package/lib/wrappers/text/Coder.js.map +1 -1
  149. package/lib/wrappers/text/ContentHandler.d.ts +0 -0
  150. package/lib/wrappers/text/ContentHandler.js +0 -0
  151. package/lib/wrappers/text/ContentHandler.js.map +0 -0
  152. package/lib/wrappers/text/CoreHandler.d.ts +0 -0
  153. package/lib/wrappers/text/CoreHandler.js +0 -0
  154. package/lib/wrappers/text/CoreHandler.js.map +0 -0
  155. package/lib/wrappers/text/TextWrapper.d.ts +1 -1
  156. package/lib/wrappers/text/TextWrapper.js +0 -0
  157. package/lib/wrappers/text/TextWrapper.js.map +0 -0
  158. package/package.json +7 -6
@@ -503,7 +503,7 @@
503
503
  });
504
504
  }
505
505
  };
506
- TranslationService.prototype.getChachedTranslations = function () {
506
+ TranslationService.prototype.getCachedTranslations = function () {
507
507
  return this.translationsCache;
508
508
  };
509
509
  TranslationService.prototype.loadTranslations = function (lang) {
@@ -523,7 +523,7 @@
523
523
  _a.label = 2;
524
524
  case 2:
525
525
  this.fetchPromises[lang] = undefined;
526
- return [2 /*return*/];
526
+ return [2 /*return*/, this.translationsCache.get(lang)];
527
527
  }
528
528
  });
529
529
  });
@@ -764,23 +764,25 @@
764
764
  var data, e_4;
765
765
  return __generator(this, function (_a) {
766
766
  switch (_a.label) {
767
- case 0:
768
- this.coreService.checkScope('translations.view');
769
- _a.label = 1;
767
+ case 0: return [4 /*yield*/, this.coreService.loadApiKeyDetails()];
770
768
  case 1:
771
- _a.trys.push([1, 3, , 4]);
772
- return [4 /*yield*/, this.apiHttpService.fetchJson("v2/projects/translations/".concat(language))];
769
+ _a.sent();
770
+ this.coreService.checkScope('translations.view');
771
+ _a.label = 2;
773
772
  case 2:
773
+ _a.trys.push([2, 4, , 5]);
774
+ return [4 /*yield*/, this.apiHttpService.fetchJson("v2/projects/translations/".concat(language))];
775
+ case 3:
774
776
  data = _a.sent();
775
777
  this.setLanguageData(language, data[language] || {});
776
- return [3 /*break*/, 4];
777
- case 3:
778
+ return [3 /*break*/, 5];
779
+ case 4:
778
780
  e_4 = _a.sent();
779
781
  // eslint-disable-next-line no-console
780
782
  console.error('Error while fetching localization data from API.', e_4);
781
783
  this.setEmptyLanguageData(language);
782
784
  return [2 /*return*/];
783
- case 4: return [2 /*return*/];
785
+ case 5: return [2 /*return*/];
784
786
  }
785
787
  });
786
788
  });
@@ -1577,6 +1579,24 @@
1577
1579
  throw new Error("Api key not permitted to do this, please add 'translations.view' scope.");
1578
1580
  }
1579
1581
  };
1582
+ CoreService.prototype.loadApiKeyDetails = function () {
1583
+ return __awaiter(this, void 0, void 0, function () {
1584
+ var details;
1585
+ return __generator(this, function (_a) {
1586
+ switch (_a.label) {
1587
+ case 0:
1588
+ if (!(this.properties.scopes === undefined)) return [3 /*break*/, 2];
1589
+ return [4 /*yield*/, this.getApiKeyDetails()];
1590
+ case 1:
1591
+ details = _a.sent();
1592
+ this.properties.scopes = details.scopes;
1593
+ this.properties.projectId = details.projectId;
1594
+ _a.label = 2;
1595
+ case 2: return [2 /*return*/];
1596
+ }
1597
+ });
1598
+ });
1599
+ };
1580
1600
  return CoreService;
1581
1601
  }());
1582
1602
 
@@ -2226,51 +2246,39 @@
2226
2246
  return result;
2227
2247
  };
2228
2248
  Coder.prototype.unwrap = function (text) {
2229
- return __awaiter(this, void 0, void 0, function () {
2230
- var matchRegexp, keysAndParams, matched, match, start, result, pre, _a, fullMatch, wrapped, unwrapped, index, input, translated;
2231
- return __generator(this, function (_b) {
2232
- switch (_b.label) {
2233
- case 0:
2234
- matchRegexp = new RegExp(this.rawUnWrapRegex, 'gs');
2235
- keysAndParams = [];
2236
- matched = false;
2237
- start = 0;
2238
- result = '';
2239
- _b.label = 1;
2240
- case 1:
2241
- if (!((match = matchRegexp.exec(text)) !== null)) return [3 /*break*/, 3];
2242
- pre = match[1];
2243
- _a = __read(match, 4), fullMatch = _a[0], wrapped = _a[2], unwrapped = _a[3];
2244
- index = match.index, input = match.input;
2245
- result += input.substr(start, index - start);
2246
- start = index + fullMatch.length;
2247
- if (pre === '\\') {
2248
- if (!TextHelper.isCharEscaped(index, text)) {
2249
- result += wrapped;
2250
- return [3 /*break*/, 1];
2251
- }
2252
- pre = '';
2253
- }
2254
- return [4 /*yield*/, this.getTranslatedWithMetadata(unwrapped)];
2255
- case 2:
2256
- translated = _b.sent();
2257
- keysAndParams.push({
2258
- key: translated.key,
2259
- params: translated.params,
2260
- defaultValue: translated.defaultValue,
2261
- });
2262
- matched = true;
2263
- result += pre + translated.translated;
2264
- return [3 /*break*/, 1];
2265
- case 3:
2266
- result += text.substring(start);
2267
- if (matched) {
2268
- return [2 /*return*/, { text: result, keys: keysAndParams }];
2269
- }
2270
- return [2 /*return*/, undefined];
2249
+ var matchRegexp = new RegExp(this.rawUnWrapRegex, 'gs');
2250
+ var keysAndParams = [];
2251
+ var matched = false;
2252
+ var match;
2253
+ var start = 0;
2254
+ var result = '';
2255
+ while ((match = matchRegexp.exec(text)) !== null) {
2256
+ var pre = match[1];
2257
+ var _a = __read(match, 4), fullMatch = _a[0]; _a[1]; var wrapped = _a[2], unwrapped = _a[3];
2258
+ var index = match.index, input = match.input;
2259
+ result += input.substr(start, index - start);
2260
+ start = index + fullMatch.length;
2261
+ if (pre === '\\') {
2262
+ if (!TextHelper.isCharEscaped(index, text)) {
2263
+ result += wrapped;
2264
+ continue;
2271
2265
  }
2266
+ pre = '';
2267
+ }
2268
+ var translated = this.getTranslatedWithMetadata(unwrapped);
2269
+ keysAndParams.push({
2270
+ key: translated.key,
2271
+ params: translated.params,
2272
+ defaultValue: translated.defaultValue,
2272
2273
  });
2273
- });
2274
+ matched = true;
2275
+ result += pre + translated.translated;
2276
+ }
2277
+ result += text.substring(start);
2278
+ if (matched) {
2279
+ return { text: result, keys: keysAndParams };
2280
+ }
2281
+ return undefined;
2274
2282
  };
2275
2283
  Coder.prototype.wrap = function (key, params, defaultValue) {
2276
2284
  var _this = this;
@@ -2287,19 +2295,9 @@
2287
2295
  return "".concat(this.properties.config.inputPrefix).concat(this.escapeParam(key)).concat(defaultString).concat(paramString).concat(this.properties.config.inputSuffix);
2288
2296
  };
2289
2297
  Coder.prototype.getTranslatedWithMetadata = function (text) {
2290
- return __awaiter(this, void 0, void 0, function () {
2291
- var _a, key, params, defaultValue, translated;
2292
- return __generator(this, function (_b) {
2293
- switch (_b.label) {
2294
- case 0:
2295
- _a = Coder.parseUnwrapped(text), key = _a.key, params = _a.params, defaultValue = _a.defaultValue;
2296
- return [4 /*yield*/, this.textService.translate(key, params, undefined, false, defaultValue)];
2297
- case 1:
2298
- translated = _b.sent();
2299
- return [2 /*return*/, { translated: translated, key: key, params: params, defaultValue: defaultValue }];
2300
- }
2301
- });
2302
- });
2298
+ var _a = Coder.parseUnwrapped(text), key = _a.key, params = _a.params, defaultValue = _a.defaultValue;
2299
+ var translated = this.textService.instant(key, params, undefined, false, defaultValue);
2300
+ return { translated: translated, key: key, params: params, defaultValue: defaultValue };
2303
2301
  };
2304
2302
  return Coder;
2305
2303
  }());
@@ -2734,31 +2732,26 @@
2734
2732
  this.defaultMemory = new ValueMemory();
2735
2733
  }
2736
2734
  Coder.prototype.unwrap = function (text) {
2737
- return __awaiter(this, void 0, void 0, function () {
2738
- var keysAndParams, messages, result;
2739
- var _this = this;
2740
- return __generator(this, function (_a) {
2741
- keysAndParams = [];
2742
- messages = decodeFromText(text);
2743
- messages.forEach(function (msg) {
2744
- var _a = __read(stringToCodePoints(msg), 2), keyCode = _a[0], defaultCode = _a[1];
2745
- var key = _this.keyMemory.numberToValue(keyCode);
2746
- var defaultValue = defaultCode !== undefined
2747
- ? _this.defaultMemory.numberToValue(defaultCode)
2748
- : undefined;
2749
- keysAndParams.push({
2750
- key: key,
2751
- params: undefined,
2752
- defaultValue: defaultValue,
2753
- });
2754
- });
2755
- result = removeSecrets(text);
2756
- if (keysAndParams.length) {
2757
- return [2 /*return*/, { text: result, keys: keysAndParams }];
2758
- }
2759
- return [2 /*return*/, undefined];
2735
+ var _this = this;
2736
+ var keysAndParams = [];
2737
+ var messages = decodeFromText(text);
2738
+ messages.forEach(function (msg) {
2739
+ var _a = __read(stringToCodePoints(msg), 2), keyCode = _a[0], defaultCode = _a[1];
2740
+ var key = _this.keyMemory.numberToValue(keyCode);
2741
+ var defaultValue = defaultCode !== undefined
2742
+ ? _this.defaultMemory.numberToValue(defaultCode)
2743
+ : undefined;
2744
+ keysAndParams.push({
2745
+ key: key,
2746
+ params: undefined,
2747
+ defaultValue: defaultValue,
2760
2748
  });
2761
2749
  });
2750
+ var result = removeSecrets(text);
2751
+ if (keysAndParams.length) {
2752
+ return { text: result, keys: keysAndParams };
2753
+ }
2754
+ return undefined;
2762
2755
  };
2763
2756
  Coder.prototype.wrap = function (key, _params, defaultValue, translation) {
2764
2757
  if (defaultValue === void 0) { defaultValue = undefined; }
@@ -2906,20 +2899,6 @@
2906
2899
  };
2907
2900
  this.dependencyService = new DependencyService();
2908
2901
  }
2909
- Tolgee.use = function (module) {
2910
- return new Tolgee().use(module);
2911
- };
2912
- Tolgee.init = function (config) {
2913
- return new Tolgee().init(config);
2914
- };
2915
- Tolgee.prototype.use = function (module) {
2916
- this.dependencyService.moduleService.addModule(module);
2917
- return this;
2918
- };
2919
- Tolgee.prototype.init = function (config) {
2920
- this.dependencyService.init(config);
2921
- return this;
2922
- };
2923
2902
  Object.defineProperty(Tolgee.prototype, "properties", {
2924
2903
  get: function () {
2925
2904
  return this.dependencyService.properties;
@@ -2927,28 +2906,26 @@
2927
2906
  enumerable: false,
2928
2907
  configurable: true
2929
2908
  });
2930
- Object.defineProperty(Tolgee.prototype, "translationService", {
2931
- get: function () {
2932
- return this.dependencyService.translationService;
2933
- },
2934
- enumerable: false,
2935
- configurable: true
2936
- });
2937
- Object.defineProperty(Tolgee.prototype, "coreService", {
2938
- get: function () {
2939
- return this.dependencyService.coreService;
2940
- },
2941
- enumerable: false,
2942
- configurable: true
2943
- });
2944
2909
  Object.defineProperty(Tolgee.prototype, "lang", {
2945
2910
  get: function () {
2946
2911
  return this.properties.currentLanguage;
2947
2912
  },
2948
- set: function (value) {
2949
- this.properties.currentLanguage = value;
2950
- this.dependencyService.eventService
2951
- .LANGUAGE_CHANGED.emit(value);
2913
+ /**
2914
+ * This sets a new language.
2915
+ *
2916
+ * Using this setter can behave buggy when you change languages
2917
+ * too fast, since it changes the language property before
2918
+ * translations are actually loaded.
2919
+ * @deprecated use asynchronous changeLanguage method.
2920
+ */
2921
+ set: function (newLanguage) {
2922
+ var _this = this;
2923
+ this.properties.currentLanguage = newLanguage;
2924
+ this.dependencyService.translationService
2925
+ .loadTranslations(newLanguage)
2926
+ .then(function () {
2927
+ _this.emitLangChangeEvent(newLanguage);
2928
+ });
2952
2929
  },
2953
2930
  enumerable: false,
2954
2931
  configurable: true
@@ -2975,6 +2952,10 @@
2975
2952
  configurable: true
2976
2953
  });
2977
2954
  Object.defineProperty(Tolgee.prototype, "onLangLoaded", {
2955
+ /**
2956
+ * Is emitted when language translations are loaded for the first time.
2957
+ * It is not emitted when language is changed and translations were loaded before.
2958
+ */
2978
2959
  get: function () {
2979
2960
  return this.dependencyService.eventService.LANGUAGE_LOADED;
2980
2961
  },
@@ -3006,6 +2987,49 @@
3006
2987
  enumerable: false,
3007
2988
  configurable: true
3008
2989
  });
2990
+ Object.defineProperty(Tolgee.prototype, "coreService", {
2991
+ get: function () {
2992
+ return this.dependencyService.coreService;
2993
+ },
2994
+ enumerable: false,
2995
+ configurable: true
2996
+ });
2997
+ Tolgee.use = function (module) {
2998
+ return new Tolgee().use(module);
2999
+ };
3000
+ Tolgee.init = function (config) {
3001
+ return new Tolgee().init(config);
3002
+ };
3003
+ /**
3004
+ * Sets the new language.
3005
+ *
3006
+ * Emits the onLangChange and onLangChangeAndLoad events after
3007
+ * the translations are loaded.
3008
+ *
3009
+ * @return Promise<void> Resolves when translations are loaded
3010
+ */
3011
+ Tolgee.prototype.changeLanguage = function (newLanguage) {
3012
+ return __awaiter(this, void 0, void 0, function () {
3013
+ return __generator(this, function (_a) {
3014
+ switch (_a.label) {
3015
+ case 0: return [4 /*yield*/, this.dependencyService.translationService.loadTranslations(newLanguage)];
3016
+ case 1:
3017
+ _a.sent();
3018
+ this.properties.currentLanguage = newLanguage;
3019
+ this.emitLangChangeEvent(newLanguage);
3020
+ return [2 /*return*/];
3021
+ }
3022
+ });
3023
+ });
3024
+ };
3025
+ Tolgee.prototype.use = function (module) {
3026
+ this.dependencyService.moduleService.addModule(module);
3027
+ return this;
3028
+ };
3029
+ Tolgee.prototype.init = function (config) {
3030
+ this.dependencyService.init(config);
3031
+ return this;
3032
+ };
3009
3033
  Tolgee.prototype.run = function () {
3010
3034
  return __awaiter(this, void 0, void 0, function () {
3011
3035
  return __generator(this, function (_a) {
@@ -3013,18 +3037,18 @@
3013
3037
  case 0:
3014
3038
  this.dependencyService.run();
3015
3039
  if (!(this.properties.config.mode === 'development')) return [3 /*break*/, 2];
3016
- return [4 /*yield*/, this.loadApiKeyDetails()];
3040
+ return [4 /*yield*/, this.coreService.loadApiKeyDetails()];
3017
3041
  case 1:
3018
3042
  _a.sent();
3019
3043
  _a.label = 2;
3020
- case 2: return [4 /*yield*/, this.translationService.loadTranslations()];
3044
+ case 2: return [4 /*yield*/, this.dependencyService.translationService.loadTranslations()];
3021
3045
  case 3:
3022
3046
  _a.sent();
3023
3047
  return [4 /*yield*/, this.dependencyService.pluginManager.run()];
3024
3048
  case 4:
3025
3049
  _a.sent();
3026
3050
  if (!this.properties.config.preloadFallback) return [3 /*break*/, 6];
3027
- return [4 /*yield*/, this.translationService.loadTranslations(this.properties.config.fallbackLanguage)];
3051
+ return [4 /*yield*/, this.dependencyService.translationService.loadTranslations(this.properties.config.fallbackLanguage)];
3028
3052
  case 5:
3029
3053
  _a.sent();
3030
3054
  _a.label = 6;
@@ -3067,18 +3091,15 @@
3067
3091
  props.defaultValue !== undefined ? props.defaultValue : defaultValue;
3068
3092
  orEmpty = props.orEmpty;
3069
3093
  }
3070
- if (!(this.properties.config.mode === 'development' && !noWrap)) return [3 /*break*/, 4];
3071
- return [4 /*yield*/, this.loadApiKeyDetails()];
3094
+ return [4 /*yield*/, this.dependencyService.textService.translate(key, params, undefined, orEmpty, defaultValue)];
3072
3095
  case 1:
3073
- _a.sent();
3074
- return [4 /*yield*/, this.translationService.loadTranslations()];
3096
+ translation = _a.sent();
3097
+ if (!(this.properties.config.mode === 'development' && !noWrap)) return [3 /*break*/, 3];
3098
+ return [4 /*yield*/, this.coreService.loadApiKeyDetails()];
3075
3099
  case 2:
3076
3100
  _a.sent();
3077
- return [4 /*yield*/, this.dependencyService.textService.translate(key, params, undefined, orEmpty, defaultValue)];
3078
- case 3:
3079
- translation = _a.sent();
3080
3101
  return [2 /*return*/, this.dependencyService.wrapper.wrap(key, params, defaultValue, translation)];
3081
- case 4: return [2 /*return*/, this.dependencyService.textService.translate(key, params, undefined, orEmpty, defaultValue)];
3102
+ case 3: return [2 /*return*/, translation];
3082
3103
  }
3083
3104
  });
3084
3105
  });
@@ -3111,23 +3132,22 @@
3111
3132
  }
3112
3133
  return translation;
3113
3134
  };
3114
- Tolgee.prototype.loadApiKeyDetails = function () {
3115
- return __awaiter(this, void 0, void 0, function () {
3116
- var details;
3117
- return __generator(this, function (_a) {
3118
- switch (_a.label) {
3119
- case 0:
3120
- if (!(this.properties.scopes === undefined)) return [3 /*break*/, 2];
3121
- return [4 /*yield*/, this.dependencyService.coreService.getApiKeyDetails()];
3122
- case 1:
3123
- details = _a.sent();
3124
- this.properties.scopes = details.scopes;
3125
- this.properties.projectId = details.projectId;
3126
- _a.label = 2;
3127
- case 2: return [2 /*return*/];
3128
- }
3129
- });
3130
- });
3135
+ /**
3136
+ * Get currently cached translations for all languages
3137
+ */
3138
+ Tolgee.prototype.getCachedTranslations = function () {
3139
+ return this.dependencyService.translationService.getCachedTranslations();
3140
+ };
3141
+ /**
3142
+ * Loads translations for given language or returns them from cache
3143
+ * @returns Loaded translations
3144
+ */
3145
+ Tolgee.prototype.loadTranslations = function (lang) {
3146
+ return this.dependencyService.translationService.loadTranslations(lang);
3147
+ };
3148
+ Tolgee.prototype.emitLangChangeEvent = function (value) {
3149
+ var langChangedEmitter = this.onLangChange;
3150
+ langChangedEmitter.emit(value);
3131
3151
  };
3132
3152
  return Tolgee;
3133
3153
  }());