@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 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(),
@@ -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>({ action: isly.string("score"), risk: Risk })
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: (Rule & ModelRule.Score)[],
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: [(Rule & ModelRule.Other)[], (Rule & ModelRule.Score)[]], rule) => {
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
  }
@@ -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<"operations" | "fincrime" | "admin" | "fincrime-readonly" | "finance" | "support">;
18
- const is: isly.Type.IsFunction<"operations" | "fincrime" | "admin" | "fincrime-readonly" | "finance" | "support">;
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 {
@@ -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
  }
@@ -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;AAW3B,MAAM,KAAW,IAAI,CAYpB;AAZD,WAAiB,IAAI;IACP,UAAK,GAAG,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,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,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,EAZgB,IAAI,KAAJ,IAAI,QAYpB"}
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"}
@@ -2,6 +2,7 @@ import { isly } from "isly";
2
2
  import { Base } from "./Base";
3
3
  export interface Score extends Base {
4
4
  action: "score";
5
+ category?: "fincrime";
5
6
  risk: Score.Risk;
6
7
  }
7
8
  export declare namespace Score {
@@ -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({ action: isly.string("score"), risk: Score.Risk });
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;AAM7B,MAAM,KAAW,KAAK,CAIrB;AAJD,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,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAA,IAAI,EAAE,CAAC,CAAA;AAC1F,CAAC,EAJgB,KAAK,KAAL,KAAK,QAIrB"}
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"}
@@ -16,4 +16,5 @@ export declare namespace Rule {
16
16
  function evaluate(rules: Rule[], state: State, macros?: Record<string, selectively.Definition>): Record<ModelRule.Other.Action, Rule[]> & {
17
17
  risk?: number;
18
18
  };
19
+ function fromLegacy(rule: Rule): Rule;
19
20
  }
@@ -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
@@ -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,CA0CpB;AA1CD,WAAiB,IAAI;IACP,YAAO,GAAG,SAAS,CAAC,OAAO,CAAA;IAE3B,UAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAA;IAE3B,UAAK,GAAG,SAAS,CAAC,KAAK,CAAA;IACvB,UAAK,GAAG,SAAS,CAAC,KAAK,CAAA;IACvB,UAAK,GAAG,SAAS,CAAA;IAClB,SAAI,GAAG,QAAQ,CAAA;IACf,OAAE,GAAG,QAAQ,CAAC,EAAE,CAAA;IAChB,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;IACjC,SAAS,OAAO,CAAC,IAAe,EAAE,KAAY,EAAE,MAA+C;QAC9F,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,WAAW,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACvG,CAAC;IACD,SAAS,KAAK,CACb,KAAiC,EACjC,KAAY,EACZ,MAA+C;QAE/C,OAAO,KAAK,CAAC,MAAM,CAClB,CAAC,CAAqB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAC5G,SAAS,CACT,CAAA;IACF,CAAC;IACD,SAAgB,QAAQ,CACvB,KAAa,EACb,KAAY,EACZ,MAA+C;QAE/C,MAAM,MAAM,GAA+D,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QAC/G,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CACpC,CAAC,CAA2D,EAAE,IAAI,EAAE,EAAE;YACrE,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1D,OAAO,CAAC,CAAA;QACT,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAC,CACR,CAAA;QACD,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACtD,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAA;QACpC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACrF,OAAO,MAAM,CAAA;IACd,CAAC;IAjBe,aAAQ,WAiBvB,CAAA;AACF,CAAC,EA1CgB,IAAI,KAAJ,IAAI,QA0CpB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Rule/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.282",
3
+ "version": "0.1.283",
4
4
  "description": "Library containing data model types and functions for the Pax2Pay Banking API.",
5
5
  "author": "Pax2Pay Ltd",
6
6
  "license": "MIT",