@pax2pay/model-banking 0.1.362 → 0.1.364

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/Balance.ts ADDED
@@ -0,0 +1,67 @@
1
+ import { isoly } from "isoly"
2
+ import { isly } from "isly"
3
+ import { Amount } from "./Amount"
4
+
5
+ export type Balance = { available?: number; reserved?: Balance.Reserved }
6
+ export namespace Balance {
7
+ export type Reserve = typeof Reserve.values[number]
8
+ export namespace Reserve {
9
+ export const values = ["incoming", "outgoing", "buffer"] as const
10
+ export const type = isly.string<Reserve>(values)
11
+ }
12
+ export type Reserved = Partial<Record<Balance.Reserve, number>>
13
+ export const type = isly.object<Balance>({
14
+ available: isly.number().optional(),
15
+ reserved: isly.record<Reserved>(Balance.Reserve.type, isly.number().optional()).optional(),
16
+ })
17
+ export type Legacy = Partial<Record<Legacy.Entry, number>>
18
+ export namespace Legacy {
19
+ export type Entry = typeof Entry.values[number]
20
+ export namespace Entry {
21
+ export const values = ["actual", "incomingReserved", "outgoingReserved", "bufferReserved"] as const
22
+ export const type = isly.string<Entry>(values)
23
+ }
24
+ export const type = isly.record<Legacy>(Entry.type, isly.number())
25
+ }
26
+ export type MaybeLegacy = Balance | Legacy
27
+ export namespace MaybeLegacy {
28
+ export const legacyType = isly.union<MaybeLegacy>(type, Legacy.type)
29
+ }
30
+ export type Extended = Balance & Legacy
31
+ export const Extended = isly.intersection<Extended, Balance, Legacy>(type, Legacy.type)
32
+ export function update(currency: isoly.Currency, balance: MaybeLegacy): Extended {
33
+ const result: Extended = { ...balance }
34
+ if (Legacy.type.is(balance)) {
35
+ const reserved = isoly.Currency.add(
36
+ currency,
37
+ balance.incomingReserved ?? 0,
38
+ isoly.Currency.add(currency, balance.outgoingReserved ?? 0, balance.bufferReserved ?? 0)
39
+ )
40
+ result.reserved = {
41
+ incoming: balance.incomingReserved,
42
+ outgoing: balance.outgoingReserved,
43
+ buffer: balance.bufferReserved,
44
+ }
45
+ result.available = isoly.Currency.subtract(currency, balance.actual ?? 0, reserved)
46
+ } else {
47
+ result.actual = computeActual(currency, balance)[1]
48
+ result.incomingReserved = balance.reserved?.incoming
49
+ result.outgoingReserved = balance.reserved?.outgoing
50
+ result.bufferReserved = balance.reserved?.buffer
51
+ }
52
+ return result
53
+ }
54
+ export function computeReserved(currency: isoly.Currency, balance: Balance): Amount {
55
+ return [
56
+ currency,
57
+ Object.entries(balance.reserved ?? {}).reduce(
58
+ (result, [_, current]) => isoly.Currency.add(currency, result, current ?? 0),
59
+ 0
60
+ ),
61
+ ]
62
+ }
63
+ export function computeActual(currency: isoly.Currency, balance: Balance): Amount {
64
+ const reserved = computeReserved(currency, balance)[1]
65
+ return [currency, isoly.Currency.add(currency, balance.available ?? 0, reserved)]
66
+ }
67
+ }
package/Balances.ts ADDED
@@ -0,0 +1,31 @@
1
+ import { isoly } from "isoly"
2
+ import { isly } from "isly"
3
+ import { Amounts } from "./Amounts"
4
+ import { Balance as BalancesBalance } from "./Balance"
5
+
6
+ export type Balances = Partial<Record<isoly.Currency, Balances.Balance.Extended>>
7
+
8
+ export namespace Balances {
9
+ export import Balance = BalancesBalance
10
+ export const type = isly.record<Balances>(isly.fromIs("isoly.Currency", isoly.Currency.is), Balances.Balance.type)
11
+ export const is = type.is
12
+ export const flaw = type.flaw
13
+ export function update(balances: Balances): Balances {
14
+ const result: Balances = {}
15
+ for (const [currency, balance] of Object.entries(balances))
16
+ result[currency as isoly.Currency] = Balance.update(currency as isoly.Currency, balance)
17
+ return result
18
+ }
19
+ export function computeReserved(balances: Balances): Amounts {
20
+ const result: Amounts = {}
21
+ for (const [currency, balance] of Object.entries(balances))
22
+ result[currency as isoly.Currency] = Balance.computeReserved(currency as isoly.Currency, balance)[1]
23
+ return result
24
+ }
25
+ export function computeActual(balances: Balances): Amounts {
26
+ const result: Amounts = {}
27
+ for (const [currency, balance] of Object.entries(balances))
28
+ result[currency as isoly.Currency] = Balance.computeActual(currency as isoly.Currency, balance)[1]
29
+ return result
30
+ }
31
+ }
@@ -1,25 +1,25 @@
1
1
  import { isoly } from "isoly"
2
2
  import { isly } from "isly"
3
- import { Balances } from "../Balances"
3
+ import { Balance as AccountBalance } from "../Balance"
4
4
  import { Counterbalance as CounterbalanceOperation } from "../Counterbalance"
5
5
  import { Change } from "./Change"
6
6
 
7
7
  export type Changes = Partial<Record<Changes.Entry.Balance, Change>> & Record<Changes.Entry.Counterbalance, Change>
8
8
  export namespace Changes {
9
- export function available(changes: Changes, currency: isoly.Currency): number {
10
- return changes.available
11
- ? (changes.available.type == "subtract" ? -1 : 1) * changes.available.amount
12
- : Object.entries(changes).reduce(
9
+ export function available(changes: Changes, currency: isoly.Currency, legacy: boolean = false): number {
10
+ return legacy
11
+ ? Object.entries(changes).reduce(
13
12
  (r, [entry, change]) =>
14
13
  isoly.Currency.add(
15
14
  currency,
16
15
  r,
17
- Balances.Balance.Entry.is(entry)
16
+ AccountBalance.Legacy.Entry.type.is(entry)
18
17
  ? (entry == "actual" ? 1 : -1) * (change.type == "subtract" ? -1 : 1) * (change.amount ?? 0)
19
18
  : 0
20
19
  ),
21
20
  0
22
21
  )
22
+ : (changes.available?.type == "subtract" ? -1 : 1) * (changes.available?.amount ?? 0)
23
23
  }
24
24
  export function reserved(changes: Changes, currency: isoly.Currency): number {
25
25
  return Object.entries(changes).reduce(
@@ -29,7 +29,7 @@ export namespace Changes {
29
29
  r,
30
30
  entry == "actual" ||
31
31
  entry == "available" ||
32
- (!Balances.Balance.Entry.is(entry) && !Entry.Balance.type.is(entry))
32
+ (!AccountBalance.Legacy.Entry.type.is(entry) && !Entry.Balance.type.is(entry))
33
33
  ? 0
34
34
  : (change.type == "subtract" ? -1 : 1) * (change.amount ?? 0)
35
35
  ),
@@ -39,16 +39,17 @@ export namespace Changes {
39
39
  export type Sum = Partial<Record<Changes.Entry.Balance, number>> & Record<Changes.Entry.Counterbalance, number>
40
40
  export type MaybeLegacy = Changes | Legacy
41
41
  export const type = isly.record<Legacy>(isly.string(), Change.type)
42
- export type Legacy = Partial<Record<Balances.Balance.Entry, Change>> & Record<Changes.Entry.Counterbalance, Change>
42
+ export type Legacy = Partial<Record<AccountBalance.Legacy.Entry, Change>> &
43
+ Record<Changes.Entry.Counterbalance, Change>
43
44
  export namespace Legacy {
44
45
  export const type = isly.record<Legacy>(isly.string(), Change.type)
45
46
  export const is = type.is
46
47
  export const flaw = type.flaw
47
- export type Entry = Balances.Balance.Entry | Legacy.Entry.Counterbalance
48
+ export type Entry = AccountBalance.Legacy.Entry | Legacy.Entry.Counterbalance
48
49
  export namespace Entry {
49
- export type Balance = typeof Balances.Balance.Entry.values[number]
50
+ export type Balance = typeof AccountBalance.Legacy.Entry.values[number]
50
51
  export namespace Balance {
51
- export const type = Balances.Balance.Entry.type
52
+ export const type = AccountBalance.Legacy.Entry.type
52
53
  }
53
54
  export type Counterbalance = `${CounterbalanceOperation.Link}-${isoly.DateTime}`
54
55
  }
@@ -12,6 +12,10 @@ export interface Operation extends OperationCreatable {
12
12
  previous?: string
13
13
  }
14
14
  export namespace Operation {
15
+ // This pr changed the type https://github.com/pax2pay/worker-banking-ledger/pull/1493
16
+ export function available(operation: Operation, currency: isoly.Currency): number {
17
+ return OperationChanges.available(operation.changes, currency, operation.created <= "2024-09-13T13:26:00.001Z")
18
+ }
15
19
  export function sum(operations: Operation[]): Changes.Sum {
16
20
  const result: Changes.Sum = {}
17
21
  for (const operation of operations) {
@@ -1,12 +1,12 @@
1
1
  import { isoly } from "isoly"
2
2
  import { isly } from "isly"
3
- import { Balances } from "../../Balances"
3
+ import { Balance } from "../../Balance"
4
4
  import { Account } from "../Account"
5
5
  import { Warning } from "./Warning"
6
6
 
7
7
  export interface Fragment {
8
8
  warnings: Warning[]
9
- emoney: Balances.Balance
9
+ emoney: Balance.Extended
10
10
  minted: Fragment.Coinage.Minted
11
11
  burned: Fragment.Coinage.Burned
12
12
  fiat: {
@@ -42,7 +42,7 @@ export namespace Fragment {
42
42
  }
43
43
  export const type = isly.object<Fragment>({
44
44
  warnings: Warning.type.array(),
45
- emoney: Balances.Balance.type,
45
+ emoney: Balance.type,
46
46
  minted: Fragment.Coinage.Minted.type,
47
47
  burned: Fragment.Coinage.Burned.type,
48
48
  fiat: isly.object({
@@ -0,0 +1,34 @@
1
+ import { isoly } from "isoly";
2
+ import { isly } from "isly";
3
+ import { Amount } from "./Amount";
4
+ export type Balance = {
5
+ available?: number;
6
+ reserved?: Balance.Reserved;
7
+ };
8
+ export declare namespace Balance {
9
+ type Reserve = typeof Reserve.values[number];
10
+ namespace Reserve {
11
+ const values: readonly ["incoming", "outgoing", "buffer"];
12
+ const type: isly.Type<"buffer" | "incoming" | "outgoing">;
13
+ }
14
+ type Reserved = Partial<Record<Balance.Reserve, number>>;
15
+ const type: isly.object.ExtendableType<Balance>;
16
+ type Legacy = Partial<Record<Legacy.Entry, number>>;
17
+ namespace Legacy {
18
+ type Entry = typeof Entry.values[number];
19
+ namespace Entry {
20
+ const values: readonly ["actual", "incomingReserved", "outgoingReserved", "bufferReserved"];
21
+ const type: isly.Type<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved">;
22
+ }
23
+ const type: isly.Type<Partial<Record<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved", number>>>;
24
+ }
25
+ type MaybeLegacy = Balance | Legacy;
26
+ namespace MaybeLegacy {
27
+ const legacyType: isly.Type<MaybeLegacy>;
28
+ }
29
+ type Extended = Balance & Legacy;
30
+ const Extended: isly.Type<Extended>;
31
+ function update(currency: isoly.Currency, balance: MaybeLegacy): Extended;
32
+ function computeReserved(currency: isoly.Currency, balance: Balance): Amount;
33
+ function computeActual(currency: isoly.Currency, balance: Balance): Amount;
34
+ }
@@ -0,0 +1,61 @@
1
+ import { isoly } from "isoly";
2
+ import { isly } from "isly";
3
+ export var Balance;
4
+ (function (Balance) {
5
+ let Reserve;
6
+ (function (Reserve) {
7
+ Reserve.values = ["incoming", "outgoing", "buffer"];
8
+ Reserve.type = isly.string(Reserve.values);
9
+ })(Reserve = Balance.Reserve || (Balance.Reserve = {}));
10
+ Balance.type = isly.object({
11
+ available: isly.number().optional(),
12
+ reserved: isly.record(Balance.Reserve.type, isly.number().optional()).optional(),
13
+ });
14
+ let Legacy;
15
+ (function (Legacy) {
16
+ let Entry;
17
+ (function (Entry) {
18
+ Entry.values = ["actual", "incomingReserved", "outgoingReserved", "bufferReserved"];
19
+ Entry.type = isly.string(Entry.values);
20
+ })(Entry = Legacy.Entry || (Legacy.Entry = {}));
21
+ Legacy.type = isly.record(Entry.type, isly.number());
22
+ })(Legacy = Balance.Legacy || (Balance.Legacy = {}));
23
+ let MaybeLegacy;
24
+ (function (MaybeLegacy) {
25
+ MaybeLegacy.legacyType = isly.union(Balance.type, Legacy.type);
26
+ })(MaybeLegacy = Balance.MaybeLegacy || (Balance.MaybeLegacy = {}));
27
+ Balance.Extended = isly.intersection(Balance.type, Legacy.type);
28
+ function update(currency, balance) {
29
+ const result = { ...balance };
30
+ if (Legacy.type.is(balance)) {
31
+ const reserved = isoly.Currency.add(currency, balance.incomingReserved ?? 0, isoly.Currency.add(currency, balance.outgoingReserved ?? 0, balance.bufferReserved ?? 0));
32
+ result.reserved = {
33
+ incoming: balance.incomingReserved,
34
+ outgoing: balance.outgoingReserved,
35
+ buffer: balance.bufferReserved,
36
+ };
37
+ result.available = isoly.Currency.subtract(currency, balance.actual ?? 0, reserved);
38
+ }
39
+ else {
40
+ result.actual = computeActual(currency, balance)[1];
41
+ result.incomingReserved = balance.reserved?.incoming;
42
+ result.outgoingReserved = balance.reserved?.outgoing;
43
+ result.bufferReserved = balance.reserved?.buffer;
44
+ }
45
+ return result;
46
+ }
47
+ Balance.update = update;
48
+ function computeReserved(currency, balance) {
49
+ return [
50
+ currency,
51
+ Object.entries(balance.reserved ?? {}).reduce((result, [_, current]) => isoly.Currency.add(currency, result, current ?? 0), 0),
52
+ ];
53
+ }
54
+ Balance.computeReserved = computeReserved;
55
+ function computeActual(currency, balance) {
56
+ const reserved = computeReserved(currency, balance)[1];
57
+ return [currency, isoly.Currency.add(currency, balance.available ?? 0, reserved)];
58
+ }
59
+ Balance.computeActual = computeActual;
60
+ })(Balance || (Balance = {}));
61
+ //# sourceMappingURL=Balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Balance.js","sourceRoot":"../","sources":["Balance.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
1
  import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
+ import { Amounts } from "./Amounts";
3
4
  import { Balance as BalancesBalance } from "./Balance";
4
- export type Balances = Partial<Record<isoly.Currency, Balances.Balance>>;
5
+ export type Balances = Partial<Record<isoly.Currency, Balances.Balance.Extended>>;
5
6
  export declare namespace Balances {
6
- const Balance: typeof BalancesBalance;
7
- type Balance = BalancesBalance;
8
- namespace Balance {
9
- type Entry = BalancesBalance.Entry;
10
- }
11
- const type: isly.Type<Partial<Record<"BTN" | "CHE" | "MKD" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL", Partial<Record<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved", number>>>>>;
12
- const is: isly.Type.IsFunction<Partial<Record<"BTN" | "CHE" | "MKD" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL", Partial<Record<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved", number>>>>>;
7
+ export import Balance = BalancesBalance;
8
+ const type: isly.Type<Partial<Record<"BTN" | "CHE" | "MKD" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL", Balance.Extended>>>;
9
+ const is: isly.Type.IsFunction<Partial<Record<"BTN" | "CHE" | "MKD" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL", Balance.Extended>>>;
13
10
  const flaw: isly.Type.FlawFunction;
14
- function add(addendee: Balances, addend: Balances): Balances;
11
+ function update(balances: Balances): Balances;
12
+ function computeReserved(balances: Balances): Amounts;
13
+ function computeActual(balances: Balances): Amounts;
15
14
  }
@@ -0,0 +1,32 @@
1
+ import { isoly } from "isoly";
2
+ import { isly } from "isly";
3
+ import { Balance as BalancesBalance } from "./Balance";
4
+ export var Balances;
5
+ (function (Balances) {
6
+ Balances.Balance = BalancesBalance;
7
+ Balances.type = isly.record(isly.fromIs("isoly.Currency", isoly.Currency.is), Balances.Balance.type);
8
+ Balances.is = Balances.type.is;
9
+ Balances.flaw = Balances.type.flaw;
10
+ function update(balances) {
11
+ const result = {};
12
+ for (const [currency, balance] of Object.entries(balances))
13
+ result[currency] = Balances.Balance.update(currency, balance);
14
+ return result;
15
+ }
16
+ Balances.update = update;
17
+ function computeReserved(balances) {
18
+ const result = {};
19
+ for (const [currency, balance] of Object.entries(balances))
20
+ result[currency] = Balances.Balance.computeReserved(currency, balance)[1];
21
+ return result;
22
+ }
23
+ Balances.computeReserved = computeReserved;
24
+ function computeActual(balances) {
25
+ const result = {};
26
+ for (const [currency, balance] of Object.entries(balances))
27
+ result[currency] = Balances.Balance.computeActual(currency, balance)[1];
28
+ return result;
29
+ }
30
+ Balances.computeActual = computeActual;
31
+ })(Balances || (Balances = {}));
32
+ //# sourceMappingURL=Balances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Balances.js","sourceRoot":"../","sources":["Balances.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,WAAW,CAAA;AAItD,MAAM,KAAW,QAAQ,CAuBxB;AAvBD,WAAiB,QAAQ;IACV,gBAAO,GAAG,eAAe,CAAA;IAC1B,aAAI,GAAG,IAAI,CAAC,MAAM,CAAW,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACrG,WAAE,GAAG,SAAA,IAAI,CAAC,EAAE,CAAA;IACZ,aAAI,GAAG,SAAA,IAAI,CAAC,IAAI,CAAA;IAC7B,SAAgB,MAAM,CAAC,QAAkB;QACxC,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzD,MAAM,CAAC,QAA0B,CAAC,GAAG,SAAA,OAAO,CAAC,MAAM,CAAC,QAA0B,EAAE,OAAO,CAAC,CAAA;QACzF,OAAO,MAAM,CAAA;IACd,CAAC;IALe,eAAM,SAKrB,CAAA;IACD,SAAgB,eAAe,CAAC,QAAkB;QACjD,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzD,MAAM,CAAC,QAA0B,CAAC,GAAG,SAAA,OAAO,CAAC,eAAe,CAAC,QAA0B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACrG,OAAO,MAAM,CAAA;IACd,CAAC;IALe,wBAAe,kBAK9B,CAAA;IACD,SAAgB,aAAa,CAAC,QAAkB;QAC/C,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzD,MAAM,CAAC,QAA0B,CAAC,GAAG,SAAA,OAAO,CAAC,aAAa,CAAC,QAA0B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACnG,OAAO,MAAM,CAAA;IACd,CAAC;IALe,sBAAa,gBAK5B,CAAA;AACF,CAAC,EAvBgB,QAAQ,KAAR,QAAQ,QAuBxB"}
@@ -1,23 +1,23 @@
1
1
  import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
- import { Balances } from "../Balances";
3
+ import { Balance as AccountBalance } from "../Balance";
4
4
  import { Counterbalance as CounterbalanceOperation } from "../Counterbalance";
5
5
  import { Change } from "./Change";
6
6
  export type Changes = Partial<Record<Changes.Entry.Balance, Change>> & Record<Changes.Entry.Counterbalance, Change>;
7
7
  export declare namespace Changes {
8
- function available(changes: Changes, currency: isoly.Currency): number;
8
+ function available(changes: Changes, currency: isoly.Currency, legacy?: boolean): number;
9
9
  function reserved(changes: Changes, currency: isoly.Currency): number;
10
10
  type Sum = Partial<Record<Changes.Entry.Balance, number>> & Record<Changes.Entry.Counterbalance, number>;
11
11
  type MaybeLegacy = Changes | Legacy;
12
12
  const type: isly.Type<Legacy>;
13
- type Legacy = Partial<Record<Balances.Balance.Entry, Change>> & Record<Changes.Entry.Counterbalance, Change>;
13
+ type Legacy = Partial<Record<AccountBalance.Legacy.Entry, Change>> & Record<Changes.Entry.Counterbalance, Change>;
14
14
  namespace Legacy {
15
15
  const type: isly.Type<Legacy>;
16
16
  const is: isly.Type.IsFunction<Legacy>;
17
17
  const flaw: isly.Type.FlawFunction;
18
- type Entry = Balances.Balance.Entry | Legacy.Entry.Counterbalance;
18
+ type Entry = AccountBalance.Legacy.Entry | Legacy.Entry.Counterbalance;
19
19
  namespace Entry {
20
- type Balance = typeof Balances.Balance.Entry.values[number];
20
+ type Balance = typeof AccountBalance.Legacy.Entry.values[number];
21
21
  namespace Balance {
22
22
  const type: isly.Type<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved">;
23
23
  }
@@ -32,7 +32,7 @@ export declare namespace Changes {
32
32
  type Balance = typeof Balance.values[number];
33
33
  namespace Balance {
34
34
  const values: readonly ["available", "incomingReserved", "outgoingReserved", "bufferReserved"];
35
- const type: isly.Type<"incomingReserved" | "outgoingReserved" | "bufferReserved" | "available">;
35
+ const type: isly.Type<"available" | "incomingReserved" | "outgoingReserved" | "bufferReserved">;
36
36
  }
37
37
  }
38
38
  }
@@ -1,21 +1,21 @@
1
1
  import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
- import { Balances } from "../Balances";
3
+ import { Balance as AccountBalance } from "../Balance";
4
4
  import { Change } from "./Change";
5
5
  export var Changes;
6
6
  (function (Changes) {
7
- function available(changes, currency) {
8
- return changes.available
9
- ? (changes.available.type == "subtract" ? -1 : 1) * changes.available.amount
10
- : Object.entries(changes).reduce((r, [entry, change]) => isoly.Currency.add(currency, r, Balances.Balance.Entry.is(entry)
7
+ function available(changes, currency, legacy = false) {
8
+ return legacy
9
+ ? Object.entries(changes).reduce((r, [entry, change]) => isoly.Currency.add(currency, r, AccountBalance.Legacy.Entry.type.is(entry)
11
10
  ? (entry == "actual" ? 1 : -1) * (change.type == "subtract" ? -1 : 1) * (change.amount ?? 0)
12
- : 0), 0);
11
+ : 0), 0)
12
+ : (changes.available?.type == "subtract" ? -1 : 1) * (changes.available?.amount ?? 0);
13
13
  }
14
14
  Changes.available = available;
15
15
  function reserved(changes, currency) {
16
16
  return Object.entries(changes).reduce((r, [entry, change]) => isoly.Currency.add(currency, r, entry == "actual" ||
17
17
  entry == "available" ||
18
- (!Balances.Balance.Entry.is(entry) && !Entry.Balance.type.is(entry))
18
+ (!AccountBalance.Legacy.Entry.type.is(entry) && !Entry.Balance.type.is(entry))
19
19
  ? 0
20
20
  : (change.type == "subtract" ? -1 : 1) * (change.amount ?? 0)), 0);
21
21
  }
@@ -30,7 +30,7 @@ export var Changes;
30
30
  (function (Entry) {
31
31
  let Balance;
32
32
  (function (Balance) {
33
- Balance.type = Balances.Balance.Entry.type;
33
+ Balance.type = AccountBalance.Legacy.Entry.type;
34
34
  })(Balance = Entry.Balance || (Entry.Balance = {}));
35
35
  })(Entry = Legacy.Entry || (Legacy.Entry = {}));
36
36
  })(Legacy = Changes.Legacy || (Changes.Legacy = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"Changes.js","sourceRoot":"../","sources":["Operation/Changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Changes.js","sourceRoot":"../","sources":["Operation/Changes.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export interface Operation extends OperationCreatable {
11
11
  previous?: string;
12
12
  }
13
13
  export declare namespace Operation {
14
+ function available(operation: Operation, currency: isoly.Currency): number;
14
15
  function sum(operations: Operation[]): Changes.Sum;
15
16
  const Signer: typeof OperationSigner;
16
17
  type Creatable = OperationCreatable;
@@ -5,6 +5,10 @@ import { Creatable as OperationCreatable } from "./Creatable";
5
5
  import { Signer as OperationSigner } from "./Signer";
6
6
  export var Operation;
7
7
  (function (Operation) {
8
+ function available(operation, currency) {
9
+ return OperationChanges.available(operation.changes, currency, operation.created <= "2024-09-13T13:26:00.001Z");
10
+ }
11
+ Operation.available = available;
8
12
  function sum(operations) {
9
13
  const result = {};
10
14
  for (const operation of operations) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Operation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AASpD,MAAM,KAAW,SAAS,CAmCzB;AAnCD,WAAiB,SAAS;IACzB,SAAgB,GAAG,CAAC,UAAuB;QAC1C,MAAM,MAAM,GAAgB,EAAE,CAAA;QAC9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBAC7D,MAAM,CAAC,KAA8B,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CACnE,SAAS,CAAC,QAAQ,EAClB,MAAM,CAAC,KAA8B,CAAC,IAAI,CAAC,EAC3C,MAAM,CAAC,MAAM,CACb,CAAA;YACF,CAAC,CAAC,CAAA;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAZe,aAAG,MAYlB,CAAA;IACY,gBAAM,GAAG,eAAe,CAAA;IAExB,mBAAS,GAAG,kBAAkB,CAAA;IAC7B,iBAAO,GAAG,gBAAgB,CAAA;IAC3B,cAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAY;QAC7D,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAA;IACW,YAAE,GAAG,UAAA,IAAI,CAAC,EAAE,CAAA;IACZ,cAAI,GAAG,UAAA,IAAI,CAAC,IAAI,CAAA;IAC7B,SAAgB,aAAa,CAAC,WAAmB,EAAE,SAAoB;QACtE,OAAO;YACN,GAAG,SAAS;YACZ,WAAW;YACX,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;SAC7B,CAAA;IACF,CAAC;IAPe,uBAAa,gBAO5B,CAAA;AACF,CAAC,EAnCgB,SAAS,KAAT,SAAS,QAmCzB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Operation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AASpD,MAAM,KAAW,SAAS,CAuCzB;AAvCD,WAAiB,SAAS;IAEzB,SAAgB,SAAS,CAAC,SAAoB,EAAE,QAAwB;QACvE,OAAO,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,IAAI,0BAA0B,CAAC,CAAA;IAChH,CAAC;IAFe,mBAAS,YAExB,CAAA;IACD,SAAgB,GAAG,CAAC,UAAuB;QAC1C,MAAM,MAAM,GAAgB,EAAE,CAAA;QAC9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBAC7D,MAAM,CAAC,KAA8B,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CACnE,SAAS,CAAC,QAAQ,EAClB,MAAM,CAAC,KAA8B,CAAC,IAAI,CAAC,EAC3C,MAAM,CAAC,MAAM,CACb,CAAA;YACF,CAAC,CAAC,CAAA;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAZe,aAAG,MAYlB,CAAA;IACY,gBAAM,GAAG,eAAe,CAAA;IAExB,mBAAS,GAAG,kBAAkB,CAAA;IAC7B,iBAAO,GAAG,gBAAgB,CAAA;IAC3B,cAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAY;QAC7D,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAA;IACW,YAAE,GAAG,UAAA,IAAI,CAAC,EAAE,CAAA;IACZ,cAAI,GAAG,UAAA,IAAI,CAAC,IAAI,CAAA;IAC7B,SAAgB,aAAa,CAAC,WAAmB,EAAE,SAAoB;QACtE,OAAO;YACN,GAAG,SAAS;YACZ,WAAW;YACX,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;SAC7B,CAAA;IACF,CAAC;IAPe,uBAAa,gBAO5B,CAAA;AACF,CAAC,EAvCgB,SAAS,KAAT,SAAS,QAuCzB"}
@@ -1,11 +1,11 @@
1
1
  import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
- import { Balances } from "../../Balances";
3
+ import { Balance } from "../../Balance";
4
4
  import { Account } from "../Account";
5
5
  import { Warning } from "./Warning";
6
6
  export interface Fragment {
7
7
  warnings: Warning[];
8
- emoney: Balances.Balance;
8
+ emoney: Balance.Extended;
9
9
  minted: Fragment.Coinage.Minted;
10
10
  burned: Fragment.Coinage.Burned;
11
11
  fiat: {
@@ -1,6 +1,6 @@
1
1
  import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
- import { Balances } from "../../Balances";
3
+ import { Balance } from "../../Balance";
4
4
  import { Account } from "../Account";
5
5
  import { Warning } from "./Warning";
6
6
  export var Fragment;
@@ -26,7 +26,7 @@ export var Fragment;
26
26
  })(Coinage = Fragment.Coinage || (Fragment.Coinage = {}));
27
27
  Fragment.type = isly.object({
28
28
  warnings: Warning.type.array(),
29
- emoney: Balances.Balance.type,
29
+ emoney: Balance.type,
30
30
  minted: Fragment.Coinage.Minted.type,
31
31
  burned: Fragment.Coinage.Burned.type,
32
32
  fiat: isly.object({
@@ -1 +1 @@
1
- {"version":3,"file":"Fragment.js","sourceRoot":"../","sources":["Treasury/Snapshot/Fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgBnC,MAAM,KAAW,QAAQ,CAyCxB;AAzCD,WAAiB,QAAQ;IACxB,IAAiB,OAAO,CAoBvB;IApBD,WAAiB,OAAO;QAGV,cAAM,GAAG,IAAI,CAAC,MAAM,CAAS;YACzC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SACrB,CAAC,CAAA;QAGF,IAAiB,MAAM,CAEtB;QAFD,WAAiB,MAAM;YACT,WAAI,GAAG,IAAI,CAAC,MAAM,CAAS,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAChF,CAAC,EAFgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAEtB;QAGD,IAAiB,MAAM,CAEtB;QAFD,WAAiB,MAAM;YACT,WAAI,GAAG,IAAI,CAAC,MAAM,CAAS,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAChF,CAAC,EAFgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAEtB;QACD,SAAgB,GAAG,CAAC,QAAwB,EAAE,OAAwB;YACrE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QACjH,CAAC;QAFe,WAAG,MAElB,CAAA;IACF,CAAC,EApBgB,OAAO,GAAP,gBAAO,KAAP,gBAAO,QAoBvB;IACY,aAAI,GAAG,IAAI,CAAC,MAAM,CAAW;QACzC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;QAC9B,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI;QAC7B,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;QACpC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;QACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;SAC9B,CAAC;KACF,CAAC,CAAA;IACF,SAAgB,QAAQ,CAAC,QAAwB,EAAE,QAAkB;QACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAA;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;QAC1C,OAAO,QAAQ,IAAI,MAAM,CAAA;IAC1B,CAAC;IAJe,iBAAQ,WAIvB,CAAA;AACF,CAAC,EAzCgB,QAAQ,KAAR,QAAQ,QAyCxB"}
1
+ {"version":3,"file":"Fragment.js","sourceRoot":"../","sources":["Treasury/Snapshot/Fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgBnC,MAAM,KAAW,QAAQ,CAyCxB;AAzCD,WAAiB,QAAQ;IACxB,IAAiB,OAAO,CAoBvB;IApBD,WAAiB,OAAO;QAGV,cAAM,GAAG,IAAI,CAAC,MAAM,CAAS;YACzC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SACrB,CAAC,CAAA;QAGF,IAAiB,MAAM,CAEtB;QAFD,WAAiB,MAAM;YACT,WAAI,GAAG,IAAI,CAAC,MAAM,CAAS,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAChF,CAAC,EAFgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAEtB;QAGD,IAAiB,MAAM,CAEtB;QAFD,WAAiB,MAAM;YACT,WAAI,GAAG,IAAI,CAAC,MAAM,CAAS,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAChF,CAAC,EAFgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAEtB;QACD,SAAgB,GAAG,CAAC,QAAwB,EAAE,OAAwB;YACrE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QACjH,CAAC;QAFe,WAAG,MAElB,CAAA;IACF,CAAC,EApBgB,OAAO,GAAP,gBAAO,KAAP,gBAAO,QAoBvB;IACY,aAAI,GAAG,IAAI,CAAC,MAAM,CAAW;QACzC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;QAC9B,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;QACpC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;QACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;SAC9B,CAAC;KACF,CAAC,CAAA;IACF,SAAgB,QAAQ,CAAC,QAAwB,EAAE,QAAkB;QACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAA;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;QAC1C,OAAO,QAAQ,IAAI,MAAM,CAAA;IAC1B,CAAC;IAJe,iBAAQ,WAIvB,CAAA;AACF,CAAC,EAzCgB,QAAQ,KAAR,QAAQ,QAyCxB"}
package/dist/pax2pay.d.ts CHANGED
@@ -1,30 +1,31 @@
1
1
  export { Account } from "./Account";
2
2
  export { Acquirer } from "./Acquirer";
3
+ export { Amount } from "./Amount";
4
+ export { Amounts } from "./Amounts";
5
+ export { Analytics } from "./Analytics";
6
+ export { Audit } from "./Audit";
7
+ export { Authorization } from "./Authorization";
8
+ export { Balance } from "./Balance";
3
9
  export { Balances } from "./Balances";
4
10
  export { Card } from "./Card";
5
- export { Holidays } from "./Holidays";
6
- export { Operation } from "./Operation";
7
- export { Organization } from "./Organization";
8
- export { Rail } from "./Rail";
9
- export { Transaction } from "./Transaction";
10
11
  export { Client } from "./Client";
11
- export { Treasury } from "./Treasury";
12
- export { Realm } from "./Realm";
13
- export { Supplier } from "./Supplier";
14
- export { Settlement } from "./Settlement";
15
- export { Merchant } from "./Merchant";
16
- export { Rule } from "./Rule";
17
- export { Authorization } from "./Authorization";
18
12
  export { Counterbalance } from "./Counterbalance";
19
13
  export { Counterbalances } from "./Counterbalances";
14
+ export { Exchange } from "./Exchange";
15
+ export { Holidays } from "./Holidays";
20
16
  export { Identifier } from "./Identifier";
21
- export { Amount } from "./Amount";
22
- export { Amounts } from "./Amounts";
23
- export { Report } from "./Report";
24
- export { Label } from "./Label";
25
17
  export { Identity } from "./Identity";
26
18
  export { Key } from "./Key";
27
- export { Exchange } from "./Exchange";
19
+ export { Label } from "./Label";
28
20
  export { Log } from "./Log";
29
- export { Audit } from "./Audit";
30
- export { Analytics } from "./Analytics";
21
+ export { Merchant } from "./Merchant";
22
+ export { Operation } from "./Operation";
23
+ export { Organization } from "./Organization";
24
+ export { Rail } from "./Rail";
25
+ export { Realm } from "./Realm";
26
+ export { Report } from "./Report";
27
+ export { Rule } from "./Rule";
28
+ export { Settlement } from "./Settlement";
29
+ export { Supplier } from "./Supplier";
30
+ export { Transaction } from "./Transaction";
31
+ export { Treasury } from "./Treasury";
package/dist/pax2pay.js CHANGED
@@ -1,31 +1,32 @@
1
1
  export { Account } from "./Account";
2
2
  export { Acquirer } from "./Acquirer";
3
+ export { Amount } from "./Amount";
4
+ export { Amounts } from "./Amounts";
5
+ export { Analytics } from "./Analytics";
6
+ export { Audit } from "./Audit";
7
+ export { Authorization } from "./Authorization";
8
+ export { Balance } from "./Balance";
3
9
  export { Balances } from "./Balances";
4
10
  export { Card } from "./Card";
5
- export { Holidays } from "./Holidays";
6
- export { Operation } from "./Operation";
7
- export { Organization } from "./Organization";
8
- export { Rail } from "./Rail";
9
- export { Transaction } from "./Transaction";
10
11
  export { Client } from "./Client";
11
- export { Treasury } from "./Treasury";
12
- export { Realm } from "./Realm";
13
- export { Supplier } from "./Supplier";
14
- export { Settlement } from "./Settlement";
15
- export { Merchant } from "./Merchant";
16
- export { Rule } from "./Rule";
17
- export { Authorization } from "./Authorization";
18
12
  export { Counterbalance } from "./Counterbalance";
19
13
  export { Counterbalances } from "./Counterbalances";
14
+ export { Exchange } from "./Exchange";
15
+ export { Holidays } from "./Holidays";
20
16
  export { Identifier } from "./Identifier";
21
- export { Amount } from "./Amount";
22
- export { Amounts } from "./Amounts";
23
- export { Report } from "./Report";
24
- export { Label } from "./Label";
25
17
  export { Identity } from "./Identity";
26
18
  export { Key } from "./Key";
27
- export { Exchange } from "./Exchange";
19
+ export { Label } from "./Label";
28
20
  export { Log } from "./Log";
29
- export { Audit } from "./Audit";
30
- export { Analytics } from "./Analytics";
21
+ export { Merchant } from "./Merchant";
22
+ export { Operation } from "./Operation";
23
+ export { Organization } from "./Organization";
24
+ export { Rail } from "./Rail";
25
+ export { Realm } from "./Realm";
26
+ export { Report } from "./Report";
27
+ export { Rule } from "./Rule";
28
+ export { Settlement } from "./Settlement";
29
+ export { Supplier } from "./Supplier";
30
+ export { Transaction } from "./Transaction";
31
+ export { Treasury } from "./Treasury";
31
32
  //# sourceMappingURL=pax2pay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pax2pay.js","sourceRoot":"../","sources":["pax2pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"pax2pay.js","sourceRoot":"../","sources":["pax2pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pax2pay/model-banking",
3
- "version": "0.1.362",
3
+ "version": "0.1.364",
4
4
  "description": "Library containing data model types and functions for the Pax2Pay Banking API.",
5
5
  "author": "Pax2Pay Ltd",
6
6
  "license": "MIT",
package/pax2pay.ts CHANGED
@@ -1,30 +1,31 @@
1
1
  export { Account } from "./Account"
2
2
  export { Acquirer } from "./Acquirer"
3
+ export { Amount } from "./Amount"
4
+ export { Amounts } from "./Amounts"
5
+ export { Analytics } from "./Analytics"
6
+ export { Audit } from "./Audit"
7
+ export { Authorization } from "./Authorization"
8
+ export { Balance } from "./Balance"
3
9
  export { Balances } from "./Balances"
4
10
  export { Card } from "./Card"
5
- export { Holidays } from "./Holidays"
6
- export { Operation } from "./Operation"
7
- export { Organization } from "./Organization"
8
- export { Rail } from "./Rail"
9
- export { Transaction } from "./Transaction"
10
11
  export { Client } from "./Client"
11
- export { Treasury } from "./Treasury"
12
- export { Realm } from "./Realm"
13
- export { Supplier } from "./Supplier"
14
- export { Settlement } from "./Settlement"
15
- export { Merchant } from "./Merchant"
16
- export { Rule } from "./Rule"
17
- export { Authorization } from "./Authorization"
18
12
  export { Counterbalance } from "./Counterbalance"
19
13
  export { Counterbalances } from "./Counterbalances"
14
+ export { Exchange } from "./Exchange"
15
+ export { Holidays } from "./Holidays"
20
16
  export { Identifier } from "./Identifier"
21
- export { Amount } from "./Amount"
22
- export { Amounts } from "./Amounts"
23
- export { Report } from "./Report"
24
- export { Label } from "./Label"
25
17
  export { Identity } from "./Identity"
26
18
  export { Key } from "./Key"
27
- export { Exchange } from "./Exchange"
19
+ export { Label } from "./Label"
28
20
  export { Log } from "./Log"
29
- export { Audit } from "./Audit"
30
- export { Analytics } from "./Analytics"
21
+ export { Merchant } from "./Merchant"
22
+ export { Operation } from "./Operation"
23
+ export { Organization } from "./Organization"
24
+ export { Rail } from "./Rail"
25
+ export { Realm } from "./Realm"
26
+ export { Report } from "./Report"
27
+ export { Rule } from "./Rule"
28
+ export { Settlement } from "./Settlement"
29
+ export { Supplier } from "./Supplier"
30
+ export { Transaction } from "./Transaction"
31
+ export { Treasury } from "./Treasury"
@@ -1,26 +0,0 @@
1
- import { isoly } from "isoly"
2
- import { isly } from "isly"
3
-
4
- export type Balance = Partial<Record<Balance.Entry, number>>
5
-
6
- export namespace Balance {
7
- export type Entry = typeof Entry.values[number]
8
- export namespace Entry {
9
- export const values = ["actual", "incomingReserved", "outgoingReserved", "bufferReserved"] as const
10
- export const type = isly.string(values)
11
- export const is = type.is
12
- export const flaw = type.flaw
13
- }
14
- export const type = isly.record<Balance>(Entry.type, isly.number())
15
- export const is = type.is
16
- export const flaw = type.flaw
17
- export function add(addendee: Balance, addend: Balance, currency: isoly.Currency): Balance {
18
- return (Object.entries(addend) as [Entry, number][]).reduce(
19
- (r: Balance, [entry, amount]) => ({
20
- ...r,
21
- [entry]: isoly.Currency.add(currency, addendee[entry] ?? 0, amount),
22
- }),
23
- addendee
24
- )
25
- }
26
- }
package/Balances/index.ts DELETED
@@ -1,25 +0,0 @@
1
- import { isoly } from "isoly"
2
- import { isly } from "isly"
3
- import { Balance as BalancesBalance } from "./Balance"
4
-
5
- export type Balances = Partial<Record<isoly.Currency, Balances.Balance>>
6
-
7
- export namespace Balances {
8
- export const Balance = BalancesBalance
9
- export type Balance = BalancesBalance
10
- export namespace Balance {
11
- export type Entry = BalancesBalance.Entry
12
- }
13
- export const type = isly.record<Balances>(isly.fromIs("isoly.Currency", isoly.Currency.is), Balances.Balance.type)
14
- export const is = type.is
15
- export const flaw = type.flaw
16
- export function add(addendee: Balances, addend: Balances): Balances {
17
- return (Object.entries(addend) as [isoly.Currency, Balance][]).reduce(
18
- (r: Balances, [currency, balance]) => ({
19
- ...r,
20
- [currency]: Balance.add(balance, addendee[currency] ?? {}, currency),
21
- }),
22
- addendee
23
- )
24
- }
25
- }
@@ -1,16 +0,0 @@
1
- import { isoly } from "isoly";
2
- import { isly } from "isly";
3
- export type Balance = Partial<Record<Balance.Entry, number>>;
4
- export declare namespace Balance {
5
- type Entry = typeof Entry.values[number];
6
- namespace Entry {
7
- const values: readonly ["actual", "incomingReserved", "outgoingReserved", "bufferReserved"];
8
- const type: isly.Type<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved">;
9
- const is: isly.Type.IsFunction<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved">;
10
- const flaw: isly.Type.FlawFunction;
11
- }
12
- const type: isly.Type<Partial<Record<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved", number>>>;
13
- const is: isly.Type.IsFunction<Partial<Record<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved", number>>>;
14
- const flaw: isly.Type.FlawFunction;
15
- function add(addendee: Balance, addend: Balance, currency: isoly.Currency): Balance;
16
- }
@@ -1,23 +0,0 @@
1
- import { isoly } from "isoly";
2
- import { isly } from "isly";
3
- export var Balance;
4
- (function (Balance) {
5
- let Entry;
6
- (function (Entry) {
7
- Entry.values = ["actual", "incomingReserved", "outgoingReserved", "bufferReserved"];
8
- Entry.type = isly.string(Entry.values);
9
- Entry.is = Entry.type.is;
10
- Entry.flaw = Entry.type.flaw;
11
- })(Entry = Balance.Entry || (Balance.Entry = {}));
12
- Balance.type = isly.record(Entry.type, isly.number());
13
- Balance.is = Balance.type.is;
14
- Balance.flaw = Balance.type.flaw;
15
- function add(addendee, addend, currency) {
16
- return Object.entries(addend).reduce((r, [entry, amount]) => ({
17
- ...r,
18
- [entry]: isoly.Currency.add(currency, addendee[entry] ?? 0, amount),
19
- }), addendee);
20
- }
21
- Balance.add = add;
22
- })(Balance || (Balance = {}));
23
- //# sourceMappingURL=Balance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Balance.js","sourceRoot":"../","sources":["Balances/Balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,MAAM,KAAW,OAAO,CAoBvB;AApBD,WAAiB,OAAO;IAEvB,IAAiB,KAAK,CAKrB;IALD,WAAiB,KAAK;QACR,YAAM,GAAG,CAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,CAAU,CAAA;QACtF,UAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAA,MAAM,CAAC,CAAA;QAC1B,QAAE,GAAG,MAAA,IAAI,CAAC,EAAE,CAAA;QACZ,UAAI,GAAG,MAAA,IAAI,CAAC,IAAI,CAAA;IAC9B,CAAC,EALgB,KAAK,GAAL,aAAK,KAAL,aAAK,QAKrB;IACY,YAAI,GAAG,IAAI,CAAC,MAAM,CAAU,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACtD,UAAE,GAAG,QAAA,IAAI,CAAC,EAAE,CAAA;IACZ,YAAI,GAAG,QAAA,IAAI,CAAC,IAAI,CAAA;IAC7B,SAAgB,GAAG,CAAC,QAAiB,EAAE,MAAe,EAAE,QAAwB;QAC/E,OAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,CAAuB,CAAC,MAAM,CAC1D,CAAC,CAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,GAAG,CAAC;YACJ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;SACnE,CAAC,EACF,QAAQ,CACR,CAAA;IACF,CAAC;IARe,WAAG,MAQlB,CAAA;AACF,CAAC,EApBgB,OAAO,KAAP,OAAO,QAoBvB"}
@@ -1,18 +0,0 @@
1
- import { isoly } from "isoly";
2
- import { isly } from "isly";
3
- import { Balance as BalancesBalance } from "./Balance";
4
- export var Balances;
5
- (function (Balances) {
6
- Balances.Balance = BalancesBalance;
7
- Balances.type = isly.record(isly.fromIs("isoly.Currency", isoly.Currency.is), Balances.Balance.type);
8
- Balances.is = Balances.type.is;
9
- Balances.flaw = Balances.type.flaw;
10
- function add(addendee, addend) {
11
- return Object.entries(addend).reduce((r, [currency, balance]) => ({
12
- ...r,
13
- [currency]: Balances.Balance.add(balance, addendee[currency] ?? {}, currency),
14
- }), addendee);
15
- }
16
- Balances.add = add;
17
- })(Balances || (Balances = {}));
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Balances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,WAAW,CAAA;AAItD,MAAM,KAAW,QAAQ,CAkBxB;AAlBD,WAAiB,QAAQ;IACX,gBAAO,GAAG,eAAe,CAAA;IAKzB,aAAI,GAAG,IAAI,CAAC,MAAM,CAAW,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACrG,WAAE,GAAG,SAAA,IAAI,CAAC,EAAE,CAAA;IACZ,aAAI,GAAG,SAAA,IAAI,CAAC,IAAI,CAAA;IAC7B,SAAgB,GAAG,CAAC,QAAkB,EAAE,MAAgB;QACvD,OAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,CAAiC,CAAC,MAAM,CACpE,CAAC,CAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC;YACJ,CAAC,QAAQ,CAAC,EAAE,SAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC;SACpE,CAAC,EACF,QAAQ,CACR,CAAA;IACF,CAAC;IARe,YAAG,MAQlB,CAAA;AACF,CAAC,EAlBgB,QAAQ,KAAR,QAAQ,QAkBxB"}