@pax2pay/model-banking 0.1.492 → 0.1.493

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.
Files changed (37) hide show
  1. package/Operation/Changes.ts +2 -5
  2. package/Rule/Reserve.ts +2 -9
  3. package/Rule/State/Transaction.ts +1 -2
  4. package/Rule/index.ts +18 -15
  5. package/Transaction/Amount.ts +41 -0
  6. package/Transaction/index.ts +24 -57
  7. package/dist/cjs/Operation/Changes.d.ts +2 -2
  8. package/dist/cjs/Operation/Changes.js.map +1 -1
  9. package/dist/cjs/Rule/Reserve.js +2 -9
  10. package/dist/cjs/Rule/Reserve.js.map +1 -1
  11. package/dist/cjs/Rule/State/Transaction.d.ts +0 -1
  12. package/dist/cjs/Rule/State/Transaction.js +1 -1
  13. package/dist/cjs/Rule/State/Transaction.js.map +1 -1
  14. package/dist/cjs/Rule/index.js +18 -15
  15. package/dist/cjs/Rule/index.js.map +1 -1
  16. package/dist/cjs/Transaction/Amount.d.ts +14 -0
  17. package/dist/cjs/Transaction/Amount.js +34 -0
  18. package/dist/cjs/Transaction/Amount.js.map +1 -0
  19. package/dist/cjs/Transaction/index.d.ts +3 -13
  20. package/dist/cjs/Transaction/index.js +21 -50
  21. package/dist/cjs/Transaction/index.js.map +1 -1
  22. package/dist/mjs/Operation/Changes.d.ts +2 -2
  23. package/dist/mjs/Operation/Changes.js.map +1 -1
  24. package/dist/mjs/Rule/Reserve.js +2 -9
  25. package/dist/mjs/Rule/Reserve.js.map +1 -1
  26. package/dist/mjs/Rule/State/Transaction.d.ts +0 -1
  27. package/dist/mjs/Rule/State/Transaction.js +1 -1
  28. package/dist/mjs/Rule/State/Transaction.js.map +1 -1
  29. package/dist/mjs/Rule/index.js +18 -15
  30. package/dist/mjs/Rule/index.js.map +1 -1
  31. package/dist/mjs/Transaction/Amount.d.ts +14 -0
  32. package/dist/mjs/Transaction/Amount.js +31 -0
  33. package/dist/mjs/Transaction/Amount.js.map +1 -0
  34. package/dist/mjs/Transaction/index.d.ts +3 -13
  35. package/dist/mjs/Transaction/index.js +21 -50
  36. package/dist/mjs/Transaction/index.js.map +1 -1
  37. package/package.json +1 -1
@@ -100,10 +100,7 @@ export namespace Changes {
100
100
  export const type = isly.string<Balance>(values)
101
101
  }
102
102
  }
103
- export function fromCapture(
104
- settlement: string | undefined, // FIXME: remove | undefined when we're sure we send the id
105
- amounts: { net: number; fee: number; charge?: number }
106
- ): Changes {
103
+ export function fromCapture(settlement: string, amounts: { net: number; fee: number; charge?: number }): Changes {
107
104
  return {
108
105
  [`${settlement}-net`]: { type: "add" as const, amount: amounts.net, status: "pending" as const },
109
106
  [`${settlement}-fee`]: { type: "add" as const, amount: amounts.fee, status: "pending" as const },
@@ -113,7 +110,7 @@ export namespace Changes {
113
110
  }
114
111
  }
115
112
  export function fromRefund(
116
- settlement: string | undefined, // FIXME: remove | undefined when we're sure we send the id
113
+ settlement: string,
117
114
  refund: Settlement.Entry.Creatable.Refund,
118
115
  charge: number | undefined,
119
116
  sum: Sum
package/Rule/Reserve.ts CHANGED
@@ -21,10 +21,7 @@ export namespace Reserve {
21
21
  }
22
22
  export const type = Base.type.extend<Reserve>({
23
23
  action: isly.string(Action.value),
24
- reserve: isly.object({
25
- percentage: isly.number(),
26
- fixed: Amount.type.optional(),
27
- }),
24
+ reserve: isly.object({ percentage: isly.number(), fixed: Amount.type.optional() }),
28
25
  })
29
26
 
30
27
  export interface Api extends Base {
@@ -63,11 +60,7 @@ export namespace Reserve {
63
60
  macros?: Record<string, selectively.Definition>,
64
61
  table: Exchange.Rates = {}
65
62
  ): { outcomes: Reserve[]; notes: Note[]; reserve: number } {
66
- const result: ReturnType<typeof evaluate> = {
67
- outcomes: [],
68
- notes: [],
69
- reserve: 0,
70
- }
63
+ const result: ReturnType<typeof evaluate> = { outcomes: [], notes: [], reserve: 0 }
71
64
  const now = isoly.DateTime.now()
72
65
  if (
73
66
  state.transaction.stage == "initiate" &&
@@ -13,7 +13,6 @@ export type Transaction = ModelTransaction.Creatable.Resolved & {
13
13
  total: number
14
14
  amount: number
15
15
  charge?: { current: number; total: number }
16
- reserve?: number
17
16
  }
18
17
  }
19
18
  export namespace Transaction {
@@ -31,7 +30,7 @@ export namespace Transaction {
31
30
  transaction.currency,
32
31
  transaction.state?.transaction.original.total ??
33
32
  (typeof transaction.amount == "number" ? transaction.amount : transaction.amount.total),
34
- stage === "finalize" ? transaction.state?.transaction.original.reserve ?? 0 : 0
33
+ stage === "finalize" ? transaction.state?.transaction.original.charge?.total ?? 0 : 0
35
34
  ),
36
35
  ]
37
36
  : [transaction.amount, transaction.amount]
package/Rule/index.ts CHANGED
@@ -2,6 +2,7 @@ import { selectively } from "selectively"
2
2
  import { isly } from "isly"
3
3
  import { Exchange } from "../Exchange"
4
4
  import { Realm } from "../Realm"
5
+ import type { Note } from "../Transaction/Note"
5
6
  import { Base as RuleBase } from "./Base"
6
7
  import { Charge as RuleCharge } from "./Charge"
7
8
  import { control as ruleControl } from "./control"
@@ -63,30 +64,32 @@ export namespace Rule {
63
64
  score: [],
64
65
  reserve: [],
65
66
  }
67
+ const notes: Note[] = []
66
68
  const { other, chargers, scorers, reservers } = sort(rules, state)
67
69
  const scored = Score.evaluate(scorers, state, macros)
70
+ notes.push(...scored.notes)
68
71
  outcomes.score.push(...scored.outcomes)
69
72
  state.transaction.risk = scored.risk
70
73
  const evaluated = Other.evaluate(other, state, macros)
74
+ notes.push(...evaluated.notes)
71
75
  outcomes.flag.push(...evaluated.outcomes.flag)
72
76
  outcomes.review.push(...evaluated.outcomes.review)
73
77
  outcomes.reject.push(...evaluated.outcomes.reject)
74
- const reserved = Reserve.evaluate(reservers, state, macros, table)
75
- outcomes.reserve.push(...reserved.outcomes)
76
- state.transaction.original.reserve = reserved.reserve
77
- state.transaction.original.total = Reserve.apply(reserved.reserve, state)
78
- const charged = Charge.evaluate(chargers, state, macros, table)
79
- outcomes.charge.push(...charged.outcomes)
80
- state.transaction.original.charge = charged.charge
81
- state.transaction.original.total = Charge.apply(charged.charge, state)
82
- const outcome = outcomes.reject.length > 0 ? "reject" : outcomes.review.length > 0 ? "review" : "approve"
83
- return {
84
- ...state,
85
- flags: [...evaluated.flags],
86
- notes: [...scored.notes, ...evaluated.notes, ...reserved.notes, ...charged.notes],
87
- outcomes,
88
- outcome,
78
+ if (state.transaction.stage == "initiate") {
79
+ const reserved = Reserve.evaluate(reservers, state, macros, table)
80
+ state.transaction.original.charge = { current: reserved.reserve, total: reserved.reserve }
81
+ state.transaction.original.total = Reserve.apply(reserved.reserve, state)
82
+ outcomes.reserve.push(...reserved.outcomes)
83
+ notes.push(...reserved.notes)
84
+ } else if (state.transaction.stage == "finalize") {
85
+ const charged = Charge.evaluate(chargers, state, macros, table)
86
+ outcomes.charge.push(...charged.outcomes)
87
+ state.transaction.original.charge = charged.charge
88
+ state.transaction.original.total = Charge.apply(charged.charge, state)
89
+ notes.push(...charged.notes)
89
90
  }
91
+ const outcome = outcomes.reject.length > 0 ? "reject" : outcomes.review.length > 0 ? "review" : "approve"
92
+ return { ...state, flags: [...evaluated.flags], notes, outcomes, outcome }
90
93
  }
91
94
  function sort(
92
95
  rules: Rule[],
@@ -0,0 +1,41 @@
1
+ import { isoly } from "isoly"
2
+ import { isly } from "isly"
3
+ import type { Rule } from "../Rule"
4
+ import { Exchange } from "./Exchange"
5
+
6
+ export interface Amount {
7
+ original: number
8
+ charge: number
9
+ total: number
10
+ exchange?: Exchange
11
+ }
12
+ export namespace Amount {
13
+ export const type = isly.object<Amount>({
14
+ original: isly.number(),
15
+ charge: isly.number(),
16
+ total: isly.number(),
17
+ exchange: Exchange.type.optional(),
18
+ })
19
+ export function fromState(state: Rule.State): Amount {
20
+ const sign = ["outbound", "authorization", "capture"].some(direction => direction == state.transaction.kind)
21
+ ? -1
22
+ : 1
23
+ return {
24
+ original: sign * state.transaction.original.amount,
25
+ charge: sign * (state.transaction.original.charge?.total ?? 0),
26
+ total: sign * state.transaction.original.total,
27
+ exchange: state?.transaction.exchange ?? state.authorization?.exchange,
28
+ }
29
+ }
30
+
31
+ export function change(
32
+ currency: isoly.Currency,
33
+ amount: Amount,
34
+ change: number,
35
+ type: Exclude<keyof Amount, "total" | "exchange">
36
+ ): Amount {
37
+ amount[type] = isoly.Currency.add(currency, amount[type], change)
38
+ amount.total = isoly.Currency.add(currency, amount.total, change)
39
+ return amount
40
+ }
41
+ }
@@ -7,6 +7,7 @@ import { Rail } from "../Rail"
7
7
  import { Report } from "../Report"
8
8
  import type { Rule } from "../Rule"
9
9
  import { Settlement } from "../Settlement"
10
+ import { Amount as TransactionAmount } from "./Amount"
10
11
  import { Creatable as TransactionCreatable } from "./Creatable"
11
12
  import { Exchange as TransactionExchange } from "./Exchange"
12
13
  import { Note as TransactionNote } from "./Note"
@@ -44,58 +45,7 @@ export interface Transaction {
44
45
  }
45
46
  export namespace Transaction {
46
47
  export import Exchange = TransactionExchange
47
- export type Amount = { original: number; reserved: number; charge: number; total: number; exchange?: Exchange }
48
- export namespace Amount {
49
- export const type = isly.object<Amount>({
50
- original: isly.number(),
51
- reserved: isly.number(),
52
- charge: isly.number(),
53
- total: isly.number(),
54
- exchange: Exchange.type.optional(),
55
- })
56
- export function fromState(state: Rule.State): Amount {
57
- const sign = ["outbound", "authorization", "capture"].some(direction => direction == state.transaction.kind)
58
- ? -1
59
- : 1
60
- return {
61
- original: sign * state.transaction.original.amount,
62
- reserved: sign * (state.transaction.original.reserve ?? 0),
63
- charge: sign * (state.transaction.original.charge?.total ?? 0),
64
- total: sign * state.transaction.original.total,
65
- exchange: state?.transaction.exchange ?? state.authorization?.exchange,
66
- }
67
- }
68
- export function fromOperations(
69
- transaction: Transaction | Transaction.Creatable,
70
- operations: Operation[],
71
- state?: Rule.State
72
- ): Amount {
73
- const stateAmount = state && fromState(state)
74
- const changes = Operation.sum(operations)
75
- const reserved = isoly.Currency.add(
76
- transaction.currency,
77
- changes["reserved-incoming"] ?? 0,
78
- changes["reserved-outgoing"] ?? 0
79
- )
80
- return {
81
- original: typeof transaction.amount == "number" ? transaction.amount : transaction.amount.original,
82
- reserved,
83
- charge: stateAmount?.charge ?? 0,
84
- total: changes.available ?? reserved ?? 0,
85
- exchange: state?.transaction.exchange ?? state?.authorization?.exchange,
86
- }
87
- }
88
- export function change(
89
- currency: isoly.Currency,
90
- amount: Amount,
91
- change: number,
92
- type: Exclude<keyof Amount, "total" | "exchange">
93
- ): Amount {
94
- amount[type] = isoly.Currency.add(currency, amount[type], change)
95
- amount.total = isoly.Currency.add(currency, amount.total, change)
96
- return amount
97
- }
98
- }
48
+ export import Amount = TransactionAmount
99
49
  export const types = ["card", "internal", "external", "system"] as const
100
50
  export type Types = typeof types[number]
101
51
  export const directions = ["inbound", "outbound"] as const
@@ -137,7 +87,25 @@ export namespace Transaction {
137
87
  risk: isly.number().optional(),
138
88
  state: isly.any().optional(),
139
89
  })
140
-
90
+ export function amountFromOperations(
91
+ transaction: Transaction | Transaction.Creatable,
92
+ operations: Operation[],
93
+ state?: Rule.State
94
+ ): Amount {
95
+ const stateAmount = state && Amount.fromState(state)
96
+ const changes = Operation.sum(operations)
97
+ const reserved = isoly.Currency.add(
98
+ transaction.currency,
99
+ changes["reserved-incoming"] ?? 0,
100
+ changes["reserved-outgoing"] ?? 0
101
+ )
102
+ return {
103
+ original: typeof transaction.amount == "number" ? transaction.amount : transaction.amount.original,
104
+ charge: stateAmount?.charge ?? 0,
105
+ total: changes.available ?? reserved ?? 0,
106
+ exchange: state?.transaction.exchange ?? state?.authorization?.exchange,
107
+ }
108
+ }
141
109
  export interface Legacy extends Omit<Transaction, "amount"> {
142
110
  amount: number
143
111
  }
@@ -154,7 +122,6 @@ export namespace Transaction {
154
122
  transaction.state?.transaction.original.amount ??
155
123
  isoly.Currency.subtract(transaction.currency, transaction.amount, transaction.charge ?? 0),
156
124
  charge: transaction.state?.transaction.original.charge?.total ?? transaction.charge ?? 0,
157
- reserved: transaction.state?.transaction.original.reserve ?? 0,
158
125
  total: transaction.state?.transaction.original.total ?? transaction.amount,
159
126
  },
160
127
  }
@@ -232,7 +199,7 @@ export namespace Transaction {
232
199
  ): Transaction {
233
200
  return {
234
201
  ...creatable,
235
- amount: { original: creatable.amount, reserved: 0, charge: 0, total: creatable.amount },
202
+ amount: { original: creatable.amount, charge: 0, total: creatable.amount },
236
203
  type: getType(creatable.counterpart, account.name),
237
204
  direction: "inbound",
238
205
  organization: account.organization,
@@ -258,7 +225,7 @@ export namespace Transaction {
258
225
  ): Transaction {
259
226
  return {
260
227
  ...creatable,
261
- amount: { original: 0, reserved: 0, charge: 0, total: 0 },
228
+ amount: { original: 0, charge: 0, total: 0 },
262
229
  type: getType(creatable.counterpart, account.name),
263
230
  direction: "inbound",
264
231
  organization: account.organization,
@@ -292,7 +259,7 @@ export namespace Transaction {
292
259
  name: account.name,
293
260
  organization: account.organization,
294
261
  },
295
- amount: { original: 0, reserved: 0, charge: 0, total: 0 },
262
+ amount: { original: 0, charge: 0, total: 0 },
296
263
  type: "internal",
297
264
  direction: "inbound",
298
265
  organization: account.organization,
@@ -37,10 +37,10 @@ export declare namespace Changes {
37
37
  const type: isly.Type<"available" | "reserved-incoming" | "reserved-outgoing" | "reserved-buffer">;
38
38
  }
39
39
  }
40
- function fromCapture(settlement: string | undefined, amounts: {
40
+ function fromCapture(settlement: string, amounts: {
41
41
  net: number;
42
42
  fee: number;
43
43
  charge?: number;
44
44
  }): Changes;
45
- function fromRefund(settlement: string | undefined, refund: Settlement.Entry.Creatable.Refund, charge: number | undefined, sum: Sum): Changes;
45
+ function fromRefund(settlement: string, refund: Settlement.Entry.Creatable.Refund, charge: number | undefined, sum: Sum): Changes;
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Changes.js","sourceRoot":"","sources":["../../../Operation/Changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Changes.js","sourceRoot":"","sources":["../../../Operation/Changes.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,7 @@ var Reserve;
16
16
  })(Action = Reserve.Action || (Reserve.Action = {}));
17
17
  Reserve.type = Base_1.Base.type.extend({
18
18
  action: isly_1.isly.string(Action.value),
19
- reserve: isly_1.isly.object({
20
- percentage: isly_1.isly.number(),
21
- fixed: Amount_1.Amount.type.optional(),
22
- }),
19
+ reserve: isly_1.isly.object({ percentage: isly_1.isly.number(), fixed: Amount_1.Amount.type.optional() }),
23
20
  });
24
21
  let Api;
25
22
  (function (Api) {
@@ -44,11 +41,7 @@ var Reserve;
44
41
  }
45
42
  Reserve.fromApi = fromApi;
46
43
  function evaluate(rules, state, macros, table = {}) {
47
- const result = {
48
- outcomes: [],
49
- notes: [],
50
- reserve: 0,
51
- };
44
+ const result = { outcomes: [], notes: [], reserve: 0 };
52
45
  const now = isoly_1.isoly.DateTime.now();
53
46
  if (state.transaction.stage == "initiate" &&
54
47
  ["authorization", "outbound"].some(kind => kind == state.transaction.kind) &&
@@ -1 +1 @@
1
- {"version":3,"file":"Reserve.js","sourceRoot":"","sources":["../../../Rule/Reserve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reserve.js","sourceRoot":"","sources":["../../../Rule/Reserve.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,6 @@ export type Transaction = ModelTransaction.Creatable.Resolved & {
15
15
  current: number;
16
16
  total: number;
17
17
  };
18
- reserve?: number;
19
18
  };
20
19
  };
21
20
  export declare namespace Transaction {
@@ -10,7 +10,7 @@ var Transaction;
10
10
  ? [
11
11
  transaction.state?.transaction.original.amount ?? transaction.amount,
12
12
  isoly_1.isoly.Currency.subtract(transaction.currency, transaction.state?.transaction.original.total ??
13
- (typeof transaction.amount == "number" ? transaction.amount : transaction.amount.total), stage === "finalize" ? transaction.state?.transaction.original.reserve ?? 0 : 0),
13
+ (typeof transaction.amount == "number" ? transaction.amount : transaction.amount.total), stage === "finalize" ? transaction.state?.transaction.original.charge?.total ?? 0 : 0),
14
14
  ]
15
15
  : [transaction.amount, transaction.amount];
16
16
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../Rule/State/Transaction.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,mDAAmE;AAiBnE,IAAiB,WAAW,CAmD3B;AAnDD,WAAiB,WAAW;IAC3B,SAAgB,IAAI,CACnB,WAAmB,EACnB,WAAmE,EACnE,IAAoB,EACpB,KAA8B;QAE9B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACpB,OAAO,IAAI,WAAW;YACrB,CAAC,CAAC;gBACA,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM;gBACpE,aAAK,CAAC,QAAQ,CAAC,QAAQ,CACtB,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK;oBAC5C,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EACxF,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/E;aACA;YACH,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QAC5C,OAAO;YACN,GAAG,WAAW;YACd,KAAK;YACL,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACnE,IAAI,EAAE,yBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC;YACpE,QAAQ,EAAE;gBACT,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;aAC/D;SACD,CAAA;IACF,CAAC;IA9Be,gBAAI,OA8BnB,CAAA;IACD,SAAgB,kBAAkB,CACjC,WAAmB,EACnB,WAA+D,EAC/D,IAAoB,EACpB,KAA8B;QAE9B,OAAO;YACN,GAAG,WAAW;YACd,KAAK;YACL,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;YACvG,IAAI,EAAE,yBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC;YACpE,QAAQ,EAAE;gBACT,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC1G,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;aACtG;SACD,CAAA;IACF,CAAC;IAlBe,8BAAkB,qBAkBjC,CAAA;AACF,CAAC,EAnDgB,WAAW,2BAAX,WAAW,QAmD3B"}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../Rule/State/Transaction.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,mDAAmE;AAgBnE,IAAiB,WAAW,CAmD3B;AAnDD,WAAiB,WAAW;IAC3B,SAAgB,IAAI,CACnB,WAAmB,EACnB,WAAmE,EACnE,IAAoB,EACpB,KAA8B;QAE9B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACpB,OAAO,IAAI,WAAW;YACrB,CAAC,CAAC;gBACA,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM;gBACpE,aAAK,CAAC,QAAQ,CAAC,QAAQ,CACtB,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK;oBAC5C,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EACxF,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACrF;aACA;YACH,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QAC5C,OAAO;YACN,GAAG,WAAW;YACd,KAAK;YACL,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACnE,IAAI,EAAE,yBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC;YACpE,QAAQ,EAAE;gBACT,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;aAC/D;SACD,CAAA;IACF,CAAC;IA9Be,gBAAI,OA8BnB,CAAA;IACD,SAAgB,kBAAkB,CACjC,WAAmB,EACnB,WAA+D,EAC/D,IAAoB,EACpB,KAA8B;QAE9B,OAAO;YACN,GAAG,WAAW;YACd,KAAK;YACL,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;YACvG,IAAI,EAAE,yBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC;YACpE,QAAQ,EAAE;gBACT,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC1G,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;aACtG;SACD,CAAA;IACF,CAAC;IAlBe,8BAAkB,qBAkBjC,CAAA;AACF,CAAC,EAnDgB,WAAW,2BAAX,WAAW,QAmD3B"}
@@ -53,30 +53,33 @@ var Rule;
53
53
  score: [],
54
54
  reserve: [],
55
55
  };
56
+ const notes = [];
56
57
  const { other, chargers, scorers, reservers } = sort(rules, state);
57
58
  const scored = Rule.Score.evaluate(scorers, state, macros);
59
+ notes.push(...scored.notes);
58
60
  outcomes.score.push(...scored.outcomes);
59
61
  state.transaction.risk = scored.risk;
60
62
  const evaluated = Rule.Other.evaluate(other, state, macros);
63
+ notes.push(...evaluated.notes);
61
64
  outcomes.flag.push(...evaluated.outcomes.flag);
62
65
  outcomes.review.push(...evaluated.outcomes.review);
63
66
  outcomes.reject.push(...evaluated.outcomes.reject);
64
- const reserved = Rule.Reserve.evaluate(reservers, state, macros, table);
65
- outcomes.reserve.push(...reserved.outcomes);
66
- state.transaction.original.reserve = reserved.reserve;
67
- state.transaction.original.total = Rule.Reserve.apply(reserved.reserve, state);
68
- const charged = Rule.Charge.evaluate(chargers, state, macros, table);
69
- outcomes.charge.push(...charged.outcomes);
70
- state.transaction.original.charge = charged.charge;
71
- state.transaction.original.total = Rule.Charge.apply(charged.charge, state);
67
+ if (state.transaction.stage == "initiate") {
68
+ const reserved = Rule.Reserve.evaluate(reservers, state, macros, table);
69
+ state.transaction.original.charge = { current: reserved.reserve, total: reserved.reserve };
70
+ state.transaction.original.total = Rule.Reserve.apply(reserved.reserve, state);
71
+ outcomes.reserve.push(...reserved.outcomes);
72
+ notes.push(...reserved.notes);
73
+ }
74
+ else if (state.transaction.stage == "finalize") {
75
+ const charged = Rule.Charge.evaluate(chargers, state, macros, table);
76
+ outcomes.charge.push(...charged.outcomes);
77
+ state.transaction.original.charge = charged.charge;
78
+ state.transaction.original.total = Rule.Charge.apply(charged.charge, state);
79
+ notes.push(...charged.notes);
80
+ }
72
81
  const outcome = outcomes.reject.length > 0 ? "reject" : outcomes.review.length > 0 ? "review" : "approve";
73
- return {
74
- ...state,
75
- flags: [...evaluated.flags],
76
- notes: [...scored.notes, ...evaluated.notes, ...reserved.notes, ...charged.notes],
77
- outcomes,
78
- outcome,
79
- };
82
+ return { ...state, flags: [...evaluated.flags], notes, outcomes, outcome };
80
83
  }
81
84
  Rule.evaluate = evaluate;
82
85
  function sort(rules, state) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Rule/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Rule/index.ts"],"names":[],"mappings":";;;AACA,+BAA2B;AAI3B,iCAAyC;AACzC,qCAA+C;AAC/C,uCAAkD;AAClD,mCAA4C;AAC5C,uCAAkD;AAClD,mCAA4C;AAC5C,mCAA4C;AAC5C,iCAAyC;AAGzC,IAAiB,IAAI,CAuGpB;AAvGD,WAAiB,IAAI;IACN,UAAK,GAAG,aAAS,CAAA;IACjB,UAAK,GAAG,aAAS,CAAA;IACjB,WAAM,GAAG,eAAU,CAAA;IACnB,UAAK,GAAG,aAAS,CAAA;IACjB,YAAO,GAAG,iBAAW,CAAA;IACrB,SAAI,GAAG,WAAQ,CAAA;IACf,SAAI,GAAG,KAAA,IAAI,CAAC,IAAI,CAAA;IAChB,aAAQ,GAAG,KAAA,IAAI,CAAC,QAAQ,CAAA;IACzB,YAAO,GAAG,iBAAW,CAAA;IAElC,IAAiB,GAAG,CAOnB;IAPD,WAAiB,GAAG;QACN,QAAI,GAAG,WAAI,CAAC,KAAK,CAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CACrB,CAAA;IACF,CAAC,EAPgB,GAAG,GAAH,QAAG,KAAH,QAAG,QAOnB;IACD,SAAgB,OAAO,CAAC,IAAc,EAAE,KAAY;QACnD,OAAO,IAAI,CAAC,MAAM,IAAI,QAAQ;YAC7B,CAAC,CAAC,KAAA,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS;gBAC1B,CAAC,CAAC,KAAA,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC9B,CAAC,CAAC,IAAI,CAAA;IACR,CAAC;IANe,YAAO,UAMtB,CAAA;IAED,IAAiB,MAAM,CAQtB;IARD,WAAiB,MAAM;QACT,aAAM,GAAG;YACrB,GAAG,KAAA,KAAK,CAAC,MAAM,CAAC,MAAM;YACtB,KAAA,KAAK,CAAC,MAAM,CAAC,KAAK;YAClB,KAAA,MAAM,CAAC,MAAM,CAAC,KAAK;YACnB,KAAA,OAAO,CAAC,MAAM,CAAC,KAAK;SACX,CAAA;QACG,WAAI,GAAG,WAAI,CAAC,MAAM,CAAS,OAAA,MAAM,CAAC,CAAA;IAChD,CAAC,EARgB,MAAM,GAAN,WAAM,KAAN,WAAM,QAQtB;IACY,SAAI,GAAG,WAAQ,CAAA;IAC5B,SAAgB,QAAQ,CACvB,KAAa,EACb,KAAgB,EAChB,MAA+C,EAC/C,QAAwB,EAAE;QAE1B,MAAM,QAAQ,GAAgC;YAC7C,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;SACX,CAAA;QACD,MAAM,KAAK,GAAW,EAAE,CAAA;QACxB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,KAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACrD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;QACvC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACpC,MAAM,SAAS,GAAG,KAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACtD,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC9C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAClD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,KAAA,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;YAClE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;YAC1F,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACzE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,KAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;YAC/D,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;YACzC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;YAClD,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAA,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACtE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;QACzG,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC3E,CAAC;IAxCe,aAAQ,WAwCvB,CAAA;IACD,SAAS,IAAI,CACZ,KAAa,EACb,KAAY;QAEZ,OAAO,KAAK,CAAC,MAAM,CAClB,CAAC,CAA0B,EAAE,IAAI,EAAE,EAAE;YACpC,IAAI,KAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;gBAC7F,IAAI,CAAC,MAAM,IAAI,OAAO;oBACrB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtB,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ;wBACzB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;wBACvB,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS;4BAC1B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;4BACxB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,OAAO,CAAC,CAAA;QACT,CAAC,EACD,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CACvD,CAAA;IACF,CAAC;IACD,SAAgB,QAAQ,CAAC,IAAU;QAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAFe,aAAQ,WAEvB,CAAA;IACD,SAAgB,UAAU,CAAC,IAAU;QACpC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACjE,CAAC;IAFe,eAAU,aAEzB,CAAA;AACF,CAAC,EAvGgB,IAAI,oBAAJ,IAAI,QAuGpB"}
@@ -0,0 +1,14 @@
1
+ import { isoly } from "isoly";
2
+ import type { Rule } from "../Rule";
3
+ import { Exchange } from "./Exchange";
4
+ export interface Amount {
5
+ original: number;
6
+ charge: number;
7
+ total: number;
8
+ exchange?: Exchange;
9
+ }
10
+ export declare namespace Amount {
11
+ const type: import("isly/dist/cjs/object").IslyObject<Amount, object>;
12
+ function fromState(state: Rule.State): Amount;
13
+ function change(currency: isoly.Currency, amount: Amount, change: number, type: Exclude<keyof Amount, "total" | "exchange">): Amount;
14
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Amount = void 0;
4
+ const isoly_1 = require("isoly");
5
+ const isly_1 = require("isly");
6
+ const Exchange_1 = require("./Exchange");
7
+ var Amount;
8
+ (function (Amount) {
9
+ Amount.type = isly_1.isly.object({
10
+ original: isly_1.isly.number(),
11
+ charge: isly_1.isly.number(),
12
+ total: isly_1.isly.number(),
13
+ exchange: Exchange_1.Exchange.type.optional(),
14
+ });
15
+ function fromState(state) {
16
+ const sign = ["outbound", "authorization", "capture"].some(direction => direction == state.transaction.kind)
17
+ ? -1
18
+ : 1;
19
+ return {
20
+ original: sign * state.transaction.original.amount,
21
+ charge: sign * (state.transaction.original.charge?.total ?? 0),
22
+ total: sign * state.transaction.original.total,
23
+ exchange: state?.transaction.exchange ?? state.authorization?.exchange,
24
+ };
25
+ }
26
+ Amount.fromState = fromState;
27
+ function change(currency, amount, change, type) {
28
+ amount[type] = isoly_1.isoly.Currency.add(currency, amount[type], change);
29
+ amount.total = isoly_1.isoly.Currency.add(currency, amount.total, change);
30
+ return amount;
31
+ }
32
+ Amount.change = change;
33
+ })(Amount || (exports.Amount = Amount = {}));
34
+ //# sourceMappingURL=Amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Amount.js","sourceRoot":"","sources":["../../../Transaction/Amount.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,+BAA2B;AAE3B,yCAAqC;AAQrC,IAAiB,MAAM,CA6BtB;AA7BD,WAAiB,MAAM;IACT,WAAI,GAAG,WAAI,CAAC,MAAM,CAAS;QACvC,QAAQ,EAAE,WAAI,CAAC,MAAM,EAAE;QACvB,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,mBAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAA;IACF,SAAgB,SAAS,CAAC,KAAiB;QAC1C,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YAC3G,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,CAAA;QACJ,OAAO;YACN,QAAQ,EAAE,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM;YAClD,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;YAC9D,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK;YAC9C,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,IAAI,KAAK,CAAC,aAAa,EAAE,QAAQ;SACtE,CAAA;IACF,CAAC;IAVe,gBAAS,YAUxB,CAAA;IAED,SAAgB,MAAM,CACrB,QAAwB,EACxB,MAAc,EACd,MAAc,EACd,IAAiD;QAEjD,MAAM,CAAC,IAAI,CAAC,GAAG,aAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QACjE,MAAM,CAAC,KAAK,GAAG,aAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACjE,OAAO,MAAM,CAAA;IACd,CAAC;IATe,aAAM,SASrB,CAAA;AACF,CAAC,EA7BgB,MAAM,sBAAN,MAAM,QA6BtB"}
@@ -5,6 +5,7 @@ import { Operation } from "../Operation";
5
5
  import { Rail } from "../Rail";
6
6
  import type { Rule } from "../Rule";
7
7
  import { Settlement } from "../Settlement";
8
+ import { Amount as TransactionAmount } from "./Amount";
8
9
  import { Creatable as TransactionCreatable } from "./Creatable";
9
10
  import { Exchange as TransactionExchange } from "./Exchange";
10
11
  import { Note as TransactionNote } from "./Note";
@@ -47,19 +48,7 @@ export interface Transaction {
47
48
  }
48
49
  export declare namespace Transaction {
49
50
  export import Exchange = TransactionExchange;
50
- type Amount = {
51
- original: number;
52
- reserved: number;
53
- charge: number;
54
- total: number;
55
- exchange?: Exchange;
56
- };
57
- namespace Amount {
58
- const type: import("isly/dist/cjs/object").IslyObject<Amount, object>;
59
- function fromState(state: Rule.State): Amount;
60
- function fromOperations(transaction: Transaction | Transaction.Creatable, operations: Operation[], state?: Rule.State): Amount;
61
- function change(currency: isoly.Currency, amount: Amount, change: number, type: Exclude<keyof Amount, "total" | "exchange">): Amount;
62
- }
51
+ export import Amount = TransactionAmount;
63
52
  const types: readonly ["card", "internal", "external", "system"];
64
53
  type Types = typeof types[number];
65
54
  const directions: readonly ["inbound", "outbound"];
@@ -71,6 +60,7 @@ export declare namespace Transaction {
71
60
  export import Status = TransactionStatus;
72
61
  export import Statistics = TransactionStatistics;
73
62
  const type: import("isly/dist/cjs/object").IslyObject<Transaction, object>;
63
+ function amountFromOperations(transaction: Transaction | Transaction.Creatable, operations: Operation[], state?: Rule.State): Amount;
74
64
  interface Legacy extends Omit<Transaction, "amount"> {
75
65
  amount: number;
76
66
  }