@pax2pay/model-banking 0.1.389 → 0.1.390
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/Charge.ts +5 -1
- package/Rule/Reserve.ts +5 -2
- package/Rule/Score.ts +6 -1
- package/Rule/index.ts +7 -1
- package/dist/Rule/Charge.d.ts +2 -0
- package/dist/Rule/Charge.js +3 -0
- package/dist/Rule/Charge.js.map +1 -1
- package/dist/Rule/Other.d.ts +1 -1
- package/dist/Rule/Reserve.d.ts +2 -0
- package/dist/Rule/Reserve.js +3 -0
- package/dist/Rule/Reserve.js.map +1 -1
- package/dist/Rule/Score.d.ts +2 -0
- package/dist/Rule/Score.js +4 -1
- package/dist/Rule/Score.js.map +1 -1
- package/dist/Rule/State/index.d.ts +1 -1
- package/dist/Rule/index.d.ts +1 -1
- package/dist/Rule/index.js +7 -1
- package/dist/Rule/index.js.map +1 -1
- package/package.json +1 -1
package/Rule/Charge.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { isly } from "isly"
|
|
|
4
4
|
import { Amount } from "../Amount"
|
|
5
5
|
import { Exchange } from "../Exchange"
|
|
6
6
|
import { Realm } from "../Realm"
|
|
7
|
+
import type { Note } from "../Transaction/Note"
|
|
7
8
|
import { Base } from "./Base"
|
|
8
9
|
import { control } from "./control"
|
|
9
10
|
import type { State } from "./State"
|
|
@@ -54,11 +55,13 @@ export namespace Charge {
|
|
|
54
55
|
state: State,
|
|
55
56
|
macros?: Record<string, selectively.Definition>,
|
|
56
57
|
table: Exchange.Rates = {}
|
|
57
|
-
): { outcomes: Charge[]; charge: Required<State["transaction"]["original"]>["charge"] } {
|
|
58
|
+
): { outcomes: Charge[]; notes: Note[]; charge: Required<State["transaction"]["original"]>["charge"] } {
|
|
58
59
|
const result: ReturnType<typeof evaluate> = {
|
|
59
60
|
outcomes: [],
|
|
61
|
+
notes: [],
|
|
60
62
|
charge: { current: 0, total: state.transaction.original.charge?.total ?? 0 },
|
|
61
63
|
}
|
|
64
|
+
const now = isoly.DateTime.now()
|
|
62
65
|
if (state.transaction.stage == "finalize" && ["card", "external"].some(type => type == state.transaction.type))
|
|
63
66
|
for (const rule of rules) {
|
|
64
67
|
if (control(rule, state, macros)) {
|
|
@@ -89,6 +92,7 @@ export namespace Charge {
|
|
|
89
92
|
)
|
|
90
93
|
}
|
|
91
94
|
result.outcomes.push(rule)
|
|
95
|
+
result.notes.push({ author: "automatic", created: now, text: rule.name, rule })
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
result.charge.total = isoly.Currency.add(
|
package/Rule/Reserve.ts
CHANGED
|
@@ -4,10 +4,10 @@ import { isly } from "isly"
|
|
|
4
4
|
import { Amount } from "../Amount"
|
|
5
5
|
import { Exchange } from "../Exchange"
|
|
6
6
|
import { Realm } from "../Realm"
|
|
7
|
+
import type { Note } from "../Transaction/Note"
|
|
7
8
|
import { Base } from "./Base"
|
|
8
9
|
import { control } from "./control"
|
|
9
10
|
import type { State } from "./State"
|
|
10
|
-
|
|
11
11
|
export interface Reserve extends Reserve.Api {
|
|
12
12
|
reserve: {
|
|
13
13
|
percentage?: number
|
|
@@ -62,11 +62,13 @@ export namespace Reserve {
|
|
|
62
62
|
state: State,
|
|
63
63
|
macros?: Record<string, selectively.Definition>,
|
|
64
64
|
table: Exchange.Rates = {}
|
|
65
|
-
): { outcomes: Reserve[]; reserve: number } {
|
|
65
|
+
): { outcomes: Reserve[]; notes: Note[]; reserve: number } {
|
|
66
66
|
const result: ReturnType<typeof evaluate> = {
|
|
67
67
|
outcomes: [],
|
|
68
|
+
notes: [],
|
|
68
69
|
reserve: 0,
|
|
69
70
|
}
|
|
71
|
+
const now = isoly.DateTime.now()
|
|
70
72
|
if (
|
|
71
73
|
state.transaction.stage == "initiate" &&
|
|
72
74
|
["authorization", "outbound"].some(kind => kind == state.transaction.kind) &&
|
|
@@ -97,6 +99,7 @@ export namespace Reserve {
|
|
|
97
99
|
result.reserve = isoly.Currency.add(state.transaction.original.currency, result.reserve, reserve)
|
|
98
100
|
}
|
|
99
101
|
result.outcomes.push(rule)
|
|
102
|
+
result.notes.push({ author: "automatic", created: now, text: rule.name, rule })
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
return result
|
package/Rule/Score.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { isoly } from "isoly"
|
|
1
2
|
import { selectively } from "selectively"
|
|
2
3
|
import { isly } from "isly"
|
|
4
|
+
import type { Note } from "../Transaction/Note"
|
|
3
5
|
import { Base } from "./Base"
|
|
4
6
|
import { control } from "./control"
|
|
5
7
|
import type { State } from "./State"
|
|
@@ -27,9 +29,11 @@ export namespace Score {
|
|
|
27
29
|
macros?: Record<string, selectively.Definition>
|
|
28
30
|
): {
|
|
29
31
|
outcomes: Score[]
|
|
32
|
+
notes: Note[]
|
|
30
33
|
risk?: number | undefined
|
|
31
34
|
} {
|
|
32
|
-
const result: ReturnType<typeof evaluate> = { outcomes: [] }
|
|
35
|
+
const result: ReturnType<typeof evaluate> = { outcomes: [], notes: [] }
|
|
36
|
+
const now = isoly.DateTime.now()
|
|
33
37
|
if (
|
|
34
38
|
state.transaction.stage == "initiate" &&
|
|
35
39
|
["card", "external", "internal"].some(type => type == state.transaction.type)
|
|
@@ -38,6 +42,7 @@ export namespace Score {
|
|
|
38
42
|
if (control(rule, state, macros)) {
|
|
39
43
|
result.risk = (result.risk ?? 100) * (rule.risk / 100)
|
|
40
44
|
result.outcomes.push(rule)
|
|
45
|
+
result.notes.push({ author: "automatic", created: now, text: rule.name, rule })
|
|
41
46
|
}
|
|
42
47
|
}
|
|
43
48
|
return result
|
package/Rule/index.ts
CHANGED
|
@@ -80,7 +80,13 @@ export namespace Rule {
|
|
|
80
80
|
state.transaction.original.charge = charged.charge
|
|
81
81
|
state.transaction.original.total = Charge.apply(charged.charge, state)
|
|
82
82
|
const outcome = outcomes.reject.length > 0 ? "reject" : outcomes.review.length > 0 ? "review" : "approve"
|
|
83
|
-
return {
|
|
83
|
+
return {
|
|
84
|
+
...state,
|
|
85
|
+
flags: [...evaluated.flags],
|
|
86
|
+
notes: [...scored.notes, ...evaluated.notes, ...reserved.notes, ...charged.notes],
|
|
87
|
+
outcomes,
|
|
88
|
+
outcome,
|
|
89
|
+
}
|
|
84
90
|
}
|
|
85
91
|
function sort(
|
|
86
92
|
rules: Rule[],
|
package/dist/Rule/Charge.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { isly } from "isly";
|
|
|
4
4
|
import { Amount } from "../Amount";
|
|
5
5
|
import { Exchange } from "../Exchange";
|
|
6
6
|
import { Realm } from "../Realm";
|
|
7
|
+
import type { Note } from "../Transaction/Note";
|
|
7
8
|
import { Base } from "./Base";
|
|
8
9
|
import type { State } from "./State";
|
|
9
10
|
export interface Charge extends Charge.Api {
|
|
@@ -31,6 +32,7 @@ export declare namespace Charge {
|
|
|
31
32
|
function fromApi(rule: Api, currency: isoly.Currency): Charge;
|
|
32
33
|
function evaluate(rules: Charge[], state: State, macros?: Record<string, selectively.Definition>, table?: Exchange.Rates): {
|
|
33
34
|
outcomes: Charge[];
|
|
35
|
+
notes: Note[];
|
|
34
36
|
charge: Required<State["transaction"]["original"]>["charge"];
|
|
35
37
|
};
|
|
36
38
|
function apply(charge: {
|
package/dist/Rule/Charge.js
CHANGED
|
@@ -36,8 +36,10 @@ export var Charge;
|
|
|
36
36
|
function evaluate(rules, state, macros, table = {}) {
|
|
37
37
|
const result = {
|
|
38
38
|
outcomes: [],
|
|
39
|
+
notes: [],
|
|
39
40
|
charge: { current: 0, total: state.transaction.original.charge?.total ?? 0 },
|
|
40
41
|
};
|
|
42
|
+
const now = isoly.DateTime.now();
|
|
41
43
|
if (state.transaction.stage == "finalize" && ["card", "external"].some(type => type == state.transaction.type))
|
|
42
44
|
for (const rule of rules) {
|
|
43
45
|
if (control(rule, state, macros)) {
|
|
@@ -50,6 +52,7 @@ export var Charge;
|
|
|
50
52
|
result.charge.current = isoly.Currency.add(state.transaction.original.currency, result.charge.current, charge);
|
|
51
53
|
}
|
|
52
54
|
result.outcomes.push(rule);
|
|
55
|
+
result.notes.push({ author: "automatic", created: now, text: rule.name, rule });
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
58
|
result.charge.total = isoly.Currency.add(state.transaction.original.currency, result.charge.current, result.charge.total);
|
package/dist/Rule/Charge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Charge.js","sourceRoot":"../","sources":["Rule/Charge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"Charge.js","sourceRoot":"../","sources":["Rule/Charge.ts"],"names":[],"mappings":"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"}
|
package/dist/Rule/Other.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare namespace Other {
|
|
|
10
10
|
type Action = typeof Action.values[number];
|
|
11
11
|
namespace Action {
|
|
12
12
|
const values: readonly ["review", "reject", "flag"];
|
|
13
|
-
const type: isly.Type<"
|
|
13
|
+
const type: isly.Type<"reject" | "review" | "flag">;
|
|
14
14
|
}
|
|
15
15
|
const type: isly.object.ExtendableType<Other>;
|
|
16
16
|
function evaluate(rules: Other[], state: State, macros?: Record<string, selectively.Definition>): {
|
package/dist/Rule/Reserve.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { isly } from "isly";
|
|
|
4
4
|
import { Amount } from "../Amount";
|
|
5
5
|
import { Exchange } from "../Exchange";
|
|
6
6
|
import { Realm } from "../Realm";
|
|
7
|
+
import type { Note } from "../Transaction/Note";
|
|
7
8
|
import { Base } from "./Base";
|
|
8
9
|
import type { State } from "./State";
|
|
9
10
|
export interface Reserve extends Reserve.Api {
|
|
@@ -32,6 +33,7 @@ export declare namespace Reserve {
|
|
|
32
33
|
function fromApi(rule: Api, currency: isoly.Currency): Reserve;
|
|
33
34
|
function evaluate(rules: Reserve[], state: State, macros?: Record<string, selectively.Definition>, table?: Exchange.Rates): {
|
|
34
35
|
outcomes: Reserve[];
|
|
36
|
+
notes: Note[];
|
|
35
37
|
reserve: number;
|
|
36
38
|
};
|
|
37
39
|
function apply(reserve: number, state: State): number;
|
package/dist/Rule/Reserve.js
CHANGED
|
@@ -43,8 +43,10 @@ export var Reserve;
|
|
|
43
43
|
function evaluate(rules, state, macros, table = {}) {
|
|
44
44
|
const result = {
|
|
45
45
|
outcomes: [],
|
|
46
|
+
notes: [],
|
|
46
47
|
reserve: 0,
|
|
47
48
|
};
|
|
49
|
+
const now = isoly.DateTime.now();
|
|
48
50
|
if (state.transaction.stage == "initiate" &&
|
|
49
51
|
["authorization", "outbound"].some(kind => kind == state.transaction.kind) &&
|
|
50
52
|
["card", "external"].some(type => type == state.transaction.type))
|
|
@@ -59,6 +61,7 @@ export var Reserve;
|
|
|
59
61
|
result.reserve = isoly.Currency.add(state.transaction.original.currency, result.reserve, reserve);
|
|
60
62
|
}
|
|
61
63
|
result.outcomes.push(rule);
|
|
64
|
+
result.notes.push({ author: "automatic", created: now, text: rule.name, rule });
|
|
62
65
|
}
|
|
63
66
|
}
|
|
64
67
|
return result;
|
package/dist/Rule/Reserve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reserve.js","sourceRoot":"../","sources":["Rule/Reserve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"Reserve.js","sourceRoot":"../","sources":["Rule/Reserve.ts"],"names":[],"mappings":"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"}
|
package/dist/Rule/Score.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { selectively } from "selectively";
|
|
2
2
|
import { isly } from "isly";
|
|
3
|
+
import type { Note } from "../Transaction/Note";
|
|
3
4
|
import { Base } from "./Base";
|
|
4
5
|
import type { State } from "./State";
|
|
5
6
|
export interface Score extends Base {
|
|
@@ -17,6 +18,7 @@ export declare namespace Score {
|
|
|
17
18
|
const type: isly.object.ExtendableType<Score>;
|
|
18
19
|
function evaluate(rules: Score[], state: State, macros?: Record<string, selectively.Definition>): {
|
|
19
20
|
outcomes: Score[];
|
|
21
|
+
notes: Note[];
|
|
20
22
|
risk?: number | undefined;
|
|
21
23
|
};
|
|
22
24
|
}
|
package/dist/Rule/Score.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isoly } from "isoly";
|
|
1
2
|
import { isly } from "isly";
|
|
2
3
|
import { Base } from "./Base";
|
|
3
4
|
import { control } from "./control";
|
|
@@ -14,13 +15,15 @@ export var Score;
|
|
|
14
15
|
risk: Score.Risk,
|
|
15
16
|
});
|
|
16
17
|
function evaluate(rules, state, macros) {
|
|
17
|
-
const result = { outcomes: [] };
|
|
18
|
+
const result = { outcomes: [], notes: [] };
|
|
19
|
+
const now = isoly.DateTime.now();
|
|
18
20
|
if (state.transaction.stage == "initiate" &&
|
|
19
21
|
["card", "external", "internal"].some(type => type == state.transaction.type))
|
|
20
22
|
for (const rule of rules) {
|
|
21
23
|
if (control(rule, state, macros)) {
|
|
22
24
|
result.risk = (result.risk ?? 100) * (rule.risk / 100);
|
|
23
25
|
result.outcomes.push(rule);
|
|
26
|
+
result.notes.push({ author: "automatic", created: now, text: rule.name, rule });
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
return result;
|
package/dist/Rule/Score.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Score.js","sourceRoot":"../","sources":["Rule/Score.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Score.js","sourceRoot":"../","sources":["Rule/Score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,KAAW,KAAK,CAoCrB;AApCD,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,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,MAAM,CAAC,KAAK,CAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACjC,IAAI,EAAE,MAAA,IAAI;KACV,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,KAAK,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,EAAE,CAAC;gBAC1B,IAAI,OAAO,CAAC,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;YACF,CAAC;QACF,OAAO,MAAM,CAAA;IACd,CAAC;IAvBe,cAAQ,WAuBvB,CAAA;AACF,CAAC,EApCgB,KAAK,KAAL,KAAK,QAoCrB"}
|
|
@@ -29,7 +29,7 @@ export declare namespace State {
|
|
|
29
29
|
type Outcome = typeof Outcome.values[number];
|
|
30
30
|
namespace Outcome {
|
|
31
31
|
const values: readonly ["approve", "reject", "review"];
|
|
32
|
-
const type: isly.Type<"
|
|
32
|
+
const type: isly.Type<"approve" | "reject" | "review">;
|
|
33
33
|
}
|
|
34
34
|
interface Evaluated extends State {
|
|
35
35
|
outcomes: globalThis.Partial<Record<Rule.Action, Rule[]>>;
|
package/dist/Rule/index.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare namespace Rule {
|
|
|
28
28
|
type Action = typeof Action.values[number];
|
|
29
29
|
namespace Action {
|
|
30
30
|
const values: readonly ["review", "reject", "flag", "score", "charge", "reserve"];
|
|
31
|
-
const type: isly.Type<"
|
|
31
|
+
const type: isly.Type<"reject" | "charge" | "review" | "flag" | "score" | "reserve">;
|
|
32
32
|
}
|
|
33
33
|
const type: isly.Type<Rule>;
|
|
34
34
|
function evaluate(rules: Rule[], state: RuleState, macros?: Record<string, selectively.Definition>, table?: Exchange.Rates): RuleState.Evaluated;
|
package/dist/Rule/index.js
CHANGED
|
@@ -67,7 +67,13 @@ export var Rule;
|
|
|
67
67
|
state.transaction.original.charge = charged.charge;
|
|
68
68
|
state.transaction.original.total = Rule.Charge.apply(charged.charge, state);
|
|
69
69
|
const outcome = outcomes.reject.length > 0 ? "reject" : outcomes.review.length > 0 ? "review" : "approve";
|
|
70
|
-
return {
|
|
70
|
+
return {
|
|
71
|
+
...state,
|
|
72
|
+
flags: [...evaluated.flags],
|
|
73
|
+
notes: [...scored.notes, ...evaluated.notes, ...reserved.notes, ...charged.notes],
|
|
74
|
+
outcomes,
|
|
75
|
+
outcome,
|
|
76
|
+
};
|
|
71
77
|
}
|
|
72
78
|
Rule.evaluate = evaluate;
|
|
73
79
|
function sort(rules, state) {
|
package/dist/Rule/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../","sources":["Rule/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAGzC,MAAM,KAAW,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../","sources":["Rule/index.ts"],"names":[],"mappings":"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"}
|