generaltranslation 2.0.55 → 2.0.56

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 (57) hide show
  1. package/dist/{cjs/codes → codes}/codes.js +71 -67
  2. package/dist/{cjs/codes → codes}/getLanguageDirection.js +5 -5
  3. package/dist/index.js +228 -0
  4. package/dist/translation/_bundleTranslation.js +95 -0
  5. package/dist/translation/_intl.js +107 -0
  6. package/dist/translation/_translate.js +105 -0
  7. package/dist/translation/_translateReactChildren.js +107 -0
  8. package/dist/translation/_updateRemoteDictionary.js +83 -0
  9. package/package.json +7 -7
  10. package/dist/cjs/index.js +0 -143
  11. package/dist/cjs/translation/_bundleTranslation.js +0 -42
  12. package/dist/cjs/translation/_intl.js +0 -52
  13. package/dist/cjs/translation/_translate.js +0 -51
  14. package/dist/cjs/translation/_translateReactChildren.js +0 -56
  15. package/dist/cjs/translation/_updateRemoteDictionary.js +0 -30
  16. package/dist/mjs/codes/15924/CodeToScript.json +0 -215
  17. package/dist/mjs/codes/15924/ScriptToCode.json +0 -215
  18. package/dist/mjs/codes/3166/CodeToRegion.json +0 -296
  19. package/dist/mjs/codes/3166/RegionToCode.json +0 -296
  20. package/dist/mjs/codes/639-1/CodeToLanguage.json +0 -185
  21. package/dist/mjs/codes/639-1/LanguageToCode.json +0 -227
  22. package/dist/mjs/codes/639-3/CodeToLanguageTriletter.json +0 -186
  23. package/dist/mjs/codes/639-3/LanguageToCodeTriletter.json +0 -228
  24. package/dist/mjs/codes/codes.d.ts +0 -8
  25. package/dist/mjs/codes/codes.js +0 -305
  26. package/dist/mjs/codes/getLanguageDirection.d.ts +0 -1
  27. package/dist/mjs/codes/getLanguageDirection.js +0 -68
  28. package/dist/mjs/codes/predefined/Predefined.json +0 -28
  29. package/dist/mjs/index.d.ts +0 -153
  30. package/dist/mjs/index.js +0 -130
  31. package/dist/mjs/translation/_bundleTranslation.d.ts +0 -22
  32. package/dist/mjs/translation/_bundleTranslation.js +0 -39
  33. package/dist/mjs/translation/_intl.d.ts +0 -1
  34. package/dist/mjs/translation/_intl.js +0 -49
  35. package/dist/mjs/translation/_translate.d.ts +0 -1
  36. package/dist/mjs/translation/_translate.js +0 -48
  37. package/dist/mjs/translation/_translateReactChildren.d.ts +0 -1
  38. package/dist/mjs/translation/_translateReactChildren.js +0 -53
  39. package/dist/mjs/translation/_updateRemoteDictionary.d.ts +0 -17
  40. package/dist/mjs/translation/_updateRemoteDictionary.js +0 -27
  41. /package/dist/{cjs/codes → codes}/15924/CodeToScript.json +0 -0
  42. /package/dist/{cjs/codes → codes}/15924/ScriptToCode.json +0 -0
  43. /package/dist/{cjs/codes → codes}/3166/CodeToRegion.json +0 -0
  44. /package/dist/{cjs/codes → codes}/3166/RegionToCode.json +0 -0
  45. /package/dist/{cjs/codes → codes}/639-1/CodeToLanguage.json +0 -0
  46. /package/dist/{cjs/codes → codes}/639-1/LanguageToCode.json +0 -0
  47. /package/dist/{cjs/codes → codes}/639-3/CodeToLanguageTriletter.json +0 -0
  48. /package/dist/{cjs/codes → codes}/639-3/LanguageToCodeTriletter.json +0 -0
  49. /package/dist/{cjs/codes → codes}/codes.d.ts +0 -0
  50. /package/dist/{cjs/codes → codes}/getLanguageDirection.d.ts +0 -0
  51. /package/dist/{cjs/codes → codes}/predefined/Predefined.json +0 -0
  52. /package/dist/{cjs/index.d.ts → index.d.ts} +0 -0
  53. /package/dist/{cjs/translation → translation}/_bundleTranslation.d.ts +0 -0
  54. /package/dist/{cjs/translation → translation}/_intl.d.ts +0 -0
  55. /package/dist/{cjs/translation → translation}/_translate.d.ts +0 -0
  56. /package/dist/{cjs/translation → translation}/_translateReactChildren.d.ts +0 -0
  57. /package/dist/{cjs/translation → translation}/_updateRemoteDictionary.d.ts +0 -0
@@ -10,28 +10,28 @@ exports._getLanguageObject = _getLanguageObject;
10
10
  exports._isSameLanguage = _isSameLanguage;
11
11
  // ----- IMPORTS ----- //
12
12
  // Import modules for mapping ISO 639 codes to language names and vice versa
13
- const CodeToLanguage_json_1 = __importDefault(require("./639-1/CodeToLanguage.json"));
14
- const LanguageToCode_json_1 = __importDefault(require("./639-1/LanguageToCode.json"));
15
- const CodeToLanguage = CodeToLanguage_json_1.default;
16
- const LanguageToCode = LanguageToCode_json_1.default;
13
+ var CodeToLanguage_json_1 = __importDefault(require("./639-1/CodeToLanguage.json"));
14
+ var LanguageToCode_json_1 = __importDefault(require("./639-1/LanguageToCode.json"));
15
+ var CodeToLanguage = CodeToLanguage_json_1.default;
16
+ var LanguageToCode = LanguageToCode_json_1.default;
17
17
  // Import modules for mapping ISO 639-3 codes (for languages without two-letter codes)
18
- const CodeToLanguageTriletter_json_1 = __importDefault(require("./639-3/CodeToLanguageTriletter.json"));
19
- const LanguageToCodeTriletter_json_1 = __importDefault(require("./639-3/LanguageToCodeTriletter.json"));
20
- const CodeToLanguageTriletter = CodeToLanguageTriletter_json_1.default;
21
- const LanguageToCodeTriletter = LanguageToCodeTriletter_json_1.default;
18
+ var CodeToLanguageTriletter_json_1 = __importDefault(require("./639-3/CodeToLanguageTriletter.json"));
19
+ var LanguageToCodeTriletter_json_1 = __importDefault(require("./639-3/LanguageToCodeTriletter.json"));
20
+ var CodeToLanguageTriletter = CodeToLanguageTriletter_json_1.default;
21
+ var LanguageToCodeTriletter = LanguageToCodeTriletter_json_1.default;
22
22
  // Import module for mapping ISO 15924 script codes to script names
23
- const ScriptToCode_json_1 = __importDefault(require("./15924/ScriptToCode.json"));
24
- const CodeToScript_json_1 = __importDefault(require("./15924/CodeToScript.json"));
25
- const ScriptToCode = ScriptToCode_json_1.default;
26
- const CodeToScript = CodeToScript_json_1.default;
23
+ var ScriptToCode_json_1 = __importDefault(require("./15924/ScriptToCode.json"));
24
+ var CodeToScript_json_1 = __importDefault(require("./15924/CodeToScript.json"));
25
+ var ScriptToCode = ScriptToCode_json_1.default;
26
+ var CodeToScript = CodeToScript_json_1.default;
27
27
  // Import module for mapping ISO 3166 region codes to region names
28
- const RegionToCode_json_1 = __importDefault(require("./3166/RegionToCode.json"));
29
- const CodeToRegion_json_1 = __importDefault(require("./3166/CodeToRegion.json"));
30
- const RegionToCode = RegionToCode_json_1.default;
31
- const CodeToRegion = CodeToRegion_json_1.default;
28
+ var RegionToCode_json_1 = __importDefault(require("./3166/RegionToCode.json"));
29
+ var CodeToRegion_json_1 = __importDefault(require("./3166/CodeToRegion.json"));
30
+ var RegionToCode = RegionToCode_json_1.default;
31
+ var CodeToRegion = CodeToRegion_json_1.default;
32
32
  // Import predefined common regions
33
- const Predefined_json_1 = __importDefault(require("./predefined/Predefined.json"));
34
- const Predefined = Predefined_json_1.default;
33
+ var Predefined_json_1 = __importDefault(require("./predefined/Predefined.json"));
34
+ var Predefined = Predefined_json_1.default;
35
35
  // ----- VALIDITY CHECKS ----- //
36
36
  /**
37
37
  * Ensures correct capitalization and formatting of a language code.
@@ -42,17 +42,17 @@ const Predefined = Predefined_json_1.default;
42
42
  function _standardizeLanguageCode(code) {
43
43
  if (!_isValidLanguageCode(code))
44
44
  return '';
45
- const codeParts = code.split('-');
46
- let result = `${codeParts[0].toLowerCase()}`;
45
+ var codeParts = code.split('-');
46
+ var result = "".concat(codeParts[0].toLowerCase());
47
47
  if (codeParts[1]) {
48
48
  if (codeParts[1].length === 4) {
49
- result += `-${_capitalize(codeParts[1])}`;
49
+ result += "-".concat(_capitalize(codeParts[1]));
50
50
  if (codeParts[2] && codeParts[2].length === 2) {
51
- result += `-${codeParts[2].toUpperCase()}`;
51
+ result += "-".concat(codeParts[2].toUpperCase());
52
52
  }
53
53
  }
54
54
  else if (codeParts[1].length === 2) {
55
- result += `-${codeParts[1].toUpperCase()}`;
55
+ result += "-".concat(codeParts[1].toUpperCase());
56
56
  }
57
57
  }
58
58
  return result;
@@ -66,7 +66,7 @@ function _standardizeLanguageCode(code) {
66
66
  function _isValidLanguageCode(code) {
67
67
  if (!code || typeof code !== 'string')
68
68
  return false;
69
- const codeParts = code.split('-');
69
+ var codeParts = code.split('-');
70
70
  if (!_mapCodeToLanguage(codeParts[0]))
71
71
  return false;
72
72
  if (codeParts[1]) {
@@ -91,7 +91,7 @@ function _isValidLanguageCode(code) {
91
91
  * @param {string} code - The code to capitalize.
92
92
  * @returns {string} The capitalized code.
93
93
  */
94
- const _capitalize = (code) => {
94
+ var _capitalize = function (code) {
95
95
  if (code.length === 0)
96
96
  return code;
97
97
  return code.charAt(0).toUpperCase() + code.slice(1).toLowerCase();
@@ -102,12 +102,12 @@ const _capitalize = (code) => {
102
102
  * @param {string} code - The ISO 639 code.
103
103
  * @returns {string} The language name.
104
104
  */
105
- const _mapCodeToLanguage = (code) => {
106
- code = code?.toLowerCase();
107
- if (code?.length === 2) {
105
+ var _mapCodeToLanguage = function (code) {
106
+ code = code === null || code === void 0 ? void 0 : code.toLowerCase();
107
+ if ((code === null || code === void 0 ? void 0 : code.length) === 2) {
108
108
  return CodeToLanguage[code];
109
109
  }
110
- if (code?.length === 3) {
110
+ if ((code === null || code === void 0 ? void 0 : code.length) === 3) {
111
111
  return CodeToLanguageTriletter[code];
112
112
  }
113
113
  return '';
@@ -118,8 +118,8 @@ const _mapCodeToLanguage = (code) => {
118
118
  * @param {string} language - The language name.
119
119
  * @returns {string} BCP 47 language tag.
120
120
  */
121
- const _mapLanguageToCode = (language) => {
122
- language = language?.toLowerCase();
121
+ var _mapLanguageToCode = function (language) {
122
+ language = language === null || language === void 0 ? void 0 : language.toLowerCase();
123
123
  return LanguageToCode[language] || LanguageToCodeTriletter[language] || '';
124
124
  };
125
125
  /**
@@ -127,7 +127,7 @@ const _mapLanguageToCode = (language) => {
127
127
  * @param {string} code - The ISO 15924 code.
128
128
  * @returns {string} The script name.
129
129
  */
130
- const _mapCodeToScript = (code) => {
130
+ var _mapCodeToScript = function (code) {
131
131
  code = _capitalize(code);
132
132
  return CodeToScript[code] || '';
133
133
  };
@@ -136,8 +136,8 @@ const _mapCodeToScript = (code) => {
136
136
  * @param {string} script - The script name.
137
137
  * @returns {string} The ISO 15924 code.
138
138
  */
139
- const _mapScriptToCode = (script) => {
140
- script = script?.toLowerCase();
139
+ var _mapScriptToCode = function (script) {
140
+ script = script === null || script === void 0 ? void 0 : script.toLowerCase();
141
141
  return ScriptToCode[script] || '';
142
142
  };
143
143
  /**
@@ -145,8 +145,8 @@ const _mapScriptToCode = (script) => {
145
145
  * @param {string} code - The ISO 3166 code.
146
146
  * @returns {string} The region name.
147
147
  */
148
- const _mapCodeToRegion = (code) => {
149
- code = code?.toUpperCase();
148
+ var _mapCodeToRegion = function (code) {
149
+ code = code === null || code === void 0 ? void 0 : code.toUpperCase();
150
150
  return CodeToRegion[code] || '';
151
151
  };
152
152
  /**
@@ -154,8 +154,8 @@ const _mapCodeToRegion = (code) => {
154
154
  * @param {string} region - The region name.
155
155
  * @returns {string} The ISO 3166 code.
156
156
  */
157
- const _mapRegionToCode = (region) => {
158
- region = region?.toLowerCase();
157
+ var _mapRegionToCode = function (region) {
158
+ region = region === null || region === void 0 ? void 0 : region.toLowerCase();
159
159
  return RegionToCode[region] || '';
160
160
  };
161
161
  /**
@@ -169,11 +169,11 @@ function _getLanguageObject(codes) {
169
169
  * @param {string} code - The language code.
170
170
  * @returns {LanguageObject|null} The language object.
171
171
  */
172
- const _handleGetLanguageObject = (code) => {
172
+ var _handleGetLanguageObject = function (code) {
173
173
  if (!_isValidLanguageCode(code))
174
174
  return null;
175
- const codeParts = code.split('-');
176
- let languageObject = {
175
+ var codeParts = code.split('-');
176
+ var languageObject = {
177
177
  language: _mapCodeToLanguage(codeParts[0]),
178
178
  };
179
179
  if (codeParts[1]) {
@@ -196,7 +196,7 @@ const _handleGetLanguageObject = (code) => {
196
196
  * @returns {string|string[]} The language name(s).
197
197
  * @internal
198
198
  */
199
- const _getLanguageName = (codes) => {
199
+ var _getLanguageName = function (codes) {
200
200
  return Array.isArray(codes) ? codes.map(_handleGetLanguageName) : _handleGetLanguageName(codes);
201
201
  };
202
202
  exports._getLanguageName = _getLanguageName;
@@ -205,20 +205,20 @@ exports._getLanguageName = _getLanguageName;
205
205
  * @param {string} code - The language code.
206
206
  * @returns {string} The language name.
207
207
  */
208
- const _handleGetLanguageName = (code) => {
208
+ var _handleGetLanguageName = function (code) {
209
209
  if (!_isValidLanguageCode(code))
210
210
  return '';
211
211
  if (Predefined[code])
212
212
  return Predefined[code];
213
- const languageObject = _handleGetLanguageObject(code);
213
+ var languageObject = _handleGetLanguageObject(code);
214
214
  if (!languageObject)
215
215
  return '';
216
- let result = languageObject.language;
216
+ var result = languageObject.language;
217
217
  if (languageObject.script) {
218
- result += `, ${languageObject.script}`;
218
+ result += ", ".concat(languageObject.script);
219
219
  }
220
220
  if (languageObject.region) {
221
- result += `, ${languageObject.region}`;
221
+ result += ", ".concat(languageObject.region);
222
222
  }
223
223
  return result;
224
224
  };
@@ -229,7 +229,7 @@ const _handleGetLanguageName = (code) => {
229
229
  * @returns {string|string[]} The language code(s).
230
230
  * @internal
231
231
  */
232
- const _getLanguageCode = (languages) => {
232
+ var _getLanguageCode = function (languages) {
233
233
  return Array.isArray(languages) ? languages.map(_handleGetLanguageCode) : _handleGetLanguageCode(languages);
234
234
  };
235
235
  exports._getLanguageCode = _getLanguageCode;
@@ -238,7 +238,7 @@ exports._getLanguageCode = _getLanguageCode;
238
238
  * @param {string|LanguageObject} language - The language name or object.
239
239
  * @returns {string} The language code.
240
240
  */
241
- const _handleGetLanguageCode = (language) => {
241
+ var _handleGetLanguageCode = function (language) {
242
242
  if (typeof language === 'string')
243
243
  return _handleGetLanguageCodeFromString(language);
244
244
  return _handleGetLanguageCodeFromObject(language);
@@ -248,24 +248,24 @@ const _handleGetLanguageCode = (language) => {
248
248
  * @param {string} language - The language name.
249
249
  * @returns {string} The language code.
250
250
  */
251
- const _handleGetLanguageCodeFromString = (language) => {
252
- const subtagStrings = language.split(',').map(string => string.trim());
253
- let code = _mapLanguageToCode(subtagStrings[0]);
251
+ var _handleGetLanguageCodeFromString = function (language) {
252
+ var subtagStrings = language.split(',').map(function (string) { return string.trim(); });
253
+ var code = _mapLanguageToCode(subtagStrings[0]);
254
254
  if (code) {
255
255
  if (subtagStrings.length === 3) {
256
- code += `-${_mapScriptToCode(subtagStrings[1])}`;
257
- code += `-${_mapRegionToCode(subtagStrings[2])}`;
256
+ code += "-".concat(_mapScriptToCode(subtagStrings[1]));
257
+ code += "-".concat(_mapRegionToCode(subtagStrings[2]));
258
258
  }
259
259
  else if (subtagStrings.length === 2) {
260
- let tag = _mapScriptToCode(subtagStrings[1]);
260
+ var tag = _mapScriptToCode(subtagStrings[1]);
261
261
  if (!tag)
262
262
  tag = _mapRegionToCode(subtagStrings[1]);
263
263
  if (tag)
264
- code += `-${tag}`;
264
+ code += "-".concat(tag);
265
265
  }
266
266
  }
267
267
  if (!code) {
268
- for (const key in Predefined) {
268
+ for (var key in Predefined) {
269
269
  if (Predefined[key] === language) {
270
270
  return key;
271
271
  }
@@ -278,34 +278,38 @@ const _handleGetLanguageCodeFromString = (language) => {
278
278
  * @param {LanguageObject} languageObject - The language object.
279
279
  * @returns {string} The language code.
280
280
  */
281
- const _handleGetLanguageCodeFromObject = (languageObject) => {
282
- if (!languageObject?.language)
281
+ var _handleGetLanguageCodeFromObject = function (languageObject) {
282
+ if (!(languageObject === null || languageObject === void 0 ? void 0 : languageObject.language))
283
283
  return '';
284
- let code = languageObject.language.toLowerCase();
284
+ var code = languageObject.language.toLowerCase();
285
285
  if (languageObject.script) {
286
- code += `-${_capitalize(languageObject.script)}`;
286
+ code += "-".concat(_capitalize(languageObject.script));
287
287
  }
288
288
  if (languageObject.region) {
289
- code += `-${languageObject.region.toUpperCase()}`;
289
+ code += "-".concat(languageObject.region.toUpperCase());
290
290
  }
291
291
  return _isValidLanguageCode(code) ? code : '';
292
292
  };
293
293
  /**
294
294
  * @internal
295
295
  */
296
- function _isSameLanguage(...codes) {
296
+ function _isSameLanguage() {
297
+ var codes = [];
298
+ for (var _i = 0; _i < arguments.length; _i++) {
299
+ codes[_i] = arguments[_i];
300
+ }
297
301
  // Flatten the array in case the codes are provided as an array
298
302
  if (codes.length === 1 && Array.isArray(codes[0])) {
299
303
  codes = codes[0];
300
304
  }
301
305
  if (codes.length < 2)
302
306
  return false;
303
- let language = null;
304
- for (let i = 0; i < codes.length; i++) {
307
+ var language = null;
308
+ for (var i = 0; i < codes.length; i++) {
305
309
  if (typeof codes[i] !== 'string')
306
310
  return false;
307
- const languageCode = codes[i].split('-')[0];
308
- const currentLanguage = _mapCodeToLanguage(languageCode);
311
+ var languageCode = codes[i].split('-')[0];
312
+ var currentLanguage = _mapCodeToLanguage(languageCode);
309
313
  if (language === null) {
310
314
  language = currentLanguage;
311
315
  }
@@ -27,7 +27,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
27
27
  *
28
28
  * @type {string[]}
29
29
  */
30
- const rtlLanguages = [
30
+ var rtlLanguages = [
31
31
  'ae', /* Avestan */
32
32
  'ar', /* 'العربية', Arabic */
33
33
  'arc', /* Aramaic */
@@ -50,7 +50,7 @@ const rtlLanguages = [
50
50
  'yi' /* 'ייִדיש', Yiddish */
51
51
  ];
52
52
  /* ----- END YAHOO COPYRIGHT ----- */
53
- const codes_js_1 = require("./codes.js");
53
+ var codes_js_1 = require("./codes.js");
54
54
  /**
55
55
  * Get the text direction for a given language code.
56
56
  *
@@ -59,9 +59,9 @@ const codes_js_1 = require("./codes.js");
59
59
  * @internal
60
60
  */
61
61
  function _getLanguageDirection(code) {
62
- return rtlLanguages.some(language => {
63
- const lo = (0, codes_js_1._getLanguageObject)(language);
64
- const clo = (0, codes_js_1._getLanguageObject)(code);
62
+ return rtlLanguages.some(function (language) {
63
+ var lo = (0, codes_js_1._getLanguageObject)(language);
64
+ var clo = (0, codes_js_1._getLanguageObject)(code);
65
65
  if (!lo || !clo)
66
66
  return false;
67
67
  if (lo.script && clo.script && lo.script !== clo.script)
package/dist/index.js ADDED
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ // `generaltranslation` language toolkit
3
+ // © 2024, General Translation, Inc.
4
+ var __assign = (this && this.__assign) || function () {
5
+ __assign = Object.assign || function(t) {
6
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
7
+ s = arguments[i];
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
+ t[p] = s[p];
10
+ }
11
+ return t;
12
+ };
13
+ return __assign.apply(this, arguments);
14
+ };
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ var __generator = (this && this.__generator) || function (thisArg, body) {
25
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
+ function verb(n) { return function (v) { return step([n, v]); }; }
28
+ function step(op) {
29
+ if (f) throw new TypeError("Generator is already executing.");
30
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
31
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32
+ if (y = 0, t) op = [op[0] & 2, t.value];
33
+ switch (op[0]) {
34
+ case 0: case 1: t = op; break;
35
+ case 4: _.label++; return { value: op[1], done: false };
36
+ case 5: _.label++; y = op[1]; op = [0]; continue;
37
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
+ default:
39
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
+ if (t[2]) _.ops.pop();
44
+ _.trys.pop(); continue;
45
+ }
46
+ op = body.call(thisArg, _);
47
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
+ }
50
+ };
51
+ var __importDefault = (this && this.__importDefault) || function (mod) {
52
+ return (mod && mod.__esModule) ? mod : { "default": mod };
53
+ };
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.standardizeLanguageCode = exports.isValidLanguageCode = exports.getLanguageDirection = void 0;
56
+ exports.getLanguageObject = getLanguageObject;
57
+ exports.getLanguageCode = getLanguageCode;
58
+ exports.getLanguageName = getLanguageName;
59
+ exports.isSameLanguage = isSameLanguage;
60
+ // ----- IMPORTS ----- //
61
+ var codes_1 = require("./codes/codes");
62
+ var getLanguageDirection_1 = __importDefault(require("./codes/getLanguageDirection"));
63
+ var _bundleTranslation_1 = __importDefault(require("./translation/_bundleTranslation"));
64
+ var _intl_1 = __importDefault(require("./translation/_intl"));
65
+ var _translate_1 = __importDefault(require("./translation/_translate"));
66
+ var _translateReactChildren_1 = __importDefault(require("./translation/_translateReactChildren"));
67
+ var _updateRemoteDictionary_1 = __importDefault(require("./translation/_updateRemoteDictionary"));
68
+ // ----- CORE CLASS ----- //
69
+ var getDefaultFromEnv = function (VARIABLE) {
70
+ if (typeof process !== 'undefined' && process.env) {
71
+ return process.env[VARIABLE] || '';
72
+ }
73
+ return '';
74
+ };
75
+ /**
76
+ * GT is the core driver for the General Translation library.
77
+ */
78
+ var GT = /** @class */ (function () {
79
+ /**
80
+ * Constructs an instance of the GT class.
81
+ *
82
+ * @param {GTConstructorParams} [params] - The parameters for initializing the GT instance.
83
+ * @param {string} [params.apiKey=''] - The API key for accessing the translation service.
84
+ * @param {string} [params.defaultLanguage='en'] - The default language for translations.
85
+ * @param {string} [params.projectID=''] - The project ID for the translation service.
86
+ * @param {string} [params.baseURL='https://prod.gtx.dev'] - The base URL for the translation service.
87
+ */
88
+ function GT(_a) {
89
+ var _b = _a === void 0 ? {} : _a, _c = _b.apiKey, apiKey = _c === void 0 ? '' : _c, _d = _b.defaultLanguage, defaultLanguage = _d === void 0 ? 'en' : _d, _e = _b.projectID, projectID = _e === void 0 ? '' : _e, _f = _b.baseURL, baseURL = _f === void 0 ? 'https://prod.gtx.dev' : _f;
90
+ this.apiKey = apiKey || getDefaultFromEnv('GT_API_KEY');
91
+ this.projectID = projectID || getDefaultFromEnv('GT_PROJECT_ID');
92
+ this.defaultLanguage = defaultLanguage.toLowerCase();
93
+ this.baseURL = baseURL;
94
+ }
95
+ /**
96
+ * Translates a string into a target language.
97
+ * @param {string} content - A string to translate.
98
+ * @param {string} targetLanguage - The target language for the translation.
99
+ * @param {{ notes?: string, [key: string]: any }} metadata - Additional metadata for the translation request.
100
+ * @returns {Promise<{ translation: string, error?: Error | unknown }>} - The translated content with optional error information.
101
+ */
102
+ GT.prototype.translate = function (content, targetLanguage, metadata) {
103
+ return __awaiter(this, void 0, void 0, function () {
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0: return [4 /*yield*/, (0, _translate_1.default)(this, content, targetLanguage, __assign({ projectID: this.projectID, defaultLanguage: this.defaultLanguage }, metadata))];
107
+ case 1: return [2 /*return*/, _a.sent()];
108
+ }
109
+ });
110
+ });
111
+ };
112
+ /**
113
+ * Translates a string and caches for use in a public project.
114
+ * @param {string} content - A string to translate.
115
+ * @param {string} targetLanguage - The target language for the translation.
116
+ * @param {string} projectID - The ID of the project.
117
+ * @param {dictionaryName?: string, context?: string, [key: string]: any }} metadata - Additional metadata for the translation request.
118
+ * @returns {Promise<{ translation: string, error?: Error | unknown }>} The translated content with optional error information.
119
+ */
120
+ GT.prototype.intl = function (content, targetLanguage, projectID, metadata) {
121
+ return __awaiter(this, void 0, void 0, function () {
122
+ return __generator(this, function (_a) {
123
+ switch (_a.label) {
124
+ case 0: return [4 /*yield*/, (0, _intl_1.default)(this, content, targetLanguage, projectID || this.projectID, __assign({ projectID: projectID || this.projectID, defaultLanguage: this.defaultLanguage }, metadata))];
125
+ case 1: return [2 /*return*/, _a.sent()];
126
+ }
127
+ });
128
+ });
129
+ };
130
+ /**
131
+ * Translates the content of React children elements.
132
+ *
133
+ * @param {Object} params - The parameters for the translation.
134
+ * @param {any} params.content - The React children content to be translated.
135
+ * @param {string} params.targetLanguage - The target language for the translation.
136
+ * @param {Object} params.metadata - Additional metadata for the translation process.
137
+ *
138
+ * @returns {Promise<any>} - A promise that resolves to the translated content.
139
+ */
140
+ GT.prototype.translateReactChildren = function (content, targetLanguage, metadata) {
141
+ return __awaiter(this, void 0, void 0, function () {
142
+ return __generator(this, function (_a) {
143
+ switch (_a.label) {
144
+ case 0: return [4 /*yield*/, (0, _translateReactChildren_1.default)(this, content, targetLanguage, __assign({ projectID: this.projectID, defaultLanguage: this.defaultLanguage }, metadata))];
145
+ case 1: return [2 /*return*/, _a.sent()];
146
+ }
147
+ });
148
+ });
149
+ };
150
+ /**
151
+ * Bundles multiple translation requests and sends them to the server.
152
+ * @param requests - Array of requests to be processed and sent.
153
+ * @returns A promise that resolves to an array of processed results.
154
+ */
155
+ GT.prototype.bundleTranslation = function (requests) {
156
+ return __awaiter(this, void 0, void 0, function () {
157
+ return __generator(this, function (_a) {
158
+ return [2 /*return*/, (0, _bundleTranslation_1.default)(this, requests)];
159
+ });
160
+ });
161
+ };
162
+ /**
163
+ * Pushes updates to a remotely cached translation dictionary.
164
+ * @param {Update[]} updates - Array of updates with optional targetLanguage.
165
+ * @param {string[]} [languages] - Array of languages to be updated.
166
+ * @param {string} [projectID=this.projectID] - The ID of the project. Defaults to the instance's projectID.
167
+ * @param {boolean} [replace=false] - Whether to replace the existing dictionary. Defaults to false.
168
+ * @returns {Promise<string[]>} A promise that resolves to an array of strings indicating the languages which have been updated.
169
+ */
170
+ GT.prototype.updateRemoteDictionary = function (updates_1) {
171
+ return __awaiter(this, arguments, void 0, function (updates, languages, projectID, replace) {
172
+ if (languages === void 0) { languages = []; }
173
+ if (projectID === void 0) { projectID = this.projectID; }
174
+ if (replace === void 0) { replace = false; }
175
+ return __generator(this, function (_a) {
176
+ return [2 /*return*/, (0, _updateRemoteDictionary_1.default)(this, updates, languages, projectID, replace)];
177
+ });
178
+ });
179
+ };
180
+ return GT;
181
+ }());
182
+ // ----- EXPORTS ----- //
183
+ // Export the class
184
+ exports.default = GT;
185
+ // Export the functions
186
+ /**
187
+ * Gets the writing direction for a given BCP 47 language code.
188
+ * @param {string} code - The BCP 47 language code to check.
189
+ * @returns {string} The language direction ('ltr' for left-to-right or 'rtl' for right-to-left).
190
+ */
191
+ var getLanguageDirection = function (code) { return (0, getLanguageDirection_1.default)(code); };
192
+ exports.getLanguageDirection = getLanguageDirection;
193
+ /**
194
+ * Checks if a given BCP 47 language code is valid.
195
+ * @param {string} code - The BCP 47 language code to validate.
196
+ * @returns {boolean} True if the BCP 47 code is valid, false otherwise.
197
+ */
198
+ var isValidLanguageCode = function (code) { return (0, codes_1._isValidLanguageCode)(code); };
199
+ exports.isValidLanguageCode = isValidLanguageCode;
200
+ /**
201
+ * Standardizes a BCP 47 language code to ensure correct formatting.
202
+ * @param {string} code - The BCP 47 language code to standardize.
203
+ * @returns {string} The standardized BCP 47 language code.
204
+ */
205
+ var standardizeLanguageCode = function (code) { return (0, codes_1._standardizeLanguageCode)(code); };
206
+ exports.standardizeLanguageCode = standardizeLanguageCode;
207
+ function getLanguageObject(codes) {
208
+ return Array.isArray(codes) ? (0, codes_1._getLanguageObject)(codes) : (0, codes_1._getLanguageObject)(codes);
209
+ }
210
+ function getLanguageCode(languages) {
211
+ return (0, codes_1._getLanguageCode)(languages);
212
+ }
213
+ function getLanguageName(codes) {
214
+ return (0, codes_1._getLanguageName)(codes);
215
+ }
216
+ /**
217
+ * Checks if multiple BCP 47 language codes represent the same language.
218
+ * @param {string[]} codes - The BCP 47 language codes to compare.
219
+ * @returns {boolean} True if all BCP 47 codes represent the same language, false otherwise.
220
+ */
221
+ function isSameLanguage() {
222
+ var codes = [];
223
+ for (var _i = 0; _i < arguments.length; _i++) {
224
+ codes[_i] = arguments[_i];
225
+ }
226
+ return codes_1._isSameLanguage.apply(void 0, codes);
227
+ }
228
+ ;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.default = _bundleTranslation;
40
+ /**
41
+ * Bundles multiple requests and sends them to the server.
42
+ * @param {{ baseURL: string, apiKey: string }} gt - Contains the baseURL and apiKey for the server request.
43
+ * @param {Request[]} requests - Array of requests to be processed and sent.
44
+ * @param {{ timeout?: number }} options - Additional options for the request, including timeout.
45
+ * @returns {Promise<Array<any | null>>} A promise that resolves to an array of processed results.
46
+ * @internal
47
+ */
48
+ function _bundleTranslation(gt, requests) {
49
+ return __awaiter(this, void 0, void 0, function () {
50
+ var controller, signal, response, _a, _b, _c, resultArray, error_1;
51
+ var _d, _e, _f;
52
+ return __generator(this, function (_g) {
53
+ switch (_g.label) {
54
+ case 0:
55
+ controller = new AbortController();
56
+ signal = controller.signal;
57
+ if ((_f = (_e = (_d = requests[0]) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.metadata) === null || _f === void 0 ? void 0 : _f.timeout) {
58
+ setTimeout(function () { return controller.abort(); }, requests[0].data.metadata.timeout);
59
+ }
60
+ _g.label = 1;
61
+ case 1:
62
+ _g.trys.push([1, 6, , 7]);
63
+ return [4 /*yield*/, fetch("".concat(gt.baseURL, "/bundle"), {
64
+ method: 'POST',
65
+ headers: {
66
+ 'Content-Type': 'application/json',
67
+ 'gtx-api-key': gt.apiKey,
68
+ },
69
+ body: JSON.stringify(requests),
70
+ signal: signal
71
+ })];
72
+ case 2:
73
+ response = _g.sent();
74
+ if (!!response.ok) return [3 /*break*/, 4];
75
+ _a = Error.bind;
76
+ _c = (_b = "".concat(response.status, ": ")).concat;
77
+ return [4 /*yield*/, response.text()];
78
+ case 3: throw new (_a.apply(Error, [void 0, _c.apply(_b, [_g.sent()])]))();
79
+ case 4: return [4 /*yield*/, response.json()];
80
+ case 5:
81
+ resultArray = _g.sent();
82
+ return [2 /*return*/, resultArray];
83
+ case 6:
84
+ error_1 = _g.sent();
85
+ if (error_1 instanceof Error && error_1.name === 'AbortError') {
86
+ console.error('Request timed out');
87
+ return [2 /*return*/, Array.from(requests, function () { return ({ translation: null, error: 'Request timed out' }); })];
88
+ }
89
+ console.error(error_1);
90
+ return [2 /*return*/, Array.from(requests, function () { return ({ translation: null, error: error_1 }); })];
91
+ case 7: return [2 /*return*/];
92
+ }
93
+ });
94
+ });
95
+ }