@sv443-network/userutils 9.4.2 → 9.4.4

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @sv443-network/userutils
2
2
 
3
+ ## 9.4.4
4
+
5
+ ### Patch Changes
6
+
7
+ - e8846b5: Fixed infinite recursion in `translate()` when using `setFallbackLanguage()`
8
+ - 59011c1: Removed package.json engines field
9
+
10
+ ## 9.4.3
11
+
12
+ ### Patch Changes
13
+
14
+ - 528e09c: Fix `can't convert trArgs[0] to string` error
15
+
3
16
  ## 9.4.2
4
17
 
5
18
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -1859,7 +1859,7 @@ function translate(language, key, ...trArgs) {
1859
1859
  language = fallbackLang != null ? fallbackLang : "";
1860
1860
  const trObj = trans[language];
1861
1861
  if (typeof language !== "string" || language.length === 0 || typeof trObj !== "object" || trObj === null)
1862
- return fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1862
+ return fallbackLang && language !== fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1863
1863
  const transformTrVal = (trKey, trValue) => {
1864
1864
  const tfs = valTransforms.filter(({ regex }) => new RegExp(regex).test(String(trValue)));
1865
1865
  if (tfs.length === 0)
@@ -1899,7 +1899,7 @@ function translate(language, key, ...trArgs) {
1899
1899
  value = trObj == null ? undefined : trObj[key];
1900
1900
  if (typeof value === "string")
1901
1901
  return transformTrVal(key, value);
1902
- return fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1902
+ return fallbackLang && language !== fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1903
1903
  }
1904
1904
  function trFor(language, key, ...args) {
1905
1905
  const txt = translate(language, key, ...args);
@@ -1975,7 +1975,13 @@ var templateLiteralTransform = [
1975
1975
  str = str.replace(match[0], String(trArgs[matchNum]));
1976
1976
  }
1977
1977
  };
1978
- const isArgsObject = trArgs[0] && typeof trArgs[0] === "object" && trArgs[0] !== null && String(trArgs[0]).startsWith("[object");
1978
+ let notStringifiable = false;
1979
+ try {
1980
+ String(trArgs[0]);
1981
+ } catch (e) {
1982
+ notStringifiable = true;
1983
+ }
1984
+ const isArgsObject = trArgs[0] && typeof trArgs[0] === "object" && trArgs[0] !== null && (notStringifiable || String(trArgs[0]).startsWith("[object"));
1979
1985
  if (isArgsObject && eachKeyInTrString(Object.keys(trArgs[0])))
1980
1986
  namedMapping();
1981
1987
  else
@@ -8,7 +8,7 @@
8
8
  // ==UserLibrary==
9
9
  // @name UserUtils
10
10
  // @description General purpose DOM/GreaseMonkey library that allows you to register listeners for when CSS selectors exist, intercept events, create persistent & synchronous data stores, modify the DOM more easily and much more
11
- // @version 9.4.2
11
+ // @version 9.4.4
12
12
  // @license MIT
13
13
  // @copyright Sv443 (https://github.com/Sv443)
14
14
 
@@ -1897,7 +1897,7 @@ Has: ${checksum}`);
1897
1897
  language = fallbackLang != null ? fallbackLang : "";
1898
1898
  const trObj = trans[language];
1899
1899
  if (typeof language !== "string" || language.length === 0 || typeof trObj !== "object" || trObj === null)
1900
- return fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1900
+ return fallbackLang && language !== fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1901
1901
  const transformTrVal = (trKey, trValue) => {
1902
1902
  const tfs = valTransforms.filter(({ regex }) => new RegExp(regex).test(String(trValue)));
1903
1903
  if (tfs.length === 0)
@@ -1937,7 +1937,7 @@ Has: ${checksum}`);
1937
1937
  value = trObj == null ? undefined : trObj[key];
1938
1938
  if (typeof value === "string")
1939
1939
  return transformTrVal(key, value);
1940
- return fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1940
+ return fallbackLang && language !== fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1941
1941
  }
1942
1942
  function trFor(language, key, ...args) {
1943
1943
  const txt = translate(language, key, ...args);
@@ -2013,7 +2013,13 @@ Has: ${checksum}`);
2013
2013
  str = str.replace(match[0], String(trArgs[matchNum]));
2014
2014
  }
2015
2015
  };
2016
- const isArgsObject = trArgs[0] && typeof trArgs[0] === "object" && trArgs[0] !== null && String(trArgs[0]).startsWith("[object");
2016
+ let notStringifiable = false;
2017
+ try {
2018
+ String(trArgs[0]);
2019
+ } catch (e) {
2020
+ notStringifiable = true;
2021
+ }
2022
+ const isArgsObject = trArgs[0] && typeof trArgs[0] === "object" && trArgs[0] !== null && (notStringifiable || String(trArgs[0]).startsWith("[object"));
2017
2023
  if (isArgsObject && eachKeyInTrString(Object.keys(trArgs[0])))
2018
2024
  namedMapping();
2019
2025
  else
package/dist/index.js CHANGED
@@ -1857,7 +1857,7 @@ function translate(language, key, ...trArgs) {
1857
1857
  language = fallbackLang != null ? fallbackLang : "";
1858
1858
  const trObj = trans[language];
1859
1859
  if (typeof language !== "string" || language.length === 0 || typeof trObj !== "object" || trObj === null)
1860
- return fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1860
+ return fallbackLang && language !== fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1861
1861
  const transformTrVal = (trKey, trValue) => {
1862
1862
  const tfs = valTransforms.filter(({ regex }) => new RegExp(regex).test(String(trValue)));
1863
1863
  if (tfs.length === 0)
@@ -1897,7 +1897,7 @@ function translate(language, key, ...trArgs) {
1897
1897
  value = trObj == null ? undefined : trObj[key];
1898
1898
  if (typeof value === "string")
1899
1899
  return transformTrVal(key, value);
1900
- return fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1900
+ return fallbackLang && language !== fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
1901
1901
  }
1902
1902
  function trFor(language, key, ...args) {
1903
1903
  const txt = translate(language, key, ...args);
@@ -1973,7 +1973,13 @@ var templateLiteralTransform = [
1973
1973
  str = str.replace(match[0], String(trArgs[matchNum]));
1974
1974
  }
1975
1975
  };
1976
- const isArgsObject = trArgs[0] && typeof trArgs[0] === "object" && trArgs[0] !== null && String(trArgs[0]).startsWith("[object");
1976
+ let notStringifiable = false;
1977
+ try {
1978
+ String(trArgs[0]);
1979
+ } catch (e) {
1980
+ notStringifiable = true;
1981
+ }
1982
+ const isArgsObject = trArgs[0] && typeof trArgs[0] === "object" && trArgs[0] !== null && (notStringifiable || String(trArgs[0]).startsWith("[object"));
1977
1983
  if (isArgsObject && eachKeyInTrString(Object.keys(trArgs[0])))
1978
1984
  namedMapping();
1979
1985
  else
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sv443-network/userutils",
3
3
  "libName": "UserUtils",
4
- "version": "9.4.2",
4
+ "version": "9.4.4",
5
5
  "description": "General purpose DOM/GreaseMonkey library that allows you to register listeners for when CSS selectors exist, intercept events, create persistent & synchronous data stores, modify the DOM more easily and much more",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -14,11 +14,6 @@
14
14
  "import": "./dist/index.js"
15
15
  }
16
16
  },
17
- "engines": {
18
- "pnpm": ">=9",
19
- "npm": "please-use-pnpm",
20
- "yarn": "please-use-pnpm"
21
- },
22
17
  "type": "module",
23
18
  "repository": {
24
19
  "type": "git",