quantible 0.1.4-alpha → 0.1.6-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 (127) hide show
  1. package/dist/index.cjs +1058 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.global.js +1054 -0
  4. package/dist/index.global.js.map +1 -0
  5. package/dist/index.js +1029 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/types/config/default.d.ts +2 -1
  8. package/dist/types/config/default.d.ts.map +1 -0
  9. package/dist/types/converters/convertCurrencyToSpokenWord.d.ts +2 -1
  10. package/dist/types/converters/convertCurrencyToSpokenWord.d.ts.map +1 -0
  11. package/dist/types/converters/convertNumberToSpokenWord.d.ts +2 -1
  12. package/dist/types/converters/convertNumberToSpokenWord.d.ts.map +1 -0
  13. package/dist/types/converters/convertNumericUnitToSpokenWord.d.ts +2 -1
  14. package/dist/types/converters/convertNumericUnitToSpokenWord.d.ts.map +1 -0
  15. package/dist/types/converters/convertOperatorToSpokenWord.d.ts +2 -1
  16. package/dist/types/converters/convertOperatorToSpokenWord.d.ts.map +1 -0
  17. package/dist/types/converters/convertScientificExpressionToSpokenWord.d.ts +2 -1
  18. package/dist/types/converters/convertScientificExpressionToSpokenWord.d.ts.map +1 -0
  19. package/dist/types/converters/convertUnitOnlyToSpokenWord.d.ts +2 -1
  20. package/dist/types/converters/convertUnitOnlyToSpokenWord.d.ts.map +1 -0
  21. package/dist/types/index.d.ts +4 -3
  22. package/dist/types/index.d.ts.map +1 -0
  23. package/dist/types/interfaces/configurations/default.d.ts +1 -0
  24. package/dist/types/interfaces/configurations/default.d.ts.map +1 -0
  25. package/dist/types/interfaces/definitions.d.ts +1 -0
  26. package/dist/types/interfaces/definitions.d.ts.map +1 -0
  27. package/dist/types/utils/extraction/patternExtractor.d.ts +2 -1
  28. package/dist/types/utils/extraction/patternExtractor.d.ts.map +1 -0
  29. package/dist/types/utils/extraction/regexPatterns.d.ts +1 -0
  30. package/dist/types/utils/extraction/regexPatterns.d.ts.map +1 -0
  31. package/dist/types/utils/parseSuperscript.d.ts +1 -0
  32. package/dist/types/utils/parseSuperscript.d.ts.map +1 -0
  33. package/dist/types/utils/stringBuilding/exponent.d.ts +1 -0
  34. package/dist/types/utils/stringBuilding/exponent.d.ts.map +1 -0
  35. package/dist/types/utils/stringBuilding/negative.d.ts +1 -0
  36. package/dist/types/utils/stringBuilding/negative.d.ts.map +1 -0
  37. package/dist/types/utils/stringBuilding/perDigit.d.ts +1 -0
  38. package/dist/types/utils/stringBuilding/perDigit.d.ts.map +1 -0
  39. package/dist/types/utils/stringBuilding/positiveInteger.d.ts +1 -0
  40. package/dist/types/utils/stringBuilding/positiveInteger.d.ts.map +1 -0
  41. package/dist/types/utils/stringBuilding/twoDigits.d.ts +1 -0
  42. package/dist/types/utils/stringBuilding/twoDigits.d.ts.map +1 -0
  43. package/dist/types/utils/stringBuilding/zeroTo999.d.ts +1 -0
  44. package/dist/types/utils/stringBuilding/zeroTo999.d.ts.map +1 -0
  45. package/dist/types/utils/validateExtractionResultObject.d.ts +2 -1
  46. package/dist/types/utils/validateExtractionResultObject.d.ts.map +1 -0
  47. package/package.json +17 -11
  48. package/dist/cjs/config/default.js +0 -395
  49. package/dist/cjs/config/default.js.map +0 -1
  50. package/dist/cjs/converters/convertCurrencyToSpokenWord.js +0 -28
  51. package/dist/cjs/converters/convertCurrencyToSpokenWord.js.map +0 -1
  52. package/dist/cjs/converters/convertNumberToSpokenWord.js +0 -32
  53. package/dist/cjs/converters/convertNumberToSpokenWord.js.map +0 -1
  54. package/dist/cjs/converters/convertNumericUnitToSpokenWord.js +0 -48
  55. package/dist/cjs/converters/convertNumericUnitToSpokenWord.js.map +0 -1
  56. package/dist/cjs/converters/convertOperatorToSpokenWord.js +0 -17
  57. package/dist/cjs/converters/convertOperatorToSpokenWord.js.map +0 -1
  58. package/dist/cjs/converters/convertScientificExpressionToSpokenWord.js +0 -35
  59. package/dist/cjs/converters/convertScientificExpressionToSpokenWord.js.map +0 -1
  60. package/dist/cjs/converters/convertUnitOnlyToSpokenWord.js +0 -27
  61. package/dist/cjs/converters/convertUnitOnlyToSpokenWord.js.map +0 -1
  62. package/dist/cjs/index.js +0 -116
  63. package/dist/cjs/index.js.map +0 -1
  64. package/dist/cjs/interfaces/configurations/default.js +0 -3
  65. package/dist/cjs/interfaces/configurations/default.js.map +0 -1
  66. package/dist/cjs/interfaces/definitions.js +0 -3
  67. package/dist/cjs/interfaces/definitions.js.map +0 -1
  68. package/dist/cjs/utils/extraction/patternExtractor.js +0 -96
  69. package/dist/cjs/utils/extraction/patternExtractor.js.map +0 -1
  70. package/dist/cjs/utils/extraction/regexPatterns.js +0 -65
  71. package/dist/cjs/utils/extraction/regexPatterns.js.map +0 -1
  72. package/dist/cjs/utils/parseSuperscript.js +0 -33
  73. package/dist/cjs/utils/parseSuperscript.js.map +0 -1
  74. package/dist/cjs/utils/stringBuilding/exponent.js +0 -21
  75. package/dist/cjs/utils/stringBuilding/exponent.js.map +0 -1
  76. package/dist/cjs/utils/stringBuilding/negative.js +0 -8
  77. package/dist/cjs/utils/stringBuilding/negative.js.map +0 -1
  78. package/dist/cjs/utils/stringBuilding/perDigit.js +0 -18
  79. package/dist/cjs/utils/stringBuilding/perDigit.js.map +0 -1
  80. package/dist/cjs/utils/stringBuilding/positiveInteger.js +0 -31
  81. package/dist/cjs/utils/stringBuilding/positiveInteger.js.map +0 -1
  82. package/dist/cjs/utils/stringBuilding/twoDigits.js +0 -18
  83. package/dist/cjs/utils/stringBuilding/twoDigits.js.map +0 -1
  84. package/dist/cjs/utils/stringBuilding/zeroTo999.js +0 -37
  85. package/dist/cjs/utils/stringBuilding/zeroTo999.js.map +0 -1
  86. package/dist/cjs/utils/validateExtractionResultObject.js +0 -206
  87. package/dist/cjs/utils/validateExtractionResultObject.js.map +0 -1
  88. package/dist/esm/config/default.js +0 -392
  89. package/dist/esm/config/default.js.map +0 -1
  90. package/dist/esm/converters/convertCurrencyToSpokenWord.js +0 -25
  91. package/dist/esm/converters/convertCurrencyToSpokenWord.js.map +0 -1
  92. package/dist/esm/converters/convertNumberToSpokenWord.js +0 -29
  93. package/dist/esm/converters/convertNumberToSpokenWord.js.map +0 -1
  94. package/dist/esm/converters/convertNumericUnitToSpokenWord.js +0 -45
  95. package/dist/esm/converters/convertNumericUnitToSpokenWord.js.map +0 -1
  96. package/dist/esm/converters/convertOperatorToSpokenWord.js +0 -14
  97. package/dist/esm/converters/convertOperatorToSpokenWord.js.map +0 -1
  98. package/dist/esm/converters/convertScientificExpressionToSpokenWord.js +0 -32
  99. package/dist/esm/converters/convertScientificExpressionToSpokenWord.js.map +0 -1
  100. package/dist/esm/converters/convertUnitOnlyToSpokenWord.js +0 -24
  101. package/dist/esm/converters/convertUnitOnlyToSpokenWord.js.map +0 -1
  102. package/dist/esm/index.js +0 -111
  103. package/dist/esm/index.js.map +0 -1
  104. package/dist/esm/interfaces/configurations/default.js +0 -2
  105. package/dist/esm/interfaces/configurations/default.js.map +0 -1
  106. package/dist/esm/interfaces/definitions.js +0 -2
  107. package/dist/esm/interfaces/definitions.js.map +0 -1
  108. package/dist/esm/utils/extraction/patternExtractor.js +0 -92
  109. package/dist/esm/utils/extraction/patternExtractor.js.map +0 -1
  110. package/dist/esm/utils/extraction/regexPatterns.js +0 -62
  111. package/dist/esm/utils/extraction/regexPatterns.js.map +0 -1
  112. package/dist/esm/utils/parseSuperscript.js +0 -30
  113. package/dist/esm/utils/parseSuperscript.js.map +0 -1
  114. package/dist/esm/utils/stringBuilding/exponent.js +0 -18
  115. package/dist/esm/utils/stringBuilding/exponent.js.map +0 -1
  116. package/dist/esm/utils/stringBuilding/negative.js +0 -4
  117. package/dist/esm/utils/stringBuilding/negative.js.map +0 -1
  118. package/dist/esm/utils/stringBuilding/perDigit.js +0 -15
  119. package/dist/esm/utils/stringBuilding/perDigit.js.map +0 -1
  120. package/dist/esm/utils/stringBuilding/positiveInteger.js +0 -28
  121. package/dist/esm/utils/stringBuilding/positiveInteger.js.map +0 -1
  122. package/dist/esm/utils/stringBuilding/twoDigits.js +0 -15
  123. package/dist/esm/utils/stringBuilding/twoDigits.js.map +0 -1
  124. package/dist/esm/utils/stringBuilding/zeroTo999.js +0 -34
  125. package/dist/esm/utils/stringBuilding/zeroTo999.js.map +0 -1
  126. package/dist/esm/utils/validateExtractionResultObject.js +0 -203
  127. package/dist/esm/utils/validateExtractionResultObject.js.map +0 -1
@@ -1,15 +0,0 @@
1
- import { positiveInteger } from "./positiveInteger";
2
- /**
3
- * Converts each digit in a number to words, and returns them as a joined string.
4
- * @param num The number to convert, as a string.
5
- * @returns A string of space-separated words, where each word is a digit in the original number.
6
- * @example convertPerDigit("123") => "one two three"
7
- */
8
- export function perDigit(num) {
9
- const words = [];
10
- for (let i = 0; i < num.length; i++) {
11
- words.push(positiveInteger(parseInt(num[i])));
12
- }
13
- return words.join(" ");
14
- }
15
- //# sourceMappingURL=perDigit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"perDigit.js","sourceRoot":"","sources":["../../../../src/utils/stringBuilding/perDigit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;GAKG;AAEH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -1,28 +0,0 @@
1
- import { numbers } from "../../config/default";
2
- import { zeroTo999 } from "./zeroTo999";
3
- /**
4
- * Converts a non-negative integer into its full English word representation.
5
- * @param num The integer to convert.
6
- * @returns The word representation of the number, or an error message for invalid input.
7
- */
8
- export function positiveInteger(num) {
9
- if (typeof num !== "number" || !Number.isInteger(num) || num < 0) {
10
- return "Invalid input: Please provide a non-negative integer.";
11
- }
12
- if (num === 0) {
13
- return "zero";
14
- }
15
- let words = "";
16
- let scaleIndex = 0;
17
- while (num > 0) {
18
- if (num % 1000 !== 0) {
19
- const upToHundreds = zeroTo999(num % 1000);
20
- const magnitudeScale = numbers.scales[scaleIndex] ? " " + numbers.scales[scaleIndex] : "";
21
- words = upToHundreds + magnitudeScale + (words ? " " + words : "");
22
- }
23
- num = Math.floor(num / 1000);
24
- scaleIndex++;
25
- }
26
- return words.trim().replace(/\s+/g, " ");
27
- }
28
- //# sourceMappingURL=positiveInteger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"positiveInteger.js","sourceRoot":"","sources":["../../../../src/utils/stringBuilding/positiveInteger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;GAIG;AAEH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACjE,OAAO,uDAAuD,CAAC;IACjE,CAAC;IAED,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACf,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,KAAK,GAAG,YAAY,GAAG,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QAC7B,UAAU,EAAE,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,15 +0,0 @@
1
- import { positiveInteger } from "./positiveInteger";
2
- /**
3
- * Converts a given number of cents to words, provided it is a valid number between 0 and 99.
4
- * @param num The number of cents to convert, as a string.
5
- * @returns The word representation of the number of cents, or an empty string if the conversion failed.
6
- */
7
- export function twoDigit(num) {
8
- if (num.trim().length !== 2)
9
- return "";
10
- let parsed = parseInt(num);
11
- if (parsed < 100 && parsed >= 0)
12
- return positiveInteger(parsed);
13
- return "";
14
- }
15
- //# sourceMappingURL=twoDigits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"twoDigits.js","sourceRoot":"","sources":["../../../../src/utils/stringBuilding/twoDigits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;GAIG;AAEH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,34 +0,0 @@
1
- import { numbers } from "../../config/default";
2
- /**
3
- * Converts a number less than 1000 into words.
4
- * @param num The number to convert (0-999).
5
- * @returns The word representation of the number.
6
- */
7
- export function zeroTo999(num) {
8
- if (num === 0) {
9
- return "";
10
- }
11
- let words = "";
12
- if (num >= 100) {
13
- words += numbers.ones[Math.floor(num / 100)] + " hundred";
14
- num %= 100;
15
- if (num > 0) {
16
- words += " ";
17
- }
18
- }
19
- if (num >= 20) {
20
- words += numbers.tens[Math.floor(num / 10)];
21
- num %= 10;
22
- if (num > 0) {
23
- words += " " + numbers.ones[num];
24
- }
25
- }
26
- else if (num >= 10) {
27
- words += numbers.teens[num - 10];
28
- }
29
- else if (num > 0) {
30
- words += numbers.ones[num];
31
- }
32
- return words;
33
- }
34
- //# sourceMappingURL=zeroTo999.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zeroTo999.js","sourceRoot":"","sources":["../../../../src/utils/stringBuilding/zeroTo999.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C;;;;GAIG;AAEH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;QAC1D,GAAG,IAAI,GAAG,CAAC;QACX,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;QACd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5C,GAAG,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,KAAK,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;QACrB,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,203 +0,0 @@
1
- function isValidIntegerString(str, allowNegative = false) {
2
- if (str === undefined) {
3
- return true;
4
- }
5
- let regex;
6
- if (allowNegative) {
7
- regex = /^(?:[\u207B\u002D]?[\d\u2070-\u2079]+)$/;
8
- }
9
- else {
10
- regex = /^[\d\u2070-\u2079]+$/;
11
- }
12
- return regex.test(str);
13
- }
14
- /**
15
- * Validates an ExtractionResult object.
16
- *
17
- * Checks that the object is present, contains the required properties, and that
18
- * the values of those properties are of the correct type.
19
- *
20
- * If the object is invalid, throws an Error with a description of the problem.
21
- *
22
- * @param {ExtractionResult} extractionResult - The object to validate.
23
- */
24
- export function validateExtractionResult(extractionResult) {
25
- if (!extractionResult) {
26
- throw new Error("validateExtractionResult: ExtractionResult cannot be null or undefined.");
27
- }
28
- if (typeof extractionResult !== "object") {
29
- throw new Error("validateExtractionResult: ExtractionResult must be an object.");
30
- }
31
- if (!("input" in extractionResult)) {
32
- throw new Error("validateExtractionResult: ExtractionResult is missing the 'input' property.");
33
- }
34
- if (typeof extractionResult.input !== "string") {
35
- throw new Error("validateExtractionResult: ExtractionResult 'input' property must be a string.");
36
- }
37
- if (!("matchType" in extractionResult)) {
38
- throw new Error("validateExtractionResult: ExtractionResult is missing the 'matchType' property.");
39
- }
40
- if (typeof extractionResult.matchType !== "string") {
41
- throw new Error("validateExtractionResult: ExtractionResult 'matchType' property must be a string.");
42
- }
43
- if (!("index" in extractionResult)) {
44
- throw new Error("validateExtractionResult: ExtractionResult is missing the 'index' property.");
45
- }
46
- if (typeof extractionResult.index !== "number") {
47
- throw new Error("validateExtractionResult: ExtractionResult 'index' property must be a number.");
48
- }
49
- const { matchType } = extractionResult;
50
- switch (matchType) {
51
- case "number":
52
- if (!("integer" in extractionResult)) {
53
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult is missing the 'integer' property.");
54
- }
55
- if (typeof extractionResult.integer !== "string") {
56
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult 'integer' property must be a string.");
57
- }
58
- if (!isValidIntegerString(extractionResult.integer)) {
59
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult 'integer' property must contain only integers.");
60
- }
61
- if ("decimal" in extractionResult && extractionResult.decimal !== undefined && typeof extractionResult.decimal !== "string") {
62
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult 'decimal' property must be a string if present.");
63
- }
64
- if ("decimal" in extractionResult && extractionResult.decimal !== undefined && !isValidIntegerString(extractionResult.decimal)) {
65
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult 'decimal' property must contain only integers.");
66
- }
67
- if (!("negativeInt" in extractionResult)) {
68
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult is missing the 'negativeInt' property.");
69
- }
70
- if (typeof extractionResult.negativeInt !== "boolean") {
71
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult 'negativeInt' property must be a boolean.");
72
- }
73
- if ("exponent" in extractionResult && extractionResult.exponent !== undefined && typeof extractionResult.exponent !== "string") {
74
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult 'exponent' property must be a string if present.");
75
- }
76
- if ("exponent" in extractionResult && extractionResult.exponent !== undefined && !isValidIntegerString(extractionResult.exponent, true)) {
77
- throw new Error("validateExtractionResult: For matchType 'number', ExtractionResult 'exponent' property must contain only integers or superscript integers (and their respective negative symbol - and ⁻).");
78
- }
79
- break;
80
- case "symbolCurrency":
81
- case "codeCurrency":
82
- if (!("integer" in extractionResult)) {
83
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult is missing the 'integer' property.`);
84
- }
85
- if (typeof extractionResult.integer !== "string") {
86
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult 'integer' property must be a string.`);
87
- }
88
- if (!isValidIntegerString(extractionResult.integer)) {
89
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult 'integer' property must contain only integers.`);
90
- }
91
- if ("decimal" in extractionResult && extractionResult.decimal !== undefined && typeof extractionResult.decimal !== "string") {
92
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult 'decimal' property must be a string if present.`);
93
- }
94
- if ("decimal" in extractionResult && extractionResult.decimal !== undefined && !isValidIntegerString(extractionResult.decimal)) {
95
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult 'decimal' property must contain only integers.`);
96
- }
97
- if (!("negativeInt" in extractionResult)) {
98
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult is missing the 'negativeInt' property.`);
99
- }
100
- if (typeof extractionResult.negativeInt !== "boolean") {
101
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult 'negativeInt' property must be a boolean.`);
102
- }
103
- if (!("currency" in extractionResult)) {
104
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult is missing the 'currency' property.`);
105
- }
106
- if (typeof extractionResult.currency !== "string") {
107
- throw new Error(`validateExtractionResult: For matchType '${matchType}', ExtractionResult 'currency' property must be a string.`);
108
- }
109
- break;
110
- case "unit":
111
- if (!("integer" in extractionResult)) {
112
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult is missing the 'integer' property.");
113
- }
114
- if (typeof extractionResult.integer !== "string") {
115
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'integer' property must be a string.");
116
- }
117
- if (!isValidIntegerString(extractionResult.integer)) {
118
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'integer' property must contain only integers.");
119
- }
120
- if ("decimal" in extractionResult && extractionResult.decimal !== undefined && typeof extractionResult.decimal !== "string") {
121
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'decimal' property must be a string if present.");
122
- }
123
- if ("decimal" in extractionResult && extractionResult.decimal !== undefined && !isValidIntegerString(extractionResult.decimal)) {
124
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'decimal' property must contain only integers.");
125
- }
126
- if (!("negativeInt" in extractionResult)) {
127
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult is missing the 'negativeInt' property.");
128
- }
129
- if (typeof extractionResult.negativeInt !== "boolean") {
130
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'negativeInt' property must be a boolean.");
131
- }
132
- if (!("unit" in extractionResult)) {
133
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult is missing the 'unit' property.");
134
- }
135
- if (typeof extractionResult.unit !== "string") {
136
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'unit' property must be a string.");
137
- }
138
- if ("exponent" in extractionResult && extractionResult.exponent !== undefined && typeof extractionResult.exponent !== "string") {
139
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'exponent' property must be a string if present.");
140
- }
141
- if ("exponent" in extractionResult && extractionResult.exponent !== undefined && !isValidIntegerString(extractionResult.exponent, true)) {
142
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'exponent' property must contain only integers or superscript integers (and their respective negative symbol - and ⁻).");
143
- }
144
- if ("unitExponent" in extractionResult && extractionResult.unitExponent !== undefined && typeof extractionResult.unitExponent !== "string") {
145
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'unitExponent' property must be a string if present.");
146
- }
147
- if ("unitExponent" in extractionResult && extractionResult.unitExponent !== undefined && !isValidIntegerString(extractionResult.unitExponent, true)) {
148
- throw new Error("validateExtractionResult: For matchType 'unit', ExtractionResult 'unitExponent' property must contain only integers or superscript integers (and their respective negative symbol - and ⁻).");
149
- }
150
- break;
151
- case "unitOnly":
152
- if (!("unit" in extractionResult)) {
153
- throw new Error("validateExtractionResult: For matchType 'unitOnly', ExtractionResult is missing the 'unit' property.");
154
- }
155
- if (typeof extractionResult.unit !== "string") {
156
- throw new Error("validateExtractionResult: For matchType 'unitOnly', ExtractionResult 'unit' property must be a string.");
157
- }
158
- if ("unitExponent" in extractionResult && extractionResult.unitExponent !== undefined && typeof extractionResult.unitExponent !== "string") {
159
- throw new Error("validateExtractionResult: For matchType 'unitOnly', ExtractionResult 'unitExponent' property must be a string if present.");
160
- }
161
- if ("unitExponent" in extractionResult && extractionResult.unitExponent !== undefined && !isValidIntegerString(extractionResult.unitExponent, true)) {
162
- throw new Error("validateExtractionResult: For matchType 'unitOnly', ExtractionResult 'unitExponent' property must contain only integers or superscript integers (and their respective negative symbol - and ⁻).");
163
- }
164
- break;
165
- case "operator":
166
- break; // No specific properties to validate for operator
167
- case "scientific":
168
- if (!("integer" in extractionResult)) {
169
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult is missing the 'integer' property.");
170
- }
171
- if (typeof extractionResult.integer !== "string") {
172
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult 'integer' property must be a string.");
173
- }
174
- if (!isValidIntegerString(extractionResult.integer)) {
175
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult 'integer' property must contain only integers.");
176
- }
177
- if ("decimal" in extractionResult && extractionResult.decimal !== undefined && typeof extractionResult.decimal !== "string") {
178
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult 'decimal' property must be a string if present.");
179
- }
180
- if ("decimal" in extractionResult && extractionResult.decimal !== undefined && !isValidIntegerString(extractionResult.decimal)) {
181
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult 'decimal' property must contain only integers.");
182
- }
183
- if (!("negativeInt" in extractionResult)) {
184
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult is missing the 'negativeInt' property.");
185
- }
186
- if (typeof extractionResult.negativeInt !== "boolean") {
187
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult 'negativeInt' property must be a boolean.");
188
- }
189
- if (!("exponent" in extractionResult)) {
190
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult is missing the 'exponent' property.");
191
- }
192
- if (extractionResult.exponent !== undefined && typeof extractionResult.exponent !== "string") {
193
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult 'exponent' property must be a string.");
194
- }
195
- if (extractionResult.exponent !== undefined && !isValidIntegerString(extractionResult.exponent, true)) {
196
- throw new Error("validateExtractionResult: For matchType 'scientific', ExtractionResult 'exponent' property must contain only integers or superscript integers (and their respective negative symbol - and ⁻).");
197
- }
198
- break;
199
- default:
200
- throw new Error(`validateExtractionResult: Unknown matchType: ${matchType}`);
201
- }
202
- }
203
- //# sourceMappingURL=validateExtractionResultObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateExtractionResultObject.js","sourceRoot":"","sources":["../../../src/utils/validateExtractionResultObject.ts"],"names":[],"mappings":"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"}