@pax2pay/model-banking 0.1.271 → 0.1.272
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/Transaction/index.ts
CHANGED
|
@@ -16,6 +16,8 @@ export interface Transaction extends Transaction.Creatable {
|
|
|
16
16
|
accountId: string
|
|
17
17
|
accountName?: string
|
|
18
18
|
account: Rail.Address
|
|
19
|
+
type?: Transaction.Types
|
|
20
|
+
direction?: Transaction.Direction
|
|
19
21
|
readonly id: cryptly.Identifier
|
|
20
22
|
readonly reference?: Transaction.Reference
|
|
21
23
|
readonly posted: isoly.DateTime
|
|
@@ -35,6 +37,10 @@ export interface Transaction extends Transaction.Creatable {
|
|
|
35
37
|
risk?: number
|
|
36
38
|
}
|
|
37
39
|
export namespace Transaction {
|
|
40
|
+
export const types = ["card", "internal", "external", "system"] as const
|
|
41
|
+
export type Types = typeof types[number]
|
|
42
|
+
export const directions = ["inbound", "outbound"] as const
|
|
43
|
+
export type Direction = typeof directions[number]
|
|
38
44
|
export type Creatable = TransactionCreatable
|
|
39
45
|
export const Creatable = TransactionCreatable
|
|
40
46
|
export type Collect = TransactionCollect
|
|
@@ -58,6 +64,8 @@ export namespace Transaction {
|
|
|
58
64
|
accountId: isly.string(),
|
|
59
65
|
accountName: isly.string().optional(),
|
|
60
66
|
account: isly.fromIs("Rail", Rail.Address.is),
|
|
67
|
+
type: isly.string(types).optional(),
|
|
68
|
+
direction: isly.string(directions).optional(),
|
|
61
69
|
id: isly.fromIs("cryptly.Identifier", cryptly.Identifier.is).readonly(),
|
|
62
70
|
reference: Reference.type.readonly().optional(),
|
|
63
71
|
posted: isly.string(),
|
|
@@ -97,6 +105,8 @@ export namespace Transaction {
|
|
|
97
105
|
const id = Identifier.generate()
|
|
98
106
|
return {
|
|
99
107
|
...transaction,
|
|
108
|
+
type: getType(transaction, accountName),
|
|
109
|
+
direction: getDirection(transaction),
|
|
100
110
|
organization,
|
|
101
111
|
accountId,
|
|
102
112
|
accountName,
|
|
@@ -128,6 +138,8 @@ export namespace Transaction {
|
|
|
128
138
|
const id = Identifier.generate()
|
|
129
139
|
return {
|
|
130
140
|
...transaction,
|
|
141
|
+
type: getType(transaction, accountName),
|
|
142
|
+
direction: "inbound",
|
|
131
143
|
organization,
|
|
132
144
|
accountId,
|
|
133
145
|
accountName,
|
|
@@ -158,4 +170,33 @@ export namespace Transaction {
|
|
|
158
170
|
transaction.flags = Array.from(current)
|
|
159
171
|
transaction.oldFlags = Array.from(old)
|
|
160
172
|
}
|
|
173
|
+
export function getType(transaction: TransactionCreatable, accountName: string): Types {
|
|
174
|
+
let result: Types
|
|
175
|
+
if (accountName.startsWith("settlement-") || accountName.startsWith("fee-"))
|
|
176
|
+
result = "system"
|
|
177
|
+
else if (transaction.counterpart.type == "internal")
|
|
178
|
+
result = "internal"
|
|
179
|
+
else if (transaction.counterpart.type == "card")
|
|
180
|
+
result = "card"
|
|
181
|
+
else
|
|
182
|
+
result = "external"
|
|
183
|
+
return result
|
|
184
|
+
}
|
|
185
|
+
export function getDirection(transaction: TransactionCreatable): Direction {
|
|
186
|
+
let result: Direction
|
|
187
|
+
if (transaction.amount < 0)
|
|
188
|
+
result = "outbound"
|
|
189
|
+
else
|
|
190
|
+
result = "inbound"
|
|
191
|
+
return result
|
|
192
|
+
}
|
|
193
|
+
export function updateTypeAndDirection(
|
|
194
|
+
transaction: Transaction
|
|
195
|
+
): Transaction & { type: Types; direction: Direction } {
|
|
196
|
+
return {
|
|
197
|
+
...transaction,
|
|
198
|
+
type: transaction.type ?? getType(transaction, transaction.accountName ?? ""),
|
|
199
|
+
direction: transaction.direction ?? getDirection(transaction),
|
|
200
|
+
}
|
|
201
|
+
}
|
|
161
202
|
}
|
|
@@ -14,6 +14,8 @@ export interface Transaction extends Transaction.Creatable {
|
|
|
14
14
|
accountId: string;
|
|
15
15
|
accountName?: string;
|
|
16
16
|
account: Rail.Address;
|
|
17
|
+
type?: Transaction.Types;
|
|
18
|
+
direction?: Transaction.Direction;
|
|
17
19
|
readonly id: cryptly.Identifier;
|
|
18
20
|
readonly reference?: Transaction.Reference;
|
|
19
21
|
readonly posted: isoly.DateTime;
|
|
@@ -33,6 +35,10 @@ export interface Transaction extends Transaction.Creatable {
|
|
|
33
35
|
risk?: number;
|
|
34
36
|
}
|
|
35
37
|
export declare namespace Transaction {
|
|
38
|
+
const types: readonly ["card", "internal", "external", "system"];
|
|
39
|
+
type Types = typeof types[number];
|
|
40
|
+
const directions: readonly ["inbound", "outbound"];
|
|
41
|
+
type Direction = typeof directions[number];
|
|
36
42
|
type Creatable = TransactionCreatable;
|
|
37
43
|
const Creatable: typeof TransactionCreatable;
|
|
38
44
|
type Collect = TransactionCollect;
|
|
@@ -67,4 +73,10 @@ export declare namespace Transaction {
|
|
|
67
73
|
}): Transaction;
|
|
68
74
|
function isIdentifier(value: string | any): value is string;
|
|
69
75
|
function flag(transaction: Transaction, flags: string[] | undefined): void;
|
|
76
|
+
function getType(transaction: TransactionCreatable, accountName: string): Types;
|
|
77
|
+
function getDirection(transaction: TransactionCreatable): Direction;
|
|
78
|
+
function updateTypeAndDirection(transaction: Transaction): Transaction & {
|
|
79
|
+
type: Types;
|
|
80
|
+
direction: Direction;
|
|
81
|
+
};
|
|
70
82
|
}
|
|
@@ -12,6 +12,8 @@ import { Reference as TransactionReference } from "./Reference";
|
|
|
12
12
|
import { Status as TransactionStatus } from "./Status";
|
|
13
13
|
export var Transaction;
|
|
14
14
|
(function (Transaction) {
|
|
15
|
+
Transaction.types = ["card", "internal", "external", "system"];
|
|
16
|
+
Transaction.directions = ["inbound", "outbound"];
|
|
15
17
|
Transaction.Creatable = TransactionCreatable;
|
|
16
18
|
Transaction.Collect = TransactionCollect;
|
|
17
19
|
Transaction.Incoming = TransactionIncoming;
|
|
@@ -23,6 +25,8 @@ export var Transaction;
|
|
|
23
25
|
accountId: isly.string(),
|
|
24
26
|
accountName: isly.string().optional(),
|
|
25
27
|
account: isly.fromIs("Rail", Rail.Address.is),
|
|
28
|
+
type: isly.string(Transaction.types).optional(),
|
|
29
|
+
direction: isly.string(Transaction.directions).optional(),
|
|
26
30
|
id: isly.fromIs("cryptly.Identifier", cryptly.Identifier.is).readonly(),
|
|
27
31
|
reference: Transaction.Reference.type.readonly().optional(),
|
|
28
32
|
posted: isly.string(),
|
|
@@ -48,6 +52,8 @@ export var Transaction;
|
|
|
48
52
|
const id = Identifier.generate();
|
|
49
53
|
return {
|
|
50
54
|
...transaction,
|
|
55
|
+
type: getType(transaction, accountName),
|
|
56
|
+
direction: getDirection(transaction),
|
|
51
57
|
organization,
|
|
52
58
|
accountId,
|
|
53
59
|
accountName,
|
|
@@ -69,6 +75,8 @@ export var Transaction;
|
|
|
69
75
|
const id = Identifier.generate();
|
|
70
76
|
return {
|
|
71
77
|
...transaction,
|
|
78
|
+
type: getType(transaction, accountName),
|
|
79
|
+
direction: "inbound",
|
|
72
80
|
organization,
|
|
73
81
|
accountId,
|
|
74
82
|
accountName,
|
|
@@ -103,5 +111,35 @@ export var Transaction;
|
|
|
103
111
|
transaction.oldFlags = Array.from(old);
|
|
104
112
|
}
|
|
105
113
|
Transaction.flag = flag;
|
|
114
|
+
function getType(transaction, accountName) {
|
|
115
|
+
let result;
|
|
116
|
+
if (accountName.startsWith("settlement-") || accountName.startsWith("fee-"))
|
|
117
|
+
result = "system";
|
|
118
|
+
else if (transaction.counterpart.type == "internal")
|
|
119
|
+
result = "internal";
|
|
120
|
+
else if (transaction.counterpart.type == "card")
|
|
121
|
+
result = "card";
|
|
122
|
+
else
|
|
123
|
+
result = "external";
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
Transaction.getType = getType;
|
|
127
|
+
function getDirection(transaction) {
|
|
128
|
+
let result;
|
|
129
|
+
if (transaction.amount < 0)
|
|
130
|
+
result = "outbound";
|
|
131
|
+
else
|
|
132
|
+
result = "inbound";
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
135
|
+
Transaction.getDirection = getDirection;
|
|
136
|
+
function updateTypeAndDirection(transaction) {
|
|
137
|
+
return {
|
|
138
|
+
...transaction,
|
|
139
|
+
type: transaction.type ?? getType(transaction, transaction.accountName ?? ""),
|
|
140
|
+
direction: transaction.direction ?? getDirection(transaction),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
Transaction.updateTypeAndDirection = updateTypeAndDirection;
|
|
106
144
|
})(Transaction || (Transaction = {}));
|
|
107
145
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../","sources":["Transaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../","sources":["Transaction/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@ import { isly } from "isly";
|
|
|
2
2
|
export type Category = typeof Category.name[number];
|
|
3
3
|
export declare namespace Category {
|
|
4
4
|
const name: readonly ["safeguarded", "unsafe", "buffer", "other", "external"];
|
|
5
|
-
const type: isly.Type<"buffer" | "other" | "
|
|
5
|
+
const type: isly.Type<"buffer" | "other" | "external" | "safeguarded" | "unsafe">;
|
|
6
6
|
}
|