quantible 0.1.0-alpha

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 (102) hide show
  1. package/README.md +97 -0
  2. package/dist/cjs/config/default.js +395 -0
  3. package/dist/cjs/config/default.js.map +1 -0
  4. package/dist/cjs/converters/convertCurrencyToSpokenWord.js +28 -0
  5. package/dist/cjs/converters/convertCurrencyToSpokenWord.js.map +1 -0
  6. package/dist/cjs/converters/convertNumberToSpokenWord.js +32 -0
  7. package/dist/cjs/converters/convertNumberToSpokenWord.js.map +1 -0
  8. package/dist/cjs/converters/convertNumericUnitToSpokenWord.js +48 -0
  9. package/dist/cjs/converters/convertNumericUnitToSpokenWord.js.map +1 -0
  10. package/dist/cjs/converters/convertOperatorToSpokenWord.js +17 -0
  11. package/dist/cjs/converters/convertOperatorToSpokenWord.js.map +1 -0
  12. package/dist/cjs/converters/convertScientificExpressionToSpokenWord.js +35 -0
  13. package/dist/cjs/converters/convertScientificExpressionToSpokenWord.js.map +1 -0
  14. package/dist/cjs/converters/convertUnitOnlyToSpokenWord.js +27 -0
  15. package/dist/cjs/converters/convertUnitOnlyToSpokenWord.js.map +1 -0
  16. package/dist/cjs/index.js +116 -0
  17. package/dist/cjs/index.js.map +1 -0
  18. package/dist/cjs/interfaces/configurations/default.js +3 -0
  19. package/dist/cjs/interfaces/configurations/default.js.map +1 -0
  20. package/dist/cjs/interfaces/definitions.js +3 -0
  21. package/dist/cjs/interfaces/definitions.js.map +1 -0
  22. package/dist/cjs/utils/extraction/patternExtractor.js +96 -0
  23. package/dist/cjs/utils/extraction/patternExtractor.js.map +1 -0
  24. package/dist/cjs/utils/extraction/regexPatterns.js +65 -0
  25. package/dist/cjs/utils/extraction/regexPatterns.js.map +1 -0
  26. package/dist/cjs/utils/parseSuperscript.js +33 -0
  27. package/dist/cjs/utils/parseSuperscript.js.map +1 -0
  28. package/dist/cjs/utils/stringBuilding/exponent.js +21 -0
  29. package/dist/cjs/utils/stringBuilding/exponent.js.map +1 -0
  30. package/dist/cjs/utils/stringBuilding/negative.js +8 -0
  31. package/dist/cjs/utils/stringBuilding/negative.js.map +1 -0
  32. package/dist/cjs/utils/stringBuilding/perDigit.js +18 -0
  33. package/dist/cjs/utils/stringBuilding/perDigit.js.map +1 -0
  34. package/dist/cjs/utils/stringBuilding/positiveInteger.js +31 -0
  35. package/dist/cjs/utils/stringBuilding/positiveInteger.js.map +1 -0
  36. package/dist/cjs/utils/stringBuilding/twoDigits.js +18 -0
  37. package/dist/cjs/utils/stringBuilding/twoDigits.js.map +1 -0
  38. package/dist/cjs/utils/stringBuilding/zeroTo999.js +37 -0
  39. package/dist/cjs/utils/stringBuilding/zeroTo999.js.map +1 -0
  40. package/dist/cjs/utils/validateExtractionResultObject.js +206 -0
  41. package/dist/cjs/utils/validateExtractionResultObject.js.map +1 -0
  42. package/dist/esm/config/default.js +392 -0
  43. package/dist/esm/config/default.js.map +1 -0
  44. package/dist/esm/converters/convertCurrencyToSpokenWord.js +25 -0
  45. package/dist/esm/converters/convertCurrencyToSpokenWord.js.map +1 -0
  46. package/dist/esm/converters/convertNumberToSpokenWord.js +29 -0
  47. package/dist/esm/converters/convertNumberToSpokenWord.js.map +1 -0
  48. package/dist/esm/converters/convertNumericUnitToSpokenWord.js +45 -0
  49. package/dist/esm/converters/convertNumericUnitToSpokenWord.js.map +1 -0
  50. package/dist/esm/converters/convertOperatorToSpokenWord.js +14 -0
  51. package/dist/esm/converters/convertOperatorToSpokenWord.js.map +1 -0
  52. package/dist/esm/converters/convertScientificExpressionToSpokenWord.js +32 -0
  53. package/dist/esm/converters/convertScientificExpressionToSpokenWord.js.map +1 -0
  54. package/dist/esm/converters/convertUnitOnlyToSpokenWord.js +24 -0
  55. package/dist/esm/converters/convertUnitOnlyToSpokenWord.js.map +1 -0
  56. package/dist/esm/index.js +111 -0
  57. package/dist/esm/index.js.map +1 -0
  58. package/dist/esm/interfaces/configurations/default.js +2 -0
  59. package/dist/esm/interfaces/configurations/default.js.map +1 -0
  60. package/dist/esm/interfaces/definitions.js +2 -0
  61. package/dist/esm/interfaces/definitions.js.map +1 -0
  62. package/dist/esm/utils/extraction/patternExtractor.js +92 -0
  63. package/dist/esm/utils/extraction/patternExtractor.js.map +1 -0
  64. package/dist/esm/utils/extraction/regexPatterns.js +62 -0
  65. package/dist/esm/utils/extraction/regexPatterns.js.map +1 -0
  66. package/dist/esm/utils/parseSuperscript.js +30 -0
  67. package/dist/esm/utils/parseSuperscript.js.map +1 -0
  68. package/dist/esm/utils/stringBuilding/exponent.js +18 -0
  69. package/dist/esm/utils/stringBuilding/exponent.js.map +1 -0
  70. package/dist/esm/utils/stringBuilding/negative.js +4 -0
  71. package/dist/esm/utils/stringBuilding/negative.js.map +1 -0
  72. package/dist/esm/utils/stringBuilding/perDigit.js +15 -0
  73. package/dist/esm/utils/stringBuilding/perDigit.js.map +1 -0
  74. package/dist/esm/utils/stringBuilding/positiveInteger.js +28 -0
  75. package/dist/esm/utils/stringBuilding/positiveInteger.js.map +1 -0
  76. package/dist/esm/utils/stringBuilding/twoDigits.js +15 -0
  77. package/dist/esm/utils/stringBuilding/twoDigits.js.map +1 -0
  78. package/dist/esm/utils/stringBuilding/zeroTo999.js +34 -0
  79. package/dist/esm/utils/stringBuilding/zeroTo999.js.map +1 -0
  80. package/dist/esm/utils/validateExtractionResultObject.js +203 -0
  81. package/dist/esm/utils/validateExtractionResultObject.js.map +1 -0
  82. package/dist/types/config/default.d.ts +39 -0
  83. package/dist/types/converters/convertCurrencyToSpokenWord.d.ts +7 -0
  84. package/dist/types/converters/convertNumberToSpokenWord.d.ts +7 -0
  85. package/dist/types/converters/convertNumericUnitToSpokenWord.d.ts +7 -0
  86. package/dist/types/converters/convertOperatorToSpokenWord.d.ts +7 -0
  87. package/dist/types/converters/convertScientificExpressionToSpokenWord.d.ts +7 -0
  88. package/dist/types/converters/convertUnitOnlyToSpokenWord.d.ts +7 -0
  89. package/dist/types/index.d.ts +58 -0
  90. package/dist/types/interfaces/configurations/default.d.ts +22 -0
  91. package/dist/types/interfaces/definitions.d.ts +100 -0
  92. package/dist/types/utils/extraction/patternExtractor.d.ts +21 -0
  93. package/dist/types/utils/extraction/regexPatterns.d.ts +2 -0
  94. package/dist/types/utils/parseSuperscript.d.ts +6 -0
  95. package/dist/types/utils/stringBuilding/exponent.d.ts +2 -0
  96. package/dist/types/utils/stringBuilding/negative.d.ts +1 -0
  97. package/dist/types/utils/stringBuilding/perDigit.d.ts +7 -0
  98. package/dist/types/utils/stringBuilding/positiveInteger.d.ts +6 -0
  99. package/dist/types/utils/stringBuilding/twoDigits.d.ts +6 -0
  100. package/dist/types/utils/stringBuilding/zeroTo999.d.ts +6 -0
  101. package/dist/types/utils/validateExtractionResultObject.d.ts +12 -0
  102. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/config/default.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { currencies } from "../config/default";
2
+ import { positiveInteger } from "../utils/stringBuilding/positiveInteger";
3
+ import { twoDigit } from "../utils/stringBuilding/twoDigits";
4
+ import { negative } from "../utils/stringBuilding/negative";
5
+ /**
6
+ * Converts a currency object into its spoken word representation.
7
+ * @param {baseCurrency} amount - The currency object to convert.
8
+ * @returns {string} The spoken word representation of the currency.
9
+ */
10
+ export function convertCurrencyToSpokenWord(amount) {
11
+ let sentence = "";
12
+ const { integer, decimal, negativeInt, currency } = amount;
13
+ let currencyConfig = currencies[currency];
14
+ let parsedInteger = parseInt(integer);
15
+ sentence += negative(negativeInt);
16
+ sentence += positiveInteger(parsedInteger) + " ";
17
+ sentence += parsedInteger < 2 ? currencyConfig.singular : currencyConfig.plural + " ";
18
+ if (decimal !== undefined && currencyConfig.fraction !== null && currencyConfig.fraction !== undefined) {
19
+ sentence += "and ";
20
+ sentence += twoDigit(decimal) + " ";
21
+ sentence += parseInt(decimal) < 2 ? currencyConfig.fraction.singular : currencyConfig.fraction.plural;
22
+ }
23
+ return sentence.trim();
24
+ }
25
+ //# sourceMappingURL=convertCurrencyToSpokenWord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertCurrencyToSpokenWord.js","sourceRoot":"","sources":["../../../src/converters/convertCurrencyToSpokenWord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAG5D;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAoB;IAC9D,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE3D,IAAI,cAAc,GAAa,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEpD,IAAI,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEtC,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,IAAI,eAAe,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;IACjD,QAAQ,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,GAAG,CAAC;IACtF,IAAI,OAAO,KAAK,SAAS,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,IAAI,cAAc,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACvG,QAAQ,IAAI,MAAM,CAAC;QACnB,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;QACpC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxG,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { positiveInteger } from "../utils/stringBuilding/positiveInteger";
2
+ import { twoDigit } from "../utils/stringBuilding/twoDigits";
3
+ import { perDigit } from "../utils/stringBuilding/perDigit";
4
+ import { negative } from "../utils/stringBuilding/negative";
5
+ import { exponentSpokenWord } from "../utils/stringBuilding/exponent";
6
+ /**
7
+ * Converts a number object into its spoken word representation.
8
+ * @param {baseNumber} num - The number object to convert.
9
+ * @returns {string} The spoken word representation of the number.
10
+ */
11
+ export function convertNumberToSpokenWord(num) {
12
+ const { integer, decimal, negativeInt, exponent } = num;
13
+ let sentence = negative(negativeInt);
14
+ sentence += positiveInteger(parseInt(integer)) + " ";
15
+ if (decimal !== undefined) {
16
+ sentence += "point ";
17
+ if (decimal.length === 1 || decimal.length > 2) {
18
+ sentence += perDigit(decimal) + " ";
19
+ }
20
+ else {
21
+ sentence += twoDigit(decimal) + " ";
22
+ }
23
+ }
24
+ if (exponent !== undefined) {
25
+ sentence += exponentSpokenWord(exponent, true);
26
+ }
27
+ return sentence.trim();
28
+ }
29
+ //# sourceMappingURL=convertNumberToSpokenWord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertNumberToSpokenWord.js","sourceRoot":"","sources":["../../../src/converters/convertNumberToSpokenWord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAe;IACvD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IAExD,IAAI,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAErC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;IAErD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,QAAQ,IAAI,QAAQ,CAAC;QACrB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { units } from "../config/default";
2
+ import { exponentSpokenWord } from "../utils/stringBuilding/exponent";
3
+ import { convertNumberToSpokenWord } from "./convertNumberToSpokenWord";
4
+ /**
5
+ * Converts a numeric unit object into its spoken word representation.
6
+ * @param {baseNumberUnit} numericUnit - The numeric unit object to convert.
7
+ * @returns {string} The spoken word representation of the numeric unit.
8
+ */
9
+ export function convertNumericUnitToSpokenWord(numericUnit) {
10
+ const { integer, decimal, unit, negativeInt, exponent, unitExponent } = numericUnit;
11
+ let sentence = convertNumberToSpokenWord({
12
+ integer,
13
+ decimal,
14
+ negativeInt,
15
+ matchType: "number",
16
+ input: "",
17
+ index: 0,
18
+ });
19
+ let spokenUnit;
20
+ let directUnitKey = unit + (unitExponent !== undefined ? unitExponent : "");
21
+ let directUnit = units[directUnitKey];
22
+ if (directUnit !== undefined) {
23
+ spokenUnit = directUnit;
24
+ }
25
+ else {
26
+ spokenUnit = units[unit];
27
+ }
28
+ if (spokenUnit === undefined) {
29
+ return "";
30
+ }
31
+ let isPlural = parseFloat(integer + "." + decimal) > 1 && spokenUnit.plural;
32
+ let spokenNumberExponent = "";
33
+ let spokenUnitExponent = "";
34
+ if (exponent !== undefined) {
35
+ spokenNumberExponent = exponentSpokenWord(exponent, true);
36
+ }
37
+ if (unitExponent !== undefined && directUnit === undefined) {
38
+ spokenUnitExponent = exponentSpokenWord(unitExponent);
39
+ }
40
+ sentence +=
41
+ " " + spokenNumberExponent + " " + (isPlural ? spokenUnit.plural : spokenUnit.singular) + " " + spokenUnitExponent;
42
+ sentence = sentence.trim().replace(/\s+/g, " ");
43
+ return sentence;
44
+ }
45
+ //# sourceMappingURL=convertNumericUnitToSpokenWord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertNumericUnitToSpokenWord.js","sourceRoot":"","sources":["../../../src/converters/convertNumericUnitToSpokenWord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,WAA2B;IACxE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;IAEpF,IAAI,QAAQ,GAAG,yBAAyB,CAAC;QACvC,OAAO;QACP,OAAO;QACP,WAAW;QACX,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;IAEH,IAAI,UAAgB,CAAC;IAErB,IAAI,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5E,IAAI,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IAEtC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,GAAG,UAAU,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ,GAAG,UAAU,CAAC,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC;IAE5E,IAAI,oBAAoB,GAAW,EAAE,CAAC;IACtC,IAAI,kBAAkB,GAAW,EAAE,CAAC;IAEpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,oBAAoB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3D,kBAAkB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,GAAG,GAAG,oBAAoB,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC;IAErH,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEhD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { math } from "../config/default";
2
+ /**
3
+ * Converts an operator object into its spoken word representation.
4
+ * @param {baseOperator} operatorObject - The operator object to convert.
5
+ * @returns {string} The spoken word representation of the operator.
6
+ */
7
+ export function convertOperatorToSpokenWord(operatorObject) {
8
+ const { input } = operatorObject;
9
+ if (input === undefined) {
10
+ return "";
11
+ }
12
+ return math[input];
13
+ }
14
+ //# sourceMappingURL=convertOperatorToSpokenWord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertOperatorToSpokenWord.js","sourceRoot":"","sources":["../../../src/converters/convertOperatorToSpokenWord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,cAA4B;IACtE,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC,KAA0B,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { convertNumberToSpokenWord } from "./convertNumberToSpokenWord";
2
+ import { toRegularInteger } from "../utils/parseSuperscript";
3
+ /**
4
+ * Converts a scientific expression object into its spoken word representation.
5
+ * @param {baseScientific} expression - The scientific expression object to convert.
6
+ * @returns {string} The spoken word representation of the scientific expression.
7
+ */
8
+ export function convertScientificExpressionToSpokenWord(expression) {
9
+ const { integer, decimal, exponent, negativeInt } = expression;
10
+ const isNegativeExponent = exponent.startsWith("-") || exponent.startsWith("⁻");
11
+ let E = "times ten to the power of ";
12
+ let sentence = convertNumberToSpokenWord({
13
+ integer,
14
+ decimal,
15
+ negativeInt,
16
+ matchType: "number",
17
+ input: "",
18
+ index: 0,
19
+ }) +
20
+ " " +
21
+ E +
22
+ convertNumberToSpokenWord({
23
+ decimal: undefined,
24
+ negativeInt: isNegativeExponent,
25
+ integer: toRegularInteger(isNegativeExponent ? exponent.slice(1) : exponent),
26
+ matchType: "number",
27
+ input: "",
28
+ index: 0,
29
+ });
30
+ return sentence.trim();
31
+ }
32
+ //# sourceMappingURL=convertScientificExpressionToSpokenWord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertScientificExpressionToSpokenWord.js","sourceRoot":"","sources":["../../../src/converters/convertScientificExpressionToSpokenWord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CAAC,UAA0B;IAChF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IAE/D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEhF,IAAI,CAAC,GAAG,4BAA4B,CAAC;IAErC,IAAI,QAAQ,GACV,yBAAyB,CAAC;QACxB,OAAO;QACP,OAAO;QACP,WAAW;QACX,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,CAAC;KAET,CAAC;QACF,GAAG;QACH,CAAC;QACD,yBAAyB,CAAC;YACxB,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5E,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,CAAC;SAET,CAAC,CAAC;IAEL,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { units } from "../config/default";
2
+ import { exponentSpokenWord } from "../utils/stringBuilding/exponent";
3
+ /**
4
+ * Converts a unit-only object into its spoken word representation.
5
+ * @param {baseUnitOnly} unitOnlyObject - The unit-only object to convert.
6
+ * @returns {string} The spoken word representation of the unit.
7
+ */
8
+ export function convertUnitOnlyToSpokenWord(unitOnlyObject) {
9
+ const { unit, unitExponent } = unitOnlyObject;
10
+ let spokenUnit;
11
+ spokenUnit = units[unit];
12
+ let result = "";
13
+ if (spokenUnit === undefined) {
14
+ return "";
15
+ }
16
+ if (unitExponent !== undefined) {
17
+ result = spokenUnit.singular + " " + exponentSpokenWord(unitExponent);
18
+ }
19
+ else {
20
+ result = spokenUnit.singular;
21
+ }
22
+ return result;
23
+ }
24
+ //# sourceMappingURL=convertUnitOnlyToSpokenWord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertUnitOnlyToSpokenWord.js","sourceRoot":"","sources":["../../../src/converters/convertUnitOnlyToSpokenWord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,cAA4B;IACtE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC;IAE9C,IAAI,UAAgB,CAAC;IAErB,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAEzB,IAAI,MAAM,GAAW,EAAE,CAAC;IACxB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,GAAG,UAAU,CAAC,QAAQ,GAAG,GAAG,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { extractFirstMatch, extractAllMatches } from "./utils/extraction/patternExtractor";
2
+ import { convertCurrencyToSpokenWord } from "./converters/convertCurrencyToSpokenWord";
3
+ import { convertNumberToSpokenWord } from "./converters/convertNumberToSpokenWord";
4
+ import { convertNumericUnitToSpokenWord } from "./converters/convertNumericUnitToSpokenWord";
5
+ import { convertOperatorToSpokenWord } from "./converters/convertOperatorToSpokenWord";
6
+ import { convertScientificExpressionToSpokenWord } from "./converters/convertScientificExpressionToSpokenWord";
7
+ import { convertUnitOnlyToSpokenWord } from "./converters/convertUnitOnlyToSpokenWord";
8
+ import { validateExtractionResult } from "./utils/validateExtractionResultObject";
9
+ /**
10
+ * @namespace extractQuantities
11
+ * @description Contains functions for extracting numeric data from a string.
12
+ */
13
+ const extractQuantities = {
14
+ /**
15
+ * Extracts the first match (number || currency || unit || operator || scientific expression) from the input string.
16
+ * @param {string} input - The string to extract from.
17
+ * @returns {ExtractionResult | null} The extracted data or null if no match is found.
18
+ */
19
+ firstMatch: extractFirstMatch,
20
+ /**
21
+ * Extracts all matches (number || currency || unit || operator || scientific expression) from the input string.
22
+ * @param {string} input - The string to extract from.
23
+ * @returns {ExtractionResult[]} The extracted data.
24
+ */
25
+ allMatches: extractAllMatches,
26
+ };
27
+ /**
28
+ * @namespace convertQuantities
29
+ * @description Contains functions for converting (number || currency || unit || operator || scientific expression) data from a string or object to spoken word.
30
+ */
31
+ const convertQuantities = {
32
+ /**
33
+ * Translates an ExtractionResult object (number || currency || unit || operator || scientific expression) into its spoken word equivalent.
34
+ *
35
+ * @param {ExtractionResult} extractionResult - The ExtractionResult object to translate.
36
+ * @returns {string} The spoken word equivalent of the ExtractionResult.
37
+ */
38
+ /**
39
+ * Translates an ExtractionResult object (number || currency || unit || operator || scientific expression) into its spoken word equivalent.
40
+ *
41
+ * @param {ExtractionResult} extractionResult - The ExtractionResult object to translate.
42
+ * @returns {string} The spoken word equivalent of the ExtractionResult.
43
+ */
44
+ translateMatch: (extractionResult) => {
45
+ let result = "";
46
+ switch (extractionResult.matchType) {
47
+ case "number":
48
+ result = convertNumberToSpokenWord(extractionResult);
49
+ break;
50
+ case "symbolCurrency":
51
+ result = convertCurrencyToSpokenWord(extractionResult);
52
+ break;
53
+ case "codeCurrency":
54
+ result = convertCurrencyToSpokenWord(extractionResult);
55
+ break;
56
+ case "unit":
57
+ result = convertNumericUnitToSpokenWord(extractionResult);
58
+ break;
59
+ case "unitOnly":
60
+ result = convertUnitOnlyToSpokenWord(extractionResult);
61
+ break;
62
+ case "operator":
63
+ result = convertOperatorToSpokenWord(extractionResult);
64
+ break;
65
+ case "scientific":
66
+ result = convertScientificExpressionToSpokenWord(extractionResult);
67
+ break;
68
+ default:
69
+ break;
70
+ }
71
+ return result;
72
+ },
73
+ /**
74
+ * Extracts the first match (number || currency || unit || operator || scientific expression) from the input string
75
+ * and translates it to its spoken word equivalent.
76
+ *
77
+ * @param {string} input - The string to extract and translate from.
78
+ * @returns {string} The input string with the first match replaced by its spoken word equivalent,
79
+ * or an empty string if no match is found.
80
+ */
81
+ autoReplaceFirstMatch: (input) => {
82
+ const match = extractFirstMatch(input);
83
+ if (!match)
84
+ return "";
85
+ return input.replace(match.input, convertQuantities.translateMatch(match));
86
+ },
87
+ /**
88
+ * Extracts all matches (number || currency || unit || operator || scientific expression) from the input string
89
+ * and translates them to their spoken word equivalents.
90
+ *
91
+ * @param {string} input - The string to extract and translate from.
92
+ * @returns {string} The input string with all matches replaced by their spoken word equivalents. Returns the original string if no matches are found.
93
+ */
94
+ autoReplaceAllMatches: (input) => {
95
+ const matches = extractAllMatches(input);
96
+ if (matches.length === 0) {
97
+ return input;
98
+ }
99
+ let output = "";
100
+ let lastIndex = 0;
101
+ for (const match of matches) {
102
+ output += input.substring(lastIndex, match.index);
103
+ output += convertQuantities.translateMatch(match);
104
+ lastIndex = match.index + match.input.length;
105
+ }
106
+ output += input.substring(lastIndex);
107
+ return output.replace(/\s+/g, " ").trim();
108
+ },
109
+ };
110
+ export { convertQuantities, extractQuantities, validateExtractionResult };
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../../src/interfaces/configurations/default.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/interfaces/definitions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ import { regexMatches } from "./regexPatterns";
2
+ /**
3
+ * Returns the first match of a number, currency, unit, or exponent in the given string.
4
+ * The returned object contains the extracted groups and additional information such as
5
+ * the type of match and the index of the match in the string.
6
+ *
7
+ * @param {string} input - The string to search for matches
8
+ * @returns {patternExtraction | null} - The extracted groups and additional information, or null if no match is found
9
+ */
10
+ export function extractFirstMatch(input) {
11
+ const match = input.match(regexMatches);
12
+ if (match && match.groups && match.index !== undefined) {
13
+ const matchedGroup = Object.fromEntries(Object.entries(match.groups).filter(([_, value]) => value !== undefined));
14
+ let matchType = Object.keys(matchedGroup)[0];
15
+ const extractedGroup = {};
16
+ switch (matchType) {
17
+ case "symbolCurrency":
18
+ extractedGroup.integer = matchedGroup["symbolInt"];
19
+ extractedGroup.decimal = matchedGroup["symbolDec"];
20
+ extractedGroup.negativeInt = matchedGroup["negativeSignSymbol"] !== undefined;
21
+ extractedGroup.currency = matchedGroup["currencySymbol"];
22
+ break;
23
+ case "codeCurrency":
24
+ extractedGroup.integer = matchedGroup["codeInt"];
25
+ extractedGroup.decimal = matchedGroup["codeDec"];
26
+ extractedGroup.negativeInt = matchedGroup["negativeSignCode"] !== undefined;
27
+ extractedGroup.currency = matchedGroup["currencyCode"];
28
+ break;
29
+ case "scientific":
30
+ extractedGroup.integer = matchedGroup["scientificInt"];
31
+ extractedGroup.decimal = matchedGroup["scientificDec"];
32
+ extractedGroup.negativeInt = matchedGroup["negativeSignScientific"] !== undefined;
33
+ extractedGroup.exponent = matchedGroup["scientificExponent"];
34
+ break;
35
+ case "unit":
36
+ extractedGroup.integer = matchedGroup["unitInt"];
37
+ extractedGroup.decimal = matchedGroup["unitDec"];
38
+ extractedGroup.negativeInt = matchedGroup["negativeSignUnit"] !== undefined;
39
+ extractedGroup.unit = matchedGroup["unitName"];
40
+ extractedGroup.exponent = matchedGroup["unitCaretExponentPre"] || matchedGroup["unitSuperExponentPre"];
41
+ extractedGroup.unitExponent = matchedGroup["unitCaretExponentPost"] || matchedGroup["unitSuperExponentPost"];
42
+ break;
43
+ case "unitOnly":
44
+ extractedGroup.unit = matchedGroup["unitNameOnly"];
45
+ extractedGroup.unitExponent = matchedGroup["unitOnlyCaretExponent"] || matchedGroup["unitOnlySuperExponent"];
46
+ break;
47
+ case "operator":
48
+ break;
49
+ case "number":
50
+ extractedGroup.integer = matchedGroup["integerInt"];
51
+ extractedGroup.decimal = matchedGroup["integerDec"];
52
+ extractedGroup.exponent = matchedGroup["integerSuperExponent"] || matchedGroup["integerCaretExponent"];
53
+ extractedGroup.negativeInt = matchedGroup["negativeSignInteger"] !== undefined;
54
+ break;
55
+ default:
56
+ break;
57
+ }
58
+ extractedGroup.matchType = matchType;
59
+ extractedGroup.input = matchedGroup[matchType];
60
+ extractedGroup.index = match.index;
61
+ if (matchType !== "operator" && matchType !== "scientific" && matchType !== "unitOnly")
62
+ extractedGroup.integer = extractedGroup.integer !== undefined ? extractedGroup.integer.replace(/,/g, "") : "0";
63
+ return extractedGroup;
64
+ }
65
+ return null;
66
+ }
67
+ /**
68
+ * Extracts all matches of a number, currency, unit, or exponent in the given string
69
+ * and returns an array of the extracted groups and additional information such as
70
+ * the type of match and the index of the match in the string.
71
+ *
72
+ * If the input string contains no matches, an empty array is returned.
73
+ *
74
+ * @param {string} input - The string to search for matches
75
+ * @returns {patternExtraction[]} - The extracted groups and additional information, or an empty array if no match is found
76
+ */
77
+ export function extractAllMatches(input) {
78
+ const results = [];
79
+ let remainingInput = input;
80
+ let currentExtraction = extractFirstMatch(remainingInput);
81
+ while (currentExtraction !== null && currentExtraction.input) {
82
+ const remainingLength = input.length - remainingInput.length;
83
+ if (results.length > 0) {
84
+ currentExtraction.index = remainingInput.indexOf(currentExtraction.input) + remainingLength;
85
+ }
86
+ results.push(currentExtraction);
87
+ remainingInput = remainingInput.substring(remainingInput.indexOf(currentExtraction.input) + currentExtraction.input.length);
88
+ currentExtraction = extractFirstMatch(remainingInput);
89
+ }
90
+ return results;
91
+ }
92
+ //# sourceMappingURL=patternExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patternExtractor.js","sourceRoot":"","sources":["../../../../src/utils/extraction/patternExtractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { units, math, currencyCodes, currencySymbols, } from "../../config/default";
2
+ const sanitizeString = (str) => {
3
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4
+ };
5
+ // Dynamic pattern generation from config
6
+ const currencySymbolsSanitized = Object.keys(currencySymbols)
7
+ .map((key) => sanitizeString(key)) // Escape special regex characters
8
+ .join("|");
9
+ const currencyCodesSanitized = Object.keys(currencyCodes).join("|");
10
+ const allUnits = Object.keys(units)
11
+ .map((key) => sanitizeString(key))
12
+ .sort((a, b) => b.length - a.length)
13
+ .join("|");
14
+ const operatorSymbols = Object.keys(math)
15
+ .map((operator) => sanitizeString(operator))
16
+ .join("|");
17
+ const regexMatches = new RegExp([
18
+ // Currency Matching (Highest Priority)
19
+ `(?<=^|\\s)(?:` + // Ensures the match is at the beginning of the string or preceded by whitespace
20
+ `(?<symbolCurrency>(?<negativeSignSymbol>-)?(?<currencySymbol>${currencySymbolsSanitized})\\s*(?<symbolInt>(?:\\d{1,3}(?:,\\d{3})*|\\d+))(?:\\.(?<symbolDec>\\d+))?)` + // Matches currency with symbols
21
+ `|` + // OR
22
+ `(?<codeCurrency>(?<negativeSignCode>-)?(?<codeInt>(?:\\d{1,3}(?:,\\d{3})*|\\d+))(?:\\.(?<codeDec>\\d+))?[ \\t]*(?<currencyCode>${currencyCodesSanitized}))` + // Matches currency with codes
23
+ `)` + // End of currency matching group
24
+ `(?=(?:\\s|$|(?:\\.(?!\\d))|[^\\d.]))`, // Ensures the match is followed by whitespace, end of string, or non-numeric characters
25
+ // Scientific Notation 5e-10, 5e10, 5.5e10, 5.5e-10
26
+ `|(?<scientific>` + // Group for scientific notation
27
+ `(?<negativeSignScientific>-)?(?<scientificInt>\\d+)(?:\\.(?<scientificDec>\\d+))?(?:[eE])(?<scientificExponent>[+-]?\\d+)` + // Matches scientific notation format
28
+ `)(?=(?:\\s|$|(?:\\.(?!\\d))|[^\\d.]))`, // Ensures the match is followed by whitespace, end of string, or non-numeric characters
29
+ // Numeric Units 5km, 10m/s, 10m/s^2, 10m/s², 10m²/s, 10m²/s²
30
+ `|(?<unit>` + // Group for units
31
+ `(?<negativeSignUnit>-)?(?<unitInt>(?:\\d{1,3}(?:,\\d{3})*|\\d+))(?:\\.(?<unitDec>\\d+))?` + // Matches the number part of the unit
32
+ `\\s*` + // Matches optional whitespace
33
+ `(?:` + // Group for handling exponents (caret or superscript)
34
+ `\\^(?<unitCaretExponentPre>-?\\d+)|` + // Matches caret exponent
35
+ `(?<unitSuperExponentPre>⁻?[¹²³⁴⁵⁶⁷⁸⁹])` + // Matches superscript exponent
36
+ `)?` + // End of exponent group
37
+ `\\s*(?<unitName>(?:${allUnits}))` + // Matches the unit name
38
+ `(?:` + // Group for handling exponents (caret or superscript)
39
+ `\\^(?<unitCaretExponentPost>-?\\d+)|` + // Matches caret exponent
40
+ `(?<unitSuperExponentPost>⁻?[¹²³⁴⁵⁶⁷⁸⁹])` + // Matches superscript exponent
41
+ `)?` + // End of exponent group
42
+ `)(?=(?:\\s|$|(?:\\.(?!\\d))|[^\\d.]))`, // Ensures the match is followed by whitespace, end of string, or non-numeric characters
43
+ // Number with optional exponent
44
+ `|(?<!\\w)(?<number>` + // Group for number
45
+ `(?<negativeSignInteger>-)?` + // Matches an optional negative sign
46
+ `(?<integerInt>(?:\\d{1,3}(?:,\\d{3})*|\\d+))` + // Matches the integer part of the number
47
+ `(?:\\.(?<integerDec>\\d+))?` + // Matches the decimal part of the number
48
+ `(?:(?:\\^(?<integerCaretExponent>-?\\d+))|` + // Matches exponent with caret
49
+ `(?<integerSuperExponent>⁻?[¹²³⁴⁵⁶⁷⁸⁹]))?` + // Matches exponent with superscript
50
+ `)(?=(?:\\s|$|(?:\\.(?!\\d))|[^\\d.]))`, // Ensures the match is followed by whitespace, end of string, or non-numeric characters
51
+ // Unit Only (e.g., m, kg, m², kg³)
52
+ `|(?<unitOnly>` + // Group for unit only
53
+ `(?<![\\w.])` + // Negative lookbehind to prevent matching units within words
54
+ `(?<unitNameOnly>(?:${allUnits})\\b)` + // Matches the unit name
55
+ `(?:\\^(?<unitOnlyCaretExponent>-?\\d+)|(?<unitOnlySuperExponent>⁻?[¹²³⁴⁵⁶⁷⁸⁹]))?` + // Matches optional exponent
56
+ `(?!\\w)` + // Negative lookahead to prevent matching units within words
57
+ `)(?=(?:\\s|$|(?:\\.(?!\\d))|[^\\d.]))`, // Ensures the match is followed by whitespace, end of string, or non-numeric characters
58
+ // Mathematical Operators
59
+ `|(?<operator>(?:(?<=^)|(?<=\\s))(${operatorSymbols})(?=\\s|$|(?:\\.(?!\\d))))`, // Matches mathematical operators
60
+ ].join(""), "u");
61
+ export { regexMatches };
62
+ //# sourceMappingURL=regexPatterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regexPatterns.js","sourceRoot":"","sources":["../../../../src/utils/extraction/regexPatterns.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,IAAI,EACJ,aAAa,EACb,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7C,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,yCAAyC;AACzC,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;KAC1D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC;KACpE,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEpE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KAChC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;KACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;KACnC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;KACtC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;KAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B;IACE,uCAAuC;IACvC,eAAe,GAAG,gFAAgF;QAChG,gEAAgE,wBAAwB,6EAA6E,GAAG,gCAAgC;QACxM,GAAG,GAAG,KAAK;QACX,kIAAkI,sBAAsB,IAAI,GAAG,8BAA8B;QAC7L,GAAG,GAAG,iCAAiC;QACvC,sCAAsC,EAAE,wFAAwF;IAElI,mDAAmD;IACnD,iBAAiB,GAAG,gCAAgC;QAClD,2HAA2H,GAAG,qCAAqC;QACnK,uCAAuC,EAAE,wFAAwF;IAEnI,6DAA6D;IAC7D,WAAW,GAAG,kBAAkB;QAC9B,0FAA0F,GAAG,sCAAsC;QACnI,MAAM,GAAG,8BAA8B;QACvC,KAAK,GAAG,sDAAsD;QAC9D,qCAAqC,GAAG,yBAAyB;QACjE,wCAAwC,GAAG,+BAA+B;QAC1E,IAAI,GAAG,wBAAwB;QAC/B,sBAAsB,QAAQ,IAAI,GAAG,wBAAwB;QAC7D,KAAK,GAAG,sDAAsD;QAC9D,sCAAsC,GAAG,yBAAyB;QAClE,yCAAyC,GAAG,+BAA+B;QAC3E,IAAI,GAAG,wBAAwB;QAC/B,uCAAuC,EAAE,wFAAwF;IAEnI,gCAAgC;IAChC,qBAAqB,GAAG,mBAAmB;QACzC,4BAA4B,GAAG,oCAAoC;QACnE,8CAA8C,GAAG,yCAAyC;QAC1F,6BAA6B,GAAG,yCAAyC;QACzE,4CAA4C,GAAG,8BAA8B;QAC7E,0CAA0C,GAAG,oCAAoC;QACjF,uCAAuC,EAAE,wFAAwF;IAEnI,mCAAmC;IACnC,eAAe,GAAG,sBAAsB;QACtC,aAAa,GAAG,6DAA6D;QAC7E,sBAAsB,QAAQ,OAAO,GAAG,wBAAwB;QAChE,kFAAkF,GAAG,4BAA4B;QACjH,SAAS,GAAG,4DAA4D;QACxE,uCAAuC,EAAE,wFAAwF;IACnI,yBAAyB;IACzB,oCAAoC,eAAe,4BAA4B,EAAE,iCAAiC;CACnH,CAAC,IAAI,CAAC,EAAE,CAAC,EACV,GAAG,CACJ,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Converts a string of superscript digits to regular integer string.
3
+ * @param {string} superscriptString - String containing superscript digits.
4
+ * @returns {string} - String of regular digits.
5
+ */
6
+ export function toRegularInteger(superscriptString) {
7
+ const superscriptMap = {
8
+ "⁰": "0",
9
+ "¹": "1",
10
+ "²": "2",
11
+ "³": "3",
12
+ "⁴": "4",
13
+ "⁵": "5",
14
+ "⁶": "6",
15
+ "⁷": "7",
16
+ "⁸": "8",
17
+ "⁹": "9",
18
+ };
19
+ let standardDigitString = "";
20
+ for (let char of superscriptString) {
21
+ if (superscriptMap[char]) {
22
+ standardDigitString += superscriptMap[char];
23
+ }
24
+ else {
25
+ standardDigitString += char;
26
+ }
27
+ }
28
+ return standardDigitString;
29
+ }
30
+ //# sourceMappingURL=parseSuperscript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseSuperscript.js","sourceRoot":"","sources":["../../../src/utils/parseSuperscript.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,iBAAyB;IACxD,MAAM,cAAc,GAA8B;QAChD,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;KACT,CAAC;IAEF,IAAI,mBAAmB,GAAG,EAAE,CAAC;IAC7B,KAAK,IAAI,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACnC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,mBAAmB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,mBAAmB,IAAI,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { toRegularInteger } from "../parseSuperscript";
2
+ import { positiveInteger } from "./positiveInteger";
3
+ /** * Converts an exponent integer to its spoken word representation, * optionally using "squared" and "cubed" for exponents 2 and 3. * @param exponent The exponent value as an integer. * @param onlyUsePowerOf A boolean flag. If false, uses "squared" for 2 and "cubed" for 3. * If true, uses "to the power of two", "to the power of three", etc. * @returns The spoken word representation of the exponent. */
4
+ export function exponentSpokenWord(exponent, onlyUsePowerOf = false) {
5
+ const isNegative = exponent.startsWith("-") || exponent.startsWith("⁻");
6
+ let newExponentString = toRegularInteger(isNegative ? exponent.slice(1) : exponent);
7
+ if (!onlyUsePowerOf && !isNegative) {
8
+ if (newExponentString === "2") {
9
+ return "squared";
10
+ }
11
+ if (newExponentString === "3") {
12
+ return "cubed";
13
+ }
14
+ }
15
+ let res = "to the power of " + (isNegative ? "negative " : "") + positiveInteger(parseInt(newExponentString));
16
+ return res;
17
+ }
18
+ //# sourceMappingURL=exponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exponent.js","sourceRoot":"","sources":["../../../../src/utils/stringBuilding/exponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,sZAAsZ;AAEtZ,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,iBAA0B,KAAK;IAClF,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,iBAAiB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpF,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,iBAAiB,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,iBAAiB,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,GAAG,GAAG,kBAAkB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC9G,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const negative = (bool) => {
2
+ return bool ? "negative " : "";
3
+ };
4
+ //# sourceMappingURL=negative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negative.js","sourceRoot":"","sources":["../../../../src/utils/stringBuilding/negative.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAU,EAAE;IAChD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AACjC,CAAC,CAAC"}