@onereach/billing-shared 31.3.2-beta.12665.0 → 31.4.1-beta.12685.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/common.js +1 -0
- package/dist/cjs/enums/common.js.map +1 -1
- package/dist/cjs/enums/index.js +0 -1
- package/dist/cjs/enums/index.js.map +1 -1
- package/dist/cjs/types/index.js +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/{usage-compaction.js → invoice-generation.js} +1 -1
- package/dist/cjs/types/invoice-generation.js.map +1 -0
- package/dist/cjs/utils/index.js +0 -2
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/enums/common.js +1 -0
- package/dist/esm/enums/common.js.map +1 -1
- package/dist/esm/enums/index.js +0 -1
- package/dist/esm/enums/index.js.map +1 -1
- package/dist/esm/types/index.js +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/invoice-generation.js +2 -0
- package/dist/esm/types/invoice-generation.js.map +1 -0
- package/dist/esm/utils/index.js +0 -2
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/enums/common.d.ts +1 -0
- package/dist/types/enums/common.d.ts.map +1 -1
- package/dist/types/enums/index.d.ts +0 -1
- package/dist/types/enums/index.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/invoice-generation.d.ts +17 -0
- package/dist/types/types/invoice-generation.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +0 -2
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/enums/common.ts +1 -0
- package/src/enums/index.ts +0 -1
- package/src/types/index.ts +1 -1
- package/src/types/invoice-generation.ts +19 -0
- package/src/utils/index.ts +0 -2
- package/dist/cjs/enums/usage-compaction.js +0 -35
- package/dist/cjs/enums/usage-compaction.js.map +0 -1
- package/dist/cjs/types/usage-compaction.js.map +0 -1
- package/dist/cjs/utils/concurrency-limiter.js +0 -88
- package/dist/cjs/utils/concurrency-limiter.js.map +0 -1
- package/dist/cjs/utils/exact-numeric.constants.js +0 -9
- package/dist/cjs/utils/exact-numeric.constants.js.map +0 -1
- package/dist/cjs/utils/exact-numeric.js +0 -164
- package/dist/cjs/utils/exact-numeric.js.map +0 -1
- package/dist/cjs/utils/exact-numeric.types.js +0 -3
- package/dist/cjs/utils/exact-numeric.types.js.map +0 -1
- package/dist/esm/enums/usage-compaction.js +0 -32
- package/dist/esm/enums/usage-compaction.js.map +0 -1
- package/dist/esm/types/usage-compaction.js +0 -2
- package/dist/esm/types/usage-compaction.js.map +0 -1
- package/dist/esm/utils/concurrency-limiter.js +0 -31
- package/dist/esm/utils/concurrency-limiter.js.map +0 -1
- package/dist/esm/utils/exact-numeric.constants.js +0 -6
- package/dist/esm/utils/exact-numeric.constants.js.map +0 -1
- package/dist/esm/utils/exact-numeric.js +0 -158
- package/dist/esm/utils/exact-numeric.js.map +0 -1
- package/dist/esm/utils/exact-numeric.types.js +0 -2
- package/dist/esm/utils/exact-numeric.types.js.map +0 -1
- package/dist/types/enums/usage-compaction.d.ts +0 -28
- package/dist/types/enums/usage-compaction.d.ts.map +0 -1
- package/dist/types/types/usage-compaction.d.ts +0 -14
- package/dist/types/types/usage-compaction.d.ts.map +0 -1
- package/dist/types/utils/concurrency-limiter.d.ts +0 -2
- package/dist/types/utils/concurrency-limiter.d.ts.map +0 -1
- package/dist/types/utils/exact-numeric.constants.d.ts +0 -4
- package/dist/types/utils/exact-numeric.constants.d.ts.map +0 -1
- package/dist/types/utils/exact-numeric.d.ts +0 -6
- package/dist/types/utils/exact-numeric.d.ts.map +0 -1
- package/dist/types/utils/exact-numeric.types.d.ts +0 -6
- package/dist/types/utils/exact-numeric.types.d.ts.map +0 -1
- package/src/enums/usage-compaction.ts +0 -30
- package/src/types/usage-compaction.ts +0 -16
- package/src/utils/concurrency-limiter.ts +0 -32
- package/src/utils/exact-numeric.constants.ts +0 -5
- package/src/utils/exact-numeric.ts +0 -199
- package/src/utils/exact-numeric.types.ts +0 -5
|
@@ -1,32 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage-compaction.js","sourceRoot":"","sources":["../../../src/types/usage-compaction.ts"],"names":[],"mappings":""}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
export function concurrencyLimiter(limit, items, asyncFn) {
|
|
11
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
const results = [];
|
|
13
|
-
const executing = [];
|
|
14
|
-
for (const item of items) {
|
|
15
|
-
const p = Promise.resolve().then(() => asyncFn(item));
|
|
16
|
-
results.push(p);
|
|
17
|
-
if (limit <= items.length) {
|
|
18
|
-
const e = p.then(() => {
|
|
19
|
-
const idx = executing.indexOf(e);
|
|
20
|
-
if (idx > -1)
|
|
21
|
-
executing.splice(idx, 1);
|
|
22
|
-
});
|
|
23
|
-
executing.push(e);
|
|
24
|
-
if (executing.length >= limit)
|
|
25
|
-
yield Promise.race(executing);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return Promise.allSettled(results);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=concurrency-limiter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"concurrency-limiter.js","sourceRoot":"","sources":["../../../src/utils/concurrency-limiter.ts"],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,UAAgB,kBAAkB,CACtC,KAAa,EACb,KAAU,EACV,OAAgC;;QAEhC,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,SAAS,GAAoB,EAAE,CAAC;QAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEhB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBACnC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,GAAG,GAAG,CAAC,CAAC;wBAAE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAElB,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK;oBAAE,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,158 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exact-numeric.js","sourceRoot":"","sources":["../../../src/utils/exact-numeric.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mCAAmC,EACnC,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,2BAA2B,CAAC;AAGnC,MAAM,UAAU,cAAc,CAAC,KAAsB;;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GAAG,+CAA+C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG,cAAc,EAAE,CAAC;IAEjD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,GAAG,CAAC;IACrC,MAAM,sBAAsB,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAC9E,IAAI,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,gCAAgC;UACjD,mCAAmC,CAAC;IACxC,IAAI,QAAQ,GAAG,YAAY,IAAI,QAAQ,GAAG,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC;IACnD,IAAI,QAAgB,CAAC;IAErB,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,QAAQ,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,EAAE,CAAC;IACvD,CAAC;SAAM,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,QAAQ,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/E,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,wBAAwB,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE3E,IAAI,qBAAqB,CAAC,MAAM,GAAG,gCAAgC;WAC9D,wBAAwB,CAAC,MAAM,GAAG,mCAAmC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,UAAU,GAAG,wBAAwB;QACzC,CAAC,CAAC,GAAG,qBAAqB,IAAI,wBAAwB,EAAE;QACxD,CAAC,CAAC,qBAAqB,CAAC;IAE1B,OAAO,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAkB,EAClB,KAAmB;IAEnB,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAElD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACzF,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAExF,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;QACvC,OAAO,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAEjC,OAAO,UAAU,GAAG,CAAC;QACnB,CAAC,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;QACtF,CAAC,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,OAAO,MAAM,CAAC,MAAM,CAAe,eAAe,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAkB,EAAE,KAAmB;IACzE,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,eAAe,CAChC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,EAC5B,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAC9B,CAAC;IAEF,OAAO,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACzD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAmB;IAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAE3E,OAAO;QACL,MAAM;QACN,KAAK,EAAE,cAAc,CAAC,MAAM;QAC5B,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB,EAAE,KAAa;IAC1D,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,KAAa,EAAE,IAAgB;IACzE,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAC1D,IAAI,gBAAgB,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAEvD,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,GAAG,UAAU,GAAG,gBAAgB,EAAE,CAAC;IAE3D,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;IAEjD,OAAO,cAAc,CACnB,GAAG,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAC1F,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,KAAa;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IACtD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAExD,IAAI,cAAc,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,cAAc,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,cAAc,KAAK,eAAe;QAAE,OAAO,CAAC,CAAC;IAEjD,OAAO,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAS,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,EAAC,KAAK,IAAI,CAAC,EAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;QAC3E,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACrC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1B,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAa;IACnD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAC,KAAK,IAAI,CAAC,EAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;QAC3E,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,UAAU,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AACnD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exact-numeric.types.js","sourceRoot":"","sources":["../../../src/utils/exact-numeric.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,28 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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,14 +0,0 @@
|
|
|
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
|
-
export interface UsageCompactionQueueMessage {
|
|
12
|
-
itemId: string;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=usage-compaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"concurrency-limiter.d.ts","sourceRoot":"","sources":["../../../src/utils/concurrency-limiter.ts"],"names":[],"mappings":"AAOA,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAC3C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,EAAE,EACV,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAoBpC"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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,30 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface UsageCompactionQueueMessage {
|
|
15
|
-
itemId: string;
|
|
16
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Run async tasks with a concurrency limit
|
|
3
|
-
* @param limit - max number of concurrent tasks
|
|
4
|
-
* @param items - array of items to process
|
|
5
|
-
* @param asyncFn - async function to process one item and return a result
|
|
6
|
-
* @returns Promise of an array of PromiseSettledResult for each item
|
|
7
|
-
*/
|
|
8
|
-
export async function concurrencyLimiter<T, R>(
|
|
9
|
-
limit: number,
|
|
10
|
-
items: T[],
|
|
11
|
-
asyncFn: (item: T) => Promise<R>,
|
|
12
|
-
): Promise<PromiseSettledResult<R>[]> {
|
|
13
|
-
const results: Promise<R>[] = [];
|
|
14
|
-
const executing: Promise<void>[] = [];
|
|
15
|
-
|
|
16
|
-
for (const item of items) {
|
|
17
|
-
const p = Promise.resolve().then(() => asyncFn(item));
|
|
18
|
-
results.push(p);
|
|
19
|
-
|
|
20
|
-
if (limit <= items.length) {
|
|
21
|
-
const e: Promise<void> = p.then(() => {
|
|
22
|
-
const idx = executing.indexOf(e);
|
|
23
|
-
if (idx > -1) executing.splice(idx, 1);
|
|
24
|
-
});
|
|
25
|
-
executing.push(e);
|
|
26
|
-
|
|
27
|
-
if (executing.length >= limit) await Promise.race(executing);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return Promise.allSettled(results);
|
|
32
|
-
}
|