@pax2pay/model-banking 0.1.643 → 0.1.645
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/Realm.ts +2 -2
- package/Rule/State/Card.ts +11 -3
- package/Supplier/index.ts +6 -2
- package/dist/cjs/Realm.d.ts +1 -1
- package/dist/cjs/Realm.js +1 -1
- package/dist/cjs/Realm.js.map +1 -1
- package/dist/cjs/Rule/State/Card.d.ts +1 -1
- package/dist/cjs/Rule/State/Card.js +9 -3
- package/dist/cjs/Rule/State/Card.js.map +1 -1
- package/dist/cjs/Supplier/index.d.ts +4 -1
- package/dist/cjs/Supplier/index.js +6 -2
- package/dist/cjs/Supplier/index.js.map +1 -1
- package/dist/mjs/Realm.d.ts +1 -1
- package/dist/mjs/Realm.js +1 -1
- package/dist/mjs/Realm.js.map +1 -1
- package/dist/mjs/Rule/State/Card.d.ts +1 -1
- package/dist/mjs/Rule/State/Card.js +9 -3
- package/dist/mjs/Rule/State/Card.js.map +1 -1
- package/dist/mjs/Supplier/index.d.ts +4 -1
- package/dist/mjs/Supplier/index.js +6 -2
- package/dist/mjs/Supplier/index.js.map +1 -1
- package/package.json +1 -1
package/Realm.ts
CHANGED
|
@@ -15,12 +15,12 @@ export namespace Realm {
|
|
|
15
15
|
export const currency: Record<Realm, isoly.Currency> = { test: "EUR", uk: "GBP", eea: "EUR" }
|
|
16
16
|
export const suppliers: Record<Realm, modelSupplier[]> = {
|
|
17
17
|
test: ["paxgiro", "bankingcircle"],
|
|
18
|
-
uk: ["
|
|
18
|
+
uk: ["bankingcircle"],
|
|
19
19
|
eea: [],
|
|
20
20
|
}
|
|
21
21
|
export interface Suppliers extends Record<Realm, modelSupplier[]> {
|
|
22
22
|
test: ["paxgiro", "bankingcircle"]
|
|
23
|
-
uk: ["
|
|
23
|
+
uk: ["bankingcircle"]
|
|
24
24
|
eea: []
|
|
25
25
|
}
|
|
26
26
|
export type Supplier<P extends keyof Suppliers> = Pick<Suppliers, P>[P][number]
|
package/Rule/State/Card.ts
CHANGED
|
@@ -32,11 +32,19 @@ export namespace Card {
|
|
|
32
32
|
original: { currency: card.limit[0], limit: card.limit[1] },
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
export function check(
|
|
35
|
+
export function check(
|
|
36
|
+
card: Card,
|
|
37
|
+
transactionAmount: number,
|
|
38
|
+
transactionCurrency: isoly.Currency
|
|
39
|
+
): TransactionStatus.Reason | undefined {
|
|
36
40
|
let result: TransactionStatus.Reason | undefined = undefined
|
|
37
|
-
if (
|
|
41
|
+
if (card.status != "active") {
|
|
42
|
+
result = "cancelled card"
|
|
43
|
+
} else if (ModelCard.Expiry.isExpired(card.details.expiry)) {
|
|
38
44
|
result = "card expired"
|
|
39
|
-
} else if (
|
|
45
|
+
} else if (card.original.currency != transactionCurrency) {
|
|
46
|
+
result = "invalid request"
|
|
47
|
+
} else if (transactionAmount + card.spent[1] > card.limit) {
|
|
40
48
|
result = "exceeds limit"
|
|
41
49
|
}
|
|
42
50
|
return result
|
package/Supplier/index.ts
CHANGED
|
@@ -6,10 +6,14 @@ export type Supplier = (typeof Supplier.names)[number]
|
|
|
6
6
|
export namespace Supplier {
|
|
7
7
|
export const names = ["paxgiro", "clearbank", "bankingcircle"] as const
|
|
8
8
|
export const type = isly.string<Supplier>(names)
|
|
9
|
+
export const decommissioned = ["clearbank"] as const
|
|
10
|
+
export type Decommissioned = (typeof decommissioned)[number]
|
|
11
|
+
export function isDecommissioned(supplier: Supplier | any): supplier is Decommissioned {
|
|
12
|
+
return decommissioned.includes(supplier)
|
|
13
|
+
}
|
|
9
14
|
export const currencies: Record<Realm, Partial<Record<Supplier, isoly.Currency[]>>> = {
|
|
10
15
|
eea: {},
|
|
11
16
|
uk: {
|
|
12
|
-
clearbank: ["GBP"],
|
|
13
17
|
bankingcircle: ["EUR", "GBP", "USD", "DKK", "CHF", "PLN", "SEK", "HUF"],
|
|
14
18
|
},
|
|
15
19
|
test: {
|
|
@@ -20,6 +24,6 @@ export namespace Supplier {
|
|
|
20
24
|
export const realm = {
|
|
21
25
|
eea: [],
|
|
22
26
|
test: ["paxgiro", "bankingcircle"],
|
|
23
|
-
uk: ["
|
|
27
|
+
uk: ["bankingcircle"],
|
|
24
28
|
} as const satisfies Record<Realm, Supplier[]>
|
|
25
29
|
}
|
package/dist/cjs/Realm.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export declare namespace Realm {
|
|
|
16
16
|
const suppliers: Record<Realm, modelSupplier[]>;
|
|
17
17
|
interface Suppliers extends Record<Realm, modelSupplier[]> {
|
|
18
18
|
test: ["paxgiro", "bankingcircle"];
|
|
19
|
-
uk: ["
|
|
19
|
+
uk: ["bankingcircle"];
|
|
20
20
|
eea: [];
|
|
21
21
|
}
|
|
22
22
|
type Supplier<P extends keyof Suppliers> = Pick<Suppliers, P>[P][number];
|
package/dist/cjs/Realm.js
CHANGED
package/dist/cjs/Realm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Realm.js","sourceRoot":"","sources":["../../Realm.ts"],"names":[],"mappings":";;;AACA,+BAA2B;AAE3B,+BAA2B;AAI3B,IAAiB,KAAK,CAwBrB;AAxBD,WAAiB,KAAK;IACR,YAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAU,CAAA;IACvC,UAAI,GAAG,WAAI,CAAC,MAAM,CAAQ,MAAA,MAAM,CAAC,CAAA;IACjC,aAAO,GAAG,SAAG,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,CAAA;IACvC,SAAgB,QAAQ;QACvB,OAAO,MAAA,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAA;IACrD,CAAC;IAFe,cAAQ,WAEvB,CAAA;IACY,cAAQ,GAAkC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IAChF,eAAS,GAAmC;QACxD,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QAClC,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"Realm.js","sourceRoot":"","sources":["../../Realm.ts"],"names":[],"mappings":";;;AACA,+BAA2B;AAE3B,+BAA2B;AAI3B,IAAiB,KAAK,CAwBrB;AAxBD,WAAiB,KAAK;IACR,YAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAU,CAAA;IACvC,UAAI,GAAG,WAAI,CAAC,MAAM,CAAQ,MAAA,MAAM,CAAC,CAAA;IACjC,aAAO,GAAG,SAAG,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,CAAA;IACvC,SAAgB,QAAQ;QACvB,OAAO,MAAA,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAA;IACrD,CAAC;IAFe,cAAQ,WAEvB,CAAA;IACY,cAAQ,GAAkC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IAChF,eAAS,GAAmC;QACxD,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QAClC,EAAE,EAAE,CAAC,eAAe,CAAC;QACrB,GAAG,EAAE,EAAE;KACP,CAAA;IAOD,IAAiB,QAAQ,CAIxB;IAJD,WAAiB,QAAQ;QACxB,SAAgB,EAAE,CAAC,KAAY,EAAE,QAA6B;YAC7D,OAAO,MAAA,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QAFe,WAAE,KAEjB,CAAA;IACF,CAAC,EAJgB,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAIxB;AACF,CAAC,EAxBgB,KAAK,qBAAL,KAAK,QAwBrB"}
|
|
@@ -27,7 +27,7 @@ export declare namespace Card {
|
|
|
27
27
|
const initialStatistics: Statistics;
|
|
28
28
|
function ageFromTime(time: isoly.DateTime): Card["age"];
|
|
29
29
|
function from(card: ModelCard, statistics?: Statistics): Card;
|
|
30
|
-
function check(card: Card,
|
|
30
|
+
function check(card: Card, transactionAmount: number, transactionCurrency: isoly.Currency): TransactionStatus.Reason | undefined;
|
|
31
31
|
function toAddress(card: Card): Rail.Address.Card;
|
|
32
32
|
const type: import("isly/dist/cjs/object").IslyObject<Card, Omit<ModelCard, "limit">>;
|
|
33
33
|
}
|
|
@@ -25,12 +25,18 @@ var Card;
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
Card.from = from;
|
|
28
|
-
function check(card,
|
|
28
|
+
function check(card, transactionAmount, transactionCurrency) {
|
|
29
29
|
let result = undefined;
|
|
30
|
-
if (
|
|
30
|
+
if (card.status != "active") {
|
|
31
|
+
result = "cancelled card";
|
|
32
|
+
}
|
|
33
|
+
else if (Card_1.Card.Expiry.isExpired(card.details.expiry)) {
|
|
31
34
|
result = "card expired";
|
|
32
35
|
}
|
|
33
|
-
else if (
|
|
36
|
+
else if (card.original.currency != transactionCurrency) {
|
|
37
|
+
result = "invalid request";
|
|
38
|
+
}
|
|
39
|
+
else if (transactionAmount + card.spent[1] > card.limit) {
|
|
34
40
|
result = "exceeds limit";
|
|
35
41
|
}
|
|
36
42
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../Rule/State/Card.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,+BAA2B;AAC3B,qCAA8C;AAU9C,IAAiB,IAAI,
|
|
1
|
+
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../Rule/State/Card.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,13 @@ export type Supplier = (typeof Supplier.names)[number];
|
|
|
5
5
|
export declare namespace Supplier {
|
|
6
6
|
const names: readonly ["paxgiro", "clearbank", "bankingcircle"];
|
|
7
7
|
const type: isly.Type<"paxgiro" | "clearbank" | "bankingcircle">;
|
|
8
|
+
const decommissioned: readonly ["clearbank"];
|
|
9
|
+
type Decommissioned = (typeof decommissioned)[number];
|
|
10
|
+
function isDecommissioned(supplier: Supplier | any): supplier is Decommissioned;
|
|
8
11
|
const currencies: Record<Realm, Partial<Record<Supplier, isoly.Currency[]>>>;
|
|
9
12
|
const realm: {
|
|
10
13
|
readonly eea: [];
|
|
11
14
|
readonly test: ["paxgiro", "bankingcircle"];
|
|
12
|
-
readonly uk: ["
|
|
15
|
+
readonly uk: ["bankingcircle"];
|
|
13
16
|
};
|
|
14
17
|
}
|
|
@@ -6,10 +6,14 @@ var Supplier;
|
|
|
6
6
|
(function (Supplier) {
|
|
7
7
|
Supplier.names = ["paxgiro", "clearbank", "bankingcircle"];
|
|
8
8
|
Supplier.type = isly_1.isly.string(Supplier.names);
|
|
9
|
+
Supplier.decommissioned = ["clearbank"];
|
|
10
|
+
function isDecommissioned(supplier) {
|
|
11
|
+
return Supplier.decommissioned.includes(supplier);
|
|
12
|
+
}
|
|
13
|
+
Supplier.isDecommissioned = isDecommissioned;
|
|
9
14
|
Supplier.currencies = {
|
|
10
15
|
eea: {},
|
|
11
16
|
uk: {
|
|
12
|
-
clearbank: ["GBP"],
|
|
13
17
|
bankingcircle: ["EUR", "GBP", "USD", "DKK", "CHF", "PLN", "SEK", "HUF"],
|
|
14
18
|
},
|
|
15
19
|
test: {
|
|
@@ -20,7 +24,7 @@ var Supplier;
|
|
|
20
24
|
Supplier.realm = {
|
|
21
25
|
eea: [],
|
|
22
26
|
test: ["paxgiro", "bankingcircle"],
|
|
23
|
-
uk: ["
|
|
27
|
+
uk: ["bankingcircle"],
|
|
24
28
|
};
|
|
25
29
|
})(Supplier || (exports.Supplier = Supplier = {}));
|
|
26
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Supplier/index.ts"],"names":[],"mappings":";;;AACA,+BAA2B;AAI3B,IAAiB,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Supplier/index.ts"],"names":[],"mappings":";;;AACA,+BAA2B;AAI3B,IAAiB,QAAQ,CAuBxB;AAvBD,WAAiB,QAAQ;IACX,cAAK,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAU,CAAA;IAC1D,aAAI,GAAG,WAAI,CAAC,MAAM,CAAW,SAAA,KAAK,CAAC,CAAA;IACnC,uBAAc,GAAG,CAAC,WAAW,CAAU,CAAA;IAEpD,SAAgB,gBAAgB,CAAC,QAAwB;QACxD,OAAO,SAAA,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAFe,yBAAgB,mBAE/B,CAAA;IACY,mBAAU,GAA+D;QACrF,GAAG,EAAE,EAAE;QACP,EAAE,EAAE;YACH,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;SACvE;QACD,IAAI,EAAE;YACL,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YACrC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;SACvE;KACD,CAAA;IACY,cAAK,GAAG;QACpB,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QAClC,EAAE,EAAE,CAAC,eAAe,CAAC;KACwB,CAAA;AAC/C,CAAC,EAvBgB,QAAQ,wBAAR,QAAQ,QAuBxB"}
|
package/dist/mjs/Realm.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export declare namespace Realm {
|
|
|
16
16
|
const suppliers: Record<Realm, modelSupplier[]>;
|
|
17
17
|
interface Suppliers extends Record<Realm, modelSupplier[]> {
|
|
18
18
|
test: ["paxgiro", "bankingcircle"];
|
|
19
|
-
uk: ["
|
|
19
|
+
uk: ["bankingcircle"];
|
|
20
20
|
eea: [];
|
|
21
21
|
}
|
|
22
22
|
type Supplier<P extends keyof Suppliers> = Pick<Suppliers, P>[P][number];
|
package/dist/mjs/Realm.js
CHANGED
package/dist/mjs/Realm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Realm.js","sourceRoot":"","sources":["../../Realm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAI3B,MAAM,KAAW,KAAK,CAwBrB;AAxBD,WAAiB,KAAK;IACR,YAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAU,CAAA;IACvC,UAAI,GAAG,IAAI,CAAC,MAAM,CAAQ,MAAA,MAAM,CAAC,CAAA;IACjC,aAAO,GAAG,GAAG,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,CAAA;IACvC,SAAgB,QAAQ;QACvB,OAAO,MAAA,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAA;IACrD,CAAC;IAFe,cAAQ,WAEvB,CAAA;IACY,cAAQ,GAAkC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IAChF,eAAS,GAAmC;QACxD,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QAClC,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"Realm.js","sourceRoot":"","sources":["../../Realm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAI3B,MAAM,KAAW,KAAK,CAwBrB;AAxBD,WAAiB,KAAK;IACR,YAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAU,CAAA;IACvC,UAAI,GAAG,IAAI,CAAC,MAAM,CAAQ,MAAA,MAAM,CAAC,CAAA;IACjC,aAAO,GAAG,GAAG,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,CAAA;IACvC,SAAgB,QAAQ;QACvB,OAAO,MAAA,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAA;IACrD,CAAC;IAFe,cAAQ,WAEvB,CAAA;IACY,cAAQ,GAAkC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IAChF,eAAS,GAAmC;QACxD,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QAClC,EAAE,EAAE,CAAC,eAAe,CAAC;QACrB,GAAG,EAAE,EAAE;KACP,CAAA;IAOD,IAAiB,QAAQ,CAIxB;IAJD,WAAiB,QAAQ;QACxB,SAAgB,EAAE,CAAC,KAAY,EAAE,QAA6B;YAC7D,OAAO,MAAA,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QAFe,WAAE,KAEjB,CAAA;IACF,CAAC,EAJgB,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAIxB;AACF,CAAC,EAxBgB,KAAK,KAAL,KAAK,QAwBrB"}
|
|
@@ -27,7 +27,7 @@ export declare namespace Card {
|
|
|
27
27
|
const initialStatistics: Statistics;
|
|
28
28
|
function ageFromTime(time: isoly.DateTime): Card["age"];
|
|
29
29
|
function from(card: ModelCard, statistics?: Statistics): Card;
|
|
30
|
-
function check(card: Card,
|
|
30
|
+
function check(card: Card, transactionAmount: number, transactionCurrency: isoly.Currency): TransactionStatus.Reason | undefined;
|
|
31
31
|
function toAddress(card: Card): Rail.Address.Card;
|
|
32
32
|
const type: import("isly/dist/cjs/object").IslyObject<Card, Omit<ModelCard, "limit">>;
|
|
33
33
|
}
|
|
@@ -22,12 +22,18 @@ export var Card;
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
Card.from = from;
|
|
25
|
-
function check(card,
|
|
25
|
+
function check(card, transactionAmount, transactionCurrency) {
|
|
26
26
|
let result = undefined;
|
|
27
|
-
if (
|
|
27
|
+
if (card.status != "active") {
|
|
28
|
+
result = "cancelled card";
|
|
29
|
+
}
|
|
30
|
+
else if (ModelCard.Expiry.isExpired(card.details.expiry)) {
|
|
28
31
|
result = "card expired";
|
|
29
32
|
}
|
|
30
|
-
else if (
|
|
33
|
+
else if (card.original.currency != transactionCurrency) {
|
|
34
|
+
result = "invalid request";
|
|
35
|
+
}
|
|
36
|
+
else if (transactionAmount + card.spent[1] > card.limit) {
|
|
31
37
|
result = "exceeds limit";
|
|
32
38
|
}
|
|
33
39
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../Rule/State/Card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAU9C,MAAM,KAAW,IAAI,
|
|
1
|
+
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../Rule/State/Card.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,13 @@ export type Supplier = (typeof Supplier.names)[number];
|
|
|
5
5
|
export declare namespace Supplier {
|
|
6
6
|
const names: readonly ["paxgiro", "clearbank", "bankingcircle"];
|
|
7
7
|
const type: isly.Type<"paxgiro" | "clearbank" | "bankingcircle">;
|
|
8
|
+
const decommissioned: readonly ["clearbank"];
|
|
9
|
+
type Decommissioned = (typeof decommissioned)[number];
|
|
10
|
+
function isDecommissioned(supplier: Supplier | any): supplier is Decommissioned;
|
|
8
11
|
const currencies: Record<Realm, Partial<Record<Supplier, isoly.Currency[]>>>;
|
|
9
12
|
const realm: {
|
|
10
13
|
readonly eea: [];
|
|
11
14
|
readonly test: ["paxgiro", "bankingcircle"];
|
|
12
|
-
readonly uk: ["
|
|
15
|
+
readonly uk: ["bankingcircle"];
|
|
13
16
|
};
|
|
14
17
|
}
|
|
@@ -3,10 +3,14 @@ export var Supplier;
|
|
|
3
3
|
(function (Supplier) {
|
|
4
4
|
Supplier.names = ["paxgiro", "clearbank", "bankingcircle"];
|
|
5
5
|
Supplier.type = isly.string(Supplier.names);
|
|
6
|
+
Supplier.decommissioned = ["clearbank"];
|
|
7
|
+
function isDecommissioned(supplier) {
|
|
8
|
+
return Supplier.decommissioned.includes(supplier);
|
|
9
|
+
}
|
|
10
|
+
Supplier.isDecommissioned = isDecommissioned;
|
|
6
11
|
Supplier.currencies = {
|
|
7
12
|
eea: {},
|
|
8
13
|
uk: {
|
|
9
|
-
clearbank: ["GBP"],
|
|
10
14
|
bankingcircle: ["EUR", "GBP", "USD", "DKK", "CHF", "PLN", "SEK", "HUF"],
|
|
11
15
|
},
|
|
12
16
|
test: {
|
|
@@ -17,7 +21,7 @@ export var Supplier;
|
|
|
17
21
|
Supplier.realm = {
|
|
18
22
|
eea: [],
|
|
19
23
|
test: ["paxgiro", "bankingcircle"],
|
|
20
|
-
uk: ["
|
|
24
|
+
uk: ["bankingcircle"],
|
|
21
25
|
};
|
|
22
26
|
})(Supplier || (Supplier = {}));
|
|
23
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Supplier/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,MAAM,KAAW,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Supplier/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,MAAM,KAAW,QAAQ,CAuBxB;AAvBD,WAAiB,QAAQ;IACX,cAAK,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAU,CAAA;IAC1D,aAAI,GAAG,IAAI,CAAC,MAAM,CAAW,SAAA,KAAK,CAAC,CAAA;IACnC,uBAAc,GAAG,CAAC,WAAW,CAAU,CAAA;IAEpD,SAAgB,gBAAgB,CAAC,QAAwB;QACxD,OAAO,SAAA,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAFe,yBAAgB,mBAE/B,CAAA;IACY,mBAAU,GAA+D;QACrF,GAAG,EAAE,EAAE;QACP,EAAE,EAAE;YACH,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;SACvE;QACD,IAAI,EAAE;YACL,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YACrC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;SACvE;KACD,CAAA;IACY,cAAK,GAAG;QACpB,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QAClC,EAAE,EAAE,CAAC,eAAe,CAAC;KACwB,CAAA;AAC/C,CAAC,EAvBgB,QAAQ,KAAR,QAAQ,QAuBxB"}
|