@pax2pay/model-banking 0.1.120 → 0.1.122

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/Acquirer/index.ts CHANGED
@@ -4,14 +4,14 @@ import { isly } from "isly"
4
4
  export interface Acquirer {
5
5
  id: string
6
6
  number: string
7
- country: isoly.CountryCode.Alpha2
7
+ country?: isoly.CountryCode.Alpha2
8
8
  }
9
9
 
10
10
  export namespace Acquirer {
11
11
  export const type = isly.object<Acquirer>({
12
12
  id: isly.string(),
13
13
  number: isly.string(),
14
- country: isly.fromIs("Acquirer.country", isoly.CountryCode.Alpha2.is),
14
+ country: isly.fromIs("Acquirer.country", isoly.CountryCode.Alpha2.is).optional(),
15
15
  })
16
16
  export const is = type.is
17
17
  export const flaw = type.flaw
package/Amount.ts CHANGED
@@ -1,9 +1,13 @@
1
1
  import { isoly } from "isoly"
2
2
  import { isly } from "isly"
3
+ import { Amounts } from "./Amounts"
3
4
 
4
5
  export type Amount = [isoly.Currency, number]
5
6
 
6
7
  export namespace Amount {
8
+ export function toAmounts(amount?: Amount): Amounts {
9
+ return !amount ? {} : Object.fromEntries<number>([amount])
10
+ }
7
11
  export const type = isly.tuple<Amount>(isly.string(isoly.Currency.types), isly.number())
8
12
  export const is = type.is
9
13
  export const flaw = type.flaw
package/Amounts.ts CHANGED
@@ -4,6 +4,15 @@ import { isly } from "isly"
4
4
  export type Amounts = Partial<Record<isoly.Currency, number>>
5
5
 
6
6
  export namespace Amounts {
7
+ export function add(addendee: Amounts, addend: Amounts): Amounts {
8
+ return (Object.entries(addend) as [isoly.Currency, number][]).reduce(
9
+ (r: Amounts, [currency, amount]) => ({
10
+ ...r,
11
+ [currency]: isoly.Currency.add(currency, addendee[currency] ?? 0, amount),
12
+ }),
13
+ addendee
14
+ )
15
+ }
7
16
  export const type = isly.record<Amounts>(isly.string(isoly.Currency.types), isly.number())
8
17
  export const is = type.is
9
18
  export const flaw = type.flaw
@@ -31,7 +31,7 @@ export namespace Status {
31
31
  }
32
32
  } else
33
33
  result = { code: "05", reason: "Do not honor" } //default
34
- return result
34
+ return { ...result, error }
35
35
  }
36
36
  }
37
37
  export const type = isly.union(
@@ -1,7 +1,8 @@
1
1
  import { gracely } from "gracely"
2
2
  import { isly } from "isly"
3
- import { Authorization } from "../../Authorization"
3
+ import { Amount } from "../../Amount"
4
4
  import { Transaction } from "../../Transaction"
5
+ import { Total } from "../Total"
5
6
  import { Cancel as EntryCancel } from "./Cancel"
6
7
  import { Capture as EntryCapture } from "./Capture"
7
8
  import { Creatable as EntryCreatable } from "./Creatable"
@@ -27,6 +28,11 @@ export namespace Entry {
27
28
  export namespace Unknown {
28
29
  export type Creatable = EntryUnknown.Creatable
29
30
  }
31
+ export function compile(entry: Entry): Total {
32
+ return entry.type == "unknown"
33
+ ? Total.initiate()
34
+ : Total.initiate({ amount: Amount.toAmounts(entry.amount), fee: entry.fee })
35
+ }
30
36
  export function from(creatable: Entry.Creatable, transaction?: Transaction | gracely.Error): Entry {
31
37
  return Transaction.is(transaction) && creatable.authorization
32
38
  ? {
package/Settlement/Fee.ts CHANGED
@@ -4,8 +4,10 @@ import { Amounts } from "../Amounts"
4
4
  export interface Fee {
5
5
  other: Amounts
6
6
  }
7
-
8
7
  export namespace Fee {
8
+ export function add(addendee: Fee, addend: Fee): Fee {
9
+ return { other: Amounts.add(addendee.other, addend.other) }
10
+ }
9
11
  export const type = isly.object<Fee>({ other: Amounts.type })
10
12
  export const is = type.is
11
13
  export const flaw = type.flaw
@@ -8,8 +8,11 @@ export type Total = {
8
8
  }
9
9
 
10
10
  export namespace Total {
11
- export function initiate(): Total {
12
- return { amount: {}, fee: { other: {} } }
11
+ export function initiate(partial?: Partial<Total>): Total {
12
+ return { amount: partial?.amount ?? {}, fee: partial?.fee ?? { other: {} } }
13
+ }
14
+ export function add(addendee: Total, addend: Total): Total {
15
+ return { amount: Amounts.add(addendee.amount, addend.amount), fee: Fee.add(addendee.fee, addend.fee) }
13
16
  }
14
17
  export const type = isly.object<Total>({ amount: Amounts.type, fee: Fee.type })
15
18
  export const is = type.is
@@ -29,27 +29,27 @@ export namespace Settlement {
29
29
  export type Creatable = SettlementCreatable
30
30
  export const Creatable = SettlementCreatable
31
31
  export type Entry = SettlementEntry
32
+ export const Entry = SettlementEntry
32
33
  export namespace Entry {
33
34
  export type Summary = SettlementEntry.Summary
34
- export const Summary = SettlementEntry.Summary
35
35
  export type Creatable = SettlementEntry.Creatable
36
- export const Creatable = SettlementEntry.Creatable
37
36
  export type Refund = SettlementEntry.Refund
38
- export const Refund = SettlementEntry.Refund
39
37
  export type Cancel = SettlementEntry.Cancel
40
- export const Cancel = SettlementEntry.Cancel
41
38
  export type Capture = SettlementEntry.Capture
42
- export const Capture = SettlementEntry.Capture
43
39
  export type Unknown = SettlementEntry.Unknown
44
- export const Unknown = SettlementEntry.Unknown
45
- export const from = SettlementEntry.from
46
- export const type = SettlementEntry.type
47
- export const is = SettlementEntry.is
48
- export const flaw = SettlementEntry.flaw
49
40
  }
50
41
  export function from(id: cryptly.Identifier, creatable: Settlement.Creatable, by: string): Settlement {
51
42
  return { id, status: "ongoing", by, expected: Total.initiate(), ...creatable, created: isoly.DateTime.now() }
52
43
  }
44
+ export function compile(settlement: Settlement, entries: Settlement.Entry[]): Settlement {
45
+ return entries.reduce(
46
+ (r, entry) =>
47
+ entry?.status == "succeeded"
48
+ ? { ...r, outcome: Total.add(r.outcome ?? Total.initiate(), Entry.compile(entry)) }
49
+ : r,
50
+ settlement
51
+ )
52
+ }
53
53
  export function toFailed(id: string, creatable: Settlement.Creatable, by: string, reason: string): Settlement {
54
54
  return {
55
55
  id,
@@ -61,7 +61,6 @@ export namespace Settlement {
61
61
  expected: Total.initiate(),
62
62
  }
63
63
  }
64
-
65
64
  export const type = isly.object({
66
65
  id: isly.string(),
67
66
  by: isly.string().optional(),
@@ -3,7 +3,7 @@ import { isly } from "isly";
3
3
  export interface Acquirer {
4
4
  id: string;
5
5
  number: string;
6
- country: isoly.CountryCode.Alpha2;
6
+ country?: isoly.CountryCode.Alpha2;
7
7
  }
8
8
  export declare namespace Acquirer {
9
9
  const type: isly.object.ExtendableType<Acquirer>;
@@ -5,7 +5,7 @@ export var Acquirer;
5
5
  Acquirer.type = isly.object({
6
6
  id: isly.string(),
7
7
  number: isly.string(),
8
- country: isly.fromIs("Acquirer.country", isoly.CountryCode.Alpha2.is),
8
+ country: isly.fromIs("Acquirer.country", isoly.CountryCode.Alpha2.is).optional(),
9
9
  });
10
10
  Acquirer.is = Acquirer.type.is;
11
11
  Acquirer.flaw = Acquirer.type.flaw;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Acquirer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAQ3B,MAAM,KAAW,QAAQ,CAQxB;AARD,WAAiB,QAAQ;IACX,aAAI,GAAG,IAAI,CAAC,MAAM,CAAW;QACzC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;KACrE,CAAC,CAAA;IACW,WAAE,GAAG,SAAA,IAAI,CAAC,EAAE,CAAA;IACZ,aAAI,GAAG,SAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EARgB,QAAQ,KAAR,QAAQ,QAQxB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Acquirer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAQ3B,MAAM,KAAW,QAAQ,CAQxB;AARD,WAAiB,QAAQ;IACX,aAAI,GAAG,IAAI,CAAC,MAAM,CAAW;QACzC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KAChF,CAAC,CAAA;IACW,WAAE,GAAG,SAAA,IAAI,CAAC,EAAE,CAAA;IACZ,aAAI,GAAG,SAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EARgB,QAAQ,KAAR,QAAQ,QAQxB"}
package/dist/Amount.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
+ import { Amounts } from "./Amounts";
3
4
  export type Amount = [isoly.Currency, number];
4
5
  export declare namespace Amount {
6
+ function toAmounts(amount?: Amount): Amounts;
5
7
  const type: isly.Type<Amount>;
6
8
  const is: isly.Type.IsFunction<Amount>;
7
9
  const flaw: isly.Type.FlawFunction;
package/dist/Amount.js CHANGED
@@ -2,6 +2,10 @@ import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
3
  export var Amount;
4
4
  (function (Amount) {
5
+ function toAmounts(amount) {
6
+ return !amount ? {} : Object.fromEntries([amount]);
7
+ }
8
+ Amount.toAmounts = toAmounts;
5
9
  Amount.type = isly.tuple(isly.string(isoly.Currency.types), isly.number());
6
10
  Amount.is = Amount.type.is;
7
11
  Amount.flaw = Amount.type.flaw;
@@ -1 +1 @@
1
- {"version":3,"file":"Amount.js","sourceRoot":"../","sources":["Amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,MAAM,KAAW,MAAM,CAItB;AAJD,WAAiB,MAAM;IACT,WAAI,GAAG,IAAI,CAAC,KAAK,CAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3E,SAAE,GAAG,OAAA,IAAI,CAAC,EAAE,CAAA;IACZ,WAAI,GAAG,OAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAJgB,MAAM,KAAN,MAAM,QAItB"}
1
+ {"version":3,"file":"Amount.js","sourceRoot":"../","sources":["Amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAK3B,MAAM,KAAW,MAAM,CAOtB;AAPD,WAAiB,MAAM;IACtB,SAAgB,SAAS,CAAC,MAAe;QACxC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3D,CAAC;IAFe,gBAAS,YAExB,CAAA;IACY,WAAI,GAAG,IAAI,CAAC,KAAK,CAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3E,SAAE,GAAG,OAAA,IAAI,CAAC,EAAE,CAAA;IACZ,WAAI,GAAG,OAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAPgB,MAAM,KAAN,MAAM,QAOtB"}
package/dist/Amounts.d.ts CHANGED
@@ -2,6 +2,7 @@ import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
3
  export type Amounts = Partial<Record<isoly.Currency, number>>;
4
4
  export declare namespace Amounts {
5
+ function add(addendee: Amounts, addend: Amounts): Amounts;
5
6
  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", number>>>;
6
7
  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", number>>>;
7
8
  const flaw: isly.Type.FlawFunction;
package/dist/Amounts.js CHANGED
@@ -2,6 +2,13 @@ import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
3
  export var Amounts;
4
4
  (function (Amounts) {
5
+ function add(addendee, addend) {
6
+ return Object.entries(addend).reduce((r, [currency, amount]) => ({
7
+ ...r,
8
+ [currency]: isoly.Currency.add(currency, addendee[currency] ?? 0, amount),
9
+ }), addendee);
10
+ }
11
+ Amounts.add = add;
5
12
  Amounts.type = isly.record(isly.string(isoly.Currency.types), isly.number());
6
13
  Amounts.is = Amounts.type.is;
7
14
  Amounts.flaw = Amounts.type.flaw;
@@ -1 +1 @@
1
- {"version":3,"file":"Amounts.js","sourceRoot":"../","sources":["Amounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,MAAM,KAAW,OAAO,CAIvB;AAJD,WAAiB,OAAO;IACV,YAAI,GAAG,IAAI,CAAC,MAAM,CAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7E,UAAE,GAAG,QAAA,IAAI,CAAC,EAAE,CAAA;IACZ,YAAI,GAAG,QAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAJgB,OAAO,KAAP,OAAO,QAIvB"}
1
+ {"version":3,"file":"Amounts.js","sourceRoot":"../","sources":["Amounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,MAAM,KAAW,OAAO,CAavB;AAbD,WAAiB,OAAO;IACvB,SAAgB,GAAG,CAAC,QAAiB,EAAE,MAAe;QACrD,OAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,CAAgC,CAAC,MAAM,CACnE,CAAC,CAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,GAAG,CAAC;YACJ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;SACzE,CAAC,EACF,QAAQ,CACR,CAAA;IACF,CAAC;IARe,WAAG,MAQlB,CAAA;IACY,YAAI,GAAG,IAAI,CAAC,MAAM,CAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7E,UAAE,GAAG,QAAA,IAAI,CAAC,EAAE,CAAA;IACZ,YAAI,GAAG,QAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAbgB,OAAO,KAAP,OAAO,QAavB"}
@@ -23,7 +23,7 @@ export var Status;
23
23
  }
24
24
  else
25
25
  result = { code: "05", reason: "Do not honor" };
26
- return result;
26
+ return { ...result, error };
27
27
  }
28
28
  Failed.from = from;
29
29
  })(Failed = Status.Failed || (Status.Failed = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"Status.js","sourceRoot":"../","sources":["Authorization/Status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAK3B,MAAM,KAAW,MAAM,CAwCtB;AAxCD,WAAiB,MAAM;IAMtB,IAAiB,MAAM,CAuBtB;IAvBD,WAAiB,MAAM;QACtB,SAAgB,IAAI,CAAC,KAAqB;YACzC,IAAI,MAAc,CAAA;YAClB,IAAI,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACzC,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;iBAClD,IAAI,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EAAE;gBACjE,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;aACjD;iBAAM,IAAI,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAAE;gBAC7D,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAA;aAClF;iBAAM,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAClG,MAAM,OAAO,GAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAC5D,CAAC,CAAW,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,EACzF,EAAE,CACF,CAAA;gBACD,MAAM,GAAG;oBACR,IAAI,EAAE,IAAI;oBAEV,MAAM,EAAE,CAAC,kBAAkB,EAAE,GAAG,OAAO,CAAC;iBACxC,CAAA;aACD;;gBACA,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;YAChD,OAAO,MAAM,CAAA;QACd,CAAC;QArBe,WAAI,OAqBnB,CAAA;IACF,CAAC,EAvBgB,MAAM,GAAN,aAAM,KAAN,aAAM,QAuBtB;IACY,WAAI,GAAG,IAAI,CAAC,KAAK,CAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EACvB,IAAI,CAAC,MAAM,CAAgB;QAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACxD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KAChE,CAAC,CACF,CAAA;IACY,SAAE,GAAG,OAAA,IAAI,CAAC,EAAE,CAAA;IACZ,WAAI,GAAG,OAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAxCgB,MAAM,KAAN,MAAM,QAwCtB"}
1
+ {"version":3,"file":"Status.js","sourceRoot":"../","sources":["Authorization/Status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAK3B,MAAM,KAAW,MAAM,CAwCtB;AAxCD,WAAiB,MAAM;IAMtB,IAAiB,MAAM,CAuBtB;IAvBD,WAAiB,MAAM;QACtB,SAAgB,IAAI,CAAC,KAAqB;YACzC,IAAI,MAAc,CAAA;YAClB,IAAI,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACzC,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;iBAClD,IAAI,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EAAE;gBACjE,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;aACjD;iBAAM,IAAI,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAAE;gBAC7D,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAA;aAClF;iBAAM,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAClG,MAAM,OAAO,GAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAC5D,CAAC,CAAW,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,EACzF,EAAE,CACF,CAAA;gBACD,MAAM,GAAG;oBACR,IAAI,EAAE,IAAI;oBAEV,MAAM,EAAE,CAAC,kBAAkB,EAAE,GAAG,OAAO,CAAC;iBACxC,CAAA;aACD;;gBACA,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;YAChD,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAA;QAC5B,CAAC;QArBe,WAAI,OAqBnB,CAAA;IACF,CAAC,EAvBgB,MAAM,GAAN,aAAM,KAAN,aAAM,QAuBtB;IACY,WAAI,GAAG,IAAI,CAAC,KAAK,CAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EACvB,IAAI,CAAC,MAAM,CAAgB;QAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACxD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KAChE,CAAC,CACF,CAAA;IACY,SAAE,GAAG,OAAA,IAAI,CAAC,EAAE,CAAA;IACZ,WAAI,GAAG,OAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAxCgB,MAAM,KAAN,MAAM,QAwCtB"}
@@ -1,6 +1,7 @@
1
1
  import { gracely } from "gracely";
2
2
  import { isly } from "isly";
3
3
  import { Transaction } from "../../Transaction";
4
+ import { Total } from "../Total";
4
5
  import { Cancel as EntryCancel } from "./Cancel";
5
6
  import { Capture as EntryCapture } from "./Capture";
6
7
  import { Creatable as EntryCreatable } from "./Creatable";
@@ -24,6 +25,7 @@ export declare namespace Entry {
24
25
  namespace Unknown {
25
26
  type Creatable = EntryUnknown.Creatable;
26
27
  }
28
+ function compile(entry: Entry): Total;
27
29
  function from(creatable: Entry.Creatable, transaction?: Transaction | gracely.Error): Entry;
28
30
  const type: isly.Type<Entry>;
29
31
  const is: isly.Type.IsFunction<Entry>;
@@ -1,5 +1,7 @@
1
1
  import { isly } from "isly";
2
+ import { Amount } from "../../Amount";
2
3
  import { Transaction } from "../../Transaction";
4
+ import { Total } from "../Total";
3
5
  import { Cancel as EntryCancel } from "./Cancel";
4
6
  import { Capture as EntryCapture } from "./Capture";
5
7
  import { Creatable as EntryCreatable } from "./Creatable";
@@ -14,6 +16,12 @@ export var Entry;
14
16
  Entry.Refund = EntryRefund;
15
17
  Entry.Summary = EntrySummary;
16
18
  Entry.Unknown = EntryUnknown;
19
+ function compile(entry) {
20
+ return entry.type == "unknown"
21
+ ? Total.initiate()
22
+ : Total.initiate({ amount: Amount.toAmounts(entry.amount), fee: entry.fee });
23
+ }
24
+ Entry.compile = compile;
17
25
  function from(creatable, transaction) {
18
26
  return Transaction.is(transaction) && creatable.authorization
19
27
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Settlement/Entry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AAInD,MAAM,KAAW,KAAK,CAmCrB;AAnCD,WAAiB,KAAK;IAER,YAAM,GAAG,WAAW,CAAA;IAEpB,aAAO,GAAG,YAAY,CAAA;IAEtB,eAAS,GAAG,cAAc,CAAA;IAE1B,YAAM,GAAG,WAAW,CAAA;IAEpB,aAAO,GAAG,YAAY,CAAA;IAEtB,aAAO,GAAG,YAAY,CAAA;IAInC,SAAgB,IAAI,CAAC,SAA0B,EAAE,WAAyC;QACzF,OAAO,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,aAAa;YAC5D,CAAC,CAAC;gBACA,MAAM,EAAE,WAAW;gBACnB,GAAG,SAAS;aACX;YACH,CAAC,CAAC;gBACA,MAAM,EAAE,QAAQ;gBAChB,GAAG,SAAS;aACX,CAAA;IACL,CAAC;IAVe,UAAI,OAUnB,CAAA;IACY,UAAI,GAAG,IAAI,CAAC,KAAK,CAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,EACjB,KAAK,CAAC,OAAO,CAAC,IAAI,EAClB,KAAK,CAAC,MAAM,CAAC,IAAI,EACjB,KAAK,CAAC,OAAO,CAAC,IAAI,CAClB,CAAA;IACY,QAAE,GAAG,MAAA,IAAI,CAAC,EAAE,CAAA;IACZ,UAAI,GAAG,MAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAnCgB,KAAK,KAAL,KAAK,QAmCrB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Settlement/Entry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AAInD,MAAM,KAAW,KAAK,CAwCrB;AAxCD,WAAiB,KAAK;IAER,YAAM,GAAG,WAAW,CAAA;IAEpB,aAAO,GAAG,YAAY,CAAA;IAEtB,eAAS,GAAG,cAAc,CAAA;IAE1B,YAAM,GAAG,WAAW,CAAA;IAEpB,aAAO,GAAG,YAAY,CAAA;IAEtB,aAAO,GAAG,YAAY,CAAA;IAInC,SAAgB,OAAO,CAAC,KAAY;QACnC,OAAO,KAAK,CAAC,IAAI,IAAI,SAAS;YAC7B,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;YAClB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;IAC9E,CAAC;IAJe,aAAO,UAItB,CAAA;IACD,SAAgB,IAAI,CAAC,SAA0B,EAAE,WAAyC;QACzF,OAAO,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,aAAa;YAC5D,CAAC,CAAC;gBACA,MAAM,EAAE,WAAW;gBACnB,GAAG,SAAS;aACX;YACH,CAAC,CAAC;gBACA,MAAM,EAAE,QAAQ;gBAChB,GAAG,SAAS;aACX,CAAA;IACL,CAAC;IAVe,UAAI,OAUnB,CAAA;IACY,UAAI,GAAG,IAAI,CAAC,KAAK,CAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,EACjB,KAAK,CAAC,OAAO,CAAC,IAAI,EAClB,KAAK,CAAC,MAAM,CAAC,IAAI,EACjB,KAAK,CAAC,OAAO,CAAC,IAAI,CAClB,CAAA;IACY,QAAE,GAAG,MAAA,IAAI,CAAC,EAAE,CAAA;IACZ,UAAI,GAAG,MAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAxCgB,KAAK,KAAL,KAAK,QAwCrB"}
@@ -4,6 +4,7 @@ export interface Fee {
4
4
  other: Amounts;
5
5
  }
6
6
  export declare namespace Fee {
7
+ function add(addendee: Fee, addend: Fee): Fee;
7
8
  const type: isly.object.ExtendableType<Fee>;
8
9
  const is: isly.Type.IsFunction<Fee>;
9
10
  const flaw: isly.Type.FlawFunction;
@@ -2,6 +2,10 @@ import { isly } from "isly";
2
2
  import { Amounts } from "../Amounts";
3
3
  export var Fee;
4
4
  (function (Fee) {
5
+ function add(addendee, addend) {
6
+ return { other: Amounts.add(addendee.other, addend.other) };
7
+ }
8
+ Fee.add = add;
5
9
  Fee.type = isly.object({ other: Amounts.type });
6
10
  Fee.is = Fee.type.is;
7
11
  Fee.flaw = Fee.type.flaw;
@@ -1 +1 @@
1
- {"version":3,"file":"Fee.js","sourceRoot":"../","sources":["Settlement/Fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAMpC,MAAM,KAAW,GAAG,CAInB;AAJD,WAAiB,GAAG;IACN,QAAI,GAAG,IAAI,CAAC,MAAM,CAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAChD,MAAE,GAAG,IAAA,IAAI,CAAC,EAAE,CAAA;IACZ,QAAI,GAAG,IAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAJgB,GAAG,KAAH,GAAG,QAInB"}
1
+ {"version":3,"file":"Fee.js","sourceRoot":"../","sources":["Settlement/Fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAKpC,MAAM,KAAW,GAAG,CAOnB;AAPD,WAAiB,GAAG;IACnB,SAAgB,GAAG,CAAC,QAAa,EAAE,MAAW;QAC7C,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAC5D,CAAC;IAFe,OAAG,MAElB,CAAA;IACY,QAAI,GAAG,IAAI,CAAC,MAAM,CAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAChD,MAAE,GAAG,IAAA,IAAI,CAAC,EAAE,CAAA;IACZ,QAAI,GAAG,IAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAPgB,GAAG,KAAH,GAAG,QAOnB"}
@@ -6,7 +6,8 @@ export type Total = {
6
6
  fee: Fee;
7
7
  };
8
8
  export declare namespace Total {
9
- function initiate(): Total;
9
+ function initiate(partial?: Partial<Total>): Total;
10
+ function add(addendee: Total, addend: Total): Total;
10
11
  const type: isly.object.ExtendableType<Total>;
11
12
  const is: isly.Type.IsFunction<Total>;
12
13
  const flaw: isly.Type.FlawFunction;
@@ -3,10 +3,14 @@ import { Amounts } from "../Amounts";
3
3
  import { Fee } from "./Fee";
4
4
  export var Total;
5
5
  (function (Total) {
6
- function initiate() {
7
- return { amount: {}, fee: { other: {} } };
6
+ function initiate(partial) {
7
+ return { amount: partial?.amount ?? {}, fee: partial?.fee ?? { other: {} } };
8
8
  }
9
9
  Total.initiate = initiate;
10
+ function add(addendee, addend) {
11
+ return { amount: Amounts.add(addendee.amount, addend.amount), fee: Fee.add(addendee.fee, addend.fee) };
12
+ }
13
+ Total.add = add;
10
14
  Total.type = isly.object({ amount: Amounts.type, fee: Fee.type });
11
15
  Total.is = Total.type.is;
12
16
  Total.flaw = Total.type.flaw;
@@ -1 +1 @@
1
- {"version":3,"file":"Total.js","sourceRoot":"../","sources":["Settlement/Total.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAO3B,MAAM,KAAW,KAAK,CAOrB;AAPD,WAAiB,KAAK;IACrB,SAAgB,QAAQ;QACvB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAA;IAC1C,CAAC;IAFe,cAAQ,WAEvB,CAAA;IACY,UAAI,GAAG,IAAI,CAAC,MAAM,CAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAClE,QAAE,GAAG,MAAA,IAAI,CAAC,EAAE,CAAA;IACZ,UAAI,GAAG,MAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAPgB,KAAK,KAAL,KAAK,QAOrB"}
1
+ {"version":3,"file":"Total.js","sourceRoot":"../","sources":["Settlement/Total.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAO3B,MAAM,KAAW,KAAK,CAUrB;AAVD,WAAiB,KAAK;IACrB,SAAgB,QAAQ,CAAC,OAAwB;QAChD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAA;IAC7E,CAAC;IAFe,cAAQ,WAEvB,CAAA;IACD,SAAgB,GAAG,CAAC,QAAe,EAAE,MAAa;QACjD,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;IACvG,CAAC;IAFe,SAAG,MAElB,CAAA;IACY,UAAI,GAAG,IAAI,CAAC,MAAM,CAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAClE,QAAE,GAAG,MAAA,IAAI,CAAC,EAAE,CAAA;IACZ,UAAI,GAAG,MAAA,IAAI,CAAC,IAAI,CAAA;AAC9B,CAAC,EAVgB,KAAK,KAAL,KAAK,QAUrB"}
@@ -27,25 +27,17 @@ export declare namespace Settlement {
27
27
  type Creatable = SettlementCreatable;
28
28
  const Creatable: typeof SettlementCreatable;
29
29
  type Entry = SettlementEntry;
30
+ const Entry: typeof SettlementEntry;
30
31
  namespace Entry {
31
32
  type Summary = SettlementEntry.Summary;
32
- const Summary: typeof import("./Entry/Summary").Summary;
33
33
  type Creatable = SettlementEntry.Creatable;
34
- const Creatable: typeof import("./Entry/Creatable").Creatable;
35
34
  type Refund = SettlementEntry.Refund;
36
- const Refund: typeof import("./Entry/Refund").Refund;
37
35
  type Cancel = SettlementEntry.Cancel;
38
- const Cancel: typeof import("./Entry/Cancel").Cancel;
39
36
  type Capture = SettlementEntry.Capture;
40
- const Capture: typeof import("./Entry/Capture").Capture;
41
37
  type Unknown = SettlementEntry.Unknown;
42
- const Unknown: typeof import("./Entry/Unknown").Unknown;
43
- const from: typeof SettlementEntry.from;
44
- const type: isly.Type<SettlementEntry>;
45
- const is: isly.Type.IsFunction<SettlementEntry>;
46
- const flaw: isly.Type.FlawFunction;
47
38
  }
48
39
  function from(id: cryptly.Identifier, creatable: Settlement.Creatable, by: string): Settlement;
40
+ function compile(settlement: Settlement, entries: Settlement.Entry[]): Settlement;
49
41
  function toFailed(id: string, creatable: Settlement.Creatable, by: string, reason: string): Settlement;
50
42
  const type: isly.object.ExtendableType<object>;
51
43
  const is: isly.Type.IsFunction<object>;
@@ -11,23 +11,17 @@ export var Settlement;
11
11
  Settlement.Total = SettlementTotal;
12
12
  Settlement.Fee = SettlementFee;
13
13
  Settlement.Creatable = SettlementCreatable;
14
- let Entry;
15
- (function (Entry) {
16
- Entry.Summary = SettlementEntry.Summary;
17
- Entry.Creatable = SettlementEntry.Creatable;
18
- Entry.Refund = SettlementEntry.Refund;
19
- Entry.Cancel = SettlementEntry.Cancel;
20
- Entry.Capture = SettlementEntry.Capture;
21
- Entry.Unknown = SettlementEntry.Unknown;
22
- Entry.from = SettlementEntry.from;
23
- Entry.type = SettlementEntry.type;
24
- Entry.is = SettlementEntry.is;
25
- Entry.flaw = SettlementEntry.flaw;
26
- })(Entry = Settlement.Entry || (Settlement.Entry = {}));
14
+ Settlement.Entry = SettlementEntry;
27
15
  function from(id, creatable, by) {
28
16
  return { id, status: "ongoing", by, expected: Settlement.Total.initiate(), ...creatable, created: isoly.DateTime.now() };
29
17
  }
30
18
  Settlement.from = from;
19
+ function compile(settlement, entries) {
20
+ return entries.reduce((r, entry) => entry?.status == "succeeded"
21
+ ? { ...r, outcome: Settlement.Total.add(r.outcome ?? Settlement.Total.initiate(), Settlement.Entry.compile(entry)) }
22
+ : r, settlement);
23
+ }
24
+ Settlement.compile = compile;
31
25
  function toFailed(id, creatable, by, reason) {
32
26
  return {
33
27
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Settlement/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Settlement/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pax2pay/model-banking",
3
- "version": "0.1.120",
3
+ "version": "0.1.122",
4
4
  "description": "Library containing data model types and functions for the Pax2Pay Banking API.",
5
5
  "author": "Pax2Pay Ltd",
6
6
  "license": "MIT",