@pax2pay/model-banking 0.1.232 → 0.1.234

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/Amounts.ts CHANGED
@@ -13,6 +13,11 @@ export namespace Amounts {
13
13
  addendee
14
14
  )
15
15
  }
16
+ export function compare(left: Amounts, right: Amounts) {
17
+ return ([...new Set([...Object.keys(left), ...Object.keys(right)])] as isoly.Currency[]).every(
18
+ currency => left[currency] == right[currency]
19
+ )
20
+ }
16
21
  export const type = isly.record<Amounts>(isly.string(isoly.Currency.types), isly.number())
17
22
  export const is = type.is
18
23
  export const flaw = type.flaw
package/Identity.ts CHANGED
@@ -23,24 +23,31 @@ export class Identity {
23
23
  )
24
24
  }
25
25
 
26
- static async authenticate(
26
+ static async authenticate<T extends Partial<Record<"realm" | "organization", true>> = Record<string, never>>(
27
27
  header: { authorization?: string | undefined; realm?: Realm; organization?: string },
28
28
  constraint: Key.Permissions,
29
+ requires?: T,
29
30
  verifier: userwidgets.User.Key.Verifier<Key> = productionVerifier
30
- ): Promise<Identity | undefined> {
31
+ ): Promise<(keyof T extends keyof Identity ? Required<Pick<Identity, keyof T>> & Identity : Identity) | undefined> {
31
32
  const authorization = header.authorization?.startsWith("Bearer ")
32
33
  ? header.authorization.replace("Bearer ", "")
33
34
  : undefined
34
35
  const key = await Identity.verify(authorization, verifier)
35
36
  const realms = key && Identity.getRealms(key.permissions)
36
- const result =
37
+ const identity =
37
38
  key &&
38
39
  new Identity(
39
40
  key,
40
41
  (realms?.length == 1 ? realms[0] : header.realm) as Realm,
41
42
  (key.organization ?? header.organization) as string
42
43
  )
43
- return !constraint || result?.check(constraint) ? result : undefined
44
+ const requirement = (
45
+ value: Identity | undefined
46
+ ): value is
47
+ | (keyof T extends keyof Identity ? Required<Pick<Identity, keyof T>> & Identity : Identity)
48
+ | undefined =>
49
+ (requires?.organization ? !!identity?.organization : true) && (requires?.realm ? Realm.is(identity?.realm) : true)
50
+ return (!constraint || identity?.check(constraint)) && requirement(identity) ? identity : undefined
44
51
  }
45
52
  static async verify(
46
53
  authorization: string | undefined,
@@ -1,4 +1,3 @@
1
- import { isoly } from "isoly"
2
1
  import { isly } from "isly"
3
2
  import { Amounts } from "../Amounts"
4
3
  import { Transaction } from "../Transaction"
@@ -8,7 +7,6 @@ export type Total = {
8
7
  amount: Amounts
9
8
  fee: Fee
10
9
  }
11
-
12
10
  export namespace Total {
13
11
  export function initiate(partial?: Partial<Total>): Total {
14
12
  return { amount: partial?.amount ?? {}, fee: partial?.fee ?? { other: {} } }
@@ -17,14 +15,7 @@ export namespace Total {
17
15
  return { amount: Amounts.add(addendee.amount, addend.amount), fee: Fee.add(addendee.fee, addend.fee) }
18
16
  }
19
17
  export function compare(expected: Total, outcome: Total): boolean {
20
- return (
21
- ([...new Set([...Object.keys(expected.amount), ...Object.keys(outcome.amount)])] as isoly.Currency[]).every(
22
- currency => expected.amount[currency] == outcome.amount[currency]
23
- ) &&
24
- ([...new Set([...Object.keys(expected.fee.other), ...Object.keys(outcome.fee.other)])] as isoly.Currency[]).every(
25
- currency => expected.fee.other[currency] == outcome.fee.other[currency]
26
- )
27
- )
18
+ return Amounts.compare(expected.amount, outcome.amount) && Amounts.compare(expected.fee.other, outcome.fee.other)
28
19
  }
29
20
  export function from(collect: Transaction.Collect, collected: Total = initiate()): Total {
30
21
  let result: Total = collected
package/dist/Amounts.d.ts CHANGED
@@ -3,6 +3,7 @@ import { isly } from "isly";
3
3
  export type Amounts = Partial<Record<isoly.Currency, number>>;
4
4
  export declare namespace Amounts {
5
5
  function add(addendee: Amounts, addend: Amounts): Amounts;
6
+ function compare(left: Amounts, right: Amounts): boolean;
6
7
  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>>>;
7
8
  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>>>;
8
9
  const flaw: isly.Type.FlawFunction;
package/dist/Amounts.js CHANGED
@@ -9,6 +9,10 @@ export var Amounts;
9
9
  }), addendee);
10
10
  }
11
11
  Amounts.add = add;
12
+ function compare(left, right) {
13
+ return [...new Set([...Object.keys(left), ...Object.keys(right)])].every(currency => left[currency] == right[currency]);
14
+ }
15
+ Amounts.compare = compare;
12
16
  Amounts.type = isly.record(isly.string(isoly.Currency.types), isly.number());
13
17
  Amounts.is = Amounts.type.is;
14
18
  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,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"}
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,CAkBvB;AAlBD,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;IACD,SAAgB,OAAO,CAAC,IAAa,EAAE,KAAc;QACpD,OAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAsB,CAAC,KAAK,CAC7F,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAC7C,CAAA;IACF,CAAC;IAJe,eAAO,UAItB,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,EAlBgB,OAAO,KAAP,OAAO,QAkBvB"}
@@ -10,11 +10,11 @@ export declare class Identity {
10
10
  constructor(key: Key, realm?: "eu" | "uk" | "test" | "testUK" | "upcheck" | undefined, organization?: string | undefined);
11
11
  check(constraint: Key.Permissions, realm?: Realm, organization?: string): boolean;
12
12
  collectionCheck(collection: string): boolean;
13
- static authenticate(header: {
13
+ static authenticate<T extends Partial<Record<"realm" | "organization", true>> = Record<string, never>>(header: {
14
14
  authorization?: string | undefined;
15
15
  realm?: Realm;
16
16
  organization?: string;
17
- }, constraint: Key.Permissions, verifier?: userwidgets.User.Key.Verifier<Key>): Promise<Identity | undefined>;
17
+ }, constraint: Key.Permissions, requires?: T, verifier?: userwidgets.User.Key.Verifier<Key>): Promise<(keyof T extends keyof Identity ? Required<Pick<Identity, keyof T>> & Identity : Identity) | undefined>;
18
18
  static verify(authorization: string | undefined, verifier?: userwidgets.User.Key.Verifier<Key>): Promise<Key | undefined>;
19
19
  static getRealms(permissions: Key.Permissions): ("eu" | "uk" | "test" | "testUK" | "upcheck")[];
20
20
  }
package/dist/Identity.js CHANGED
@@ -33,15 +33,16 @@ export class Identity {
33
33
  collectionCheck(collection) {
34
34
  return Object.values(this.key.permissions).some(value => (typeof value == "object" && value[collection]) || value == true);
35
35
  }
36
- static async authenticate(header, constraint, verifier = productionVerifier) {
36
+ static async authenticate(header, constraint, requires, verifier = productionVerifier) {
37
37
  const authorization = header.authorization?.startsWith("Bearer ")
38
38
  ? header.authorization.replace("Bearer ", "")
39
39
  : undefined;
40
40
  const key = await Identity.verify(authorization, verifier);
41
41
  const realms = key && Identity.getRealms(key.permissions);
42
- const result = key &&
42
+ const identity = key &&
43
43
  new Identity(key, (realms?.length == 1 ? realms[0] : header.realm), (key.organization ?? header.organization));
44
- return !constraint || result?.check(constraint) ? result : undefined;
44
+ const requirement = (value) => (requires?.organization ? !!identity?.organization : true) && (requires?.realm ? Realm.is(identity?.realm) : true);
45
+ return (!constraint || identity?.check(constraint)) && requirement(identity) ? identity : undefined;
45
46
  }
46
47
  static async verify(authorization, verifier = productionVerifier) {
47
48
  return await verifier.verify(authorization);
@@ -1 +1 @@
1
- {"version":3,"file":"Identity.js","sourceRoot":"../","sources":["Identity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,MAAM,OAAO,QAAQ;IAEpB,IAAI,MAAM;QACT,OAAO,CAAC,sGAAiB,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAA,CAAC,CAAA;IACnE,CAAC;IAED,YAAqB,GAAQ,EAAW,KAAa,EAAW,YAAqB;QAAhE,QAAG,GAAH,GAAG,CAAK;QAAW,UAAK,GAAL,KAAK,CAAQ;QAAW,iBAAY,GAAZ,YAAY,CAAS;QALrF,mCAA4B;IAK4D,CAAC;IACzF,KAAK,CAAC,UAA2B,EAAE,KAAa,EAAE,YAAqB;QACtE,OAAO;YACN,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE;YAC/E,EAAE,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE;YACxD,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,UAAU,EAAE;YAC5C,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE;SACvB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,eAAe,CAAC,UAAkB;QACjC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAC9C,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CACzE,CAAA;IACF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CACxB,MAAoF,EACpF,UAA2B,EAC3B,WAA+C,kBAAkB;QAEjE,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC;YAChE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAA;QACZ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;QAC1D,MAAM,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACzD,MAAM,MAAM,GACX,GAAG;YACH,IAAI,QAAQ,CACX,GAAG,EACH,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAU,EACzD,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAW,CACnD,CAAA;QACF,OAAO,CAAC,UAAU,IAAI,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IACrE,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,MAAM,CAClB,aAAiC,EACjC,WAA+C,kBAAkB;QAEjE,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,CAAC,SAAS,CAAC,WAA4B;QAC5C,OAAO;YACN,GAAG,IAAI,GAAG,CACT,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAClD,CACZ;SACD,CAAA;IACF,CAAC;CACD;;AACD,MAAM,SAAS,GACd,kuBAAkuB,CAAA;AACnuB,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAM,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"Identity.js","sourceRoot":"../","sources":["Identity.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,7 @@ export var Total;
12
12
  }
13
13
  Total.add = add;
14
14
  function compare(expected, outcome) {
15
- return ([...new Set([...Object.keys(expected.amount), ...Object.keys(outcome.amount)])].every(currency => expected.amount[currency] == outcome.amount[currency]) &&
16
- [...new Set([...Object.keys(expected.fee.other), ...Object.keys(outcome.fee.other)])].every(currency => expected.fee.other[currency] == outcome.fee.other[currency]));
15
+ return Amounts.compare(expected.amount, outcome.amount) && Amounts.compare(expected.fee.other, outcome.fee.other);
17
16
  }
18
17
  Total.compare = compare;
19
18
  function from(collect, collected = initiate()) {
@@ -1 +1 @@
1
- {"version":3,"file":"Total.js","sourceRoot":"../","sources":["Settlement/Total.ts"],"names":[],"mappings":"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"}
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;AAEpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAM3B,MAAM,KAAW,KAAK,CAwBrB;AAxBD,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;IACD,SAAgB,OAAO,CAAC,QAAe,EAAE,OAAc;QACtD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClH,CAAC;IAFe,aAAO,UAEtB,CAAA;IACD,SAAgB,IAAI,CAAC,OAA4B,EAAE,YAAmB,QAAQ,EAAE;QAC/E,IAAI,MAAM,GAAU,SAAS,CAAA;QAC7B,KAAK,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YAClF,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC3D,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;oBAC1B,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;qBACtE,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAClC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAVe,UAAI,OAUnB,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,EAxBgB,KAAK,KAAL,KAAK,QAwBrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pax2pay/model-banking",
3
- "version": "0.1.232",
3
+ "version": "0.1.234",
4
4
  "description": "Library containing data model types and functions for the Pax2Pay Banking API.",
5
5
  "author": "Pax2Pay Ltd",
6
6
  "license": "MIT",