@pax2pay/model-banking 0.1.119 → 0.1.121

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
@@ -11,13 +11,13 @@ export namespace Status {
11
11
  error?: gracely.Error
12
12
  }
13
13
  export namespace Failed {
14
- export function from(error: gracely.Error): Failed {
14
+ export function from(error?: gracely.Error): Failed {
15
15
  let result: Status
16
- if (error.error?.includes("Card with id"))
16
+ if (error?.error?.includes("Card with id"))
17
17
  result = { code: "14", reason: "Invalid card number" }
18
- else if (error.error?.includes("must correspond to card limit")) {
18
+ else if (error?.error?.includes("must correspond to card limit")) {
19
19
  result = { code: "13", reason: "Invalid amount" }
20
- } else if (error.error?.includes("Failed to reach account")) {
20
+ } else if (error?.error?.includes("Failed to reach account")) {
21
21
  result = { code: "78", reason: "Invalid/nonexistent account specified (general)" }
22
22
  } else if (gracely.client.InvalidContent.is(error) && error.content.description.includes("rules")) {
23
23
  const reasons: string[] = error.content.details?.notes.reduce(
@@ -68,30 +68,39 @@ export namespace Authorization {
68
68
  card: Card | gracely.Error,
69
69
  transaction?: Transaction | gracely.Error
70
70
  ): Authorization {
71
- return {
72
- id: Identifier.generate(),
73
- ...{ status: "approved" },
74
- ...(gracely.Error.is(card)
75
- ? { card: { id: creatable.card }, status: { ...Status.Failed.from(card), error: card } }
76
- : {
77
- card: { id: card.id, iin: card.details.iin, last4: card.details.last4, token: card.details.token },
78
- account: card.account,
79
- }),
71
+ const partial: Pick<Authorization, "created" | "amount" | "merchant" | "acquirer" | "reference" | "description"> = {
80
72
  created: isoly.DateTime.now(),
81
73
  amount: creatable.amount,
82
74
  merchant: creatable.merchant,
83
75
  acquirer: creatable.acquirer,
84
76
  reference: creatable.reference,
85
77
  description: creatable.description,
86
- ...(!transaction
87
- ? {}
88
- : gracely.Error.is(transaction)
89
- ? { ...Status.Failed.from(transaction), error: transaction }
90
- : {
91
- id: transaction.id,
92
- transaction: { id: transaction?.id, posted: transaction?.posted, description: transaction.description },
93
- }),
94
78
  }
79
+ let result: Authorization
80
+ if (gracely.Error.is(card))
81
+ result = {
82
+ id: Identifier.generate(),
83
+ status: Status.Failed.from(card),
84
+ ...partial,
85
+ card: { id: creatable.card },
86
+ }
87
+ else if (gracely.Error.is(transaction) || !transaction)
88
+ result = {
89
+ id: Identifier.generate(),
90
+ status: Status.Failed.from(transaction),
91
+ ...partial,
92
+ card: { id: card.id, iin: card.details.iin, last4: card.details.last4, token: card.details.token },
93
+ }
94
+ else
95
+ result = {
96
+ id: transaction.id,
97
+ status: "approved",
98
+ ...partial,
99
+ card: { id: card.id, iin: card.details.iin, last4: card.details.last4, token: card.details.token },
100
+ account: card.account,
101
+ transaction: { id: transaction?.id, posted: transaction?.posted, description: transaction.description },
102
+ }
103
+ return result
95
104
  }
96
105
 
97
106
  export function toTransaction(authorization: Authorization, card: Card): Transaction.Creatable {
@@ -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"}
@@ -8,7 +8,7 @@ export declare namespace Status {
8
8
  error?: gracely.Error;
9
9
  }
10
10
  namespace Failed {
11
- function from(error: gracely.Error): Failed;
11
+ function from(error?: gracely.Error): Failed;
12
12
  }
13
13
  const type: isly.Type<"approved" | Failed>;
14
14
  const is: isly.Type.IsFunction<"approved" | Failed>;
@@ -6,12 +6,12 @@ export var Status;
6
6
  (function (Failed) {
7
7
  function from(error) {
8
8
  let result;
9
- if (error.error?.includes("Card with id"))
9
+ if (error?.error?.includes("Card with id"))
10
10
  result = { code: "14", reason: "Invalid card number" };
11
- else if (error.error?.includes("must correspond to card limit")) {
11
+ else if (error?.error?.includes("must correspond to card limit")) {
12
12
  result = { code: "13", reason: "Invalid amount" };
13
13
  }
14
- else if (error.error?.includes("Failed to reach account")) {
14
+ else if (error?.error?.includes("Failed to reach account")) {
15
15
  result = { code: "78", reason: "Invalid/nonexistent account specified (general)" };
16
16
  }
17
17
  else if (gracely.client.InvalidContent.is(error) && error.content.description.includes("rules")) {
@@ -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,KAAoB;YACxC,IAAI,MAAc,CAAA;YAClB,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACxC,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;iBAClD,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EAAE;gBAChE,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;aACjD;iBAAM,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAAE;gBAC5D,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,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"}
@@ -37,30 +37,39 @@ export var Authorization;
37
37
  Authorization.is = Authorization.type.is;
38
38
  Authorization.flaw = Authorization.type.flaw;
39
39
  function fromCreatable(creatable, card, transaction) {
40
- return {
41
- id: Identifier.generate(),
42
- ...{ status: "approved" },
43
- ...(gracely.Error.is(card)
44
- ? { card: { id: creatable.card }, status: { ...Status.Failed.from(card), error: card } }
45
- : {
46
- card: { id: card.id, iin: card.details.iin, last4: card.details.last4, token: card.details.token },
47
- account: card.account,
48
- }),
40
+ const partial = {
49
41
  created: isoly.DateTime.now(),
50
42
  amount: creatable.amount,
51
43
  merchant: creatable.merchant,
52
44
  acquirer: creatable.acquirer,
53
45
  reference: creatable.reference,
54
46
  description: creatable.description,
55
- ...(!transaction
56
- ? {}
57
- : gracely.Error.is(transaction)
58
- ? { ...Status.Failed.from(transaction), error: transaction }
59
- : {
60
- id: transaction.id,
61
- transaction: { id: transaction?.id, posted: transaction?.posted, description: transaction.description },
62
- }),
63
47
  };
48
+ let result;
49
+ if (gracely.Error.is(card))
50
+ result = {
51
+ id: Identifier.generate(),
52
+ status: Status.Failed.from(card),
53
+ ...partial,
54
+ card: { id: creatable.card },
55
+ };
56
+ else if (gracely.Error.is(transaction) || !transaction)
57
+ result = {
58
+ id: Identifier.generate(),
59
+ status: Status.Failed.from(transaction),
60
+ ...partial,
61
+ card: { id: card.id, iin: card.details.iin, last4: card.details.last4, token: card.details.token },
62
+ };
63
+ else
64
+ result = {
65
+ id: transaction.id,
66
+ status: "approved",
67
+ ...partial,
68
+ card: { id: card.id, iin: card.details.iin, last4: card.details.last4, token: card.details.token },
69
+ account: card.account,
70
+ transaction: { id: transaction?.id, posted: transaction?.posted, description: transaction.description },
71
+ };
72
+ return result;
64
73
  }
65
74
  Authorization.fromCreatable = fromCreatable;
66
75
  function toTransaction(authorization, card) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Authorization/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Authorization/index.ts"],"names":[],"mappings":"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"}
@@ -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.119",
3
+ "version": "0.1.121",
4
4
  "description": "Library containing data model types and functions for the Pax2Pay Banking API.",
5
5
  "author": "Pax2Pay Ltd",
6
6
  "license": "MIT",