@onereach/billing-shared 31.1.1-beta.12542.0 → 31.1.1-beta.12589.0
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/dist/cjs/enums/index.js +1 -1
- package/dist/cjs/enums/index.js.map +1 -1
- package/dist/cjs/enums/usage-compaction.js +35 -0
- package/dist/cjs/enums/usage-compaction.js.map +1 -0
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/usage-compaction.js +3 -0
- package/dist/cjs/types/usage-compaction.js.map +1 -0
- package/dist/cjs/utils/exact-numeric.constants.js +9 -0
- package/dist/cjs/utils/exact-numeric.constants.js.map +1 -0
- package/dist/cjs/utils/exact-numeric.js +164 -0
- package/dist/cjs/utils/exact-numeric.js.map +1 -0
- package/dist/cjs/utils/exact-numeric.types.js +3 -0
- package/dist/cjs/utils/exact-numeric.types.js.map +1 -0
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/enums/index.js +1 -1
- package/dist/esm/enums/index.js.map +1 -1
- package/dist/esm/enums/usage-compaction.js +32 -0
- package/dist/esm/enums/usage-compaction.js.map +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/usage-compaction.js +2 -0
- package/dist/esm/types/usage-compaction.js.map +1 -0
- package/dist/esm/utils/exact-numeric.constants.js +6 -0
- package/dist/esm/utils/exact-numeric.constants.js.map +1 -0
- package/dist/esm/utils/exact-numeric.js +158 -0
- package/dist/esm/utils/exact-numeric.js.map +1 -0
- package/dist/esm/utils/exact-numeric.types.js +2 -0
- package/dist/esm/utils/exact-numeric.types.js.map +1 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/enums/index.d.ts +1 -1
- package/dist/types/enums/index.d.ts.map +1 -1
- package/dist/types/enums/usage-compaction.d.ts +28 -0
- package/dist/types/enums/usage-compaction.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/usage-compaction.d.ts +11 -0
- package/dist/types/types/usage-compaction.d.ts.map +1 -0
- package/dist/types/utils/exact-numeric.constants.d.ts +4 -0
- package/dist/types/utils/exact-numeric.constants.d.ts.map +1 -0
- package/dist/types/utils/exact-numeric.d.ts +6 -0
- package/dist/types/utils/exact-numeric.d.ts.map +1 -0
- package/dist/types/utils/exact-numeric.types.d.ts +6 -0
- package/dist/types/utils/exact-numeric.types.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/enums/index.ts +1 -1
- package/src/enums/usage-compaction.ts +30 -0
- package/src/types/index.ts +1 -0
- package/src/types/usage-compaction.ts +12 -0
- package/src/utils/exact-numeric.constants.ts +5 -0
- package/src/utils/exact-numeric.ts +199 -0
- package/src/utils/exact-numeric.types.ts +5 -0
- package/src/utils/index.ts +1 -0
- package/dist/cjs/enums/sku-mapping-status.js +0 -9
- package/dist/cjs/enums/sku-mapping-status.js.map +0 -1
- package/dist/esm/enums/sku-mapping-status.js +0 -6
- package/dist/esm/enums/sku-mapping-status.js.map +0 -1
- package/dist/types/enums/sku-mapping-status.d.ts +0 -5
- package/dist/types/enums/sku-mapping-status.d.ts.map +0 -1
- package/src/enums/sku-mapping-status.ts +0 -4
package/dist/cjs/enums/index.js
CHANGED
|
@@ -28,8 +28,8 @@ __exportStar(require("./payment-settings"), exports);
|
|
|
28
28
|
__exportStar(require("./patterns"), exports);
|
|
29
29
|
__exportStar(require("./errored-sku"), exports);
|
|
30
30
|
__exportStar(require("./sku-status"), exports);
|
|
31
|
-
__exportStar(require("./sku-mapping-status"), exports);
|
|
32
31
|
__exportStar(require("./customer-account-action"), exports);
|
|
33
32
|
__exportStar(require("./environment-status"), exports);
|
|
34
33
|
__exportStar(require("./billing-domain"), exports);
|
|
34
|
+
__exportStar(require("./usage-compaction"), exports);
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,2CAAyB;AACzB,kDAAgC;AAChC,6CAA2B;AAC3B,0CAAwB;AACxB,uDAAqC;AACrC,yDAAuC;AACvC,kDAAgC;AAChC,sDAAoC;AACpC,4CAA0B;AAC1B,qDAAmC;AACnC,6CAA2B;AAC3B,gDAA8B;AAC9B,+CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,2CAAyB;AACzB,kDAAgC;AAChC,6CAA2B;AAC3B,0CAAwB;AACxB,uDAAqC;AACrC,yDAAuC;AACvC,kDAAgC;AAChC,sDAAoC;AACpC,4CAA0B;AAC1B,qDAAmC;AACnC,6CAA2B;AAC3B,gDAA8B;AAC9B,+CAA6B;AAC7B,4DAA0C;AAC1C,uDAAqC;AACrC,mDAAiC;AACjC,qDAAmC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UsageCompactionItemStatus = exports.UsageCompactionRunStatus = exports.UsageCompactionRunMode = exports.UsageGranularity = void 0;
|
|
4
|
+
var UsageGranularity;
|
|
5
|
+
(function (UsageGranularity) {
|
|
6
|
+
UsageGranularity["HOUR"] = "hour";
|
|
7
|
+
UsageGranularity["DAY"] = "day";
|
|
8
|
+
})(UsageGranularity || (exports.UsageGranularity = UsageGranularity = {}));
|
|
9
|
+
var UsageCompactionRunMode;
|
|
10
|
+
(function (UsageCompactionRunMode) {
|
|
11
|
+
UsageCompactionRunMode["DRY_RUN"] = "dry-run";
|
|
12
|
+
UsageCompactionRunMode["BACKFILL"] = "backfill";
|
|
13
|
+
UsageCompactionRunMode["SCHEDULED"] = "scheduled";
|
|
14
|
+
UsageCompactionRunMode["RECOMPILE"] = "recompile";
|
|
15
|
+
UsageCompactionRunMode["REPAIR"] = "repair";
|
|
16
|
+
})(UsageCompactionRunMode || (exports.UsageCompactionRunMode = UsageCompactionRunMode = {}));
|
|
17
|
+
var UsageCompactionRunStatus;
|
|
18
|
+
(function (UsageCompactionRunStatus) {
|
|
19
|
+
UsageCompactionRunStatus["QUEUED"] = "queued";
|
|
20
|
+
UsageCompactionRunStatus["PROCESSING"] = "processing";
|
|
21
|
+
UsageCompactionRunStatus["COMPLETED"] = "completed";
|
|
22
|
+
UsageCompactionRunStatus["PARTIAL"] = "partial";
|
|
23
|
+
UsageCompactionRunStatus["FAILED"] = "failed";
|
|
24
|
+
UsageCompactionRunStatus["CANCELLED"] = "cancelled";
|
|
25
|
+
})(UsageCompactionRunStatus || (exports.UsageCompactionRunStatus = UsageCompactionRunStatus = {}));
|
|
26
|
+
var UsageCompactionItemStatus;
|
|
27
|
+
(function (UsageCompactionItemStatus) {
|
|
28
|
+
UsageCompactionItemStatus["QUEUED"] = "queued";
|
|
29
|
+
UsageCompactionItemStatus["PROCESSING"] = "processing";
|
|
30
|
+
UsageCompactionItemStatus["VALIDATED"] = "validated";
|
|
31
|
+
UsageCompactionItemStatus["COMPLETED"] = "completed";
|
|
32
|
+
UsageCompactionItemStatus["FAILED"] = "failed";
|
|
33
|
+
UsageCompactionItemStatus["SKIPPED"] = "skipped";
|
|
34
|
+
})(UsageCompactionItemStatus || (exports.UsageCompactionItemStatus = UsageCompactionItemStatus = {}));
|
|
35
|
+
//# sourceMappingURL=usage-compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-compaction.js","sourceRoot":"","sources":["../../../src/enums/usage-compaction.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,+BAAW,CAAA;AACb,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,6CAAmB,CAAA;IACnB,+CAAqB,CAAA;IACrB,iDAAuB,CAAA;IACvB,iDAAuB,CAAA;IACvB,2CAAiB,CAAA;AACnB,CAAC,EANW,sBAAsB,sCAAtB,sBAAsB,QAMjC;AAED,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,6CAAiB,CAAA;IACjB,qDAAyB,CAAA;IACzB,mDAAuB,CAAA;IACvB,+CAAmB,CAAA;IACnB,6CAAiB,CAAA;IACjB,mDAAuB,CAAA;AACzB,CAAC,EAPW,wBAAwB,wCAAxB,wBAAwB,QAOnC;AAED,IAAY,yBAOX;AAPD,WAAY,yBAAyB;IACnC,8CAAiB,CAAA;IACjB,sDAAyB,CAAA;IACzB,oDAAuB,CAAA;IACvB,oDAAuB,CAAA;IACvB,8CAAiB,CAAA;IACjB,gDAAmB,CAAA;AACrB,CAAC,EAPW,yBAAyB,yCAAzB,yBAAyB,QAOpC"}
|
package/dist/cjs/types/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./common"), exports);
|
|
18
18
|
__exportStar(require("./billing-domain"), exports);
|
|
19
19
|
__exportStar(require("./customer-account-actions"), exports);
|
|
20
|
+
__exportStar(require("./usage-compaction"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,mDAAiC;AACjC,6DAA2C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,mDAAiC;AACjC,6DAA2C;AAC3C,qDAAmC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-compaction.js","sourceRoot":"","sources":["../../../src/types/usage-compaction.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXACT_NUMERIC_MAX_INPUT_LENGTH = exports.EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS = exports.EXACT_NUMERIC_MAX_INTEGER_DIGITS = void 0;
|
|
4
|
+
exports.EXACT_NUMERIC_MAX_INTEGER_DIGITS = 131072;
|
|
5
|
+
exports.EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS = 16383;
|
|
6
|
+
exports.EXACT_NUMERIC_MAX_INPUT_LENGTH = exports.EXACT_NUMERIC_MAX_INTEGER_DIGITS
|
|
7
|
+
+ exports.EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS
|
|
8
|
+
+ 32;
|
|
9
|
+
//# sourceMappingURL=exact-numeric.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.constants.js","sourceRoot":"","sources":["../../../src/utils/exact-numeric.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gCAAgC,GAAG,MAAO,CAAC;AAC3C,QAAA,mCAAmC,GAAG,KAAM,CAAC;AAC7C,QAAA,8BAA8B,GAAG,wCAAgC;MAC1E,2CAAmC;MACnC,EAAE,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toExactNumeric = toExactNumeric;
|
|
4
|
+
exports.addExactNumeric = addExactNumeric;
|
|
5
|
+
exports.sumExactNumeric = sumExactNumeric;
|
|
6
|
+
exports.compareExactNumeric = compareExactNumeric;
|
|
7
|
+
var exact_numeric_constants_1 = require("./exact-numeric.constants");
|
|
8
|
+
function toExactNumeric(value) {
|
|
9
|
+
var _a, _b, _c;
|
|
10
|
+
if (typeof value === 'number' && !Number.isFinite(value)) {
|
|
11
|
+
throw new Error('Exact numeric value must be finite');
|
|
12
|
+
}
|
|
13
|
+
var input = String(value).trim();
|
|
14
|
+
if (!input || input.length > exact_numeric_constants_1.EXACT_NUMERIC_MAX_INPUT_LENGTH) {
|
|
15
|
+
throw new Error('Exact numeric value is invalid');
|
|
16
|
+
}
|
|
17
|
+
var match = /^([+-]?)(\d*)(?:\.(\d*))?(?:[eE]([+-]?\d+))?$/.exec(input);
|
|
18
|
+
if (!match || (!match[2] && !match[3])) {
|
|
19
|
+
throw new Error('Exact numeric value is invalid');
|
|
20
|
+
}
|
|
21
|
+
var sign = match[1] === '-' ? '-' : '';
|
|
22
|
+
var integerPart = (_a = match[2]) !== null && _a !== void 0 ? _a : '';
|
|
23
|
+
var fractionalPart = (_b = match[3]) !== null && _b !== void 0 ? _b : '';
|
|
24
|
+
var digits = "".concat(integerPart).concat(fractionalPart);
|
|
25
|
+
if (/^0+$/.test(digits)) {
|
|
26
|
+
return '0';
|
|
27
|
+
}
|
|
28
|
+
var exponentText = (_c = match[4]) !== null && _c !== void 0 ? _c : '0';
|
|
29
|
+
var normalizedExponentText = exponentText.replace(/^([+-]?)0+(?=\d)/, '$1');
|
|
30
|
+
if (normalizedExponentText.replace(/^[+-]/, '').length > 6) {
|
|
31
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
32
|
+
}
|
|
33
|
+
var exponent = Number(normalizedExponentText);
|
|
34
|
+
var maximumShift = exact_numeric_constants_1.EXACT_NUMERIC_MAX_INTEGER_DIGITS
|
|
35
|
+
+ exact_numeric_constants_1.EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS;
|
|
36
|
+
if (exponent > maximumShift || exponent < -maximumShift) {
|
|
37
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
38
|
+
}
|
|
39
|
+
var decimalIndex = integerPart.length + exponent;
|
|
40
|
+
var expanded;
|
|
41
|
+
if (decimalIndex <= 0) {
|
|
42
|
+
expanded = "0.".concat('0'.repeat(-decimalIndex)).concat(digits);
|
|
43
|
+
}
|
|
44
|
+
else if (decimalIndex >= digits.length) {
|
|
45
|
+
expanded = "".concat(digits).concat('0'.repeat(decimalIndex - digits.length));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
expanded = "".concat(digits.slice(0, decimalIndex), ".").concat(digits.slice(decimalIndex));
|
|
49
|
+
}
|
|
50
|
+
var _d = expanded.split('.'), expandedIntegerPart = _d[0], _e = _d[1], expandedFractionalPart = _e === void 0 ? '' : _e;
|
|
51
|
+
var normalizedIntegerPart = expandedIntegerPart.replace(/^0+(?=\d)/, '');
|
|
52
|
+
var normalizedFractionalPart = expandedFractionalPart.replace(/0+$/, '');
|
|
53
|
+
if (normalizedIntegerPart.length > exact_numeric_constants_1.EXACT_NUMERIC_MAX_INTEGER_DIGITS
|
|
54
|
+
|| normalizedFractionalPart.length > exact_numeric_constants_1.EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS) {
|
|
55
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
56
|
+
}
|
|
57
|
+
var normalized = normalizedFractionalPart
|
|
58
|
+
? "".concat(normalizedIntegerPart, ".").concat(normalizedFractionalPart)
|
|
59
|
+
: normalizedIntegerPart;
|
|
60
|
+
return "".concat(sign).concat(normalized);
|
|
61
|
+
}
|
|
62
|
+
function addExactNumeric(left, right) {
|
|
63
|
+
var leftValue = parseExactNumeric(left);
|
|
64
|
+
var rightValue = parseExactNumeric(right);
|
|
65
|
+
var scale = Math.max(leftValue.scale, rightValue.scale);
|
|
66
|
+
var leftDigits = alignScale(leftValue, scale);
|
|
67
|
+
var rightDigits = alignScale(rightValue, scale);
|
|
68
|
+
if (leftValue.sign === 0)
|
|
69
|
+
return formatExactNumeric(rightDigits, scale, rightValue.sign);
|
|
70
|
+
if (rightValue.sign === 0)
|
|
71
|
+
return formatExactNumeric(leftDigits, scale, leftValue.sign);
|
|
72
|
+
if (leftValue.sign === rightValue.sign) {
|
|
73
|
+
return formatExactNumeric(addUnsigned(leftDigits, rightDigits), scale, leftValue.sign);
|
|
74
|
+
}
|
|
75
|
+
var comparison = compareUnsigned(leftDigits, rightDigits);
|
|
76
|
+
if (comparison === 0)
|
|
77
|
+
return '0';
|
|
78
|
+
return comparison > 0
|
|
79
|
+
? formatExactNumeric(subtractUnsigned(leftDigits, rightDigits), scale, leftValue.sign)
|
|
80
|
+
: formatExactNumeric(subtractUnsigned(rightDigits, leftDigits), scale, rightValue.sign);
|
|
81
|
+
}
|
|
82
|
+
function sumExactNumeric(values) {
|
|
83
|
+
return values.reduce(addExactNumeric, '0');
|
|
84
|
+
}
|
|
85
|
+
function compareExactNumeric(left, right) {
|
|
86
|
+
var leftValue = parseExactNumeric(left);
|
|
87
|
+
var rightValue = parseExactNumeric(right);
|
|
88
|
+
if (leftValue.sign !== rightValue.sign) {
|
|
89
|
+
return leftValue.sign < rightValue.sign ? -1 : 1;
|
|
90
|
+
}
|
|
91
|
+
if (leftValue.sign === 0)
|
|
92
|
+
return 0;
|
|
93
|
+
var scale = Math.max(leftValue.scale, rightValue.scale);
|
|
94
|
+
var comparison = compareUnsigned(alignScale(leftValue, scale), alignScale(rightValue, scale));
|
|
95
|
+
return leftValue.sign === 1 ? comparison : -comparison;
|
|
96
|
+
}
|
|
97
|
+
function parseExactNumeric(value) {
|
|
98
|
+
var canonical = toExactNumeric(value);
|
|
99
|
+
var isNegative = canonical.startsWith('-');
|
|
100
|
+
var unsigned = isNegative ? canonical.slice(1) : canonical;
|
|
101
|
+
var _a = unsigned.split('.'), integerPart = _a[0], _b = _a[1], fractionalPart = _b === void 0 ? '' : _b;
|
|
102
|
+
var digits = "".concat(integerPart).concat(fractionalPart).replace(/^0+/, '') || '0';
|
|
103
|
+
return {
|
|
104
|
+
digits: digits,
|
|
105
|
+
scale: fractionalPart.length,
|
|
106
|
+
sign: digits === '0' ? 0 : isNegative ? -1 : 1,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function alignScale(value, scale) {
|
|
110
|
+
return "".concat(value.digits).concat('0'.repeat(scale - value.scale));
|
|
111
|
+
}
|
|
112
|
+
function formatExactNumeric(digits, scale, sign) {
|
|
113
|
+
var normalizedDigits = digits.replace(/^0+/, '') || '0';
|
|
114
|
+
if (normalizedDigits === '0' || sign === 0)
|
|
115
|
+
return '0';
|
|
116
|
+
var signPrefix = sign === -1 ? '-' : '';
|
|
117
|
+
if (scale === 0)
|
|
118
|
+
return "".concat(signPrefix).concat(normalizedDigits);
|
|
119
|
+
var paddedDigits = normalizedDigits.padStart(scale + 1, '0');
|
|
120
|
+
var decimalIndex = paddedDigits.length - scale;
|
|
121
|
+
return toExactNumeric("".concat(signPrefix).concat(paddedDigits.slice(0, decimalIndex), ".").concat(paddedDigits.slice(decimalIndex)));
|
|
122
|
+
}
|
|
123
|
+
function compareUnsigned(left, right) {
|
|
124
|
+
var normalizedLeft = left.replace(/^0+/, '') || '0';
|
|
125
|
+
var normalizedRight = right.replace(/^0+/, '') || '0';
|
|
126
|
+
if (normalizedLeft.length !== normalizedRight.length) {
|
|
127
|
+
return normalizedLeft.length < normalizedRight.length ? -1 : 1;
|
|
128
|
+
}
|
|
129
|
+
if (normalizedLeft === normalizedRight)
|
|
130
|
+
return 0;
|
|
131
|
+
return normalizedLeft < normalizedRight ? -1 : 1;
|
|
132
|
+
}
|
|
133
|
+
function addUnsigned(left, right) {
|
|
134
|
+
var length = Math.max(left.length, right.length);
|
|
135
|
+
var leftDigits = left.padStart(length, '0');
|
|
136
|
+
var rightDigits = right.padStart(length, '0');
|
|
137
|
+
var result = new Array(length + 1).fill('0');
|
|
138
|
+
var carry = 0;
|
|
139
|
+
for (var index = length - 1; index >= 0; index -= 1) {
|
|
140
|
+
var sum = Number(leftDigits[index]) + Number(rightDigits[index]) + carry;
|
|
141
|
+
result[index + 1] = String(sum % 10);
|
|
142
|
+
carry = Math.floor(sum / 10);
|
|
143
|
+
}
|
|
144
|
+
result[0] = String(carry);
|
|
145
|
+
return result.join('').replace(/^0+/, '') || '0';
|
|
146
|
+
}
|
|
147
|
+
function subtractUnsigned(left, right) {
|
|
148
|
+
var rightDigits = right.padStart(left.length, '0');
|
|
149
|
+
var result = new Array(left.length).fill('0');
|
|
150
|
+
var borrow = 0;
|
|
151
|
+
for (var index = left.length - 1; index >= 0; index -= 1) {
|
|
152
|
+
var difference = Number(left[index]) - Number(rightDigits[index]) - borrow;
|
|
153
|
+
if (difference < 0) {
|
|
154
|
+
difference += 10;
|
|
155
|
+
borrow = 1;
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
borrow = 0;
|
|
159
|
+
}
|
|
160
|
+
result[index] = String(difference);
|
|
161
|
+
}
|
|
162
|
+
return result.join('').replace(/^0+/, '') || '0';
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=exact-numeric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.js","sourceRoot":"","sources":["../../../src/utils/exact-numeric.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.types.js","sourceRoot":"","sources":["../../../src/utils/exact-numeric.types.ts"],"names":[],"mappings":""}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -21,4 +21,5 @@ __exportStar(require("./format-date"), exports);
|
|
|
21
21
|
__exportStar(require("./escape-csv-value"), exports);
|
|
22
22
|
__exportStar(require("./build-csv-file-name"), exports);
|
|
23
23
|
__exportStar(require("./build-csv-file-string"), exports);
|
|
24
|
+
__exportStar(require("./exact-numeric"), exports);
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,qDAAmC;AACnC,yCAAuB;AACvB,gDAA8B;AAC9B,qDAAmC;AACnC,wDAAsC;AACtC,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,qDAAmC;AACnC,yCAAuB;AACvB,gDAA8B;AAC9B,qDAAmC;AACnC,wDAAsC;AACtC,0DAAwC;AACxC,kDAAgC"}
|
package/dist/esm/enums/index.js
CHANGED
|
@@ -12,8 +12,8 @@ export * from './payment-settings';
|
|
|
12
12
|
export * from './patterns';
|
|
13
13
|
export * from './errored-sku';
|
|
14
14
|
export * from './sku-status';
|
|
15
|
-
export * from './sku-mapping-status';
|
|
16
15
|
export * from './customer-account-action';
|
|
17
16
|
export * from './environment-status';
|
|
18
17
|
export * from './billing-domain';
|
|
18
|
+
export * from './usage-compaction';
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export var UsageGranularity;
|
|
2
|
+
(function (UsageGranularity) {
|
|
3
|
+
UsageGranularity["HOUR"] = "hour";
|
|
4
|
+
UsageGranularity["DAY"] = "day";
|
|
5
|
+
})(UsageGranularity || (UsageGranularity = {}));
|
|
6
|
+
export var UsageCompactionRunMode;
|
|
7
|
+
(function (UsageCompactionRunMode) {
|
|
8
|
+
UsageCompactionRunMode["DRY_RUN"] = "dry-run";
|
|
9
|
+
UsageCompactionRunMode["BACKFILL"] = "backfill";
|
|
10
|
+
UsageCompactionRunMode["SCHEDULED"] = "scheduled";
|
|
11
|
+
UsageCompactionRunMode["RECOMPILE"] = "recompile";
|
|
12
|
+
UsageCompactionRunMode["REPAIR"] = "repair";
|
|
13
|
+
})(UsageCompactionRunMode || (UsageCompactionRunMode = {}));
|
|
14
|
+
export var UsageCompactionRunStatus;
|
|
15
|
+
(function (UsageCompactionRunStatus) {
|
|
16
|
+
UsageCompactionRunStatus["QUEUED"] = "queued";
|
|
17
|
+
UsageCompactionRunStatus["PROCESSING"] = "processing";
|
|
18
|
+
UsageCompactionRunStatus["COMPLETED"] = "completed";
|
|
19
|
+
UsageCompactionRunStatus["PARTIAL"] = "partial";
|
|
20
|
+
UsageCompactionRunStatus["FAILED"] = "failed";
|
|
21
|
+
UsageCompactionRunStatus["CANCELLED"] = "cancelled";
|
|
22
|
+
})(UsageCompactionRunStatus || (UsageCompactionRunStatus = {}));
|
|
23
|
+
export var UsageCompactionItemStatus;
|
|
24
|
+
(function (UsageCompactionItemStatus) {
|
|
25
|
+
UsageCompactionItemStatus["QUEUED"] = "queued";
|
|
26
|
+
UsageCompactionItemStatus["PROCESSING"] = "processing";
|
|
27
|
+
UsageCompactionItemStatus["VALIDATED"] = "validated";
|
|
28
|
+
UsageCompactionItemStatus["COMPLETED"] = "completed";
|
|
29
|
+
UsageCompactionItemStatus["FAILED"] = "failed";
|
|
30
|
+
UsageCompactionItemStatus["SKIPPED"] = "skipped";
|
|
31
|
+
})(UsageCompactionItemStatus || (UsageCompactionItemStatus = {}));
|
|
32
|
+
//# sourceMappingURL=usage-compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-compaction.js","sourceRoot":"","sources":["../../../src/enums/usage-compaction.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,+BAAW,CAAA;AACb,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED,MAAM,CAAN,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,6CAAmB,CAAA;IACnB,+CAAqB,CAAA;IACrB,iDAAuB,CAAA;IACvB,iDAAuB,CAAA;IACvB,2CAAiB,CAAA;AACnB,CAAC,EANW,sBAAsB,KAAtB,sBAAsB,QAMjC;AAED,MAAM,CAAN,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,6CAAiB,CAAA;IACjB,qDAAyB,CAAA;IACzB,mDAAuB,CAAA;IACvB,+CAAmB,CAAA;IACnB,6CAAiB,CAAA;IACjB,mDAAuB,CAAA;AACzB,CAAC,EAPW,wBAAwB,KAAxB,wBAAwB,QAOnC;AAED,MAAM,CAAN,IAAY,yBAOX;AAPD,WAAY,yBAAyB;IACnC,8CAAiB,CAAA;IACjB,sDAAyB,CAAA;IACzB,oDAAuB,CAAA;IACvB,oDAAuB,CAAA;IACvB,8CAAiB,CAAA;IACjB,gDAAmB,CAAA;AACrB,CAAC,EAPW,yBAAyB,KAAzB,yBAAyB,QAOpC"}
|
package/dist/esm/types/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-compaction.js","sourceRoot":"","sources":["../../../src/types/usage-compaction.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const EXACT_NUMERIC_MAX_INTEGER_DIGITS = 131072;
|
|
2
|
+
export const EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS = 16383;
|
|
3
|
+
export const EXACT_NUMERIC_MAX_INPUT_LENGTH = EXACT_NUMERIC_MAX_INTEGER_DIGITS
|
|
4
|
+
+ EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS
|
|
5
|
+
+ 32;
|
|
6
|
+
//# sourceMappingURL=exact-numeric.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.constants.js","sourceRoot":"","sources":["../../../src/utils/exact-numeric.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAO,CAAC;AACxD,MAAM,CAAC,MAAM,mCAAmC,GAAG,KAAM,CAAC;AAC1D,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAgC;MAC1E,mCAAmC;MACnC,EAAE,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS, EXACT_NUMERIC_MAX_INPUT_LENGTH, EXACT_NUMERIC_MAX_INTEGER_DIGITS, } from './exact-numeric.constants';
|
|
2
|
+
export function toExactNumeric(value) {
|
|
3
|
+
var _a, _b, _c;
|
|
4
|
+
if (typeof value === 'number' && !Number.isFinite(value)) {
|
|
5
|
+
throw new Error('Exact numeric value must be finite');
|
|
6
|
+
}
|
|
7
|
+
const input = String(value).trim();
|
|
8
|
+
if (!input || input.length > EXACT_NUMERIC_MAX_INPUT_LENGTH) {
|
|
9
|
+
throw new Error('Exact numeric value is invalid');
|
|
10
|
+
}
|
|
11
|
+
const match = /^([+-]?)(\d*)(?:\.(\d*))?(?:[eE]([+-]?\d+))?$/.exec(input);
|
|
12
|
+
if (!match || (!match[2] && !match[3])) {
|
|
13
|
+
throw new Error('Exact numeric value is invalid');
|
|
14
|
+
}
|
|
15
|
+
const sign = match[1] === '-' ? '-' : '';
|
|
16
|
+
const integerPart = (_a = match[2]) !== null && _a !== void 0 ? _a : '';
|
|
17
|
+
const fractionalPart = (_b = match[3]) !== null && _b !== void 0 ? _b : '';
|
|
18
|
+
const digits = `${integerPart}${fractionalPart}`;
|
|
19
|
+
if (/^0+$/.test(digits)) {
|
|
20
|
+
return '0';
|
|
21
|
+
}
|
|
22
|
+
const exponentText = (_c = match[4]) !== null && _c !== void 0 ? _c : '0';
|
|
23
|
+
const normalizedExponentText = exponentText.replace(/^([+-]?)0+(?=\d)/, '$1');
|
|
24
|
+
if (normalizedExponentText.replace(/^[+-]/, '').length > 6) {
|
|
25
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
26
|
+
}
|
|
27
|
+
const exponent = Number(normalizedExponentText);
|
|
28
|
+
const maximumShift = EXACT_NUMERIC_MAX_INTEGER_DIGITS
|
|
29
|
+
+ EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS;
|
|
30
|
+
if (exponent > maximumShift || exponent < -maximumShift) {
|
|
31
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
32
|
+
}
|
|
33
|
+
const decimalIndex = integerPart.length + exponent;
|
|
34
|
+
let expanded;
|
|
35
|
+
if (decimalIndex <= 0) {
|
|
36
|
+
expanded = `0.${'0'.repeat(-decimalIndex)}${digits}`;
|
|
37
|
+
}
|
|
38
|
+
else if (decimalIndex >= digits.length) {
|
|
39
|
+
expanded = `${digits}${'0'.repeat(decimalIndex - digits.length)}`;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
expanded = `${digits.slice(0, decimalIndex)}.${digits.slice(decimalIndex)}`;
|
|
43
|
+
}
|
|
44
|
+
const [expandedIntegerPart, expandedFractionalPart = ''] = expanded.split('.');
|
|
45
|
+
const normalizedIntegerPart = expandedIntegerPart.replace(/^0+(?=\d)/, '');
|
|
46
|
+
const normalizedFractionalPart = expandedFractionalPart.replace(/0+$/, '');
|
|
47
|
+
if (normalizedIntegerPart.length > EXACT_NUMERIC_MAX_INTEGER_DIGITS
|
|
48
|
+
|| normalizedFractionalPart.length > EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS) {
|
|
49
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
50
|
+
}
|
|
51
|
+
const normalized = normalizedFractionalPart
|
|
52
|
+
? `${normalizedIntegerPart}.${normalizedFractionalPart}`
|
|
53
|
+
: normalizedIntegerPart;
|
|
54
|
+
return `${sign}${normalized}`;
|
|
55
|
+
}
|
|
56
|
+
export function addExactNumeric(left, right) {
|
|
57
|
+
const leftValue = parseExactNumeric(left);
|
|
58
|
+
const rightValue = parseExactNumeric(right);
|
|
59
|
+
const scale = Math.max(leftValue.scale, rightValue.scale);
|
|
60
|
+
const leftDigits = alignScale(leftValue, scale);
|
|
61
|
+
const rightDigits = alignScale(rightValue, scale);
|
|
62
|
+
if (leftValue.sign === 0)
|
|
63
|
+
return formatExactNumeric(rightDigits, scale, rightValue.sign);
|
|
64
|
+
if (rightValue.sign === 0)
|
|
65
|
+
return formatExactNumeric(leftDigits, scale, leftValue.sign);
|
|
66
|
+
if (leftValue.sign === rightValue.sign) {
|
|
67
|
+
return formatExactNumeric(addUnsigned(leftDigits, rightDigits), scale, leftValue.sign);
|
|
68
|
+
}
|
|
69
|
+
const comparison = compareUnsigned(leftDigits, rightDigits);
|
|
70
|
+
if (comparison === 0)
|
|
71
|
+
return '0';
|
|
72
|
+
return comparison > 0
|
|
73
|
+
? formatExactNumeric(subtractUnsigned(leftDigits, rightDigits), scale, leftValue.sign)
|
|
74
|
+
: formatExactNumeric(subtractUnsigned(rightDigits, leftDigits), scale, rightValue.sign);
|
|
75
|
+
}
|
|
76
|
+
export function sumExactNumeric(values) {
|
|
77
|
+
return values.reduce(addExactNumeric, '0');
|
|
78
|
+
}
|
|
79
|
+
export function compareExactNumeric(left, right) {
|
|
80
|
+
const leftValue = parseExactNumeric(left);
|
|
81
|
+
const rightValue = parseExactNumeric(right);
|
|
82
|
+
if (leftValue.sign !== rightValue.sign) {
|
|
83
|
+
return leftValue.sign < rightValue.sign ? -1 : 1;
|
|
84
|
+
}
|
|
85
|
+
if (leftValue.sign === 0)
|
|
86
|
+
return 0;
|
|
87
|
+
const scale = Math.max(leftValue.scale, rightValue.scale);
|
|
88
|
+
const comparison = compareUnsigned(alignScale(leftValue, scale), alignScale(rightValue, scale));
|
|
89
|
+
return leftValue.sign === 1 ? comparison : -comparison;
|
|
90
|
+
}
|
|
91
|
+
function parseExactNumeric(value) {
|
|
92
|
+
const canonical = toExactNumeric(value);
|
|
93
|
+
const isNegative = canonical.startsWith('-');
|
|
94
|
+
const unsigned = isNegative ? canonical.slice(1) : canonical;
|
|
95
|
+
const [integerPart, fractionalPart = ''] = unsigned.split('.');
|
|
96
|
+
const digits = `${integerPart}${fractionalPart}`.replace(/^0+/, '') || '0';
|
|
97
|
+
return {
|
|
98
|
+
digits,
|
|
99
|
+
scale: fractionalPart.length,
|
|
100
|
+
sign: digits === '0' ? 0 : isNegative ? -1 : 1,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function alignScale(value, scale) {
|
|
104
|
+
return `${value.digits}${'0'.repeat(scale - value.scale)}`;
|
|
105
|
+
}
|
|
106
|
+
function formatExactNumeric(digits, scale, sign) {
|
|
107
|
+
const normalizedDigits = digits.replace(/^0+/, '') || '0';
|
|
108
|
+
if (normalizedDigits === '0' || sign === 0)
|
|
109
|
+
return '0';
|
|
110
|
+
const signPrefix = sign === -1 ? '-' : '';
|
|
111
|
+
if (scale === 0)
|
|
112
|
+
return `${signPrefix}${normalizedDigits}`;
|
|
113
|
+
const paddedDigits = normalizedDigits.padStart(scale + 1, '0');
|
|
114
|
+
const decimalIndex = paddedDigits.length - scale;
|
|
115
|
+
return toExactNumeric(`${signPrefix}${paddedDigits.slice(0, decimalIndex)}.${paddedDigits.slice(decimalIndex)}`);
|
|
116
|
+
}
|
|
117
|
+
function compareUnsigned(left, right) {
|
|
118
|
+
const normalizedLeft = left.replace(/^0+/, '') || '0';
|
|
119
|
+
const normalizedRight = right.replace(/^0+/, '') || '0';
|
|
120
|
+
if (normalizedLeft.length !== normalizedRight.length) {
|
|
121
|
+
return normalizedLeft.length < normalizedRight.length ? -1 : 1;
|
|
122
|
+
}
|
|
123
|
+
if (normalizedLeft === normalizedRight)
|
|
124
|
+
return 0;
|
|
125
|
+
return normalizedLeft < normalizedRight ? -1 : 1;
|
|
126
|
+
}
|
|
127
|
+
function addUnsigned(left, right) {
|
|
128
|
+
const length = Math.max(left.length, right.length);
|
|
129
|
+
const leftDigits = left.padStart(length, '0');
|
|
130
|
+
const rightDigits = right.padStart(length, '0');
|
|
131
|
+
const result = new Array(length + 1).fill('0');
|
|
132
|
+
let carry = 0;
|
|
133
|
+
for (let index = length - 1; index >= 0; index -= 1) {
|
|
134
|
+
const sum = Number(leftDigits[index]) + Number(rightDigits[index]) + carry;
|
|
135
|
+
result[index + 1] = String(sum % 10);
|
|
136
|
+
carry = Math.floor(sum / 10);
|
|
137
|
+
}
|
|
138
|
+
result[0] = String(carry);
|
|
139
|
+
return result.join('').replace(/^0+/, '') || '0';
|
|
140
|
+
}
|
|
141
|
+
function subtractUnsigned(left, right) {
|
|
142
|
+
const rightDigits = right.padStart(left.length, '0');
|
|
143
|
+
const result = new Array(left.length).fill('0');
|
|
144
|
+
let borrow = 0;
|
|
145
|
+
for (let index = left.length - 1; index >= 0; index -= 1) {
|
|
146
|
+
let difference = Number(left[index]) - Number(rightDigits[index]) - borrow;
|
|
147
|
+
if (difference < 0) {
|
|
148
|
+
difference += 10;
|
|
149
|
+
borrow = 1;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
borrow = 0;
|
|
153
|
+
}
|
|
154
|
+
result[index] = String(difference);
|
|
155
|
+
}
|
|
156
|
+
return result.join('').replace(/^0+/, '') || '0';
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=exact-numeric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.js","sourceRoot":"","sources":["../../../src/utils/exact-numeric.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.types.js","sourceRoot":"","sources":["../../../src/utils/exact-numeric.types.ts"],"names":[],"mappings":""}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
|
|
@@ -12,8 +12,8 @@ export * from './payment-settings';
|
|
|
12
12
|
export * from './patterns';
|
|
13
13
|
export * from './errored-sku';
|
|
14
14
|
export * from './sku-status';
|
|
15
|
-
export * from './sku-mapping-status';
|
|
16
15
|
export * from './customer-account-action';
|
|
17
16
|
export * from './environment-status';
|
|
18
17
|
export * from './billing-domain';
|
|
18
|
+
export * from './usage-compaction';
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare enum UsageGranularity {
|
|
2
|
+
HOUR = "hour",
|
|
3
|
+
DAY = "day"
|
|
4
|
+
}
|
|
5
|
+
export declare enum UsageCompactionRunMode {
|
|
6
|
+
DRY_RUN = "dry-run",
|
|
7
|
+
BACKFILL = "backfill",
|
|
8
|
+
SCHEDULED = "scheduled",
|
|
9
|
+
RECOMPILE = "recompile",
|
|
10
|
+
REPAIR = "repair"
|
|
11
|
+
}
|
|
12
|
+
export declare enum UsageCompactionRunStatus {
|
|
13
|
+
QUEUED = "queued",
|
|
14
|
+
PROCESSING = "processing",
|
|
15
|
+
COMPLETED = "completed",
|
|
16
|
+
PARTIAL = "partial",
|
|
17
|
+
FAILED = "failed",
|
|
18
|
+
CANCELLED = "cancelled"
|
|
19
|
+
}
|
|
20
|
+
export declare enum UsageCompactionItemStatus {
|
|
21
|
+
QUEUED = "queued",
|
|
22
|
+
PROCESSING = "processing",
|
|
23
|
+
VALIDATED = "validated",
|
|
24
|
+
COMPLETED = "completed",
|
|
25
|
+
FAILED = "failed",
|
|
26
|
+
SKIPPED = "skipped"
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=usage-compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-compaction.d.ts","sourceRoot":"","sources":["../../../src/enums/usage-compaction.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED,oBAAY,sBAAsB;IAChC,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,oBAAY,wBAAwB;IAClC,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,oBAAY,yBAAyB;IACnC,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CategoryNamespace } from '../enums/category-namespace';
|
|
2
|
+
import type { DataSourceProvider } from '../enums/customer-usage';
|
|
3
|
+
export type ExactNumeric = string;
|
|
4
|
+
export interface UsageCompactionScope {
|
|
5
|
+
readonly sourceProvider: DataSourceProvider;
|
|
6
|
+
readonly sourceId: string;
|
|
7
|
+
readonly eventType: CategoryNamespace;
|
|
8
|
+
readonly dayFrom: Date;
|
|
9
|
+
readonly dayTo: Date;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=usage-compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-compaction.d.ts","sourceRoot":"","sources":["../../../src/types/usage-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.constants.d.ts","sourceRoot":"","sources":["../../../src/utils/exact-numeric.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,SAAU,CAAC;AACxD,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAC1D,eAAO,MAAM,8BAA8B,QAErC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ExactNumeric } from '../types/usage-compaction';
|
|
2
|
+
export declare function toExactNumeric(value: number | string): ExactNumeric;
|
|
3
|
+
export declare function addExactNumeric(left: ExactNumeric, right: ExactNumeric): ExactNumeric;
|
|
4
|
+
export declare function sumExactNumeric(values: readonly ExactNumeric[]): ExactNumeric;
|
|
5
|
+
export declare function compareExactNumeric(left: ExactNumeric, right: ExactNumeric): number;
|
|
6
|
+
//# sourceMappingURL=exact-numeric.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.d.ts","sourceRoot":"","sources":["../../../src/utils/exact-numeric.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAS9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CA6DnE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,YAAY,GAClB,YAAY,CAoBd;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAgBnF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-numeric.types.d.ts","sourceRoot":"","sources":["../../../src/utils/exact-numeric.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
|
package/package.json
CHANGED
package/src/enums/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ export * from './payment-settings';
|
|
|
12
12
|
export * from './patterns';
|
|
13
13
|
export * from './errored-sku';
|
|
14
14
|
export * from './sku-status';
|
|
15
|
-
export * from './sku-mapping-status';
|
|
16
15
|
export * from './customer-account-action';
|
|
17
16
|
export * from './environment-status';
|
|
18
17
|
export * from './billing-domain';
|
|
18
|
+
export * from './usage-compaction';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export enum UsageGranularity {
|
|
2
|
+
HOUR = 'hour',
|
|
3
|
+
DAY = 'day',
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export enum UsageCompactionRunMode {
|
|
7
|
+
DRY_RUN = 'dry-run',
|
|
8
|
+
BACKFILL = 'backfill',
|
|
9
|
+
SCHEDULED = 'scheduled',
|
|
10
|
+
RECOMPILE = 'recompile',
|
|
11
|
+
REPAIR = 'repair',
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export enum UsageCompactionRunStatus {
|
|
15
|
+
QUEUED = 'queued',
|
|
16
|
+
PROCESSING = 'processing',
|
|
17
|
+
COMPLETED = 'completed',
|
|
18
|
+
PARTIAL = 'partial',
|
|
19
|
+
FAILED = 'failed',
|
|
20
|
+
CANCELLED = 'cancelled',
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export enum UsageCompactionItemStatus {
|
|
24
|
+
QUEUED = 'queued',
|
|
25
|
+
PROCESSING = 'processing',
|
|
26
|
+
VALIDATED = 'validated',
|
|
27
|
+
COMPLETED = 'completed',
|
|
28
|
+
FAILED = 'failed',
|
|
29
|
+
SKIPPED = 'skipped',
|
|
30
|
+
}
|
package/src/types/index.ts
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CategoryNamespace } from '../enums/category-namespace';
|
|
2
|
+
import type { DataSourceProvider } from '../enums/customer-usage';
|
|
3
|
+
|
|
4
|
+
export type ExactNumeric = string;
|
|
5
|
+
|
|
6
|
+
export interface UsageCompactionScope {
|
|
7
|
+
readonly sourceProvider: DataSourceProvider;
|
|
8
|
+
readonly sourceId: string;
|
|
9
|
+
readonly eventType: CategoryNamespace;
|
|
10
|
+
readonly dayFrom: Date;
|
|
11
|
+
readonly dayTo: Date;
|
|
12
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import type { ExactNumeric } from '../types/usage-compaction';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS,
|
|
5
|
+
EXACT_NUMERIC_MAX_INPUT_LENGTH,
|
|
6
|
+
EXACT_NUMERIC_MAX_INTEGER_DIGITS,
|
|
7
|
+
} from './exact-numeric.constants';
|
|
8
|
+
import type { ParsedExactNumeric } from './exact-numeric.types';
|
|
9
|
+
|
|
10
|
+
export function toExactNumeric(value: number | string): ExactNumeric {
|
|
11
|
+
if (typeof value === 'number' && !Number.isFinite(value)) {
|
|
12
|
+
throw new Error('Exact numeric value must be finite');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const input = String(value).trim();
|
|
16
|
+
if (!input || input.length > EXACT_NUMERIC_MAX_INPUT_LENGTH) {
|
|
17
|
+
throw new Error('Exact numeric value is invalid');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const match = /^([+-]?)(\d*)(?:\.(\d*))?(?:[eE]([+-]?\d+))?$/.exec(input);
|
|
21
|
+
if (!match || (!match[2] && !match[3])) {
|
|
22
|
+
throw new Error('Exact numeric value is invalid');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const sign = match[1] === '-' ? '-' : '';
|
|
26
|
+
const integerPart = match[2] ?? '';
|
|
27
|
+
const fractionalPart = match[3] ?? '';
|
|
28
|
+
const digits = `${integerPart}${fractionalPart}`;
|
|
29
|
+
|
|
30
|
+
if (/^0+$/.test(digits)) {
|
|
31
|
+
return '0';
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const exponentText = match[4] ?? '0';
|
|
35
|
+
const normalizedExponentText = exponentText.replace(/^([+-]?)0+(?=\d)/, '$1');
|
|
36
|
+
if (normalizedExponentText.replace(/^[+-]/, '').length > 6) {
|
|
37
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
38
|
+
}
|
|
39
|
+
const exponent = Number(normalizedExponentText);
|
|
40
|
+
const maximumShift = EXACT_NUMERIC_MAX_INTEGER_DIGITS
|
|
41
|
+
+ EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS;
|
|
42
|
+
if (exponent > maximumShift || exponent < -maximumShift) {
|
|
43
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const decimalIndex = integerPart.length + exponent;
|
|
47
|
+
let expanded: string;
|
|
48
|
+
|
|
49
|
+
if (decimalIndex <= 0) {
|
|
50
|
+
expanded = `0.${'0'.repeat(-decimalIndex)}${digits}`;
|
|
51
|
+
} else if (decimalIndex >= digits.length) {
|
|
52
|
+
expanded = `${digits}${'0'.repeat(decimalIndex - digits.length)}`;
|
|
53
|
+
} else {
|
|
54
|
+
expanded = `${digits.slice(0, decimalIndex)}.${digits.slice(decimalIndex)}`;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const [expandedIntegerPart, expandedFractionalPart = ''] = expanded.split('.');
|
|
58
|
+
const normalizedIntegerPart = expandedIntegerPart.replace(/^0+(?=\d)/, '');
|
|
59
|
+
const normalizedFractionalPart = expandedFractionalPart.replace(/0+$/, '');
|
|
60
|
+
|
|
61
|
+
if (normalizedIntegerPart.length > EXACT_NUMERIC_MAX_INTEGER_DIGITS
|
|
62
|
+
|| normalizedFractionalPart.length > EXACT_NUMERIC_MAX_FRACTIONAL_DIGITS) {
|
|
63
|
+
throw new Error('Exact numeric value exceeds PostgreSQL NUMERIC limits');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const normalized = normalizedFractionalPart
|
|
67
|
+
? `${normalizedIntegerPart}.${normalizedFractionalPart}`
|
|
68
|
+
: normalizedIntegerPart;
|
|
69
|
+
|
|
70
|
+
return `${sign}${normalized}`;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function addExactNumeric(
|
|
74
|
+
left: ExactNumeric,
|
|
75
|
+
right: ExactNumeric,
|
|
76
|
+
): ExactNumeric {
|
|
77
|
+
const leftValue = parseExactNumeric(left);
|
|
78
|
+
const rightValue = parseExactNumeric(right);
|
|
79
|
+
const scale = Math.max(leftValue.scale, rightValue.scale);
|
|
80
|
+
const leftDigits = alignScale(leftValue, scale);
|
|
81
|
+
const rightDigits = alignScale(rightValue, scale);
|
|
82
|
+
|
|
83
|
+
if (leftValue.sign === 0) return formatExactNumeric(rightDigits, scale, rightValue.sign);
|
|
84
|
+
if (rightValue.sign === 0) return formatExactNumeric(leftDigits, scale, leftValue.sign);
|
|
85
|
+
|
|
86
|
+
if (leftValue.sign === rightValue.sign) {
|
|
87
|
+
return formatExactNumeric(addUnsigned(leftDigits, rightDigits), scale, leftValue.sign);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const comparison = compareUnsigned(leftDigits, rightDigits);
|
|
91
|
+
if (comparison === 0) return '0';
|
|
92
|
+
|
|
93
|
+
return comparison > 0
|
|
94
|
+
? formatExactNumeric(subtractUnsigned(leftDigits, rightDigits), scale, leftValue.sign)
|
|
95
|
+
: formatExactNumeric(subtractUnsigned(rightDigits, leftDigits), scale, rightValue.sign);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function sumExactNumeric(values: readonly ExactNumeric[]): ExactNumeric {
|
|
99
|
+
return values.reduce<ExactNumeric>(addExactNumeric, '0');
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export function compareExactNumeric(left: ExactNumeric, right: ExactNumeric): number {
|
|
103
|
+
const leftValue = parseExactNumeric(left);
|
|
104
|
+
const rightValue = parseExactNumeric(right);
|
|
105
|
+
|
|
106
|
+
if (leftValue.sign !== rightValue.sign) {
|
|
107
|
+
return leftValue.sign < rightValue.sign ? -1 : 1;
|
|
108
|
+
}
|
|
109
|
+
if (leftValue.sign === 0) return 0;
|
|
110
|
+
|
|
111
|
+
const scale = Math.max(leftValue.scale, rightValue.scale);
|
|
112
|
+
const comparison = compareUnsigned(
|
|
113
|
+
alignScale(leftValue, scale),
|
|
114
|
+
alignScale(rightValue, scale),
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
return leftValue.sign === 1 ? comparison : -comparison;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function parseExactNumeric(value: ExactNumeric): ParsedExactNumeric {
|
|
121
|
+
const canonical = toExactNumeric(value);
|
|
122
|
+
const isNegative = canonical.startsWith('-');
|
|
123
|
+
const unsigned = isNegative ? canonical.slice(1) : canonical;
|
|
124
|
+
const [integerPart, fractionalPart = ''] = unsigned.split('.');
|
|
125
|
+
const digits = `${integerPart}${fractionalPart}`.replace(/^0+/, '') || '0';
|
|
126
|
+
|
|
127
|
+
return {
|
|
128
|
+
digits,
|
|
129
|
+
scale: fractionalPart.length,
|
|
130
|
+
sign: digits === '0' ? 0 : isNegative ? -1 : 1,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function alignScale(value: ParsedExactNumeric, scale: number): string {
|
|
135
|
+
return `${value.digits}${'0'.repeat(scale - value.scale)}`;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function formatExactNumeric(digits: string, scale: number, sign: -1 | 0 | 1): ExactNumeric {
|
|
139
|
+
const normalizedDigits = digits.replace(/^0+/, '') || '0';
|
|
140
|
+
if (normalizedDigits === '0' || sign === 0) return '0';
|
|
141
|
+
|
|
142
|
+
const signPrefix = sign === -1 ? '-' : '';
|
|
143
|
+
if (scale === 0) return `${signPrefix}${normalizedDigits}`;
|
|
144
|
+
|
|
145
|
+
const paddedDigits = normalizedDigits.padStart(scale + 1, '0');
|
|
146
|
+
const decimalIndex = paddedDigits.length - scale;
|
|
147
|
+
|
|
148
|
+
return toExactNumeric(
|
|
149
|
+
`${signPrefix}${paddedDigits.slice(0, decimalIndex)}.${paddedDigits.slice(decimalIndex)}`,
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function compareUnsigned(left: string, right: string): number {
|
|
154
|
+
const normalizedLeft = left.replace(/^0+/, '') || '0';
|
|
155
|
+
const normalizedRight = right.replace(/^0+/, '') || '0';
|
|
156
|
+
|
|
157
|
+
if (normalizedLeft.length !== normalizedRight.length) {
|
|
158
|
+
return normalizedLeft.length < normalizedRight.length ? -1 : 1;
|
|
159
|
+
}
|
|
160
|
+
if (normalizedLeft === normalizedRight) return 0;
|
|
161
|
+
|
|
162
|
+
return normalizedLeft < normalizedRight ? -1 : 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function addUnsigned(left: string, right: string): string {
|
|
166
|
+
const length = Math.max(left.length, right.length);
|
|
167
|
+
const leftDigits = left.padStart(length, '0');
|
|
168
|
+
const rightDigits = right.padStart(length, '0');
|
|
169
|
+
const result = new Array<string>(length + 1).fill('0');
|
|
170
|
+
let carry = 0;
|
|
171
|
+
|
|
172
|
+
for (let index = length - 1;index >= 0;index -= 1) {
|
|
173
|
+
const sum = Number(leftDigits[index]) + Number(rightDigits[index]) + carry;
|
|
174
|
+
result[index + 1] = String(sum % 10);
|
|
175
|
+
carry = Math.floor(sum / 10);
|
|
176
|
+
}
|
|
177
|
+
result[0] = String(carry);
|
|
178
|
+
|
|
179
|
+
return result.join('').replace(/^0+/, '') || '0';
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function subtractUnsigned(left: string, right: string): string {
|
|
183
|
+
const rightDigits = right.padStart(left.length, '0');
|
|
184
|
+
const result = new Array<string>(left.length).fill('0');
|
|
185
|
+
let borrow = 0;
|
|
186
|
+
|
|
187
|
+
for (let index = left.length - 1;index >= 0;index -= 1) {
|
|
188
|
+
let difference = Number(left[index]) - Number(rightDigits[index]) - borrow;
|
|
189
|
+
if (difference < 0) {
|
|
190
|
+
difference += 10;
|
|
191
|
+
borrow = 1;
|
|
192
|
+
} else {
|
|
193
|
+
borrow = 0;
|
|
194
|
+
}
|
|
195
|
+
result[index] = String(difference);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return result.join('').replace(/^0+/, '') || '0';
|
|
199
|
+
}
|
package/src/utils/index.ts
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SkuMappingStatus = void 0;
|
|
4
|
-
var SkuMappingStatus;
|
|
5
|
-
(function (SkuMappingStatus) {
|
|
6
|
-
SkuMappingStatus["APPROVED"] = "approved";
|
|
7
|
-
SkuMappingStatus["DRAFT"] = "draft";
|
|
8
|
-
})(SkuMappingStatus || (exports.SkuMappingStatus = SkuMappingStatus = {}));
|
|
9
|
-
//# sourceMappingURL=sku-mapping-status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sku-mapping-status.js","sourceRoot":"","sources":["../../../src/enums/sku-mapping-status.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,mCAAe,CAAA;AACjB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sku-mapping-status.js","sourceRoot":"","sources":["../../../src/enums/sku-mapping-status.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,mCAAe,CAAA;AACjB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sku-mapping-status.d.ts","sourceRoot":"","sources":["../../../src/enums/sku-mapping-status.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB"}
|