@autologix-engineering/shared 1.2.386 → 1.2.387
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/package.json +1 -1
- package/src/lib/models/src/numbered.invoice.model.d.ts +13 -0
- package/src/lib/models/src/numbered.invoice.model.js +1 -0
- package/src/lib/models/src/numbered.invoice.model.js.map +1 -1
- package/src/lib/utilities/src/ba.contract.extension.code.d.ts +74 -0
- package/src/lib/utilities/src/ba.contract.extension.code.js +69 -0
- package/src/lib/utilities/src/ba.contract.extension.code.js.map +1 -0
- package/src/lib/utilities/src/index.d.ts +1 -0
- package/src/lib/utilities/src/index.js +1 -0
- package/src/lib/utilities/src/index.js.map +1 -1
package/package.json
CHANGED
|
@@ -77,9 +77,21 @@ export declare enum NumberedInvoiceField {
|
|
|
77
77
|
ConsolidatedTaxInvoiceId = "consolidatedTaxInvId",
|
|
78
78
|
LTRKey = "ltrKey",
|
|
79
79
|
LTRDataKey = "ltrDataKey",
|
|
80
|
+
LTRCoverageSnapshot = "ltrCovSnap",
|
|
80
81
|
VendorTaxAddress = "vendorTaxAddress",
|
|
81
82
|
VendorTaxAddressId = "vendorTaxAddressId"
|
|
82
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* The LTR vehicle master's LastInvoiceDateByGroup entries an LTR invoice moved
|
|
86
|
+
* when it was generated: `before` is each group's value going in (null when
|
|
87
|
+
* the group had never billed), `after` the value the invoice wrote. Cancelling
|
|
88
|
+
* the invoice restores `before`, so the months it billed become billable again.
|
|
89
|
+
*/
|
|
90
|
+
export interface ILTRCoverageSnapshot {
|
|
91
|
+
vehicleMasterId: string;
|
|
92
|
+
before: Record<string, string | null>;
|
|
93
|
+
after: Record<string, string>;
|
|
94
|
+
}
|
|
83
95
|
export interface INumberedInvoice extends TypedModel {
|
|
84
96
|
[NumberedInvoiceField.NumberedInvoiceId]: string;
|
|
85
97
|
[NumberedInvoiceField.InvoiceNumber]: string;
|
|
@@ -139,6 +151,7 @@ export interface INumberedInvoice extends TypedModel {
|
|
|
139
151
|
[NumberedInvoiceField.ConsolidatedTaxInvoiceId]?: string;
|
|
140
152
|
[NumberedInvoiceField.LTRKey]: string;
|
|
141
153
|
[NumberedInvoiceField.LTRDataKey]: string;
|
|
154
|
+
[NumberedInvoiceField.LTRCoverageSnapshot]?: ILTRCoverageSnapshot | null;
|
|
142
155
|
[NumberedInvoiceField.VendorTaxAddress]?: ITaxAddress;
|
|
143
156
|
[NumberedInvoiceField.VendorTaxAddressId]?: string;
|
|
144
157
|
}
|
|
@@ -61,6 +61,7 @@ export var NumberedInvoiceField;
|
|
|
61
61
|
NumberedInvoiceField["ConsolidatedTaxInvoiceId"] = "consolidatedTaxInvId";
|
|
62
62
|
NumberedInvoiceField["LTRKey"] = "ltrKey";
|
|
63
63
|
NumberedInvoiceField["LTRDataKey"] = "ltrDataKey";
|
|
64
|
+
NumberedInvoiceField["LTRCoverageSnapshot"] = "ltrCovSnap";
|
|
64
65
|
NumberedInvoiceField["VendorTaxAddress"] = "vendorTaxAddress";
|
|
65
66
|
NumberedInvoiceField["VendorTaxAddressId"] = "vendorTaxAddressId";
|
|
66
67
|
})(NumberedInvoiceField || (NumberedInvoiceField = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numbered.invoice.model.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/models/src/numbered.invoice.model.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"numbered.invoice.model.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/models/src/numbered.invoice.model.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAN,IAAY,oBAuEX;AAvED,WAAY,oBAAoB;IAC/B,+DAAuC,CAAA;IACvC,uDAA+B,CAAA;IAC/B,mDAA2B,CAAA;IAC3B,8DAAsC,CAAA;IACtC,kEAA0C,CAAA;IAC1C,iDAAyB,CAAA;IACzB,qDAA6B,CAAA;IAC7B,6CAAqB,CAAA;IACrB,iDAAyB,CAAA;IACzB,oEAAoE;IACpE,0EAA0E;IAC1E,yEAAyE;IACzE,+DAAuC,CAAA;IACvC,oDAA4B,CAAA;IAC5B,wDAAgC,CAAA;IAChC,2DAAmC,CAAA;IACnC,+DAAuC,CAAA;IACvC,yCAAiB,CAAA;IACjB,uDAA+B,CAAA;IAC/B,2DAAmC,CAAA;IACnC,uDAA+B,CAAA;IAC/B,2DAAmC,CAAA;IACnC,2DAAmC,CAAA;IACnC,iDAAyB,CAAA;IACzB,iDAAyB,CAAA;IACzB,qDAA6B,CAAA;IAE7B,uDAA+B,CAAA;IAC/B,6DAAqC,CAAA;IAErC,+CAAuB,CAAA;IACvB,uCAAe,CAAA;IAEf,mDAA2B,CAAA;IAC3B,uDAA+B,CAAA;IAE/B,2DAAmC,CAAA;IACnC,+DAAuC,CAAA;IAEvC,yDAAiC,CAAA;IAEjC,0DAAkC,CAAA;IAClC,uDAA+B,CAAA;IAC/B,uDAA+B,CAAA;IAC/B,mDAA2B,CAAA;IAC3B,uDAA+B,CAAA;IAC/B,mCAAW,CAAA;IACX,qDAA6B,CAAA;IAC7B,yDAAiC,CAAA;IACjC,uEAA+C,CAAA;IAC/C,6CAAqB,CAAA;IACrB,+CAAuB,CAAA;IACvB,mDAA2B,CAAA;IAC3B,mDAA2B,CAAA;IAC3B,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,6CAAqB,CAAA;IACrB,+CAAuB,CAAA;IACvB,mDAA2B,CAAA;IAC3B,iEAAyC,CAAA;IACzC,qEAA6C,CAAA;IAC7C,gDAAwB,CAAA;IACxB,6CAAqB,CAAA;IACrB,qEAA6C,CAAA;IAC7C,yEAAiD,CAAA;IACjD,yCAAiB,CAAA;IACjB,iDAAyB,CAAA;IACzB,0DAAkC,CAAA;IAClC,6DAAqC,CAAA;IACrC,iEAAyC,CAAA;AAC1C,CAAC,EAvEW,oBAAoB,KAApB,oBAAoB,QAuE/B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allocating the contract code for an EXTENDED BA contract — AD-3416.
|
|
3
|
+
*
|
|
4
|
+
* A BA contract's base code comes from a per-context `SeqMetadata` counter,
|
|
5
|
+
* read and incremented under a `pessimistic_write` lock
|
|
6
|
+
* (create.ba.contract.controller.ts). Every base code in a context is
|
|
7
|
+
* therefore distinct, and distinct even under concurrent creates.
|
|
8
|
+
*
|
|
9
|
+
* Extending a contract did not go anywhere near that. It derived the new code
|
|
10
|
+
* from the old one by string arithmetic alone — `1065` -> `1065E1`,
|
|
11
|
+
* `1065E1` -> `1065E2` — with no idea what already existed. And the block
|
|
12
|
+
* that would have retired the extended contract's parent is commented out in
|
|
13
|
+
* extend.ba.contract.ts, so the parent stays extendable: extend `1065`, let
|
|
14
|
+
* `1065E1` be surrendered or cancelled, extend `1065` again, and the second
|
|
15
|
+
* extension is minted as `1065E1` as well. Two distinct contract rows, one
|
|
16
|
+
* code.
|
|
17
|
+
*
|
|
18
|
+
* That matters because the BA Payout template emits one row per contract row
|
|
19
|
+
* while the upload validator, the payout calculator and the save path all key
|
|
20
|
+
* contracts by CODE. Both rows then validate against whichever duplicate the
|
|
21
|
+
* in-memory map kept last, and the application's own unedited template is
|
|
22
|
+
* rejected on upload (AD-3416; first reported as ISSUE-4 on AD-3288). On
|
|
23
|
+
* staging this had happened ten times, most recently on 25/09/2026, where
|
|
24
|
+
* extending `1073` twice produced two `1073E1` rows ninety seconds apart.
|
|
25
|
+
*
|
|
26
|
+
* `selectBAPayoutContracts` softens the symptom by collapsing records that
|
|
27
|
+
* share (BA, code, vehicle) to the most recently edited one, but that is a
|
|
28
|
+
* read-side tie-break for records keyed in twice, not a fix: applied to two
|
|
29
|
+
* genuinely different contracts it silently drops one of them from the
|
|
30
|
+
* payout. The ambiguity has to be prevented where it is created.
|
|
31
|
+
*
|
|
32
|
+
* So this module answers the allocation question instead of guessing it:
|
|
33
|
+
* given the code being extended and the codes already in use, what is the
|
|
34
|
+
* first extension suffix nobody has taken? The caller supplies the in-use set
|
|
35
|
+
* — everything in the same business context, which is the scope base codes
|
|
36
|
+
* are numbered in (on staging, no code is shared by two BAs inside one
|
|
37
|
+
* context) — and holds a lock while it does, so two simultaneous extensions
|
|
38
|
+
* cannot both read the same set.
|
|
39
|
+
*/
|
|
40
|
+
/** `1065E2` -> base `1065`, extension 2. A code with no suffix is extension 0. */
|
|
41
|
+
export interface BAContractCodeParts {
|
|
42
|
+
base: string;
|
|
43
|
+
extension: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Split a contract code into the part that identifies the contract family and
|
|
47
|
+
* the extension number.
|
|
48
|
+
*
|
|
49
|
+
* The pattern is the one the old generator used, kept deliberately: `(.+)E(\d+)`
|
|
50
|
+
* anchored at the end. Base codes are plain integers from the sequence
|
|
51
|
+
* counter, so the only `E` in a well-formed code is the extension marker.
|
|
52
|
+
*/
|
|
53
|
+
export declare function splitBAContractCode(code: unknown): BAContractCodeParts;
|
|
54
|
+
/**
|
|
55
|
+
* The first extension code of `oldContractCode` that is not already in use.
|
|
56
|
+
*
|
|
57
|
+
* `usedCodes` is every contract code already allocated in the scope the
|
|
58
|
+
* caller is protecting — for extend.ba.contract.ts, every code in the
|
|
59
|
+
* business context, whatever its status. Cancelled and Surrendered rows are
|
|
60
|
+
* deliberately included: their codes are still printed on payout statements,
|
|
61
|
+
* still stored on `BAPayoutRow.contractNo`, and still what the upload
|
|
62
|
+
* validator looks up, so reusing one recreates exactly the ambiguity this
|
|
63
|
+
* exists to stop.
|
|
64
|
+
*
|
|
65
|
+
* Codes are compared after `normalizeBAContractCode` (trim + upper), the same
|
|
66
|
+
* normalization `resolveBAPayoutContract` uses to decide that an uploaded row
|
|
67
|
+
* names a given contract. The two answers cannot disagree.
|
|
68
|
+
*
|
|
69
|
+
* Note that this does NOT guarantee the returned suffix is the old one plus
|
|
70
|
+
* one. Extending `1065` when `1065E1` is taken yields `1065E2`, which is the
|
|
71
|
+
* point: the code names a row, not a position in a chain, and nothing in the
|
|
72
|
+
* codebase parses it to find a parent (the parent is a foreign key).
|
|
73
|
+
*/
|
|
74
|
+
export declare function nextExtendedContractCode(oldContractCode: unknown, usedCodes: Iterable<unknown> | null | undefined): string;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { normalizeBAContractCode } from './ba.payout.contract.selection';
|
|
2
|
+
/**
|
|
3
|
+
* Split a contract code into the part that identifies the contract family and
|
|
4
|
+
* the extension number.
|
|
5
|
+
*
|
|
6
|
+
* The pattern is the one the old generator used, kept deliberately: `(.+)E(\d+)`
|
|
7
|
+
* anchored at the end. Base codes are plain integers from the sequence
|
|
8
|
+
* counter, so the only `E` in a well-formed code is the extension marker.
|
|
9
|
+
*/
|
|
10
|
+
export function splitBAContractCode(code) {
|
|
11
|
+
const normalized = normalizeBAContractCode(code);
|
|
12
|
+
const match = normalized.match(/^(.+)E(\d+)$/);
|
|
13
|
+
if (!match)
|
|
14
|
+
return { base: normalized, extension: 0 };
|
|
15
|
+
const extension = parseInt(match[2], 10);
|
|
16
|
+
// `E0`, or a suffix so long it does not survive parseInt, is not something
|
|
17
|
+
// this codebase mints; treat the whole string as the family rather than
|
|
18
|
+
// inventing an extension number from it.
|
|
19
|
+
if (!Number.isFinite(extension) || extension < 1) {
|
|
20
|
+
return { base: normalized, extension: 0 };
|
|
21
|
+
}
|
|
22
|
+
return { base: match[1], extension };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* How far the walk will go before giving up. A context would need this many
|
|
26
|
+
* extensions of one contract to reach it; hitting it means the in-use set is
|
|
27
|
+
* wrong, and an error naming the code is far more useful than a silent
|
|
28
|
+
* duplicate or a hung request.
|
|
29
|
+
*/
|
|
30
|
+
const MAX_EXTENSION_SEARCH = 1000;
|
|
31
|
+
/**
|
|
32
|
+
* The first extension code of `oldContractCode` that is not already in use.
|
|
33
|
+
*
|
|
34
|
+
* `usedCodes` is every contract code already allocated in the scope the
|
|
35
|
+
* caller is protecting — for extend.ba.contract.ts, every code in the
|
|
36
|
+
* business context, whatever its status. Cancelled and Surrendered rows are
|
|
37
|
+
* deliberately included: their codes are still printed on payout statements,
|
|
38
|
+
* still stored on `BAPayoutRow.contractNo`, and still what the upload
|
|
39
|
+
* validator looks up, so reusing one recreates exactly the ambiguity this
|
|
40
|
+
* exists to stop.
|
|
41
|
+
*
|
|
42
|
+
* Codes are compared after `normalizeBAContractCode` (trim + upper), the same
|
|
43
|
+
* normalization `resolveBAPayoutContract` uses to decide that an uploaded row
|
|
44
|
+
* names a given contract. The two answers cannot disagree.
|
|
45
|
+
*
|
|
46
|
+
* Note that this does NOT guarantee the returned suffix is the old one plus
|
|
47
|
+
* one. Extending `1065` when `1065E1` is taken yields `1065E2`, which is the
|
|
48
|
+
* point: the code names a row, not a position in a chain, and nothing in the
|
|
49
|
+
* codebase parses it to find a parent (the parent is a foreign key).
|
|
50
|
+
*/
|
|
51
|
+
export function nextExtendedContractCode(oldContractCode, usedCodes) {
|
|
52
|
+
const { base, extension } = splitBAContractCode(oldContractCode);
|
|
53
|
+
if (!base) {
|
|
54
|
+
throw new Error('Cannot allocate an extended contract code: the contract being extended has no code');
|
|
55
|
+
}
|
|
56
|
+
const taken = new Set();
|
|
57
|
+
for (const code of usedCodes || []) {
|
|
58
|
+
const normalized = normalizeBAContractCode(code);
|
|
59
|
+
if (normalized)
|
|
60
|
+
taken.add(normalized);
|
|
61
|
+
}
|
|
62
|
+
for (let next = extension + 1; next <= extension + MAX_EXTENSION_SEARCH; next++) {
|
|
63
|
+
const candidate = `${base}E${next}`;
|
|
64
|
+
if (!taken.has(candidate))
|
|
65
|
+
return candidate;
|
|
66
|
+
}
|
|
67
|
+
throw new Error(`Cannot allocate an extended contract code for ${base}: ${MAX_EXTENSION_SEARCH} consecutive suffixes from E${extension + 1} are already in use`);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=ba.contract.extension.code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ba.contract.extension.code.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/ba.contract.extension.code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAgDzE;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAChD,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAEtD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,2EAA2E;IAC3E,wEAAwE;IACxE,yCAAyC;IACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,wBAAwB,CACvC,eAAwB,EACxB,SAA+C;IAE/C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACd,oFAAoF,CACpF,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,UAAU;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,KACC,IAAI,IAAI,GAAG,SAAS,GAAG,CAAC,EACxB,IAAI,IAAI,SAAS,GAAG,oBAAoB,EACxC,IAAI,EAAE,EACL,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC7C,CAAC;IAED,MAAM,IAAI,KAAK,CACd,iDAAiD,IAAI,KAAK,oBAAoB,+BAA+B,SAAS,GAAG,CAAC,qBAAqB,CAC/I,CAAC;AACH,CAAC"}
|
|
@@ -50,4 +50,5 @@ export * from './financial.year';
|
|
|
50
50
|
export * from './vendor.operations.log';
|
|
51
51
|
export * from './booking.selected.package.gate';
|
|
52
52
|
export * from './ba.payout.contract.selection';
|
|
53
|
+
export * from './ba.contract.extension.code';
|
|
53
54
|
export * from './ba.contract.rm.refund';
|
|
@@ -50,5 +50,6 @@ export * from './financial.year';
|
|
|
50
50
|
export * from './vendor.operations.log';
|
|
51
51
|
export * from './booking.selected.package.gate';
|
|
52
52
|
export * from './ba.payout.contract.selection';
|
|
53
|
+
export * from './ba.contract.extension.code';
|
|
53
54
|
export * from './ba.contract.rm.refund';
|
|
54
55
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,OAAO,CAAC;AACtB,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,OAAO,CAAC;AACtB,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC"}
|