@pax2pay/model-banking 0.0.3 → 0.0.5

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 (62) hide show
  1. package/Account/Creatable.ts +8 -0
  2. package/Balances/index.ts +5 -8
  3. package/Balances/type.ts +7 -0
  4. package/Event/index.ts +34 -3
  5. package/Monitoring/Decision.ts +29 -0
  6. package/Monitoring/Reviewable.ts +38 -0
  7. package/Monitoring/index.ts +2 -0
  8. package/Operation/Creatable.ts +2 -8
  9. package/Operation/index.ts +0 -39
  10. package/Organization/Creatable.ts +12 -1
  11. package/Organization/index.ts +5 -7
  12. package/Rail/Type.ts +1 -1
  13. package/Rail/index.ts +19 -1
  14. package/Transaction/Creatable.ts +1 -1
  15. package/Transaction/index.ts +8 -4
  16. package/dist/Account/Creatable.d.ts +1 -0
  17. package/dist/Account/Creatable.js +7 -0
  18. package/dist/Account/Creatable.js.map +1 -1
  19. package/dist/Balances/index.d.ts +4 -5
  20. package/dist/Balances/index.js +3 -8
  21. package/dist/Balances/index.js.map +1 -1
  22. package/dist/Balances/type.d.ts +4 -0
  23. package/dist/Balances/type.js +8 -0
  24. package/dist/Balances/type.js.map +1 -0
  25. package/dist/Event/index.d.ts +9 -2
  26. package/dist/Event/index.js +39 -3
  27. package/dist/Event/index.js.map +1 -1
  28. package/dist/Monitoring/Decision.d.ts +17 -0
  29. package/dist/Monitoring/Decision.js +21 -0
  30. package/dist/Monitoring/Decision.js.map +1 -0
  31. package/dist/Monitoring/Reviewable.d.ts +19 -0
  32. package/dist/Monitoring/Reviewable.js +26 -0
  33. package/dist/Monitoring/Reviewable.js.map +1 -0
  34. package/dist/Monitoring/index.d.ts +2 -0
  35. package/dist/Monitoring/index.js +3 -0
  36. package/dist/Monitoring/index.js.map +1 -0
  37. package/dist/Operation/Creatable.d.ts +2 -4
  38. package/dist/Operation/Creatable.js +0 -8
  39. package/dist/Operation/Creatable.js.map +1 -1
  40. package/dist/Operation/index.d.ts +0 -3
  41. package/dist/Operation/index.js +0 -31
  42. package/dist/Operation/index.js.map +1 -1
  43. package/dist/Organization/Creatable.d.ts +5 -0
  44. package/dist/Organization/Creatable.js +8 -1
  45. package/dist/Organization/Creatable.js.map +1 -1
  46. package/dist/Organization/index.d.ts +1 -0
  47. package/dist/Organization/index.js +5 -5
  48. package/dist/Organization/index.js.map +1 -1
  49. package/dist/Rail/Type.d.ts +1 -1
  50. package/dist/Rail/index.d.ts +2 -1
  51. package/dist/Rail/index.js +18 -0
  52. package/dist/Rail/index.js.map +1 -1
  53. package/dist/Transaction/Creatable.js +1 -1
  54. package/dist/Transaction/Creatable.js.map +1 -1
  55. package/dist/Transaction/index.d.ts +2 -1
  56. package/dist/Transaction/index.js +6 -2
  57. package/dist/Transaction/index.js.map +1 -1
  58. package/dist/index.d.ts +1 -0
  59. package/dist/index.js +1 -0
  60. package/dist/index.js.map +1 -1
  61. package/index.ts +1 -0
  62. package/package.json +12 -12
@@ -6,4 +6,12 @@ export namespace Creatable {
6
6
  export function is(value: Creatable | any): value is Creatable {
7
7
  return typeof value == "object" && typeof value.name == "string"
8
8
  }
9
+ export function isPartial(value: Partial<Creatable> | any): value is Partial<Creatable> {
10
+ return (
11
+ value &&
12
+ typeof value == "object" &&
13
+ Object.entries(value).length > 0 &&
14
+ Object.entries(value).every(([k, v]) => k == "name" && typeof v == "string")
15
+ )
16
+ }
9
17
  }
package/Balances/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as isoly from "isoly"
2
+ import { BalanceEntry } from "./type"
2
3
 
3
- export type Balances = Partial<Record<isoly.Currency, Partial<Record<Balances.Entry, number>>>>
4
+ export type Balances = Partial<Record<isoly.Currency, Partial<Record<BalanceEntry, number>>>>
4
5
 
5
6
  export namespace Balances {
6
7
  export function is(value: Balances | any): value is Balances {
@@ -11,15 +12,11 @@ export namespace Balances {
11
12
  isoly.Currency.is(k) &&
12
13
  typeof v == "object" &&
13
14
  Object.entries(v as Record<string, unknown>).every(
14
- ([kInner, vInner]) => Balances.Entry.is(kInner) && typeof vInner == "number"
15
+ ([kInner, vInner]) => BalanceEntry.is(kInner) && typeof vInner == "number"
15
16
  )
16
17
  )
17
18
  )
18
19
  }
19
- export type Entry = "actual" | "reserved"
20
- export namespace Entry {
21
- export function is(value: any | Entry): value is Entry {
22
- return typeof value == "string" && (value == "actual" || value == "reserved")
23
- }
24
- }
20
+ export type Entry = BalanceEntry
21
+ export const Entry = BalanceEntry
25
22
  }
@@ -0,0 +1,7 @@
1
+ export type BalanceEntry = "actual" | "reserved"
2
+
3
+ export namespace BalanceEntry {
4
+ export function is(value: any | BalanceEntry): value is BalanceEntry {
5
+ return typeof value == "string" && (value == "actual" || value == "reserved")
6
+ }
7
+ }
package/Event/index.ts CHANGED
@@ -12,7 +12,7 @@ export interface Event {
12
12
  data: any
13
13
  }
14
14
 
15
- type Entity = "account" | "transaction" | "operation" | "rail" | "organization" | "authorization"
15
+ type Entity = "account" | "transaction" | "operation" | "rail" | "organization" | "authorization" | "supplier"
16
16
  export namespace Event {
17
17
  export namespace Account {
18
18
  export function created(account: modelAccount, organization: string): Event {
@@ -44,12 +44,12 @@ export namespace Event {
44
44
  data: transaction,
45
45
  }
46
46
  }
47
- export function settled(transaction: modelTransaction, organization: string, account: string): Event {
47
+ export function finalized(transaction: modelTransaction, organization: string, account: string): Event {
48
48
  return {
49
49
  organization: organization,
50
50
  account: account,
51
51
  entity: "transaction",
52
- action: "settled",
52
+ action: "finalized",
53
53
  data: transaction,
54
54
  }
55
55
  }
@@ -62,5 +62,36 @@ export namespace Event {
62
62
  data: transaction,
63
63
  }
64
64
  }
65
+ export function validated(transaction: modelTransaction, organization: string, account: string): Event {
66
+ return {
67
+ organization: organization,
68
+ account: account,
69
+ entity: "transaction",
70
+ action: "validated",
71
+ data: transaction,
72
+ }
73
+ }
74
+ export function expired(transaction: modelTransaction, organization: string, account: string): Event {
75
+ return {
76
+ organization: organization,
77
+ account: account,
78
+ entity: "transaction",
79
+ action: "expired",
80
+ data: transaction,
81
+ }
82
+ }
83
+ }
84
+ export namespace Supplier {
85
+ export namespace PaxGiro {
86
+ export function response(response: any, organization: string, account: string): Event {
87
+ return {
88
+ organization: organization,
89
+ account: account,
90
+ entity: "supplier",
91
+ action: "transaction response",
92
+ data: response,
93
+ }
94
+ }
95
+ }
65
96
  }
66
97
  }
@@ -0,0 +1,29 @@
1
+ import * as isoly from "isoly"
2
+ import { Transaction } from "../Transaction"
3
+
4
+ export interface Decision extends Decision.Creatable {
5
+ transaction: Transaction
6
+ timestamp: isoly.DateTime
7
+ }
8
+
9
+ export namespace Decision {
10
+ export function is(value: any | Decision): value is Decision {
11
+ return Creatable.is({ ...value }) && Transaction.is(value.transaction) && isoly.DateTime.is(value.timestamp)
12
+ }
13
+ export interface Creatable {
14
+ author: string
15
+ status: "approved" | "rejected"
16
+ comment: string
17
+ }
18
+ export namespace Creatable {
19
+ export function is(value: any | Creatable): value is Creatable {
20
+ return (
21
+ value &&
22
+ typeof value == "object" &&
23
+ typeof value.author == "string" &&
24
+ typeof value.comment == "string" &&
25
+ (value.status == "rejected" || value.status == "approved")
26
+ )
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,38 @@
1
+ import * as cryptly from "cryptly"
2
+ import { Transaction } from "../Transaction"
3
+
4
+ export interface Reviewable {
5
+ transaction: Transaction
6
+ direction: "incoming" | "outgoing"
7
+ organization: cryptly.Identifier
8
+ account: cryptly.Identifier
9
+ rule: string
10
+ }
11
+ export namespace Reviewable {
12
+ export function open(
13
+ transaction: Transaction,
14
+ direction: "incoming" | "outgoing",
15
+ organization: cryptly.Identifier,
16
+ account: cryptly.Identifier,
17
+ rule: string
18
+ ) {
19
+ return {
20
+ transaction: transaction,
21
+ direction: direction,
22
+ organization: organization,
23
+ account: account,
24
+ rule: rule,
25
+ }
26
+ }
27
+ export function is(value: Reviewable | any): value is Reviewable {
28
+ return (
29
+ value &&
30
+ typeof value == "object" &&
31
+ Transaction.is(value.transaction) &&
32
+ cryptly.Identifier.is(value.organization) &&
33
+ cryptly.Identifier.is(value.account) &&
34
+ typeof value.rule == "string" &&
35
+ (value.direction == "incoming" || value.direction == "outgoing")
36
+ )
37
+ }
38
+ }
@@ -0,0 +1,2 @@
1
+ export { Decision } from "./Decision"
2
+ export { Reviewable } from "./Reviewable"
@@ -1,9 +1,9 @@
1
1
  import * as isoly from "isoly"
2
2
  import { Balances } from "../Balances"
3
3
 
4
- export type OperationStatus = "pending" | "success" | "failed" //| "cancelled"
4
+ export type Status = "pending" | "success" | "failed" //| "cancelled"
5
5
 
6
- type ChangeType = { type: "add" | "subtract"; amount: number; status: OperationStatus }
6
+ type ChangeType = { type: "add" | "subtract"; amount: number; status: Status }
7
7
  export type Change = Partial<Record<Balances.Entry, ChangeType>>
8
8
 
9
9
  export namespace Change {
@@ -72,10 +72,4 @@ export namespace Creatable {
72
72
  Change.is(value.change)
73
73
  )
74
74
  }
75
- export function openReservation(currency: isoly.Currency, amount: number): Creatable {
76
- return { currency: currency, change: { reserved: { type: "add", amount: amount, status: "pending" } } }
77
- }
78
- export function openDeposit(currency: isoly.Currency, amount: number): Creatable {
79
- return { currency: currency, change: { actual: { type: "add", amount: amount, status: "pending" } } }
80
- }
81
75
  }
@@ -1,12 +1,10 @@
1
1
  import * as cryptly from "cryptly"
2
- import * as gracely from "gracely"
3
2
  import * as isoly from "isoly"
4
3
  import { Creatable as OperationCreatable } from "./Creatable"
5
4
 
6
5
  export interface Operation extends OperationCreatable {
7
6
  id: cryptly.Identifier
8
7
  created: isoly.DateTime
9
- //index?: number
10
8
  }
11
9
  export namespace Operation {
12
10
  export function is(value: any | Operation): value is Operation {
@@ -27,43 +25,6 @@ export namespace Operation {
27
25
  }
28
26
  }
29
27
 
30
- export function reverse(operation: Operation): Operation {
31
- const id = cryptly.Identifier.generate(8)
32
- const timestamp = isoly.DateTime.now()
33
- const reverseChange = Object.fromEntries(
34
- Object.entries(operation.change)
35
- .filter(([k, v]) => v.status == "success")
36
- .map(([k, v]) => [k, { type: v.type == "add" ? "subtract" : "add", amount: v.amount, status: "pending" }])
37
- )
38
- return {
39
- ...operation,
40
- id: id,
41
- created: timestamp,
42
- change: reverseChange,
43
- }
44
- }
45
- export function openFinalization(reservation: Operation): Operation | gracely.Error {
46
- return typeof reservation.change.actual == "object" ||
47
- typeof reservation.change.reserved == "undefined" ||
48
- reservation.change.reserved.status == "failed"
49
- ? gracely.client.invalidContent("Operation", "Amount is not reserved.")
50
- : {
51
- id: cryptly.Identifier.generate(8),
52
- created: isoly.DateTime.now(),
53
- currency: reservation.currency,
54
- change: {
55
- actual: { type: "subtract", amount: reservation.change.reserved.amount, status: "pending" },
56
- reserved: { type: "subtract", amount: reservation.change.reserved.amount, status: "pending" },
57
- },
58
- }
59
- }
60
-
61
- // export function id(operation: Operation): string {
62
- // return `${operation.created}/${operation.id}`
63
- // }
64
-
65
28
  export type Creatable = OperationCreatable
66
29
  export const Creatable = OperationCreatable
67
30
  }
68
-
69
- //export { ChangeType, Change }
@@ -1,9 +1,20 @@
1
1
  export interface Creatable {
2
2
  name: string
3
+ realm: "test" | "uk" | "eu"
4
+ rule: { incoming: string; outgoing: string }
3
5
  }
4
6
 
5
7
  export namespace Creatable {
6
8
  export function is(value: any | Creatable): value is Creatable {
7
- return typeof value == "object" && typeof value.name == "string"
9
+ return (
10
+ value &&
11
+ typeof value == "object" &&
12
+ typeof value.name == "string" &&
13
+ (value.realm == "test" || value.realm == "uk" || value.realm == "eu") &&
14
+ value.rule &&
15
+ typeof value.rule == "object" &&
16
+ typeof value.rule.incoming == "string" &&
17
+ typeof value.rule.outgoing == "string"
18
+ )
8
19
  }
9
20
  }
@@ -7,17 +7,15 @@ export interface Organization extends OrganizationCreatable {
7
7
 
8
8
  export namespace Organization {
9
9
  export function is(value: Organization | any): value is Organization {
10
- return !!(
11
- value &&
12
- typeof value == "object" &&
13
- cryptly.Identifier.is(value.id, 8) &&
14
- typeof value.name == "string" &&
15
- typeof value.value == "number"
16
- )
10
+ return value && OrganizationCreatable.is({ ...value }) && typeof value.id == "string"
17
11
  }
18
12
  export function fromCreatable(organization: Creatable): Organization {
19
13
  return { ...organization, id: cryptly.Identifier.generate(8) }
20
14
  }
15
+ export function isIdentifier(value: cryptly.Identifier | any): value is cryptly.Identifier {
16
+ return cryptly.Identifier.is(value, 8)
17
+ }
18
+
21
19
  export type Creatable = OrganizationCreatable
22
20
  export const Creatable = OrganizationCreatable
23
21
  }
package/Rail/Type.ts CHANGED
@@ -1 +1 @@
1
- export type Type = "iban" | "paxgiro" | "swedish" | "internal"
1
+ export type Type = "paxgiro" | "internal" | "iban" //| "swedish" |
package/Rail/index.ts CHANGED
@@ -3,7 +3,7 @@ import { Internal as RailInternal } from "./internal"
3
3
  import { PaxGiro as RailPaxGiro } from "./PaxGiro"
4
4
  import { Type as RailType } from "./Type"
5
5
 
6
- export type Rail = RailPaxGiro | RailIban | RailInternal
6
+ export type Rail = RailPaxGiro | RailInternal | RailIban
7
7
 
8
8
  export namespace Rail {
9
9
  export function parse(value: string): Rail | undefined {
@@ -47,6 +47,24 @@ export namespace Rail {
47
47
  return typeof value == "object" && (PaxGiro.is(value) || Iban.is(value) || Internal.is(value))
48
48
  }
49
49
 
50
+ export function hasSameIdentifiers(sender: Rail, recipient: Rail): boolean {
51
+ let result = false
52
+ if (sender.type == recipient.type) {
53
+ switch (sender.type) {
54
+ case "iban":
55
+ result = sender.iban == (recipient as Iban).iban
56
+ break
57
+ case "paxgiro":
58
+ result = sender.identifier == (recipient as PaxGiro).identifier
59
+ break
60
+ case "internal":
61
+ result = sender.identifier == (recipient as Internal).identifier
62
+ break
63
+ }
64
+ }
65
+ return result
66
+ }
67
+
50
68
  export type Type = RailType
51
69
  export type PaxGiro = RailPaxGiro
52
70
  export const PaxGiro = RailPaxGiro
@@ -17,9 +17,9 @@ export namespace Creatable {
17
17
  typeof value == "object" &&
18
18
  Rail.is(value.account) &&
19
19
  Rail.is(value.counterpart) &&
20
+ !Rail.hasSameIdentifiers(value.account, value.counterpart) &&
20
21
  isoly.Currency.is(value.currency) &&
21
22
  typeof value.amount == "number" &&
22
- value.amount > 0 &&
23
23
  (value.description == undefined || typeof value.description == "string") &&
24
24
  (value.operations == undefined ||
25
25
  (Array.isArray(value.operations) && value.operations.every(Operation.Creatable.is)))
@@ -5,10 +5,10 @@ import { Creatable as TransactionCreatable } from "./Creatable"
5
5
 
6
6
  export interface Transaction extends TransactionCreatable {
7
7
  readonly id: cryptly.Identifier
8
- readonly timestamp: isoly.DateTime
8
+ readonly posted: isoly.DateTime
9
+ readonly transacted?: isoly.DateTime
9
10
  type: "actual" | "available"
10
11
  balance: number
11
- //status: "pending" | "settled" | "rejected" | "cancelled"
12
12
  operations: Operation[]
13
13
  }
14
14
 
@@ -18,7 +18,7 @@ export namespace Transaction {
18
18
  typeof value == "object" &&
19
19
  TransactionCreatable.is({ ...value }) &&
20
20
  cryptly.Identifier.is(value.id, 8) &&
21
- isoly.DateTime.is(value.timestamp) &&
21
+ isoly.DateTime.is(value.posted) &&
22
22
  (value.type == "actual" || value.type == "available") &&
23
23
  typeof value.balance == "number" &&
24
24
  Array.isArray(value.operations) &&
@@ -32,9 +32,13 @@ export namespace Transaction {
32
32
  ): Transaction {
33
33
  const id = cryptly.Identifier.generate(8)
34
34
  const timestamp = isoly.DateTime.now()
35
+ if ("id" in transaction)
36
+ delete transaction.id
37
+ if ("posted" in transaction)
38
+ delete transaction.posted
35
39
  return {
36
40
  id: id,
37
- timestamp: timestamp,
41
+ posted: timestamp,
38
42
  type: type,
39
43
  balance: result,
40
44
  ...transaction,
@@ -3,4 +3,5 @@ export interface Creatable {
3
3
  }
4
4
  export declare namespace Creatable {
5
5
  function is(value: Creatable | any): value is Creatable;
6
+ function isPartial(value: Partial<Creatable> | any): value is Partial<Creatable>;
6
7
  }
@@ -4,5 +4,12 @@ export var Creatable;
4
4
  return typeof value == "object" && typeof value.name == "string";
5
5
  }
6
6
  Creatable.is = is;
7
+ function isPartial(value) {
8
+ return (value &&
9
+ typeof value == "object" &&
10
+ Object.entries(value).length > 0 &&
11
+ Object.entries(value).every(([k, v]) => k == "name" && typeof v == "string"));
12
+ }
13
+ Creatable.isPartial = isPartial;
7
14
  })(Creatable || (Creatable = {}));
8
15
  //# sourceMappingURL=Creatable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Creatable.js","sourceRoot":"../","sources":["Account/Creatable.ts"],"names":[],"mappings":"AAIA,MAAM,KAAW,SAAS,CAIzB;AAJD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAA;IACjE,CAAC;IAFe,YAAE,KAEjB,CAAA;AACF,CAAC,EAJgB,SAAS,KAAT,SAAS,QAIzB"}
1
+ {"version":3,"file":"Creatable.js","sourceRoot":"../","sources":["Account/Creatable.ts"],"names":[],"mappings":"AAIA,MAAM,KAAW,SAAS,CAYzB;AAZD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAA;IACjE,CAAC;IAFe,YAAE,KAEjB,CAAA;IACD,SAAgB,SAAS,CAAC,KAA+B;QACxD,OAAO,CACN,KAAK;YACL,OAAO,KAAK,IAAI,QAAQ;YACxB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,QAAQ,CAAC,CAC5E,CAAA;IACF,CAAC;IAPe,mBAAS,YAOxB,CAAA;AACF,CAAC,EAZgB,SAAS,KAAT,SAAS,QAYzB"}
@@ -1,9 +1,8 @@
1
1
  import * as isoly from "isoly";
2
- export type Balances = Partial<Record<isoly.Currency, Partial<Record<Balances.Entry, number>>>>;
2
+ import { BalanceEntry } from "./type";
3
+ export type Balances = Partial<Record<isoly.Currency, Partial<Record<BalanceEntry, number>>>>;
3
4
  export declare namespace Balances {
4
5
  function is(value: Balances | any): value is Balances;
5
- type Entry = "actual" | "reserved";
6
- namespace Entry {
7
- function is(value: any | Entry): value is Entry;
8
- }
6
+ type Entry = BalanceEntry;
7
+ const Entry: typeof BalanceEntry;
9
8
  }
@@ -1,19 +1,14 @@
1
1
  import * as isoly from "isoly";
2
+ import { BalanceEntry } from "./type";
2
3
  export var Balances;
3
4
  (function (Balances) {
4
5
  function is(value) {
5
6
  return (typeof value == "object" &&
6
7
  Object.entries(value).every(([k, v]) => isoly.Currency.is(k) &&
7
8
  typeof v == "object" &&
8
- Object.entries(v).every(([kInner, vInner]) => Balances.Entry.is(kInner) && typeof vInner == "number")));
9
+ Object.entries(v).every(([kInner, vInner]) => BalanceEntry.is(kInner) && typeof vInner == "number")));
9
10
  }
10
11
  Balances.is = is;
11
- let Entry;
12
- (function (Entry) {
13
- function is(value) {
14
- return typeof value == "string" && (value == "actual" || value == "reserved");
15
- }
16
- Entry.is = is;
17
- })(Entry = Balances.Entry || (Balances.Entry = {}));
12
+ Balances.Entry = BalanceEntry;
18
13
  })(Balances || (Balances = {}));
19
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Balances/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,KAAW,QAAQ,CAoBxB;AApBD,WAAiB,QAAQ;IACxB,SAAgB,EAAE,CAAC,KAAqB;QACvC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAC1B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACV,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpB,OAAO,CAAC,IAAI,QAAQ;gBACpB,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,CAAC,KAAK,CACjD,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,IAAI,QAAQ,CAC5E,CACF,CACD,CAAA;IACF,CAAC;IAZe,WAAE,KAYjB,CAAA;IAED,IAAiB,KAAK,CAIrB;IAJD,WAAiB,KAAK;QACrB,SAAgB,EAAE,CAAC,KAAkB;YACpC,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,UAAU,CAAC,CAAA;QAC9E,CAAC;QAFe,QAAE,KAEjB,CAAA;IACF,CAAC,EAJgB,KAAK,GAAL,cAAK,KAAL,cAAK,QAIrB;AACF,CAAC,EApBgB,QAAQ,KAAR,QAAQ,QAoBxB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Balances/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAIrC,MAAM,KAAW,QAAQ,CAgBxB;AAhBD,WAAiB,QAAQ;IACxB,SAAgB,EAAE,CAAC,KAAqB;QACvC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAC1B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACV,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpB,OAAO,CAAC,IAAI,QAAQ;gBACpB,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,CAAC,KAAK,CACjD,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,IAAI,QAAQ,CAC1E,CACF,CACD,CAAA;IACF,CAAC;IAZe,WAAE,KAYjB,CAAA;IAEY,cAAK,GAAG,YAAY,CAAA;AAClC,CAAC,EAhBgB,QAAQ,KAAR,QAAQ,QAgBxB"}
@@ -0,0 +1,4 @@
1
+ export type BalanceEntry = "actual" | "reserved";
2
+ export declare namespace BalanceEntry {
3
+ function is(value: any | BalanceEntry): value is BalanceEntry;
4
+ }
@@ -0,0 +1,8 @@
1
+ export var BalanceEntry;
2
+ (function (BalanceEntry) {
3
+ function is(value) {
4
+ return typeof value == "string" && (value == "actual" || value == "reserved");
5
+ }
6
+ BalanceEntry.is = is;
7
+ })(BalanceEntry || (BalanceEntry = {}));
8
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"../","sources":["Balances/type.ts"],"names":[],"mappings":"AAEA,MAAM,KAAW,YAAY,CAI5B;AAJD,WAAiB,YAAY;IAC5B,SAAgB,EAAE,CAAC,KAAyB;QAC3C,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,UAAU,CAAC,CAAA;IAC9E,CAAC;IAFe,eAAE,KAEjB,CAAA;AACF,CAAC,EAJgB,YAAY,KAAZ,YAAY,QAI5B"}
@@ -10,7 +10,7 @@ export interface Event {
10
10
  action: string;
11
11
  data: any;
12
12
  }
13
- type Entity = "account" | "transaction" | "operation" | "rail" | "organization" | "authorization";
13
+ type Entity = "account" | "transaction" | "operation" | "rail" | "organization" | "authorization" | "supplier";
14
14
  export declare namespace Event {
15
15
  namespace Account {
16
16
  function created(account: modelAccount, organization: string): Event;
@@ -26,8 +26,15 @@ export declare namespace Event {
26
26
  }
27
27
  namespace Transaction {
28
28
  function initiated(transaction: modelTransaction, organization: string, account: string): Event;
29
- function settled(transaction: modelTransaction, organization: string, account: string): Event;
29
+ function finalized(transaction: modelTransaction, organization: string, account: string): Event;
30
30
  function incoming(transaction: modelTransaction, organization: string, account: string): Event;
31
+ function validated(transaction: modelTransaction, organization: string, account: string): Event;
32
+ function expired(transaction: modelTransaction, organization: string, account: string): Event;
33
+ }
34
+ namespace Supplier {
35
+ namespace PaxGiro {
36
+ function response(response: any, organization: string, account: string): Event;
37
+ }
31
38
  }
32
39
  }
33
40
  export {};
@@ -40,16 +40,16 @@ export var Event;
40
40
  };
41
41
  }
42
42
  Transaction.initiated = initiated;
43
- function settled(transaction, organization, account) {
43
+ function finalized(transaction, organization, account) {
44
44
  return {
45
45
  organization: organization,
46
46
  account: account,
47
47
  entity: "transaction",
48
- action: "settled",
48
+ action: "finalized",
49
49
  data: transaction,
50
50
  };
51
51
  }
52
- Transaction.settled = settled;
52
+ Transaction.finalized = finalized;
53
53
  function incoming(transaction, organization, account) {
54
54
  return {
55
55
  organization: organization,
@@ -60,6 +60,42 @@ export var Event;
60
60
  };
61
61
  }
62
62
  Transaction.incoming = incoming;
63
+ function validated(transaction, organization, account) {
64
+ return {
65
+ organization: organization,
66
+ account: account,
67
+ entity: "transaction",
68
+ action: "validated",
69
+ data: transaction,
70
+ };
71
+ }
72
+ Transaction.validated = validated;
73
+ function expired(transaction, organization, account) {
74
+ return {
75
+ organization: organization,
76
+ account: account,
77
+ entity: "transaction",
78
+ action: "expired",
79
+ data: transaction,
80
+ };
81
+ }
82
+ Transaction.expired = expired;
63
83
  })(Transaction = Event.Transaction || (Event.Transaction = {}));
84
+ let Supplier;
85
+ (function (Supplier) {
86
+ let PaxGiro;
87
+ (function (PaxGiro) {
88
+ function response(response, organization, account) {
89
+ return {
90
+ organization: organization,
91
+ account: account,
92
+ entity: "supplier",
93
+ action: "transaction response",
94
+ data: response,
95
+ };
96
+ }
97
+ PaxGiro.response = response;
98
+ })(PaxGiro = Supplier.PaxGiro || (Supplier.PaxGiro = {}));
99
+ })(Supplier = Event.Supplier || (Event.Supplier = {}));
64
100
  })(Event || (Event = {}));
65
101
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Event/index.ts"],"names":[],"mappings":"AAeA,MAAM,KAAW,KAAK,CAkDrB;AAlDD,WAAiB,KAAK;IACrB,IAAiB,OAAO,CAIvB;IAJD,WAAiB,OAAO;QACvB,SAAgB,OAAO,CAAC,OAAqB,EAAE,YAAoB;YAClE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;QAC3F,CAAC;QAFe,eAAO,UAEtB,CAAA;IACF,CAAC,EAJgB,OAAO,GAAP,aAAO,KAAP,aAAO,QAIvB;IACD,IAAiB,SAAS,CAIzB;IAJD,WAAiB,SAAS;QACzB,SAAgB,SAAS,CAAC,SAAyB,EAAE,YAAoB,EAAE,OAAe;YACzF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACnH,CAAC;QAFe,mBAAS,YAExB,CAAA;IACF,CAAC,EAJgB,SAAS,GAAT,eAAS,KAAT,eAAS,QAIzB;IACD,IAAiB,YAAY,CAI5B;IAJD,WAAiB,YAAY;QAC5B,SAAgB,OAAO,CAAC,YAA+B;YACtD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QACzE,CAAC;QAFe,oBAAO,UAEtB,CAAA;IACF,CAAC,EAJgB,YAAY,GAAZ,kBAAY,KAAZ,kBAAY,QAI5B;IACD,IAAiB,IAAI,CAIpB;IAJD,WAAiB,IAAI;QACpB,SAAgB,KAAK,CAAC,IAAe,EAAE,YAAoB,EAAE,OAAe;YAC3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACrG,CAAC;QAFe,UAAK,QAEpB,CAAA;IACF,CAAC,EAJgB,IAAI,GAAJ,UAAI,KAAJ,UAAI,QAIpB;IACD,IAAiB,WAAW,CA4B3B;IA5BD,WAAiB,WAAW;QAC3B,SAAgB,SAAS,CAAC,WAA6B,EAAE,YAAoB,EAAE,OAAe;YAC7F,OAAO;gBACN,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,WAAW;aACjB,CAAA;QACF,CAAC;QARe,qBAAS,YAQxB,CAAA;QACD,SAAgB,OAAO,CAAC,WAA6B,EAAE,YAAoB,EAAE,OAAe;YAC3F,OAAO;gBACN,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,WAAW;aACjB,CAAA;QACF,CAAC;QARe,mBAAO,UAQtB,CAAA;QACD,SAAgB,QAAQ,CAAC,WAA6B,EAAE,YAAoB,EAAE,OAAe;YAC5F,OAAO;gBACN,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,WAAW;aACjB,CAAA;QACF,CAAC;QARe,oBAAQ,WAQvB,CAAA;IACF,CAAC,EA5BgB,WAAW,GAAX,iBAAW,KAAX,iBAAW,QA4B3B;AACF,CAAC,EAlDgB,KAAK,KAAL,KAAK,QAkDrB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Event/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import * as isoly from "isoly";
2
+ import { Transaction } from "../Transaction";
3
+ export interface Decision extends Decision.Creatable {
4
+ transaction: Transaction;
5
+ timestamp: isoly.DateTime;
6
+ }
7
+ export declare namespace Decision {
8
+ function is(value: any | Decision): value is Decision;
9
+ interface Creatable {
10
+ author: string;
11
+ status: "approved" | "rejected";
12
+ comment: string;
13
+ }
14
+ namespace Creatable {
15
+ function is(value: any | Creatable): value is Creatable;
16
+ }
17
+ }
@@ -0,0 +1,21 @@
1
+ import * as isoly from "isoly";
2
+ import { Transaction } from "../Transaction";
3
+ export var Decision;
4
+ (function (Decision) {
5
+ function is(value) {
6
+ return Creatable.is({ ...value }) && Transaction.is(value.transaction) && isoly.DateTime.is(value.timestamp);
7
+ }
8
+ Decision.is = is;
9
+ let Creatable;
10
+ (function (Creatable) {
11
+ function is(value) {
12
+ return (value &&
13
+ typeof value == "object" &&
14
+ typeof value.author == "string" &&
15
+ typeof value.comment == "string" &&
16
+ (value.status == "rejected" || value.status == "approved"));
17
+ }
18
+ Creatable.is = is;
19
+ })(Creatable = Decision.Creatable || (Decision.Creatable = {}));
20
+ })(Decision || (Decision = {}));
21
+ //# sourceMappingURL=Decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Decision.js","sourceRoot":"../","sources":["Monitoring/Decision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAO5C,MAAM,KAAW,QAAQ,CAoBxB;AApBD,WAAiB,QAAQ;IACxB,SAAgB,EAAE,CAAC,KAAqB;QACvC,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC7G,CAAC;IAFe,WAAE,KAEjB,CAAA;IAMD,IAAiB,SAAS,CAUzB;IAVD,WAAiB,SAAS;QACzB,SAAgB,EAAE,CAAC,KAAsB;YACxC,OAAO,CACN,KAAK;gBACL,OAAO,KAAK,IAAI,QAAQ;gBACxB,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;gBAC/B,OAAO,KAAK,CAAC,OAAO,IAAI,QAAQ;gBAChC,CAAC,KAAK,CAAC,MAAM,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,CAC1D,CAAA;QACF,CAAC;QARe,YAAE,KAQjB,CAAA;IACF,CAAC,EAVgB,SAAS,GAAT,kBAAS,KAAT,kBAAS,QAUzB;AACF,CAAC,EApBgB,QAAQ,KAAR,QAAQ,QAoBxB"}
@@ -0,0 +1,19 @@
1
+ import * as cryptly from "cryptly";
2
+ import { Transaction } from "../Transaction";
3
+ export interface Reviewable {
4
+ transaction: Transaction;
5
+ direction: "incoming" | "outgoing";
6
+ organization: cryptly.Identifier;
7
+ account: cryptly.Identifier;
8
+ rule: string;
9
+ }
10
+ export declare namespace Reviewable {
11
+ function open(transaction: Transaction, direction: "incoming" | "outgoing", organization: cryptly.Identifier, account: cryptly.Identifier, rule: string): {
12
+ transaction: Transaction;
13
+ direction: "incoming" | "outgoing";
14
+ organization: string;
15
+ account: string;
16
+ rule: string;
17
+ };
18
+ function is(value: Reviewable | any): value is Reviewable;
19
+ }
@@ -0,0 +1,26 @@
1
+ import * as cryptly from "cryptly";
2
+ import { Transaction } from "../Transaction";
3
+ export var Reviewable;
4
+ (function (Reviewable) {
5
+ function open(transaction, direction, organization, account, rule) {
6
+ return {
7
+ transaction: transaction,
8
+ direction: direction,
9
+ organization: organization,
10
+ account: account,
11
+ rule: rule,
12
+ };
13
+ }
14
+ Reviewable.open = open;
15
+ function is(value) {
16
+ return (value &&
17
+ typeof value == "object" &&
18
+ Transaction.is(value.transaction) &&
19
+ cryptly.Identifier.is(value.organization) &&
20
+ cryptly.Identifier.is(value.account) &&
21
+ typeof value.rule == "string" &&
22
+ (value.direction == "incoming" || value.direction == "outgoing"));
23
+ }
24
+ Reviewable.is = is;
25
+ })(Reviewable || (Reviewable = {}));
26
+ //# sourceMappingURL=Reviewable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reviewable.js","sourceRoot":"../","sources":["Monitoring/Reviewable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAS5C,MAAM,KAAW,UAAU,CA2B1B;AA3BD,WAAiB,UAAU;IAC1B,SAAgB,IAAI,CACnB,WAAwB,EACxB,SAAkC,EAClC,YAAgC,EAChC,OAA2B,EAC3B,IAAY;QAEZ,OAAO;YACN,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SACV,CAAA;IACF,CAAC;IAde,eAAI,OAcnB,CAAA;IACD,SAAgB,EAAE,CAAC,KAAuB;QACzC,OAAO,CACN,KAAK;YACL,OAAO,KAAK,IAAI,QAAQ;YACxB,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;YACjC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;YACzC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACpC,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ;YAC7B,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,IAAI,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC,CAChE,CAAA;IACF,CAAC;IAVe,aAAE,KAUjB,CAAA;AACF,CAAC,EA3BgB,UAAU,KAAV,UAAU,QA2B1B"}
@@ -0,0 +1,2 @@
1
+ export { Decision } from "./Decision";
2
+ export { Reviewable } from "./Reviewable";
@@ -0,0 +1,3 @@
1
+ export { Decision } from "./Decision";
2
+ export { Reviewable } from "./Reviewable";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Monitoring/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import * as isoly from "isoly";
2
2
  import { Balances } from "../Balances";
3
- export type OperationStatus = "pending" | "success" | "failed";
3
+ export type Status = "pending" | "success" | "failed";
4
4
  type ChangeType = {
5
5
  type: "add" | "subtract";
6
6
  amount: number;
7
- status: OperationStatus;
7
+ status: Status;
8
8
  };
9
9
  export type Change = Partial<Record<Balances.Entry, ChangeType>>;
10
10
  export declare namespace Change {
@@ -42,7 +42,5 @@ export interface Creatable {
42
42
  }
43
43
  export declare namespace Creatable {
44
44
  function is(value: any | Creatable): value is Creatable;
45
- function openReservation(currency: isoly.Currency, amount: number): Creatable;
46
- function openDeposit(currency: isoly.Currency, amount: number): Creatable;
47
45
  }
48
46
  export {};
@@ -49,13 +49,5 @@ export var Creatable;
49
49
  Change.is(value.change));
50
50
  }
51
51
  Creatable.is = is;
52
- function openReservation(currency, amount) {
53
- return { currency: currency, change: { reserved: { type: "add", amount: amount, status: "pending" } } };
54
- }
55
- Creatable.openReservation = openReservation;
56
- function openDeposit(currency, amount) {
57
- return { currency: currency, change: { actual: { type: "add", amount: amount, status: "pending" } } };
58
- }
59
- Creatable.openDeposit = openDeposit;
60
52
  })(Creatable || (Creatable = {}));
61
53
  //# sourceMappingURL=Creatable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Creatable.js","sourceRoot":"../","sources":["Operation/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,KAAW,MAAM,CAkDtB;AAlDD,WAAiB,MAAM;IACtB,SAAgB,EAAE,CAAC,KAAmB;QACrC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAChC,CAAA;IACF,CAAC;IAPe,SAAE,KAOjB,CAAA;IACD,SAAgB,YAAY,CAAC,KAAuB;QACnD,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC;YACjD,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,CACpF,CAAA;IACF,CAAC;IATe,mBAAY,eAS3B,CAAA;IAOD,SAAgB,aAAa,CAAC,KAAwB;QACrD,OAAO,CACN,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,MAAM,IAAI,SAAS;YACzB,OAAO,KAAK,CAAC,QAAQ,IAAI,QAAQ;YACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAC5B,CAAA;IACF,CAAC;IAPe,oBAAa,gBAO5B,CAAA;IACD,SAAgB,SAAS,CAAC,KAAoB;QAC7C,OAAO,CACN,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,QAAQ,IAAI,SAAS;YAC3B,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAC1B,CAAA;IACF,CAAC;IAPe,gBAAS,YAOxB,CAAA;IACD,SAAgB,cAAc,CAAC,KAAyB;QACvD,OAAO,CACN,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU;YAC/B,OAAO,KAAK,CAAC,QAAQ,IAAI,QAAQ;YACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CACjC,CAAA;IACF,CAAC;IARe,qBAAc,iBAQ7B,CAAA;AACF,CAAC,EAlDgB,MAAM,KAAN,MAAM,QAkDtB;AAOD,MAAM,KAAW,SAAS,CAezB;AAfD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjC,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CACvB,CAAA;IACF,CAAC;IAPe,YAAE,KAOjB,CAAA;IACD,SAAgB,eAAe,CAAC,QAAwB,EAAE,MAAc;QACvE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IACxG,CAAC;IAFe,yBAAe,kBAE9B,CAAA;IACD,SAAgB,WAAW,CAAC,QAAwB,EAAE,MAAc;QACnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IACtG,CAAC;IAFe,qBAAW,cAE1B,CAAA;AACF,CAAC,EAfgB,SAAS,KAAT,SAAS,QAezB"}
1
+ {"version":3,"file":"Creatable.js","sourceRoot":"../","sources":["Operation/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,KAAW,MAAM,CAkDtB;AAlDD,WAAiB,MAAM;IACtB,SAAgB,EAAE,CAAC,KAAmB;QACrC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAChC,CAAA;IACF,CAAC;IAPe,SAAE,KAOjB,CAAA;IACD,SAAgB,YAAY,CAAC,KAAuB;QACnD,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC;YACjD,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,CACpF,CAAA;IACF,CAAC;IATe,mBAAY,eAS3B,CAAA;IAOD,SAAgB,aAAa,CAAC,KAAwB;QACrD,OAAO,CACN,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,MAAM,IAAI,SAAS;YACzB,OAAO,KAAK,CAAC,QAAQ,IAAI,QAAQ;YACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAC5B,CAAA;IACF,CAAC;IAPe,oBAAa,gBAO5B,CAAA;IACD,SAAgB,SAAS,CAAC,KAAoB;QAC7C,OAAO,CACN,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,QAAQ,IAAI,SAAS;YAC3B,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAC1B,CAAA;IACF,CAAC;IAPe,gBAAS,YAOxB,CAAA;IACD,SAAgB,cAAc,CAAC,KAAyB;QACvD,OAAO,CACN,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU;YAC/B,OAAO,KAAK,CAAC,QAAQ,IAAI,QAAQ;YACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CACjC,CAAA;IACF,CAAC;IARe,qBAAc,iBAQ7B,CAAA;AACF,CAAC,EAlDgB,MAAM,KAAN,MAAM,QAkDtB;AAOD,MAAM,KAAW,SAAS,CASzB;AATD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjC,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CACvB,CAAA;IACF,CAAC;IAPe,YAAE,KAOjB,CAAA;AACF,CAAC,EATgB,SAAS,KAAT,SAAS,QASzB"}
@@ -1,5 +1,4 @@
1
1
  import * as cryptly from "cryptly";
2
- import * as gracely from "gracely";
3
2
  import * as isoly from "isoly";
4
3
  import { Creatable as OperationCreatable } from "./Creatable";
5
4
  export interface Operation extends OperationCreatable {
@@ -9,8 +8,6 @@ export interface Operation extends OperationCreatable {
9
8
  export declare namespace Operation {
10
9
  function is(value: any | Operation): value is Operation;
11
10
  function fromCreatable(operation: Creatable): Operation;
12
- function reverse(operation: Operation): Operation;
13
- function openFinalization(reservation: Operation): Operation | gracely.Error;
14
11
  type Creatable = OperationCreatable;
15
12
  const Creatable: typeof OperationCreatable;
16
13
  }
@@ -1,5 +1,4 @@
1
1
  import * as cryptly from "cryptly";
2
- import * as gracely from "gracely";
3
2
  import * as isoly from "isoly";
4
3
  import { Creatable as OperationCreatable } from "./Creatable";
5
4
  export var Operation;
@@ -21,36 +20,6 @@ export var Operation;
21
20
  };
22
21
  }
23
22
  Operation.fromCreatable = fromCreatable;
24
- function reverse(operation) {
25
- const id = cryptly.Identifier.generate(8);
26
- const timestamp = isoly.DateTime.now();
27
- const reverseChange = Object.fromEntries(Object.entries(operation.change)
28
- .filter(([k, v]) => v.status == "success")
29
- .map(([k, v]) => [k, { type: v.type == "add" ? "subtract" : "add", amount: v.amount, status: "pending" }]));
30
- return {
31
- ...operation,
32
- id: id,
33
- created: timestamp,
34
- change: reverseChange,
35
- };
36
- }
37
- Operation.reverse = reverse;
38
- function openFinalization(reservation) {
39
- return typeof reservation.change.actual == "object" ||
40
- typeof reservation.change.reserved == "undefined" ||
41
- reservation.change.reserved.status == "failed"
42
- ? gracely.client.invalidContent("Operation", "Amount is not reserved.")
43
- : {
44
- id: cryptly.Identifier.generate(8),
45
- created: isoly.DateTime.now(),
46
- currency: reservation.currency,
47
- change: {
48
- actual: { type: "subtract", amount: reservation.change.reserved.amount, status: "pending" },
49
- reserved: { type: "subtract", amount: reservation.change.reserved.amount, status: "pending" },
50
- },
51
- };
52
- }
53
- Operation.openFinalization = openFinalization;
54
23
  Operation.Creatable = OperationCreatable;
55
24
  })(Operation || (Operation = {}));
56
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Operation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Operation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAM7D,MAAM,KAAW,SAAS,CAqBzB;AArBD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YAChC,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CACnC,CAAA;IACF,CAAC;IAPe,YAAE,KAOjB,CAAA;IACD,SAAgB,aAAa,CAAC,SAAoB;QACjD,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACtC,OAAO;YACN,GAAG,SAAS;YACZ,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,SAAS;SAClB,CAAA;IACF,CAAC;IARe,uBAAa,gBAQ5B,CAAA;IAGY,mBAAS,GAAG,kBAAkB,CAAA;AAC5C,CAAC,EArBgB,SAAS,KAAT,SAAS,QAqBzB"}
@@ -1,5 +1,10 @@
1
1
  export interface Creatable {
2
2
  name: string;
3
+ realm: "test" | "uk" | "eu";
4
+ rule: {
5
+ incoming: string;
6
+ outgoing: string;
7
+ };
3
8
  }
4
9
  export declare namespace Creatable {
5
10
  function is(value: any | Creatable): value is Creatable;
@@ -1,7 +1,14 @@
1
1
  export var Creatable;
2
2
  (function (Creatable) {
3
3
  function is(value) {
4
- return typeof value == "object" && typeof value.name == "string";
4
+ return (value &&
5
+ typeof value == "object" &&
6
+ typeof value.name == "string" &&
7
+ (value.realm == "test" || value.realm == "uk" || value.realm == "eu") &&
8
+ value.rule &&
9
+ typeof value.rule == "object" &&
10
+ typeof value.rule.incoming == "string" &&
11
+ typeof value.rule.outgoing == "string");
5
12
  }
6
13
  Creatable.is = is;
7
14
  })(Creatable || (Creatable = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"Creatable.js","sourceRoot":"../","sources":["Organization/Creatable.ts"],"names":[],"mappings":"AAIA,MAAM,KAAW,SAAS,CAIzB;AAJD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAA;IACjE,CAAC;IAFe,YAAE,KAEjB,CAAA;AACF,CAAC,EAJgB,SAAS,KAAT,SAAS,QAIzB"}
1
+ {"version":3,"file":"Creatable.js","sourceRoot":"../","sources":["Organization/Creatable.ts"],"names":[],"mappings":"AAMA,MAAM,KAAW,SAAS,CAazB;AAbD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,CACN,KAAK;YACL,OAAO,KAAK,IAAI,QAAQ;YACxB,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ;YAC7B,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;YACrE,KAAK,CAAC,IAAI;YACV,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ;YAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ;YACtC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CACtC,CAAA;IACF,CAAC;IAXe,YAAE,KAWjB,CAAA;AACF,CAAC,EAbgB,SAAS,KAAT,SAAS,QAazB"}
@@ -6,6 +6,7 @@ export interface Organization extends OrganizationCreatable {
6
6
  export declare namespace Organization {
7
7
  function is(value: Organization | any): value is Organization;
8
8
  function fromCreatable(organization: Creatable): Organization;
9
+ function isIdentifier(value: cryptly.Identifier | any): value is cryptly.Identifier;
9
10
  type Creatable = OrganizationCreatable;
10
11
  const Creatable: typeof OrganizationCreatable;
11
12
  }
@@ -3,17 +3,17 @@ import { Creatable as OrganizationCreatable } from "./Creatable";
3
3
  export var Organization;
4
4
  (function (Organization) {
5
5
  function is(value) {
6
- return !!(value &&
7
- typeof value == "object" &&
8
- cryptly.Identifier.is(value.id, 8) &&
9
- typeof value.name == "string" &&
10
- typeof value.value == "number");
6
+ return value && OrganizationCreatable.is({ ...value }) && typeof value.id == "string";
11
7
  }
12
8
  Organization.is = is;
13
9
  function fromCreatable(organization) {
14
10
  return { ...organization, id: cryptly.Identifier.generate(8) };
15
11
  }
16
12
  Organization.fromCreatable = fromCreatable;
13
+ function isIdentifier(value) {
14
+ return cryptly.Identifier.is(value, 8);
15
+ }
16
+ Organization.isIdentifier = isIdentifier;
17
17
  Organization.Creatable = OrganizationCreatable;
18
18
  })(Organization || (Organization = {}));
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Organization/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAMhE,MAAM,KAAW,YAAY,CAe5B;AAfD,WAAiB,YAAY;IAC5B,SAAgB,EAAE,CAAC,KAAyB;QAC3C,OAAO,CAAC,CAAC,CACR,KAAK;YACL,OAAO,KAAK,IAAI,QAAQ;YACxB,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ;YAC7B,OAAO,KAAK,CAAC,KAAK,IAAI,QAAQ,CAC9B,CAAA;IACF,CAAC;IARe,eAAE,KAQjB,CAAA;IACD,SAAgB,aAAa,CAAC,YAAuB;QACpD,OAAO,EAAE,GAAG,YAAY,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,CAAC;IAFe,0BAAa,gBAE5B,CAAA;IAEY,sBAAS,GAAG,qBAAqB,CAAA;AAC/C,CAAC,EAfgB,YAAY,KAAZ,YAAY,QAe5B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Organization/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAMhE,MAAM,KAAW,YAAY,CAa5B;AAbD,WAAiB,YAAY;IAC5B,SAAgB,EAAE,CAAC,KAAyB;QAC3C,OAAO,KAAK,IAAI,qBAAqB,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAA;IACtF,CAAC;IAFe,eAAE,KAEjB,CAAA;IACD,SAAgB,aAAa,CAAC,YAAuB;QACpD,OAAO,EAAE,GAAG,YAAY,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,CAAC;IAFe,0BAAa,gBAE5B,CAAA;IACD,SAAgB,YAAY,CAAC,KAA+B;QAC3D,OAAO,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAFe,yBAAY,eAE3B,CAAA;IAGY,sBAAS,GAAG,qBAAqB,CAAA;AAC/C,CAAC,EAbgB,YAAY,KAAZ,YAAY,QAa5B"}
@@ -1 +1 @@
1
- export type Type = "iban" | "paxgiro" | "swedish" | "internal";
1
+ export type Type = "paxgiro" | "internal" | "iban";
@@ -2,11 +2,12 @@ import { Iban as RailIban } from "./Iban";
2
2
  import { Internal as RailInternal } from "./internal";
3
3
  import { PaxGiro as RailPaxGiro } from "./PaxGiro";
4
4
  import { Type as RailType } from "./Type";
5
- export type Rail = RailPaxGiro | RailIban | RailInternal;
5
+ export type Rail = RailPaxGiro | RailInternal | RailIban;
6
6
  export declare namespace Rail {
7
7
  function parse(value: string): Rail | undefined;
8
8
  function stringify(rail: Rail): string;
9
9
  function is(value: Rail | any): value is Rail;
10
+ function hasSameIdentifiers(sender: Rail, recipient: Rail): boolean;
10
11
  type Type = RailType;
11
12
  type PaxGiro = RailPaxGiro;
12
13
  const PaxGiro: typeof RailPaxGiro;
@@ -34,6 +34,24 @@ export var Rail;
34
34
  return typeof value == "object" && (Rail.PaxGiro.is(value) || Rail.Iban.is(value) || Rail.Internal.is(value));
35
35
  }
36
36
  Rail.is = is;
37
+ function hasSameIdentifiers(sender, recipient) {
38
+ let result = false;
39
+ if (sender.type == recipient.type) {
40
+ switch (sender.type) {
41
+ case "iban":
42
+ result = sender.iban == recipient.iban;
43
+ break;
44
+ case "paxgiro":
45
+ result = sender.identifier == recipient.identifier;
46
+ break;
47
+ case "internal":
48
+ result = sender.identifier == recipient.identifier;
49
+ break;
50
+ }
51
+ }
52
+ return result;
53
+ }
54
+ Rail.hasSameIdentifiers = hasSameIdentifiers;
37
55
  Rail.PaxGiro = RailPaxGiro;
38
56
  Rail.Iban = RailIban;
39
57
  Rail.Internal = RailInternal;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Rail/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AAKlD,MAAM,KAAW,IAAI,CAiDpB;AAjDD,WAAiB,IAAI;IACpB,SAAgB,KAAK,CAAC,KAAa;QAClC,IAAI,MAAwB,CAAA;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE;YAIpB,KAAK,KAAK;gBACT,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;gBACxF,MAAK;SAON;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAlBe,UAAK,QAkBpB,CAAA;IACD,SAAgB,SAAS,CAAC,IAAU;QACnC,IAAI,MAAc,CAAA;QAClB,QAAQ,IAAI,CAAC,IAAI,EAAE;YAClB,KAAK,MAAM;gBACV,MAAM,GAAG,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAA;gBAC5B,MAAK;YACN,KAAK,SAAS;gBACb,MAAM,GAAG,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjC,MAAK;YACN,KAAK,UAAU;gBACd,MAAM,GAAG,EAAE,CAAA;gBACX,MAAK;SAIN;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAjBe,cAAS,YAiBxB,CAAA;IACD,SAAgB,EAAE,CAAC,KAAiB;QACnC,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,CAAC,KAAA,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAA,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/F,CAAC;IAFe,OAAE,KAEjB,CAAA;IAIY,YAAO,GAAG,WAAW,CAAA;IAErB,SAAI,GAAG,QAAQ,CAAA;IAEf,aAAQ,GAAG,YAAY,CAAA;AACrC,CAAC,EAjDgB,IAAI,KAAJ,IAAI,QAiDpB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Rail/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AAKlD,MAAM,KAAW,IAAI,CAmEpB;AAnED,WAAiB,IAAI;IACpB,SAAgB,KAAK,CAAC,KAAa;QAClC,IAAI,MAAwB,CAAA;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE;YAIpB,KAAK,KAAK;gBACT,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;gBACxF,MAAK;SAON;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAlBe,UAAK,QAkBpB,CAAA;IACD,SAAgB,SAAS,CAAC,IAAU;QACnC,IAAI,MAAc,CAAA;QAClB,QAAQ,IAAI,CAAC,IAAI,EAAE;YAClB,KAAK,MAAM;gBACV,MAAM,GAAG,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAA;gBAC5B,MAAK;YACN,KAAK,SAAS;gBACb,MAAM,GAAG,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjC,MAAK;YACN,KAAK,UAAU;gBACd,MAAM,GAAG,EAAE,CAAA;gBACX,MAAK;SAIN;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAjBe,cAAS,YAiBxB,CAAA;IACD,SAAgB,EAAE,CAAC,KAAiB;QACnC,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,CAAC,KAAA,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAA,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/F,CAAC;IAFe,OAAE,KAEjB,CAAA;IAED,SAAgB,kBAAkB,CAAC,MAAY,EAAE,SAAe;QAC/D,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE;YAClC,QAAQ,MAAM,CAAC,IAAI,EAAE;gBACpB,KAAK,MAAM;oBACV,MAAM,GAAG,MAAM,CAAC,IAAI,IAAK,SAAkB,CAAC,IAAI,CAAA;oBAChD,MAAK;gBACN,KAAK,SAAS;oBACb,MAAM,GAAG,MAAM,CAAC,UAAU,IAAK,SAAqB,CAAC,UAAU,CAAA;oBAC/D,MAAK;gBACN,KAAK,UAAU;oBACd,MAAM,GAAG,MAAM,CAAC,UAAU,IAAK,SAAsB,CAAC,UAAU,CAAA;oBAChE,MAAK;aACN;SACD;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAhBe,uBAAkB,qBAgBjC,CAAA;IAIY,YAAO,GAAG,WAAW,CAAA;IAErB,SAAI,GAAG,QAAQ,CAAA;IAEf,aAAQ,GAAG,YAAY,CAAA;AACrC,CAAC,EAnEgB,IAAI,KAAJ,IAAI,QAmEpB"}
@@ -7,9 +7,9 @@ export var Creatable;
7
7
  return (typeof value == "object" &&
8
8
  Rail.is(value.account) &&
9
9
  Rail.is(value.counterpart) &&
10
+ !Rail.hasSameIdentifiers(value.account, value.counterpart) &&
10
11
  isoly.Currency.is(value.currency) &&
11
12
  typeof value.amount == "number" &&
12
- value.amount > 0 &&
13
13
  (value.description == undefined || typeof value.description == "string") &&
14
14
  (value.operations == undefined ||
15
15
  (Array.isArray(value.operations) && value.operations.every(Operation.Creatable.is))));
@@ -1 +1 @@
1
- {"version":3,"file":"Creatable.js","sourceRoot":"../","sources":["Transaction/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAW9B,MAAM,KAAW,SAAS,CAczB;AAdD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1B,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjC,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS,IAAI,OAAO,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC;YACxE,CAAC,KAAK,CAAC,UAAU,IAAI,SAAS;gBAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CACrF,CAAA;IACF,CAAC;IAZe,YAAE,KAYjB,CAAA;AACF,CAAC,EAdgB,SAAS,KAAT,SAAS,QAczB"}
1
+ {"version":3,"file":"Creatable.js","sourceRoot":"../","sources":["Transaction/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAW9B,MAAM,KAAW,SAAS,CAczB;AAdD,WAAiB,SAAS;IACzB,SAAgB,EAAE,CAAC,KAAsB;QACxC,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1B,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC;YAC1D,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjC,OAAO,KAAK,CAAC,MAAM,IAAI,QAAQ;YAC/B,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS,IAAI,OAAO,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC;YACxE,CAAC,KAAK,CAAC,UAAU,IAAI,SAAS;gBAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CACrF,CAAA;IACF,CAAC;IAZe,YAAE,KAYjB,CAAA;AACF,CAAC,EAdgB,SAAS,KAAT,SAAS,QAczB"}
@@ -4,7 +4,8 @@ import { Operation } from "../Operation";
4
4
  import { Creatable as TransactionCreatable } from "./Creatable";
5
5
  export interface Transaction extends TransactionCreatable {
6
6
  readonly id: cryptly.Identifier;
7
- readonly timestamp: isoly.DateTime;
7
+ readonly posted: isoly.DateTime;
8
+ readonly transacted?: isoly.DateTime;
8
9
  type: "actual" | "available";
9
10
  balance: number;
10
11
  operations: Operation[];
@@ -8,7 +8,7 @@ export var Transaction;
8
8
  return (typeof value == "object" &&
9
9
  TransactionCreatable.is({ ...value }) &&
10
10
  cryptly.Identifier.is(value.id, 8) &&
11
- isoly.DateTime.is(value.timestamp) &&
11
+ isoly.DateTime.is(value.posted) &&
12
12
  (value.type == "actual" || value.type == "available") &&
13
13
  typeof value.balance == "number" &&
14
14
  Array.isArray(value.operations) &&
@@ -18,9 +18,13 @@ export var Transaction;
18
18
  function fromCreatable(transaction, type, result) {
19
19
  const id = cryptly.Identifier.generate(8);
20
20
  const timestamp = isoly.DateTime.now();
21
+ if ("id" in transaction)
22
+ delete transaction.id;
23
+ if ("posted" in transaction)
24
+ delete transaction.posted;
21
25
  return {
22
26
  id: id,
23
- timestamp: timestamp,
27
+ posted: timestamp,
24
28
  type: type,
25
29
  balance: result,
26
30
  ...transaction,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["Transaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAW/D,MAAM,KAAW,WAAW,CAmC3B;AAnCD,WAAiB,WAAW;IAC3B,SAAgB,EAAE,CAAC,KAAwB;QAC1C,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,oBAAoB,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;YAClC,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC;YACrD,OAAO,KAAK,CAAC,OAAO,IAAI,QAAQ;YAChC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CACpC,CAAA;IACF,CAAC;IAXe,cAAE,KAWjB,CAAA;IACD,SAAgB,aAAa,CAC5B,WAA8D,EAC9D,IAA4B,EAC5B,MAAc;QAEd,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACtC,OAAO;YACN,EAAE,EAAE,EAAE;YACN,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,MAAM;YACf,GAAG,WAAW;YACd,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;SAC/D,CAAA;IACF,CAAC;IAfe,yBAAa,gBAe5B,CAAA;IACD,SAAgB,YAAY,CAAC,KAA+B;QAC3D,OAAO,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAFe,wBAAY,eAE3B,CAAA;IAGY,qBAAS,GAAG,oBAAoB,CAAA;AAC9C,CAAC,EAnCgB,WAAW,KAAX,WAAW,QAmC3B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["Transaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAW/D,MAAM,KAAW,WAAW,CAuC3B;AAvCD,WAAiB,WAAW;IAC3B,SAAgB,EAAE,CAAC,KAAwB;QAC1C,OAAO,CACN,OAAO,KAAK,IAAI,QAAQ;YACxB,oBAAoB,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC;YACrD,OAAO,KAAK,CAAC,OAAO,IAAI,QAAQ;YAChC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CACpC,CAAA;IACF,CAAC;IAXe,cAAE,KAWjB,CAAA;IACD,SAAgB,aAAa,CAC5B,WAA8D,EAC9D,IAA4B,EAC5B,MAAc;QAEd,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACtC,IAAI,IAAI,IAAI,WAAW;YACtB,OAAO,WAAW,CAAC,EAAE,CAAA;QACtB,IAAI,QAAQ,IAAI,WAAW;YAC1B,OAAO,WAAW,CAAC,MAAM,CAAA;QAC1B,OAAO;YACN,EAAE,EAAE,EAAE;YACN,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,MAAM;YACf,GAAG,WAAW;YACd,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;SAC/D,CAAA;IACF,CAAC;IAnBe,yBAAa,gBAmB5B,CAAA;IACD,SAAgB,YAAY,CAAC,KAA+B;QAC3D,OAAO,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAFe,wBAAY,eAE3B,CAAA;IAGY,qBAAS,GAAG,oBAAoB,CAAA;AAC9C,CAAC,EAvCgB,WAAW,KAAX,WAAW,QAuC3B"}
package/dist/index.d.ts CHANGED
@@ -5,3 +5,4 @@ export { Operation } from "./Operation";
5
5
  export { Organization } from "./Organization";
6
6
  export { Rail } from "./Rail";
7
7
  export { Transaction } from "./Transaction";
8
+ export { Decision, Reviewable } from "./Monitoring";
package/dist/index.js CHANGED
@@ -5,4 +5,5 @@ export { Operation } from "./Operation";
5
5
  export { Organization } from "./Organization";
6
6
  export { Rail } from "./Rail";
7
7
  export { Transaction } from "./Transaction";
8
+ export { Decision, Reviewable } from "./Monitoring";
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
package/index.ts CHANGED
@@ -5,3 +5,4 @@ export { Operation } from "./Operation"
5
5
  export { Organization } from "./Organization"
6
6
  export { Rail } from "./Rail"
7
7
  export { Transaction } from "./Transaction"
8
+ export { Decision, Reviewable } from "./Monitoring"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pax2pay/model-banking",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Library containing data model types and functions for the Pax2Pay Banking API.",
5
5
  "author": "Pax2Pay Ltd",
6
6
  "license": "MIT",
@@ -54,17 +54,17 @@
54
54
  "clean": "rimraf dist node_modules coverage"
55
55
  },
56
56
  "devDependencies": {
57
- "@types/jest": "^29.2.4",
58
- "@typescript-eslint/eslint-plugin": "5.46.1",
59
- "@typescript-eslint/parser": "5.46.1",
60
- "eslint": "^8.30.0",
61
- "eslint-plugin-prettierx": "github:utily/eslint-plugin-prettierx#utily-20221021",
62
- "eslint-plugin-simple-import-sort": "^8.0.0",
63
- "jest": "^29.3.1",
64
- "prettierx": "github:utily/prettierx#utily-20221021",
65
- "rimraf": "^3.0.2",
66
- "ts-jest": "^29.0.3",
67
- "typescript": "^4.9.4"
57
+ "@types/jest": "^29.4.0",
58
+ "@typescript-eslint/eslint-plugin": "5.52.0",
59
+ "@typescript-eslint/parser": "5.52.0",
60
+ "eslint": "^8.34.0",
61
+ "eslint-plugin-prettierx": "github:utily/eslint-plugin-prettierx#utily-20221229",
62
+ "eslint-plugin-simple-import-sort": "^10.0.0",
63
+ "jest": "^29.4.2",
64
+ "prettierx": "github:utily/prettierx#utily-20221229",
65
+ "rimraf": "^4.1.2",
66
+ "ts-jest": "^29.0.5",
67
+ "typescript": "^4.9.5"
68
68
  },
69
69
  "dependencies": {
70
70
  "cryptly": "^3.0.2",