@pax2pay/model-banking 0.1.282 → 0.1.283
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/Rule/Rule/Base.ts +4 -0
- package/Rule/Rule/Score.ts +6 -1
- package/Rule/index.ts +5 -2
- package/dist/Key/Roles.d.ts +2 -2
- package/dist/Rule/Rule/Base.d.ts +3 -0
- package/dist/Rule/Rule/Base.js +2 -0
- package/dist/Rule/Rule/Base.js.map +1 -1
- package/dist/Rule/Rule/Score.d.ts +1 -0
- package/dist/Rule/Rule/Score.js +5 -1
- package/dist/Rule/Rule/Score.js.map +1 -1
- package/dist/Rule/index.d.ts +1 -0
- package/dist/Rule/index.js +4 -0
- package/dist/Rule/index.js.map +1 -1
- package/package.json +1 -1
package/Rule/Rule/Base.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface Base {
|
|
|
5
5
|
name: string
|
|
6
6
|
description: string
|
|
7
7
|
type: Base.Kind
|
|
8
|
+
category?: Base.Category
|
|
8
9
|
condition: string
|
|
9
10
|
flags: string[]
|
|
10
11
|
groups?: string[]
|
|
@@ -12,11 +13,14 @@ export interface Base {
|
|
|
12
13
|
export namespace Base {
|
|
13
14
|
export const kinds = ["authorization", "outbound", "inbound"] as const
|
|
14
15
|
export type Kind = typeof kinds[number]
|
|
16
|
+
export const categories = ["customer", "product", "fincrime"] as const
|
|
17
|
+
export type Category = typeof categories[number]
|
|
15
18
|
export const type = isly.object<Base>({
|
|
16
19
|
code: isly.string(new RegExp(/^[a-z0-9\-_]+$/)).optional(),
|
|
17
20
|
name: isly.string(),
|
|
18
21
|
description: isly.string(),
|
|
19
22
|
type: isly.string(kinds),
|
|
23
|
+
category: isly.string(categories),
|
|
20
24
|
condition: isly.string(),
|
|
21
25
|
flags: isly.string().array(),
|
|
22
26
|
groups: isly.string().array().optional(),
|
package/Rule/Rule/Score.ts
CHANGED
|
@@ -3,10 +3,15 @@ import { Base } from "./Base"
|
|
|
3
3
|
|
|
4
4
|
export interface Score extends Base {
|
|
5
5
|
action: "score"
|
|
6
|
+
category?: "fincrime"
|
|
6
7
|
risk: Score.Risk
|
|
7
8
|
}
|
|
8
9
|
export namespace Score {
|
|
9
10
|
export type Risk = number
|
|
10
11
|
export const Risk = isly.number<Risk>(["positive", "integer"])
|
|
11
|
-
export const type = Base.type.extend<Score>({
|
|
12
|
+
export const type = Base.type.extend<Score>({
|
|
13
|
+
action: isly.string("score"),
|
|
14
|
+
category: isly.string("fincrime").optional(),
|
|
15
|
+
risk: Risk,
|
|
16
|
+
})
|
|
12
17
|
}
|
package/Rule/index.ts
CHANGED
|
@@ -20,7 +20,7 @@ export namespace Rule {
|
|
|
20
20
|
return selectively.resolve({ ...macros, ...definitions }, selectively.parse(rule.condition)).is(state)
|
|
21
21
|
}
|
|
22
22
|
function score(
|
|
23
|
-
rules:
|
|
23
|
+
rules: ModelRule.Score[],
|
|
24
24
|
state: State,
|
|
25
25
|
macros?: Record<string, selectively.Definition>
|
|
26
26
|
): number | undefined {
|
|
@@ -36,7 +36,7 @@ export namespace Rule {
|
|
|
36
36
|
): Record<ModelRule.Other.Action, Rule[]> & { risk?: number } {
|
|
37
37
|
const result: Record<ModelRule.Other.Action, Rule[]> & { risk?: number } = { review: [], reject: [], flag: [] }
|
|
38
38
|
const [other, scorers] = rules.reduce(
|
|
39
|
-
(r: [
|
|
39
|
+
(r: [ModelRule.Other[], ModelRule.Score[]], rule) => {
|
|
40
40
|
rule.action == "score" ? r[1].push(rule) : r[0].push(rule)
|
|
41
41
|
return r
|
|
42
42
|
},
|
|
@@ -47,4 +47,7 @@ export namespace Rule {
|
|
|
47
47
|
other.forEach(rule => control(rule, state, macros) && result[rule.action].push(rule))
|
|
48
48
|
return result
|
|
49
49
|
}
|
|
50
|
+
export function fromLegacy(rule: Rule): Rule {
|
|
51
|
+
return "category" in rule ? rule : { category: "fincrime", ...rule }
|
|
52
|
+
}
|
|
50
53
|
}
|
package/dist/Key/Roles.d.ts
CHANGED
|
@@ -14,8 +14,8 @@ export declare namespace Roles {
|
|
|
14
14
|
type Roles = Partial<Record<Role, true>>;
|
|
15
15
|
type Role = typeof roles[number];
|
|
16
16
|
const roles: readonly ["admin", "fincrime-readonly", "fincrime", "finance", "operations", "support"];
|
|
17
|
-
const type: isly.Type<"
|
|
18
|
-
const is: isly.Type.IsFunction<"
|
|
17
|
+
const type: isly.Type<"fincrime" | "operations" | "admin" | "fincrime-readonly" | "finance" | "support">;
|
|
18
|
+
const is: isly.Type.IsFunction<"fincrime" | "operations" | "admin" | "fincrime-readonly" | "finance" | "support">;
|
|
19
19
|
const definitions: Record<Role, Permissions.Realm | true>;
|
|
20
20
|
}
|
|
21
21
|
namespace Organization {
|
package/dist/Rule/Rule/Base.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export interface Base {
|
|
|
4
4
|
name: string;
|
|
5
5
|
description: string;
|
|
6
6
|
type: Base.Kind;
|
|
7
|
+
category?: Base.Category;
|
|
7
8
|
condition: string;
|
|
8
9
|
flags: string[];
|
|
9
10
|
groups?: string[];
|
|
@@ -11,5 +12,7 @@ export interface Base {
|
|
|
11
12
|
export declare namespace Base {
|
|
12
13
|
const kinds: readonly ["authorization", "outbound", "inbound"];
|
|
13
14
|
type Kind = typeof kinds[number];
|
|
15
|
+
const categories: readonly ["customer", "product", "fincrime"];
|
|
16
|
+
type Category = typeof categories[number];
|
|
14
17
|
const type: isly.object.ExtendableType<Base>;
|
|
15
18
|
}
|
package/dist/Rule/Rule/Base.js
CHANGED
|
@@ -2,11 +2,13 @@ import { isly } from "isly";
|
|
|
2
2
|
export var Base;
|
|
3
3
|
(function (Base) {
|
|
4
4
|
Base.kinds = ["authorization", "outbound", "inbound"];
|
|
5
|
+
Base.categories = ["customer", "product", "fincrime"];
|
|
5
6
|
Base.type = isly.object({
|
|
6
7
|
code: isly.string(new RegExp(/^[a-z0-9\-_]+$/)).optional(),
|
|
7
8
|
name: isly.string(),
|
|
8
9
|
description: isly.string(),
|
|
9
10
|
type: isly.string(Base.kinds),
|
|
11
|
+
category: isly.string(Base.categories),
|
|
10
12
|
condition: isly.string(),
|
|
11
13
|
flags: isly.string().array(),
|
|
12
14
|
groups: isly.string().array().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base.js","sourceRoot":"../","sources":["Rule/Rule/Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Base.js","sourceRoot":"../","sources":["Rule/Rule/Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAY3B,MAAM,KAAW,IAAI,CAepB;AAfD,WAAiB,IAAI;IACP,UAAK,GAAG,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,CAAU,CAAA;IAEzD,eAAU,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAU,CAAA;IAEzD,SAAI,GAAG,IAAI,CAAC,MAAM,CAAO;QACrC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC1D,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;QAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAA,KAAK,CAAC;QACxB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAA,UAAU,CAAC;QACjC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;QACxB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;KACxC,CAAC,CAAA;AACH,CAAC,EAfgB,IAAI,KAAJ,IAAI,QAepB"}
|
package/dist/Rule/Rule/Score.js
CHANGED
|
@@ -3,6 +3,10 @@ import { Base } from "./Base";
|
|
|
3
3
|
export var Score;
|
|
4
4
|
(function (Score) {
|
|
5
5
|
Score.Risk = isly.number(["positive", "integer"]);
|
|
6
|
-
Score.type = Base.type.extend({
|
|
6
|
+
Score.type = Base.type.extend({
|
|
7
|
+
action: isly.string("score"),
|
|
8
|
+
category: isly.string("fincrime").optional(),
|
|
9
|
+
risk: Score.Risk,
|
|
10
|
+
});
|
|
7
11
|
})(Score || (Score = {}));
|
|
8
12
|
//# sourceMappingURL=Score.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Score.js","sourceRoot":"../","sources":["Rule/Rule/Score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"Score.js","sourceRoot":"../","sources":["Rule/Rule/Score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAO7B,MAAM,KAAW,KAAK,CAQrB;AARD,WAAiB,KAAK;IAER,UAAI,GAAG,IAAI,CAAC,MAAM,CAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IACjD,UAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAQ;QAC3C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;QAC5C,IAAI,EAAE,MAAA,IAAI;KACV,CAAC,CAAA;AACH,CAAC,EARgB,KAAK,KAAL,KAAK,QAQrB"}
|
package/dist/Rule/index.d.ts
CHANGED
package/dist/Rule/index.js
CHANGED
|
@@ -30,5 +30,9 @@ export var Rule;
|
|
|
30
30
|
return result;
|
|
31
31
|
}
|
|
32
32
|
Rule.evaluate = evaluate;
|
|
33
|
+
function fromLegacy(rule) {
|
|
34
|
+
return "category" in rule ? rule : { category: "fincrime", ...rule };
|
|
35
|
+
}
|
|
36
|
+
Rule.fromLegacy = fromLegacy;
|
|
33
37
|
})(Rule || (Rule = {}));
|
|
34
38
|
//# sourceMappingURL=index.js.map
|
package/dist/Rule/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../","sources":["Rule/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAI5C,MAAM,KAAW,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../","sources":["Rule/index.ts"],"names":[],"mappings":"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"}
|