@pax2pay/model-banking 0.1.549 → 0.1.551
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/Analytics/Configuration/Transaction.ts +0 -1
- package/Counterbalance.ts +0 -2
- package/Operation/Changes.ts +3 -14
- package/Rule/State/Transaction.ts +0 -2
- package/Rule/State/index.ts +0 -7
- package/Rule/index.ts +8 -71
- package/Rule/type.ts +1 -11
- package/Transaction/Amount.ts +1 -1
- package/Transaction/index.ts +4 -19
- package/dist/cjs/Analytics/Configuration/Transaction.js +0 -1
- package/dist/cjs/Analytics/Configuration/Transaction.js.map +1 -1
- package/dist/cjs/Backup/Rule.d.ts +1 -1
- package/dist/cjs/Counterbalance.d.ts +0 -1
- package/dist/cjs/Counterbalance.js +0 -1
- package/dist/cjs/Counterbalance.js.map +1 -1
- package/dist/cjs/Operation/Changes.d.ts +1 -2
- package/dist/cjs/Operation/Changes.js +2 -8
- package/dist/cjs/Operation/Changes.js.map +1 -1
- package/dist/cjs/Rule/State/Transaction.d.ts +0 -5
- package/dist/cjs/Rule/State/Transaction.js.map +1 -1
- package/dist/cjs/Rule/State/index.d.ts +2 -5
- package/dist/cjs/Rule/State/index.js +2 -4
- package/dist/cjs/Rule/State/index.js.map +1 -1
- package/dist/cjs/Rule/index.d.ts +4 -16
- package/dist/cjs/Rule/index.js +2 -60
- package/dist/cjs/Rule/index.js.map +1 -1
- package/dist/cjs/Rule/type.d.ts +2 -3
- package/dist/cjs/Rule/type.js +1 -5
- package/dist/cjs/Rule/type.js.map +1 -1
- package/dist/cjs/Transaction/Amount.js +1 -1
- package/dist/cjs/Transaction/Amount.js.map +1 -1
- package/dist/cjs/Transaction/index.d.ts +0 -1
- package/dist/cjs/Transaction/index.js +4 -15
- package/dist/cjs/Transaction/index.js.map +1 -1
- package/dist/mjs/Analytics/Configuration/Transaction.js +0 -1
- package/dist/mjs/Analytics/Configuration/Transaction.js.map +1 -1
- package/dist/mjs/Backup/Rule.d.ts +1 -1
- package/dist/mjs/Counterbalance.d.ts +0 -1
- package/dist/mjs/Counterbalance.js +0 -1
- package/dist/mjs/Counterbalance.js.map +1 -1
- package/dist/mjs/Operation/Changes.d.ts +1 -2
- package/dist/mjs/Operation/Changes.js +2 -8
- package/dist/mjs/Operation/Changes.js.map +1 -1
- package/dist/mjs/Rule/State/Transaction.d.ts +0 -5
- package/dist/mjs/Rule/State/Transaction.js.map +1 -1
- package/dist/mjs/Rule/State/index.d.ts +2 -5
- package/dist/mjs/Rule/State/index.js +2 -4
- package/dist/mjs/Rule/State/index.js.map +1 -1
- package/dist/mjs/Rule/index.d.ts +4 -16
- package/dist/mjs/Rule/index.js +2 -60
- package/dist/mjs/Rule/index.js.map +1 -1
- package/dist/mjs/Rule/type.d.ts +2 -3
- package/dist/mjs/Rule/type.js +1 -5
- package/dist/mjs/Rule/type.js.map +1 -1
- package/dist/mjs/Transaction/Amount.js +1 -1
- package/dist/mjs/Transaction/Amount.js.map +1 -1
- package/dist/mjs/Transaction/index.d.ts +0 -1
- package/dist/mjs/Transaction/index.js +4 -15
- package/dist/mjs/Transaction/index.js.map +1 -1
- package/package.json +1 -1
- package/Rule/Charge.ts +0 -117
- package/Rule/Reserve.ts +0 -113
- package/Rule/Score.ts +0 -63
- package/Rule/State/Data.ts +0 -21
- package/dist/cjs/Rule/Charge.d.ts +0 -41
- package/dist/cjs/Rule/Charge.js +0 -79
- package/dist/cjs/Rule/Charge.js.map +0 -1
- package/dist/cjs/Rule/Reserve.d.ts +0 -39
- package/dist/cjs/Rule/Reserve.js +0 -80
- package/dist/cjs/Rule/Reserve.js.map +0 -1
- package/dist/cjs/Rule/Score.d.ts +0 -26
- package/dist/cjs/Rule/Score.js +0 -49
- package/dist/cjs/Rule/Score.js.map +0 -1
- package/dist/cjs/Rule/State/Data.d.ts +0 -23
- package/dist/cjs/Rule/State/Data.js +0 -3
- package/dist/cjs/Rule/State/Data.js.map +0 -1
- package/dist/mjs/Rule/Charge.d.ts +0 -41
- package/dist/mjs/Rule/Charge.js +0 -76
- package/dist/mjs/Rule/Charge.js.map +0 -1
- package/dist/mjs/Rule/Reserve.d.ts +0 -39
- package/dist/mjs/Rule/Reserve.js +0 -77
- package/dist/mjs/Rule/Reserve.js.map +0 -1
- package/dist/mjs/Rule/Score.d.ts +0 -26
- package/dist/mjs/Rule/Score.js +0 -46
- package/dist/mjs/Rule/Score.js.map +0 -1
- package/dist/mjs/Rule/State/Data.d.ts +0 -23
- package/dist/mjs/Rule/State/Data.js +0 -2
- package/dist/mjs/Rule/State/Data.js.map +0 -1
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { isoly } from "isoly";
|
|
2
|
-
import { selectively } from "selectively";
|
|
3
|
-
import { Amount } from "../Amount";
|
|
4
|
-
import { Exchange } from "../Exchange";
|
|
5
|
-
import { Realm } from "../Realm";
|
|
6
|
-
import type { Note } from "../Transaction/Note";
|
|
7
|
-
import { Base } from "./Base";
|
|
8
|
-
import type { State } from "./State";
|
|
9
|
-
export interface Charge extends Charge.Api {
|
|
10
|
-
charge: {
|
|
11
|
-
percentage?: number;
|
|
12
|
-
fixed?: Amount;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare namespace Charge {
|
|
16
|
-
type Action = typeof Action.value;
|
|
17
|
-
namespace Action {
|
|
18
|
-
const value = "charge";
|
|
19
|
-
}
|
|
20
|
-
interface Api extends Base {
|
|
21
|
-
action: Charge.Action;
|
|
22
|
-
charge: {
|
|
23
|
-
percentage?: number;
|
|
24
|
-
fixed?: number | Amount;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
namespace Api {
|
|
28
|
-
const type: import("isly/dist/cjs/object").IslyObject<Api, Base>;
|
|
29
|
-
}
|
|
30
|
-
function fromApi(rule: Api, realm: Realm): Charge;
|
|
31
|
-
function fromApi(rule: Api, currency: isoly.Currency): Charge;
|
|
32
|
-
function evaluate(rules: Charge[], state: State, macros?: Record<string, selectively.Definition>, table?: Exchange.Rates): {
|
|
33
|
-
outcomes: Charge[];
|
|
34
|
-
notes: Note[];
|
|
35
|
-
charge: Required<State["transaction"]["original"]>["charge"];
|
|
36
|
-
};
|
|
37
|
-
function apply(charge: {
|
|
38
|
-
current: number;
|
|
39
|
-
total: number;
|
|
40
|
-
}, state: State): number;
|
|
41
|
-
}
|
package/dist/cjs/Rule/Charge.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Charge = void 0;
|
|
4
|
-
const isoly_1 = require("isoly");
|
|
5
|
-
const isly_1 = require("isly");
|
|
6
|
-
const Amount_1 = require("../Amount");
|
|
7
|
-
const Exchange_1 = require("../Exchange");
|
|
8
|
-
const Realm_1 = require("../Realm");
|
|
9
|
-
const Base_1 = require("./Base");
|
|
10
|
-
const control_1 = require("./control");
|
|
11
|
-
var Charge;
|
|
12
|
-
(function (Charge) {
|
|
13
|
-
let Action;
|
|
14
|
-
(function (Action) {
|
|
15
|
-
Action.value = "charge";
|
|
16
|
-
})(Action = Charge.Action || (Charge.Action = {}));
|
|
17
|
-
let Api;
|
|
18
|
-
(function (Api) {
|
|
19
|
-
Api.type = Base_1.Base.type.extend({
|
|
20
|
-
action: isly_1.isly.string(Action.value),
|
|
21
|
-
charge: isly_1.isly.object({
|
|
22
|
-
percentage: isly_1.isly.number().optional(),
|
|
23
|
-
fixed: isly_1.isly.union(Amount_1.Amount.type, isly_1.isly.number()).optional(),
|
|
24
|
-
}),
|
|
25
|
-
});
|
|
26
|
-
})(Api = Charge.Api || (Charge.Api = {}));
|
|
27
|
-
function fromApi(rule, currency) {
|
|
28
|
-
return {
|
|
29
|
-
...rule,
|
|
30
|
-
charge: {
|
|
31
|
-
...rule.charge,
|
|
32
|
-
fixed: typeof rule.charge.fixed == "number"
|
|
33
|
-
? [Realm_1.Realm.type.is(currency) ? Realm_1.Realm.currency[currency] : currency, rule.charge.fixed]
|
|
34
|
-
: rule.charge.fixed,
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
Charge.fromApi = fromApi;
|
|
39
|
-
function evaluate(rules, state, macros, table = {}) {
|
|
40
|
-
const result = {
|
|
41
|
-
outcomes: [],
|
|
42
|
-
notes: [],
|
|
43
|
-
charge: { current: 0, total: state.transaction.original.charge?.total ?? 0 },
|
|
44
|
-
};
|
|
45
|
-
const now = isoly_1.isoly.DateTime.now();
|
|
46
|
-
if (state.transaction.stage == "finalize" && ["card", "external"].some(type => type == state.transaction.type))
|
|
47
|
-
for (const rule of rules)
|
|
48
|
-
if ((0, control_1.control)(rule, state, macros)) {
|
|
49
|
-
if (rule.charge.percentage)
|
|
50
|
-
result.charge.current = isoly_1.isoly.Currency.add(state.transaction.original.currency, result.charge.current, isoly_1.isoly.Currency.multiply(state.transaction.original.currency, state.transaction.original.amount, rule.charge.percentage / 100));
|
|
51
|
-
if (rule.charge.fixed) {
|
|
52
|
-
const charge = state.transaction.original.currency === rule.charge.fixed[0]
|
|
53
|
-
? rule.charge.fixed[1]
|
|
54
|
-
: Exchange_1.Exchange.convert(rule.charge.fixed[1], rule.charge.fixed[0], state.transaction.original.currency, table) ?? 0;
|
|
55
|
-
result.charge.current = isoly_1.isoly.Currency.add(state.transaction.original.currency, result.charge.current, charge);
|
|
56
|
-
}
|
|
57
|
-
result.outcomes.push(rule);
|
|
58
|
-
result.notes.push({ author: "automatic", created: now, text: rule.name, rule });
|
|
59
|
-
}
|
|
60
|
-
result.charge.total = isoly_1.isoly.Currency.add(state.transaction.original.currency, result.charge.current, result.charge.total);
|
|
61
|
-
result.charge.total &&
|
|
62
|
-
result.notes.push({
|
|
63
|
-
author: "automatic",
|
|
64
|
-
created: now,
|
|
65
|
-
text: `captured charge:${result.charge.total}${state.transaction.original.currency}`,
|
|
66
|
-
});
|
|
67
|
-
return result;
|
|
68
|
-
}
|
|
69
|
-
Charge.evaluate = evaluate;
|
|
70
|
-
function apply(charge, state) {
|
|
71
|
-
return state.transaction.kind == "authorization" ||
|
|
72
|
-
state.transaction.kind == "outbound" ||
|
|
73
|
-
state.transaction.kind == "capture"
|
|
74
|
-
? isoly_1.isoly.Currency.add(state.transaction.original.currency, state.transaction.original.total, charge.current)
|
|
75
|
-
: isoly_1.isoly.Currency.subtract(state.transaction.original.currency, state.transaction.original.total, charge.current);
|
|
76
|
-
}
|
|
77
|
-
Charge.apply = apply;
|
|
78
|
-
})(Charge || (exports.Charge = Charge = {}));
|
|
79
|
-
//# sourceMappingURL=Charge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../Rule/Charge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { isoly } from "isoly";
|
|
2
|
-
import { selectively } from "selectively";
|
|
3
|
-
import { Amount } from "../Amount";
|
|
4
|
-
import { Exchange } from "../Exchange";
|
|
5
|
-
import { Realm } from "../Realm";
|
|
6
|
-
import type { Note } from "../Transaction/Note";
|
|
7
|
-
import { Base } from "./Base";
|
|
8
|
-
import type { State } from "./State";
|
|
9
|
-
export interface Reserve extends Reserve.Api {
|
|
10
|
-
reserve: {
|
|
11
|
-
percentage?: number;
|
|
12
|
-
fixed?: Amount;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare namespace Reserve {
|
|
16
|
-
type Action = typeof Action.value;
|
|
17
|
-
namespace Action {
|
|
18
|
-
const value = "reserve";
|
|
19
|
-
}
|
|
20
|
-
const type: import("isly/dist/cjs/object").IslyObject<Reserve, Base>;
|
|
21
|
-
interface Api extends Base {
|
|
22
|
-
action: Reserve.Action;
|
|
23
|
-
reserve: {
|
|
24
|
-
percentage?: number;
|
|
25
|
-
fixed?: number | Amount;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
namespace Api {
|
|
29
|
-
const type: import("isly/dist/cjs/object").IslyObject<Api, Base>;
|
|
30
|
-
}
|
|
31
|
-
function fromApi(rule: Api, realm: Realm): Reserve;
|
|
32
|
-
function fromApi(rule: Api, currency: isoly.Currency): Reserve;
|
|
33
|
-
function evaluate(rules: Reserve[], state: State, macros?: Record<string, selectively.Definition>, table?: Exchange.Rates): {
|
|
34
|
-
outcomes: Reserve[];
|
|
35
|
-
notes: Note[];
|
|
36
|
-
reserve: number;
|
|
37
|
-
};
|
|
38
|
-
function apply(reserve: number, state: State): number;
|
|
39
|
-
}
|
package/dist/cjs/Rule/Reserve.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Reserve = void 0;
|
|
4
|
-
const isoly_1 = require("isoly");
|
|
5
|
-
const isly_1 = require("isly");
|
|
6
|
-
const Amount_1 = require("../Amount");
|
|
7
|
-
const Exchange_1 = require("../Exchange");
|
|
8
|
-
const Realm_1 = require("../Realm");
|
|
9
|
-
const Base_1 = require("./Base");
|
|
10
|
-
const control_1 = require("./control");
|
|
11
|
-
var Reserve;
|
|
12
|
-
(function (Reserve) {
|
|
13
|
-
let Action;
|
|
14
|
-
(function (Action) {
|
|
15
|
-
Action.value = "reserve";
|
|
16
|
-
})(Action = Reserve.Action || (Reserve.Action = {}));
|
|
17
|
-
Reserve.type = Base_1.Base.type.extend({
|
|
18
|
-
action: isly_1.isly.string(Action.value),
|
|
19
|
-
reserve: isly_1.isly.object({ percentage: isly_1.isly.number(), fixed: Amount_1.Amount.type.optional() }),
|
|
20
|
-
});
|
|
21
|
-
let Api;
|
|
22
|
-
(function (Api) {
|
|
23
|
-
Api.type = Base_1.Base.type.extend({
|
|
24
|
-
action: isly_1.isly.string(Action.value),
|
|
25
|
-
reserve: isly_1.isly.object({
|
|
26
|
-
percentage: isly_1.isly.number().optional(),
|
|
27
|
-
fixed: isly_1.isly.union(Amount_1.Amount.type, isly_1.isly.number()).optional(),
|
|
28
|
-
}),
|
|
29
|
-
});
|
|
30
|
-
})(Api = Reserve.Api || (Reserve.Api = {}));
|
|
31
|
-
function fromApi(rule, currency) {
|
|
32
|
-
return {
|
|
33
|
-
...rule,
|
|
34
|
-
reserve: {
|
|
35
|
-
...rule.reserve,
|
|
36
|
-
fixed: typeof rule.reserve.fixed == "number"
|
|
37
|
-
? [Realm_1.Realm.type.is(currency) ? Realm_1.Realm.currency[currency] : currency, rule.reserve.fixed]
|
|
38
|
-
: rule.reserve.fixed,
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
Reserve.fromApi = fromApi;
|
|
43
|
-
function evaluate(rules, state, macros, table = {}) {
|
|
44
|
-
const result = { outcomes: [], notes: [], reserve: 0 };
|
|
45
|
-
const now = isoly_1.isoly.DateTime.now();
|
|
46
|
-
if (state.transaction.stage == "initiate" &&
|
|
47
|
-
["authorization", "outbound"].some(kind => kind == state.transaction.kind) &&
|
|
48
|
-
["card", "external"].some(type => type == state.transaction.type))
|
|
49
|
-
for (const rule of rules)
|
|
50
|
-
if ((0, control_1.control)(rule, state, macros)) {
|
|
51
|
-
if (rule.reserve.percentage)
|
|
52
|
-
result.reserve = isoly_1.isoly.Currency.add(state.transaction.original.currency, result.reserve, isoly_1.isoly.Currency.multiply(state.transaction.original.currency, state.transaction.original.amount, rule.reserve.percentage / 100));
|
|
53
|
-
if (rule.reserve.fixed) {
|
|
54
|
-
const reserve = state.transaction.original.currency === rule.reserve.fixed[0]
|
|
55
|
-
? rule.reserve.fixed[1]
|
|
56
|
-
: Exchange_1.Exchange.convert(rule.reserve.fixed[1], rule.reserve.fixed[0], state.transaction.original.currency, table) ?? 0;
|
|
57
|
-
result.reserve = isoly_1.isoly.Currency.add(state.transaction.original.currency, result.reserve, reserve);
|
|
58
|
-
}
|
|
59
|
-
result.outcomes.push(rule);
|
|
60
|
-
result.notes.push({ author: "automatic", created: now, text: rule.name, rule });
|
|
61
|
-
}
|
|
62
|
-
result.reserve &&
|
|
63
|
-
result.notes.push({
|
|
64
|
-
author: "automatic",
|
|
65
|
-
created: now,
|
|
66
|
-
text: `reserved charge:${result.reserve}${state.transaction.original.currency}`,
|
|
67
|
-
});
|
|
68
|
-
return result;
|
|
69
|
-
}
|
|
70
|
-
Reserve.evaluate = evaluate;
|
|
71
|
-
function apply(reserve, state) {
|
|
72
|
-
return state.transaction.kind == "authorization" ||
|
|
73
|
-
state.transaction.kind == "outbound" ||
|
|
74
|
-
state.transaction.kind == "capture"
|
|
75
|
-
? isoly_1.isoly.Currency.add(state.transaction.original.currency, state.transaction.original.total, reserve)
|
|
76
|
-
: isoly_1.isoly.Currency.subtract(state.transaction.original.currency, state.transaction.original.total, reserve);
|
|
77
|
-
}
|
|
78
|
-
Reserve.apply = apply;
|
|
79
|
-
})(Reserve || (exports.Reserve = Reserve = {}));
|
|
80
|
-
//# sourceMappingURL=Reserve.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Reserve.js","sourceRoot":"","sources":["../../../Rule/Reserve.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/Rule/Score.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { selectively } from "selectively";
|
|
2
|
-
import { isly } from "isly";
|
|
3
|
-
import { isly as isly2 } from "isly2";
|
|
4
|
-
import type { Note } from "../Transaction/Note";
|
|
5
|
-
import { Base } from "./Base";
|
|
6
|
-
import type { State } from "./State";
|
|
7
|
-
export interface Score extends Base {
|
|
8
|
-
action: Score.Action;
|
|
9
|
-
category: "fincrime";
|
|
10
|
-
risk: Score.Risk;
|
|
11
|
-
}
|
|
12
|
-
export declare namespace Score {
|
|
13
|
-
type Action = typeof Action.value;
|
|
14
|
-
namespace Action {
|
|
15
|
-
const value = "score";
|
|
16
|
-
}
|
|
17
|
-
type Risk = number;
|
|
18
|
-
const Risk: isly.Type<number>;
|
|
19
|
-
const type: import("isly/dist/cjs/object").IslyObject<Score, Base>;
|
|
20
|
-
const type2: isly2.Object<Score>;
|
|
21
|
-
function evaluate(rules: Score[], state: State, macros?: Record<string, selectively.Definition>): {
|
|
22
|
-
outcomes: Score[];
|
|
23
|
-
notes: Note[];
|
|
24
|
-
risk?: number | undefined;
|
|
25
|
-
};
|
|
26
|
-
}
|
package/dist/cjs/Rule/Score.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Score = void 0;
|
|
4
|
-
const isoly_1 = require("isoly");
|
|
5
|
-
const isly_1 = require("isly");
|
|
6
|
-
const isly2_1 = require("isly2");
|
|
7
|
-
const Base_1 = require("./Base");
|
|
8
|
-
const control_1 = require("./control");
|
|
9
|
-
var Score;
|
|
10
|
-
(function (Score) {
|
|
11
|
-
let Action;
|
|
12
|
-
(function (Action) {
|
|
13
|
-
Action.value = "score";
|
|
14
|
-
})(Action = Score.Action || (Score.Action = {}));
|
|
15
|
-
Score.Risk = isly_1.isly.number(["positive", "integer"]);
|
|
16
|
-
Score.type = Base_1.Base.type.extend({
|
|
17
|
-
action: isly_1.isly.string(Action.value),
|
|
18
|
-
category: isly_1.isly.string("fincrime"),
|
|
19
|
-
risk: Score.Risk,
|
|
20
|
-
});
|
|
21
|
-
Score.type2 = Base_1.Base.type2.extend({
|
|
22
|
-
action: isly2_1.isly
|
|
23
|
-
.string("value", Action.value)
|
|
24
|
-
.rename("Action")
|
|
25
|
-
.describe("The action to take when the rule is applied."),
|
|
26
|
-
category: isly2_1.isly.string("value", "fincrime").rename("Category").describe("The category of the rule."),
|
|
27
|
-
risk: isly2_1.isly
|
|
28
|
-
.number()
|
|
29
|
-
.restrict("integer")
|
|
30
|
-
.restrict("positive")
|
|
31
|
-
.rename("Risk")
|
|
32
|
-
.describe("The risk of the rule."),
|
|
33
|
-
});
|
|
34
|
-
function evaluate(rules, state, macros) {
|
|
35
|
-
const result = { outcomes: [], notes: [] };
|
|
36
|
-
const now = isoly_1.isoly.DateTime.now();
|
|
37
|
-
if (state.transaction.stage == "initiate" &&
|
|
38
|
-
["card", "external", "internal"].some(type => type == state.transaction.type))
|
|
39
|
-
for (const rule of rules)
|
|
40
|
-
if ((0, control_1.control)(rule, state, macros)) {
|
|
41
|
-
result.risk = (result.risk ?? 100) * (rule.risk / 100);
|
|
42
|
-
result.outcomes.push(rule);
|
|
43
|
-
result.notes.push({ author: "automatic", created: now, text: rule.name, rule });
|
|
44
|
-
}
|
|
45
|
-
return result;
|
|
46
|
-
}
|
|
47
|
-
Score.evaluate = evaluate;
|
|
48
|
-
})(Score || (exports.Score = Score = {}));
|
|
49
|
-
//# sourceMappingURL=Score.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Score.js","sourceRoot":"","sources":["../../../Rule/Score.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,+BAA2B;AAC3B,iCAAqC;AAErC,iCAA6B;AAC7B,uCAAmC;AAQnC,IAAiB,KAAK,CAgDrB;AAhDD,WAAiB,KAAK;IAErB,IAAiB,MAAM,CAEtB;IAFD,WAAiB,MAAM;QACT,YAAK,GAAG,OAAO,CAAA;IAC7B,CAAC,EAFgB,MAAM,GAAN,YAAM,KAAN,YAAM,QAEtB;IAEY,UAAI,GAAG,WAAI,CAAC,MAAM,CAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IACjD,UAAI,GAAG,WAAI,CAAC,IAAI,CAAC,MAAM,CAAQ;QAC3C,MAAM,EAAE,WAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACjC,IAAI,EAAE,MAAA,IAAI;KACV,CAAC,CAAA;IACW,WAAK,GAAwB,WAAI,CAAC,KAAK,CAAC,MAAM,CAAQ;QAClE,MAAM,EAAE,YAAK;aACX,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;aAC7B,MAAM,CAAC,QAAQ,CAAC;aAChB,QAAQ,CAAC,8CAA8C,CAAC;QAC1D,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACpG,IAAI,EAAE,YAAK;aACT,MAAM,EAAQ;aACd,QAAQ,CAAC,SAAS,CAAC;aACnB,QAAQ,CAAC,UAAU,CAAC;aACpB,MAAM,CAAC,MAAM,CAAC;aACd,QAAQ,CAAC,uBAAuB,CAAC;KACnC,CAAC,CAAA;IACF,SAAgB,QAAQ,CACvB,KAAc,EACd,KAAY,EACZ,MAA+C;QAM/C,MAAM,MAAM,GAAgC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QACvE,MAAM,GAAG,GAAG,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QAChC,IACC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,UAAU;YACrC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YAE7E,KAAK,MAAM,IAAI,IAAI,KAAK;gBACvB,IAAI,IAAA,iBAAO,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAA;oBACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBAChF,CAAC;QACH,OAAO,MAAM,CAAA;IACd,CAAC;IAtBe,cAAQ,WAsBvB,CAAA;AACF,CAAC,EAhDgB,KAAK,qBAAL,KAAK,QAgDrB"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { isoly } from "isoly";
|
|
2
|
-
export interface Data {
|
|
3
|
-
countries: {
|
|
4
|
-
eea: isoly.CountryCode.Alpha2[];
|
|
5
|
-
sanctioned: isoly.CountryCode.Alpha2[];
|
|
6
|
-
risk: {
|
|
7
|
-
high: isoly.CountryCode.Alpha2[];
|
|
8
|
-
mediumHigh: isoly.CountryCode.Alpha2[];
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
merchant: {
|
|
12
|
-
known: string[];
|
|
13
|
-
categories: {
|
|
14
|
-
payment: string[];
|
|
15
|
-
crypto: string[];
|
|
16
|
-
gambling: string[];
|
|
17
|
-
travel: string[];
|
|
18
|
-
specialist: string[];
|
|
19
|
-
media: string[];
|
|
20
|
-
sabre: string[];
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../Rule/State/Data.ts"],"names":[],"mappings":""}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { isoly } from "isoly";
|
|
2
|
-
import { selectively } from "selectively";
|
|
3
|
-
import { Amount } from "../Amount";
|
|
4
|
-
import { Exchange } from "../Exchange";
|
|
5
|
-
import { Realm } from "../Realm";
|
|
6
|
-
import type { Note } from "../Transaction/Note";
|
|
7
|
-
import { Base } from "./Base";
|
|
8
|
-
import type { State } from "./State";
|
|
9
|
-
export interface Charge extends Charge.Api {
|
|
10
|
-
charge: {
|
|
11
|
-
percentage?: number;
|
|
12
|
-
fixed?: Amount;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare namespace Charge {
|
|
16
|
-
type Action = typeof Action.value;
|
|
17
|
-
namespace Action {
|
|
18
|
-
const value = "charge";
|
|
19
|
-
}
|
|
20
|
-
interface Api extends Base {
|
|
21
|
-
action: Charge.Action;
|
|
22
|
-
charge: {
|
|
23
|
-
percentage?: number;
|
|
24
|
-
fixed?: number | Amount;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
namespace Api {
|
|
28
|
-
const type: import("isly/dist/cjs/object").IslyObject<Api, Base>;
|
|
29
|
-
}
|
|
30
|
-
function fromApi(rule: Api, realm: Realm): Charge;
|
|
31
|
-
function fromApi(rule: Api, currency: isoly.Currency): Charge;
|
|
32
|
-
function evaluate(rules: Charge[], state: State, macros?: Record<string, selectively.Definition>, table?: Exchange.Rates): {
|
|
33
|
-
outcomes: Charge[];
|
|
34
|
-
notes: Note[];
|
|
35
|
-
charge: Required<State["transaction"]["original"]>["charge"];
|
|
36
|
-
};
|
|
37
|
-
function apply(charge: {
|
|
38
|
-
current: number;
|
|
39
|
-
total: number;
|
|
40
|
-
}, state: State): number;
|
|
41
|
-
}
|
package/dist/mjs/Rule/Charge.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { isoly } from "isoly";
|
|
2
|
-
import { isly } from "isly";
|
|
3
|
-
import { Amount } from "../Amount";
|
|
4
|
-
import { Exchange } from "../Exchange";
|
|
5
|
-
import { Realm } from "../Realm";
|
|
6
|
-
import { Base } from "./Base";
|
|
7
|
-
import { control } from "./control";
|
|
8
|
-
export var Charge;
|
|
9
|
-
(function (Charge) {
|
|
10
|
-
let Action;
|
|
11
|
-
(function (Action) {
|
|
12
|
-
Action.value = "charge";
|
|
13
|
-
})(Action = Charge.Action || (Charge.Action = {}));
|
|
14
|
-
let Api;
|
|
15
|
-
(function (Api) {
|
|
16
|
-
Api.type = Base.type.extend({
|
|
17
|
-
action: isly.string(Action.value),
|
|
18
|
-
charge: isly.object({
|
|
19
|
-
percentage: isly.number().optional(),
|
|
20
|
-
fixed: isly.union(Amount.type, isly.number()).optional(),
|
|
21
|
-
}),
|
|
22
|
-
});
|
|
23
|
-
})(Api = Charge.Api || (Charge.Api = {}));
|
|
24
|
-
function fromApi(rule, currency) {
|
|
25
|
-
return {
|
|
26
|
-
...rule,
|
|
27
|
-
charge: {
|
|
28
|
-
...rule.charge,
|
|
29
|
-
fixed: typeof rule.charge.fixed == "number"
|
|
30
|
-
? [Realm.type.is(currency) ? Realm.currency[currency] : currency, rule.charge.fixed]
|
|
31
|
-
: rule.charge.fixed,
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
Charge.fromApi = fromApi;
|
|
36
|
-
function evaluate(rules, state, macros, table = {}) {
|
|
37
|
-
const result = {
|
|
38
|
-
outcomes: [],
|
|
39
|
-
notes: [],
|
|
40
|
-
charge: { current: 0, total: state.transaction.original.charge?.total ?? 0 },
|
|
41
|
-
};
|
|
42
|
-
const now = isoly.DateTime.now();
|
|
43
|
-
if (state.transaction.stage == "finalize" && ["card", "external"].some(type => type == state.transaction.type))
|
|
44
|
-
for (const rule of rules)
|
|
45
|
-
if (control(rule, state, macros)) {
|
|
46
|
-
if (rule.charge.percentage)
|
|
47
|
-
result.charge.current = isoly.Currency.add(state.transaction.original.currency, result.charge.current, isoly.Currency.multiply(state.transaction.original.currency, state.transaction.original.amount, rule.charge.percentage / 100));
|
|
48
|
-
if (rule.charge.fixed) {
|
|
49
|
-
const charge = state.transaction.original.currency === rule.charge.fixed[0]
|
|
50
|
-
? rule.charge.fixed[1]
|
|
51
|
-
: Exchange.convert(rule.charge.fixed[1], rule.charge.fixed[0], state.transaction.original.currency, table) ?? 0;
|
|
52
|
-
result.charge.current = isoly.Currency.add(state.transaction.original.currency, result.charge.current, charge);
|
|
53
|
-
}
|
|
54
|
-
result.outcomes.push(rule);
|
|
55
|
-
result.notes.push({ author: "automatic", created: now, text: rule.name, rule });
|
|
56
|
-
}
|
|
57
|
-
result.charge.total = isoly.Currency.add(state.transaction.original.currency, result.charge.current, result.charge.total);
|
|
58
|
-
result.charge.total &&
|
|
59
|
-
result.notes.push({
|
|
60
|
-
author: "automatic",
|
|
61
|
-
created: now,
|
|
62
|
-
text: `captured charge:${result.charge.total}${state.transaction.original.currency}`,
|
|
63
|
-
});
|
|
64
|
-
return result;
|
|
65
|
-
}
|
|
66
|
-
Charge.evaluate = evaluate;
|
|
67
|
-
function apply(charge, state) {
|
|
68
|
-
return state.transaction.kind == "authorization" ||
|
|
69
|
-
state.transaction.kind == "outbound" ||
|
|
70
|
-
state.transaction.kind == "capture"
|
|
71
|
-
? isoly.Currency.add(state.transaction.original.currency, state.transaction.original.total, charge.current)
|
|
72
|
-
: isoly.Currency.subtract(state.transaction.original.currency, state.transaction.original.total, charge.current);
|
|
73
|
-
}
|
|
74
|
-
Charge.apply = apply;
|
|
75
|
-
})(Charge || (Charge = {}));
|
|
76
|
-
//# sourceMappingURL=Charge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../Rule/Charge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { isoly } from "isoly";
|
|
2
|
-
import { selectively } from "selectively";
|
|
3
|
-
import { Amount } from "../Amount";
|
|
4
|
-
import { Exchange } from "../Exchange";
|
|
5
|
-
import { Realm } from "../Realm";
|
|
6
|
-
import type { Note } from "../Transaction/Note";
|
|
7
|
-
import { Base } from "./Base";
|
|
8
|
-
import type { State } from "./State";
|
|
9
|
-
export interface Reserve extends Reserve.Api {
|
|
10
|
-
reserve: {
|
|
11
|
-
percentage?: number;
|
|
12
|
-
fixed?: Amount;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare namespace Reserve {
|
|
16
|
-
type Action = typeof Action.value;
|
|
17
|
-
namespace Action {
|
|
18
|
-
const value = "reserve";
|
|
19
|
-
}
|
|
20
|
-
const type: import("isly/dist/cjs/object").IslyObject<Reserve, Base>;
|
|
21
|
-
interface Api extends Base {
|
|
22
|
-
action: Reserve.Action;
|
|
23
|
-
reserve: {
|
|
24
|
-
percentage?: number;
|
|
25
|
-
fixed?: number | Amount;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
namespace Api {
|
|
29
|
-
const type: import("isly/dist/cjs/object").IslyObject<Api, Base>;
|
|
30
|
-
}
|
|
31
|
-
function fromApi(rule: Api, realm: Realm): Reserve;
|
|
32
|
-
function fromApi(rule: Api, currency: isoly.Currency): Reserve;
|
|
33
|
-
function evaluate(rules: Reserve[], state: State, macros?: Record<string, selectively.Definition>, table?: Exchange.Rates): {
|
|
34
|
-
outcomes: Reserve[];
|
|
35
|
-
notes: Note[];
|
|
36
|
-
reserve: number;
|
|
37
|
-
};
|
|
38
|
-
function apply(reserve: number, state: State): number;
|
|
39
|
-
}
|
package/dist/mjs/Rule/Reserve.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { isoly } from "isoly";
|
|
2
|
-
import { isly } from "isly";
|
|
3
|
-
import { Amount } from "../Amount";
|
|
4
|
-
import { Exchange } from "../Exchange";
|
|
5
|
-
import { Realm } from "../Realm";
|
|
6
|
-
import { Base } from "./Base";
|
|
7
|
-
import { control } from "./control";
|
|
8
|
-
export var Reserve;
|
|
9
|
-
(function (Reserve) {
|
|
10
|
-
let Action;
|
|
11
|
-
(function (Action) {
|
|
12
|
-
Action.value = "reserve";
|
|
13
|
-
})(Action = Reserve.Action || (Reserve.Action = {}));
|
|
14
|
-
Reserve.type = Base.type.extend({
|
|
15
|
-
action: isly.string(Action.value),
|
|
16
|
-
reserve: isly.object({ percentage: isly.number(), fixed: Amount.type.optional() }),
|
|
17
|
-
});
|
|
18
|
-
let Api;
|
|
19
|
-
(function (Api) {
|
|
20
|
-
Api.type = Base.type.extend({
|
|
21
|
-
action: isly.string(Action.value),
|
|
22
|
-
reserve: isly.object({
|
|
23
|
-
percentage: isly.number().optional(),
|
|
24
|
-
fixed: isly.union(Amount.type, isly.number()).optional(),
|
|
25
|
-
}),
|
|
26
|
-
});
|
|
27
|
-
})(Api = Reserve.Api || (Reserve.Api = {}));
|
|
28
|
-
function fromApi(rule, currency) {
|
|
29
|
-
return {
|
|
30
|
-
...rule,
|
|
31
|
-
reserve: {
|
|
32
|
-
...rule.reserve,
|
|
33
|
-
fixed: typeof rule.reserve.fixed == "number"
|
|
34
|
-
? [Realm.type.is(currency) ? Realm.currency[currency] : currency, rule.reserve.fixed]
|
|
35
|
-
: rule.reserve.fixed,
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
Reserve.fromApi = fromApi;
|
|
40
|
-
function evaluate(rules, state, macros, table = {}) {
|
|
41
|
-
const result = { outcomes: [], notes: [], reserve: 0 };
|
|
42
|
-
const now = isoly.DateTime.now();
|
|
43
|
-
if (state.transaction.stage == "initiate" &&
|
|
44
|
-
["authorization", "outbound"].some(kind => kind == state.transaction.kind) &&
|
|
45
|
-
["card", "external"].some(type => type == state.transaction.type))
|
|
46
|
-
for (const rule of rules)
|
|
47
|
-
if (control(rule, state, macros)) {
|
|
48
|
-
if (rule.reserve.percentage)
|
|
49
|
-
result.reserve = isoly.Currency.add(state.transaction.original.currency, result.reserve, isoly.Currency.multiply(state.transaction.original.currency, state.transaction.original.amount, rule.reserve.percentage / 100));
|
|
50
|
-
if (rule.reserve.fixed) {
|
|
51
|
-
const reserve = state.transaction.original.currency === rule.reserve.fixed[0]
|
|
52
|
-
? rule.reserve.fixed[1]
|
|
53
|
-
: Exchange.convert(rule.reserve.fixed[1], rule.reserve.fixed[0], state.transaction.original.currency, table) ?? 0;
|
|
54
|
-
result.reserve = isoly.Currency.add(state.transaction.original.currency, result.reserve, reserve);
|
|
55
|
-
}
|
|
56
|
-
result.outcomes.push(rule);
|
|
57
|
-
result.notes.push({ author: "automatic", created: now, text: rule.name, rule });
|
|
58
|
-
}
|
|
59
|
-
result.reserve &&
|
|
60
|
-
result.notes.push({
|
|
61
|
-
author: "automatic",
|
|
62
|
-
created: now,
|
|
63
|
-
text: `reserved charge:${result.reserve}${state.transaction.original.currency}`,
|
|
64
|
-
});
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
Reserve.evaluate = evaluate;
|
|
68
|
-
function apply(reserve, state) {
|
|
69
|
-
return state.transaction.kind == "authorization" ||
|
|
70
|
-
state.transaction.kind == "outbound" ||
|
|
71
|
-
state.transaction.kind == "capture"
|
|
72
|
-
? isoly.Currency.add(state.transaction.original.currency, state.transaction.original.total, reserve)
|
|
73
|
-
: isoly.Currency.subtract(state.transaction.original.currency, state.transaction.original.total, reserve);
|
|
74
|
-
}
|
|
75
|
-
Reserve.apply = apply;
|
|
76
|
-
})(Reserve || (Reserve = {}));
|
|
77
|
-
//# sourceMappingURL=Reserve.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Reserve.js","sourceRoot":"","sources":["../../../Rule/Reserve.ts"],"names":[],"mappings":"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"}
|