@pax2pay/model-banking 0.1.479 → 0.1.481

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/Identity.ts CHANGED
@@ -80,12 +80,13 @@ export class Identity<T extends Identity.Require = never> {
80
80
  (identity?.check(constraint) && requirement(identity) && identity) ||
81
81
  (output === "undefined" ? undefined : gracely.client.forbidden())
82
82
  }
83
- gracely.Error.is(result) &&
84
- result.type == "forbidden" &&
85
- (await notify?.slack.send(
86
- "monitoring",
83
+ if (gracely.Error.is(result) && result.type == "forbidden") {
84
+ await notify?.slack.send(
85
+ "notifications",
87
86
  `Unauthorized access attempt at ${notify.method.toUpperCase()} ${notify.endpoint}`
88
- ))
87
+ )
88
+ console.log("Unauthorized access attempt at", notify?.method.toUpperCase(), notify?.endpoint)
89
+ }
89
90
  return result
90
91
  }
91
92
  static async verify(
@@ -116,7 +117,7 @@ export namespace Identity {
116
117
  organization?: string
117
118
  }
118
119
  export type Notify = {
119
- slack: slackly.Connection<["monitoring", ...string[]]>
120
+ slack: slackly.Connection<["notifications", ...string[]]>
120
121
  endpoint: string
121
122
  method: string
122
123
  }
@@ -2,26 +2,40 @@ import { isoly } from "isoly"
2
2
  import { isly } from "isly"
3
3
  import { Creatable as AuthorizationCreatable } from "../../Authorization/Creatable"
4
4
  import { Merchant } from "../../Merchant"
5
- import type { Rail } from "../../Rail"
5
+ import { Rail } from "../../Rail"
6
6
  import type { Transaction } from "../../Transaction"
7
7
 
8
- export interface Authorization extends Omit<AuthorizationCreatable, "amount"> {
8
+ export interface Authorization extends Omit<AuthorizationCreatable, "amount" | "reference"> {
9
9
  time: string
10
10
  hour: number
11
11
  currency: isoly.Currency
12
12
  amount: number
13
13
  merchant: Merchant & { reference: string }
14
+ reference?: string
14
15
  }
15
16
  export namespace Authorization {
16
- export function from(authorization: AuthorizationCreatable): Authorization {
17
- return {
18
- ...authorization,
19
- time: isoly.DateTime.getTime(isoly.DateTime.now()),
20
- hour: isoly.DateTime.getHour(isoly.DateTime.now()),
21
- currency: authorization.amount[0],
22
- amount: Math.abs(authorization.amount[1]),
23
- merchant: { ...authorization.merchant, reference: `${authorization.acquirer.id}-${authorization.merchant.id}` },
24
- }
17
+ export function from(transaction: Transaction.Creatable.Resolved | Transaction): Authorization | undefined {
18
+ return Rail.Address.Card.Counterpart.type.is(transaction.counterpart) &&
19
+ "account" in transaction &&
20
+ transaction.account.type == "card" &&
21
+ "id" in transaction.account
22
+ ? {
23
+ time: isoly.DateTime.getTime(isoly.DateTime.now()),
24
+ hour: isoly.DateTime.getHour(isoly.DateTime.now()),
25
+ currency: transaction.currency,
26
+ amount: Math.abs(typeof transaction.amount == "number" ? transaction.amount : transaction.amount.original),
27
+ merchant: {
28
+ ...transaction.counterpart.merchant,
29
+ reference: `${transaction.counterpart.acquirer.id}-${transaction.counterpart.merchant.id}`,
30
+ },
31
+ card: transaction.account.id,
32
+ acquirer: transaction.counterpart.acquirer,
33
+ reference:
34
+ typeof transaction.reference == "string" ? transaction.reference : transaction.reference?.reference,
35
+ description: transaction.description,
36
+ ...("exchange" in transaction ? { exchange: transaction.exchange } : {}),
37
+ }
38
+ : undefined
25
39
  }
26
40
  export function toTransaction(authorization: Authorization): Transaction.Creatable & {
27
41
  counterpart: Rail.Address.Card.Counterpart
@@ -37,7 +51,7 @@ export namespace Authorization {
37
51
  },
38
52
  }
39
53
  }
40
- export const type = AuthorizationCreatable.type.omit(["amount"]).extend<Authorization>({
54
+ export const type = AuthorizationCreatable.type.omit(["amount", "reference"]).extend<Authorization>({
41
55
  time: isly.string(),
42
56
  hour: isly.number(),
43
57
  currency: isly.string(isoly.Currency.values),
@@ -46,5 +60,6 @@ export namespace Authorization {
46
60
  Merchant.type,
47
61
  isly.object<{ reference: string }>({ reference: isly.string() })
48
62
  ),
63
+ reference: isly.string().optional(),
49
64
  })
50
65
  }
@@ -2,7 +2,7 @@ import { isoly } from "isoly"
2
2
  import { Transaction as ModelTransaction } from "../../Transaction"
3
3
  import type { Rule } from "../index"
4
4
 
5
- export interface Transaction extends ModelTransaction.Creatable.Resolved {
5
+ export type Transaction = ModelTransaction.Creatable.Resolved & {
6
6
  kind: Rule.Base.Kind
7
7
  stage: "finalize" | "initiate"
8
8
  amount: number
@@ -47,7 +47,6 @@ export namespace State {
47
47
  transaction: ModelTransaction.Creatable.Resolved | ModelTransaction,
48
48
  kind: Rule.Base.Kind,
49
49
  stage: "finalize" | "initiate",
50
- authorization?: Authorization,
51
50
  card?: Card,
52
51
  organization?: Organization
53
52
  ): State {
@@ -55,7 +54,7 @@ export namespace State {
55
54
  data,
56
55
  account: Account.from(account, address, transactions, days),
57
56
  transaction: Transaction.from(account.name, transaction, kind, stage),
58
- authorization,
57
+ authorization: Authorization.from(transaction),
59
58
  card,
60
59
  organization,
61
60
  }
@@ -11,7 +11,7 @@ export interface Creatable {
11
11
  exchange?: Exchange
12
12
  }
13
13
  export namespace Creatable {
14
- export type Resolved = Creatable & { counterpart: Rail.Address }
14
+ export type Resolved = (Creatable & { counterpart: Rail.Address }) | CardTransaction
15
15
  export const type = isly.object<Creatable>({
16
16
  counterpart: isly.union<string | Rail.Address, string, Rail.Address>(isly.string(), Rail.Address.type),
17
17
  currency: isly.fromIs("isoly.Currency", isoly.Currency.is),
@@ -19,4 +19,10 @@ export namespace Creatable {
19
19
  description: isly.string(),
20
20
  exchange: Exchange.type.optional(),
21
21
  })
22
+ export interface CardTransaction extends Creatable {
23
+ account: Pick<Rail.Address.Card, "id" | "type">
24
+ counterpart: Rail.Address.Card.Counterpart
25
+ reference: { reference: string }
26
+ approvalCode?: string
27
+ }
22
28
  }
@@ -32,7 +32,7 @@ export declare namespace Identity {
32
32
  organization?: string;
33
33
  }
34
34
  type Notify = {
35
- slack: slackly.Connection<["monitoring", ...string[]]>;
35
+ slack: slackly.Connection<["notifications", ...string[]]>;
36
36
  endpoint: string;
37
37
  method: string;
38
38
  };
@@ -47,9 +47,10 @@ class Identity {
47
47
  (identity?.check(constraint) && requirement(identity) && identity) ||
48
48
  (output === "undefined" ? undefined : gracely_1.gracely.client.forbidden());
49
49
  }
50
- gracely_1.gracely.Error.is(result) &&
51
- result.type == "forbidden" &&
52
- (await notify?.slack.send("monitoring", `Unauthorized access attempt at ${notify.method.toUpperCase()} ${notify.endpoint}`));
50
+ if (gracely_1.gracely.Error.is(result) && result.type == "forbidden") {
51
+ await notify?.slack.send("notifications", `Unauthorized access attempt at ${notify.method.toUpperCase()} ${notify.endpoint}`);
52
+ console.log("Unauthorized access attempt at", notify?.method.toUpperCase(), notify?.endpoint);
53
+ }
53
54
  return result;
54
55
  }
55
56
  static async verify(authorization, verifier = productionVerifier) {
@@ -1 +1 @@
1
- {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../Identity.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,8CAAgD;AAGhD,mCAA+B;AAE/B,MAAa,QAAQ;IAOV;IACA;IACA;IARV,OAAO,CAAqB;IAC5B,IAAI,MAAM;QACT,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,YACU,GAAQ,EACR,KAA0D,EAC1D,YAA0E;QAF1E,QAAG,GAAH,GAAG,CAAK;QACR,UAAK,GAAL,KAAK,CAAqD;QAC1D,iBAAY,GAAZ,YAAY,CAA8D;IACjF,CAAC;IACJ,KAAK,CAAC,UAA+C,EAAE,KAAa,EAAE,YAAqB;QAC1F,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAC/B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YAC1D,CAAC,CAAC;gBACA,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE;gBAC/E,EAAE,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE;gBACxD,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,UAAU,EAAE;gBAC5C,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE;aACtB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,eAAe,CAAC,UAAkB;QACjC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAC9C,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CACzE,CAAA;IACF,CAAC;IAkBD,MAAM,CAAC,KAAK,CAAC,YAAY,CACxB,MAAoF,EACpF,UAA+C,EAC/C,QAAY,EACZ,WAA+C,kBAAkB,EACjE,SAAgC,WAAW,EAC3C,MAAwB;QAExB,IAAI,MAA+C,CAAA;QACnD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC;YAChE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAA;QACZ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;QAC1D,IAAI,CAAC,GAAG;YACP,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,GAAG,iBAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;aAC9D,CAAC;YACL,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC5B,GAAG,EACH,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAU,EACzD,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAW,CACnD,CAAA;YACD,MAAM,WAAW,GAAG,CACnB,KAA2B,EAGf,EAAE,CACd,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1D,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,aAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC1D,MAAM;gBACL,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;oBAClE,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QACnE,CAAC;QACD,iBAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;YACvB,MAAM,CAAC,IAAI,IAAI,WAAW;YAC1B,CAAC,MAAM,MAAM,EAAE,KAAK,CAAC,IAAI,CACxB,YAAY,EACZ,kCAAkC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAClF,CAAC,CAAA;QACH,OAAO,MAAM,CAAA;IACd,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,MAAM,CAClB,aAAiC,EACjC,WAA+C,kBAAkB;QAEjE,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,CAAC,SAAS,CAAC,WAA4B;QAC5C,OAAO;YACN,GAAG,IAAI,GAAG,CACT,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CACnF,CACD;SACD,CAAA;IACF,CAAC;CACD;AAnGD,4BAmGC;AAkBD,MAAM,SAAS,GACd,kuBAAkuB,CAAA;AACnuB,MAAM,kBAAkB,GAAG,mBAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAM,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../Identity.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { isoly } from "isoly";
2
2
  import { Creatable as AuthorizationCreatable } from "../../Authorization/Creatable";
3
3
  import { Merchant } from "../../Merchant";
4
- import type { Rail } from "../../Rail";
4
+ import { Rail } from "../../Rail";
5
5
  import type { Transaction } from "../../Transaction";
6
- export interface Authorization extends Omit<AuthorizationCreatable, "amount"> {
6
+ export interface Authorization extends Omit<AuthorizationCreatable, "amount" | "reference"> {
7
7
  time: string;
8
8
  hour: number;
9
9
  currency: isoly.Currency;
@@ -11,11 +11,12 @@ export interface Authorization extends Omit<AuthorizationCreatable, "amount"> {
11
11
  merchant: Merchant & {
12
12
  reference: string;
13
13
  };
14
+ reference?: string;
14
15
  }
15
16
  export declare namespace Authorization {
16
- function from(authorization: AuthorizationCreatable): Authorization;
17
+ function from(transaction: Transaction.Creatable.Resolved | Transaction): Authorization | undefined;
17
18
  function toTransaction(authorization: Authorization): Transaction.Creatable & {
18
19
  counterpart: Rail.Address.Card.Counterpart;
19
20
  };
20
- const type: import("isly/dist/cjs/object").IslyObject<Authorization, Omit<AuthorizationCreatable, "amount">>;
21
+ const type: import("isly/dist/cjs/object").IslyObject<Authorization, Omit<AuthorizationCreatable, "amount" | "reference">>;
21
22
  }
@@ -5,17 +5,30 @@ const isoly_1 = require("isoly");
5
5
  const isly_1 = require("isly");
6
6
  const Creatable_1 = require("../../Authorization/Creatable");
7
7
  const Merchant_1 = require("../../Merchant");
8
+ const Rail_1 = require("../../Rail");
8
9
  var Authorization;
9
10
  (function (Authorization) {
10
- function from(authorization) {
11
- return {
12
- ...authorization,
13
- time: isoly_1.isoly.DateTime.getTime(isoly_1.isoly.DateTime.now()),
14
- hour: isoly_1.isoly.DateTime.getHour(isoly_1.isoly.DateTime.now()),
15
- currency: authorization.amount[0],
16
- amount: Math.abs(authorization.amount[1]),
17
- merchant: { ...authorization.merchant, reference: `${authorization.acquirer.id}-${authorization.merchant.id}` },
18
- };
11
+ function from(transaction) {
12
+ return Rail_1.Rail.Address.Card.Counterpart.type.is(transaction.counterpart) &&
13
+ "account" in transaction &&
14
+ transaction.account.type == "card" &&
15
+ "id" in transaction.account
16
+ ? {
17
+ time: isoly_1.isoly.DateTime.getTime(isoly_1.isoly.DateTime.now()),
18
+ hour: isoly_1.isoly.DateTime.getHour(isoly_1.isoly.DateTime.now()),
19
+ currency: transaction.currency,
20
+ amount: Math.abs(typeof transaction.amount == "number" ? transaction.amount : transaction.amount.original),
21
+ merchant: {
22
+ ...transaction.counterpart.merchant,
23
+ reference: `${transaction.counterpart.acquirer.id}-${transaction.counterpart.merchant.id}`,
24
+ },
25
+ card: transaction.account.id,
26
+ acquirer: transaction.counterpart.acquirer,
27
+ reference: typeof transaction.reference == "string" ? transaction.reference : transaction.reference?.reference,
28
+ description: transaction.description,
29
+ ...("exchange" in transaction ? { exchange: transaction.exchange } : {}),
30
+ }
31
+ : undefined;
19
32
  }
20
33
  Authorization.from = from;
21
34
  function toTransaction(authorization) {
@@ -31,12 +44,13 @@ var Authorization;
31
44
  };
32
45
  }
33
46
  Authorization.toTransaction = toTransaction;
34
- Authorization.type = Creatable_1.Creatable.type.omit(["amount"]).extend({
47
+ Authorization.type = Creatable_1.Creatable.type.omit(["amount", "reference"]).extend({
35
48
  time: isly_1.isly.string(),
36
49
  hour: isly_1.isly.number(),
37
50
  currency: isly_1.isly.string(isoly_1.isoly.Currency.values),
38
51
  amount: isly_1.isly.number(),
39
52
  merchant: isly_1.isly.intersection(Merchant_1.Merchant.type, isly_1.isly.object({ reference: isly_1.isly.string() })),
53
+ reference: isly_1.isly.string().optional(),
40
54
  });
41
55
  })(Authorization || (exports.Authorization = Authorization = {}));
42
56
  //# sourceMappingURL=Authorization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../../../Rule/State/Authorization.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,+BAA2B;AAC3B,6DAAmF;AACnF,6CAAyC;AAWzC,IAAiB,aAAa,CAmC7B;AAnCD,WAAiB,aAAa;IAC7B,SAAgB,IAAI,CAAC,aAAqC;QACzD,OAAO;YACN,GAAG,aAAa;YAChB,IAAI,EAAE,aAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAClD,IAAI,EAAE,aAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAClD,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzC,QAAQ,EAAE,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE;SAC/G,CAAA;IACF,CAAC;IATe,kBAAI,OASnB,CAAA;IACD,SAAgB,aAAa,CAAC,aAA4B;QAGzD,OAAO;YACN,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,WAAW,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,QAAQ,EAAE,aAAa,CAAC,QAAQ;aAChC;SACD,CAAA;IACF,CAAC;IAbe,2BAAa,gBAa5B,CAAA;IACY,kBAAI,GAAG,qBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAgB;QACtF,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,aAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,WAAI,CAAC,YAAY,CAC1B,mBAAQ,CAAC,IAAI,EACb,WAAI,CAAC,MAAM,CAAwB,EAAE,SAAS,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAChE;KACD,CAAC,CAAA;AACH,CAAC,EAnCgB,aAAa,6BAAb,aAAa,QAmC7B"}
1
+ {"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../../../Rule/State/Authorization.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { isoly } from "isoly";
2
2
  import { Transaction as ModelTransaction } from "../../Transaction";
3
3
  import type { Rule } from "../index";
4
- export interface Transaction extends ModelTransaction.Creatable.Resolved {
4
+ export type Transaction = ModelTransaction.Creatable.Resolved & {
5
5
  kind: Rule.Base.Kind;
6
6
  stage: "finalize" | "initiate";
7
7
  amount: number;
@@ -17,7 +17,7 @@ export interface Transaction extends ModelTransaction.Creatable.Resolved {
17
17
  };
18
18
  reserve?: number;
19
19
  };
20
- }
20
+ };
21
21
  export declare namespace Transaction {
22
22
  function from(accountName: string, transaction: ModelTransaction.Creatable.Resolved | ModelTransaction, kind: Rule.Base.Kind, stage: "finalize" | "initiate"): Transaction;
23
23
  }
@@ -37,5 +37,5 @@ export declare namespace State {
37
37
  flags: string[];
38
38
  notes: ModelTransaction.Note[];
39
39
  }
40
- function from(data: Data, account: ModelAccount, address: Rail.Address, transactions: Account.Transactions, days: Account.Days, transaction: ModelTransaction.Creatable.Resolved | ModelTransaction, kind: Rule.Base.Kind, stage: "finalize" | "initiate", authorization?: Authorization, card?: Card, organization?: Organization): State;
40
+ function from(data: Data, account: ModelAccount, address: Rail.Address, transactions: Account.Transactions, days: Account.Days, transaction: ModelTransaction.Creatable.Resolved | ModelTransaction, kind: Rule.Base.Kind, stage: "finalize" | "initiate", card?: Card, organization?: Organization): State;
41
41
  }
@@ -21,12 +21,12 @@ var State;
21
21
  Outcome.values = ["approve", "reject", "review"];
22
22
  Outcome.type = isly_1.isly.string(Outcome.values);
23
23
  })(Outcome = State.Outcome || (State.Outcome = {}));
24
- function from(data, account, address, transactions, days, transaction, kind, stage, authorization, card, organization) {
24
+ function from(data, account, address, transactions, days, transaction, kind, stage, card, organization) {
25
25
  return {
26
26
  data,
27
27
  account: State.Account.from(account, address, transactions, days),
28
28
  transaction: State.Transaction.from(account.name, transaction, kind, stage),
29
- authorization,
29
+ authorization: State.Authorization.from(transaction),
30
30
  card,
31
31
  organization,
32
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Rule/State/index.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAK3B,uCAAmD;AACnD,mDAAqE;AACrE,iCAA0C;AAE1C,iDAAkE;AAClE,uCAAmD;AACnD,+CAA+D;AAU/D,IAAiB,KAAK,CAyCrB;AAzCD,WAAiB,KAAK;IACP,aAAO,GAAG,iBAAY,CAAA;IACtB,mBAAa,GAAG,6BAAkB,CAAA;IAClC,UAAI,GAAG,WAAS,CAAA;IAChB,aAAO,GAAG,iBAAY,CAAA;IACtB,iBAAW,GAAG,yBAAgB,CAAA;IAC9B,kBAAY,GAAG,2BAAiB,CAAA;IAG9C,IAAiB,OAAO,CAGvB;IAHD,WAAiB,OAAO;QACV,cAAM,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;QACjD,YAAI,GAAG,WAAI,CAAC,MAAM,CAAU,QAAA,MAAM,CAAC,CAAA;IACjD,CAAC,EAHgB,OAAO,GAAP,aAAO,KAAP,aAAO,QAGvB;IAOD,SAAgB,IAAI,CACnB,IAAU,EACV,OAAqB,EACrB,OAAqB,EACrB,YAAkC,EAClC,IAAkB,EAClB,WAAmE,EACnE,IAAoB,EACpB,KAA8B,EAC9B,aAA6B,EAC7B,IAAW,EACX,YAA2B;QAE3B,OAAO;YACN,IAAI;YACJ,OAAO,EAAE,MAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC;YAC3D,WAAW,EAAE,MAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;YACrE,aAAa;YACb,IAAI;YACJ,YAAY;SACZ,CAAA;IACF,CAAC;IArBe,UAAI,OAqBnB,CAAA;AACF,CAAC,EAzCgB,KAAK,qBAAL,KAAK,QAyCrB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Rule/State/index.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAK3B,uCAAmD;AACnD,mDAAqE;AACrE,iCAA0C;AAE1C,iDAAkE;AAClE,uCAAmD;AACnD,+CAA+D;AAU/D,IAAiB,KAAK,CAwCrB;AAxCD,WAAiB,KAAK;IACP,aAAO,GAAG,iBAAY,CAAA;IACtB,mBAAa,GAAG,6BAAkB,CAAA;IAClC,UAAI,GAAG,WAAS,CAAA;IAChB,aAAO,GAAG,iBAAY,CAAA;IACtB,iBAAW,GAAG,yBAAgB,CAAA;IAC9B,kBAAY,GAAG,2BAAiB,CAAA;IAG9C,IAAiB,OAAO,CAGvB;IAHD,WAAiB,OAAO;QACV,cAAM,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;QACjD,YAAI,GAAG,WAAI,CAAC,MAAM,CAAU,QAAA,MAAM,CAAC,CAAA;IACjD,CAAC,EAHgB,OAAO,GAAP,aAAO,KAAP,aAAO,QAGvB;IAOD,SAAgB,IAAI,CACnB,IAAU,EACV,OAAqB,EACrB,OAAqB,EACrB,YAAkC,EAClC,IAAkB,EAClB,WAAmE,EACnE,IAAoB,EACpB,KAA8B,EAC9B,IAAW,EACX,YAA2B;QAE3B,OAAO;YACN,IAAI;YACJ,OAAO,EAAE,MAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC;YAC3D,WAAW,EAAE,MAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;YACrE,aAAa,EAAE,MAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAC9C,IAAI;YACJ,YAAY;SACZ,CAAA;IACF,CAAC;IApBe,UAAI,OAoBnB,CAAA;AACF,CAAC,EAxCgB,KAAK,qBAAL,KAAK,QAwCrB"}
@@ -9,8 +9,16 @@ export interface Creatable {
9
9
  exchange?: Exchange;
10
10
  }
11
11
  export declare namespace Creatable {
12
- type Resolved = Creatable & {
12
+ type Resolved = (Creatable & {
13
13
  counterpart: Rail.Address;
14
- };
14
+ }) | CardTransaction;
15
15
  const type: import("isly/dist/cjs/object").IslyObject<Creatable, object>;
16
+ interface CardTransaction extends Creatable {
17
+ account: Pick<Rail.Address.Card, "id" | "type">;
18
+ counterpart: Rail.Address.Card.Counterpart;
19
+ reference: {
20
+ reference: string;
21
+ };
22
+ approvalCode?: string;
23
+ }
16
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../../Transaction/Creatable.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,+BAA2B;AAC3B,kCAA8B;AAC9B,yCAAqC;AASrC,IAAiB,SAAS,CASzB;AATD,WAAiB,SAAS;IAEZ,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY;QAC1C,WAAW,EAAE,WAAI,CAAC,KAAK,CAA8C,WAAI,CAAC,MAAM,EAAE,EAAE,WAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACtG,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE;QAC1B,QAAQ,EAAE,mBAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAA;AACH,CAAC,EATgB,SAAS,yBAAT,SAAS,QASzB"}
1
+ {"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../../Transaction/Creatable.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,+BAA2B;AAC3B,kCAA8B;AAC9B,yCAAqC;AASrC,IAAiB,SAAS,CAezB;AAfD,WAAiB,SAAS;IAEZ,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY;QAC1C,WAAW,EAAE,WAAI,CAAC,KAAK,CAA8C,WAAI,CAAC,MAAM,EAAE,EAAE,WAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACtG,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE;QAC1B,QAAQ,EAAE,mBAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAA;AAOH,CAAC,EAfgB,SAAS,yBAAT,SAAS,QAezB"}
@@ -32,7 +32,7 @@ export declare namespace Identity {
32
32
  organization?: string;
33
33
  }
34
34
  type Notify = {
35
- slack: slackly.Connection<["monitoring", ...string[]]>;
35
+ slack: slackly.Connection<["notifications", ...string[]]>;
36
36
  endpoint: string;
37
37
  method: string;
38
38
  };
@@ -44,9 +44,10 @@ export class Identity {
44
44
  (identity?.check(constraint) && requirement(identity) && identity) ||
45
45
  (output === "undefined" ? undefined : gracely.client.forbidden());
46
46
  }
47
- gracely.Error.is(result) &&
48
- result.type == "forbidden" &&
49
- (await notify?.slack.send("monitoring", `Unauthorized access attempt at ${notify.method.toUpperCase()} ${notify.endpoint}`));
47
+ if (gracely.Error.is(result) && result.type == "forbidden") {
48
+ await notify?.slack.send("notifications", `Unauthorized access attempt at ${notify.method.toUpperCase()} ${notify.endpoint}`);
49
+ console.log("Unauthorized access attempt at", notify?.method.toUpperCase(), notify?.endpoint);
50
+ }
50
51
  return result;
51
52
  }
52
53
  static async verify(authorization, verifier = productionVerifier) {
@@ -1 +1 @@
1
- {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../Identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../Identity.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { isoly } from "isoly";
2
2
  import { Creatable as AuthorizationCreatable } from "../../Authorization/Creatable";
3
3
  import { Merchant } from "../../Merchant";
4
- import type { Rail } from "../../Rail";
4
+ import { Rail } from "../../Rail";
5
5
  import type { Transaction } from "../../Transaction";
6
- export interface Authorization extends Omit<AuthorizationCreatable, "amount"> {
6
+ export interface Authorization extends Omit<AuthorizationCreatable, "amount" | "reference"> {
7
7
  time: string;
8
8
  hour: number;
9
9
  currency: isoly.Currency;
@@ -11,11 +11,12 @@ export interface Authorization extends Omit<AuthorizationCreatable, "amount"> {
11
11
  merchant: Merchant & {
12
12
  reference: string;
13
13
  };
14
+ reference?: string;
14
15
  }
15
16
  export declare namespace Authorization {
16
- function from(authorization: AuthorizationCreatable): Authorization;
17
+ function from(transaction: Transaction.Creatable.Resolved | Transaction): Authorization | undefined;
17
18
  function toTransaction(authorization: Authorization): Transaction.Creatable & {
18
19
  counterpart: Rail.Address.Card.Counterpart;
19
20
  };
20
- const type: import("isly/dist/cjs/object").IslyObject<Authorization, Omit<AuthorizationCreatable, "amount">>;
21
+ const type: import("isly/dist/cjs/object").IslyObject<Authorization, Omit<AuthorizationCreatable, "amount" | "reference">>;
21
22
  }
@@ -2,17 +2,30 @@ import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
3
  import { Creatable as AuthorizationCreatable } from "../../Authorization/Creatable";
4
4
  import { Merchant } from "../../Merchant";
5
+ import { Rail } from "../../Rail";
5
6
  export var Authorization;
6
7
  (function (Authorization) {
7
- function from(authorization) {
8
- return {
9
- ...authorization,
10
- time: isoly.DateTime.getTime(isoly.DateTime.now()),
11
- hour: isoly.DateTime.getHour(isoly.DateTime.now()),
12
- currency: authorization.amount[0],
13
- amount: Math.abs(authorization.amount[1]),
14
- merchant: { ...authorization.merchant, reference: `${authorization.acquirer.id}-${authorization.merchant.id}` },
15
- };
8
+ function from(transaction) {
9
+ return Rail.Address.Card.Counterpart.type.is(transaction.counterpart) &&
10
+ "account" in transaction &&
11
+ transaction.account.type == "card" &&
12
+ "id" in transaction.account
13
+ ? {
14
+ time: isoly.DateTime.getTime(isoly.DateTime.now()),
15
+ hour: isoly.DateTime.getHour(isoly.DateTime.now()),
16
+ currency: transaction.currency,
17
+ amount: Math.abs(typeof transaction.amount == "number" ? transaction.amount : transaction.amount.original),
18
+ merchant: {
19
+ ...transaction.counterpart.merchant,
20
+ reference: `${transaction.counterpart.acquirer.id}-${transaction.counterpart.merchant.id}`,
21
+ },
22
+ card: transaction.account.id,
23
+ acquirer: transaction.counterpart.acquirer,
24
+ reference: typeof transaction.reference == "string" ? transaction.reference : transaction.reference?.reference,
25
+ description: transaction.description,
26
+ ...("exchange" in transaction ? { exchange: transaction.exchange } : {}),
27
+ }
28
+ : undefined;
16
29
  }
17
30
  Authorization.from = from;
18
31
  function toTransaction(authorization) {
@@ -28,12 +41,13 @@ export var Authorization;
28
41
  };
29
42
  }
30
43
  Authorization.toTransaction = toTransaction;
31
- Authorization.type = AuthorizationCreatable.type.omit(["amount"]).extend({
44
+ Authorization.type = AuthorizationCreatable.type.omit(["amount", "reference"]).extend({
32
45
  time: isly.string(),
33
46
  hour: isly.number(),
34
47
  currency: isly.string(isoly.Currency.values),
35
48
  amount: isly.number(),
36
49
  merchant: isly.intersection(Merchant.type, isly.object({ reference: isly.string() })),
50
+ reference: isly.string().optional(),
37
51
  });
38
52
  })(Authorization || (Authorization = {}));
39
53
  //# sourceMappingURL=Authorization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../../../Rule/State/Authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,SAAS,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAWzC,MAAM,KAAW,aAAa,CAmC7B;AAnCD,WAAiB,aAAa;IAC7B,SAAgB,IAAI,CAAC,aAAqC;QACzD,OAAO;YACN,GAAG,aAAa;YAChB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAClD,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAClD,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzC,QAAQ,EAAE,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE;SAC/G,CAAA;IACF,CAAC;IATe,kBAAI,OASnB,CAAA;IACD,SAAgB,aAAa,CAAC,aAA4B;QAGzD,OAAO;YACN,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,WAAW,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,QAAQ,EAAE,aAAa,CAAC,QAAQ;aAChC;SACD,CAAA;IACF,CAAC;IAbe,2BAAa,gBAa5B,CAAA;IACY,kBAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAgB;QACtF,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAC1B,QAAQ,CAAC,IAAI,EACb,IAAI,CAAC,MAAM,CAAwB,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAChE;KACD,CAAC,CAAA;AACH,CAAC,EAnCgB,aAAa,KAAb,aAAa,QAmC7B"}
1
+ {"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../../../Rule/State/Authorization.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { isoly } from "isoly";
2
2
  import { Transaction as ModelTransaction } from "../../Transaction";
3
3
  import type { Rule } from "../index";
4
- export interface Transaction extends ModelTransaction.Creatable.Resolved {
4
+ export type Transaction = ModelTransaction.Creatable.Resolved & {
5
5
  kind: Rule.Base.Kind;
6
6
  stage: "finalize" | "initiate";
7
7
  amount: number;
@@ -17,7 +17,7 @@ export interface Transaction extends ModelTransaction.Creatable.Resolved {
17
17
  };
18
18
  reserve?: number;
19
19
  };
20
- }
20
+ };
21
21
  export declare namespace Transaction {
22
22
  function from(accountName: string, transaction: ModelTransaction.Creatable.Resolved | ModelTransaction, kind: Rule.Base.Kind, stage: "finalize" | "initiate"): Transaction;
23
23
  }
@@ -37,5 +37,5 @@ export declare namespace State {
37
37
  flags: string[];
38
38
  notes: ModelTransaction.Note[];
39
39
  }
40
- function from(data: Data, account: ModelAccount, address: Rail.Address, transactions: Account.Transactions, days: Account.Days, transaction: ModelTransaction.Creatable.Resolved | ModelTransaction, kind: Rule.Base.Kind, stage: "finalize" | "initiate", authorization?: Authorization, card?: Card, organization?: Organization): State;
40
+ function from(data: Data, account: ModelAccount, address: Rail.Address, transactions: Account.Transactions, days: Account.Days, transaction: ModelTransaction.Creatable.Resolved | ModelTransaction, kind: Rule.Base.Kind, stage: "finalize" | "initiate", card?: Card, organization?: Organization): State;
41
41
  }
@@ -18,12 +18,12 @@ export var State;
18
18
  Outcome.values = ["approve", "reject", "review"];
19
19
  Outcome.type = isly.string(Outcome.values);
20
20
  })(Outcome = State.Outcome || (State.Outcome = {}));
21
- function from(data, account, address, transactions, days, transaction, kind, stage, authorization, card, organization) {
21
+ function from(data, account, address, transactions, days, transaction, kind, stage, card, organization) {
22
22
  return {
23
23
  data,
24
24
  account: State.Account.from(account, address, transactions, days),
25
25
  transaction: State.Transaction.from(account.name, transaction, kind, stage),
26
- authorization,
26
+ authorization: State.Authorization.from(transaction),
27
27
  card,
28
28
  organization,
29
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Rule/State/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAK3B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE1C,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAU/D,MAAM,KAAW,KAAK,CAyCrB;AAzCD,WAAiB,KAAK;IACP,aAAO,GAAG,YAAY,CAAA;IACtB,mBAAa,GAAG,kBAAkB,CAAA;IAClC,UAAI,GAAG,SAAS,CAAA;IAChB,aAAO,GAAG,YAAY,CAAA;IACtB,iBAAW,GAAG,gBAAgB,CAAA;IAC9B,kBAAY,GAAG,iBAAiB,CAAA;IAG9C,IAAiB,OAAO,CAGvB;IAHD,WAAiB,OAAO;QACV,cAAM,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;QACjD,YAAI,GAAG,IAAI,CAAC,MAAM,CAAU,QAAA,MAAM,CAAC,CAAA;IACjD,CAAC,EAHgB,OAAO,GAAP,aAAO,KAAP,aAAO,QAGvB;IAOD,SAAgB,IAAI,CACnB,IAAU,EACV,OAAqB,EACrB,OAAqB,EACrB,YAAkC,EAClC,IAAkB,EAClB,WAAmE,EACnE,IAAoB,EACpB,KAA8B,EAC9B,aAA6B,EAC7B,IAAW,EACX,YAA2B;QAE3B,OAAO;YACN,IAAI;YACJ,OAAO,EAAE,MAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC;YAC3D,WAAW,EAAE,MAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;YACrE,aAAa;YACb,IAAI;YACJ,YAAY;SACZ,CAAA;IACF,CAAC;IArBe,UAAI,OAqBnB,CAAA;AACF,CAAC,EAzCgB,KAAK,KAAL,KAAK,QAyCrB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Rule/State/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAK3B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE1C,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAU/D,MAAM,KAAW,KAAK,CAwCrB;AAxCD,WAAiB,KAAK;IACP,aAAO,GAAG,YAAY,CAAA;IACtB,mBAAa,GAAG,kBAAkB,CAAA;IAClC,UAAI,GAAG,SAAS,CAAA;IAChB,aAAO,GAAG,YAAY,CAAA;IACtB,iBAAW,GAAG,gBAAgB,CAAA;IAC9B,kBAAY,GAAG,iBAAiB,CAAA;IAG9C,IAAiB,OAAO,CAGvB;IAHD,WAAiB,OAAO;QACV,cAAM,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;QACjD,YAAI,GAAG,IAAI,CAAC,MAAM,CAAU,QAAA,MAAM,CAAC,CAAA;IACjD,CAAC,EAHgB,OAAO,GAAP,aAAO,KAAP,aAAO,QAGvB;IAOD,SAAgB,IAAI,CACnB,IAAU,EACV,OAAqB,EACrB,OAAqB,EACrB,YAAkC,EAClC,IAAkB,EAClB,WAAmE,EACnE,IAAoB,EACpB,KAA8B,EAC9B,IAAW,EACX,YAA2B;QAE3B,OAAO;YACN,IAAI;YACJ,OAAO,EAAE,MAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC;YAC3D,WAAW,EAAE,MAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;YACrE,aAAa,EAAE,MAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAC9C,IAAI;YACJ,YAAY;SACZ,CAAA;IACF,CAAC;IApBe,UAAI,OAoBnB,CAAA;AACF,CAAC,EAxCgB,KAAK,KAAL,KAAK,QAwCrB"}
@@ -9,8 +9,16 @@ export interface Creatable {
9
9
  exchange?: Exchange;
10
10
  }
11
11
  export declare namespace Creatable {
12
- type Resolved = Creatable & {
12
+ type Resolved = (Creatable & {
13
13
  counterpart: Rail.Address;
14
- };
14
+ }) | CardTransaction;
15
15
  const type: import("isly/dist/cjs/object").IslyObject<Creatable, object>;
16
+ interface CardTransaction extends Creatable {
17
+ account: Pick<Rail.Address.Card, "id" | "type">;
18
+ counterpart: Rail.Address.Card.Counterpart;
19
+ reference: {
20
+ reference: string;
21
+ };
22
+ approvalCode?: string;
23
+ }
16
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../../Transaction/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AASrC,MAAM,KAAW,SAAS,CASzB;AATD,WAAiB,SAAS;IAEZ,cAAI,GAAG,IAAI,CAAC,MAAM,CAAY;QAC1C,WAAW,EAAE,IAAI,CAAC,KAAK,CAA8C,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACtG,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;QAC1B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAA;AACH,CAAC,EATgB,SAAS,KAAT,SAAS,QASzB"}
1
+ {"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../../Transaction/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AASrC,MAAM,KAAW,SAAS,CAezB;AAfD,WAAiB,SAAS;IAEZ,cAAI,GAAG,IAAI,CAAC,MAAM,CAAY;QAC1C,WAAW,EAAE,IAAI,CAAC,KAAK,CAA8C,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACtG,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;QAC1B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAA;AAOH,CAAC,EAfgB,SAAS,KAAT,SAAS,QAezB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pax2pay/model-banking",
3
- "version": "0.1.479",
3
+ "version": "0.1.481",
4
4
  "description": "Library containing data model types and functions for the Pax2Pay Banking API.",
5
5
  "author": "Pax2Pay Ltd",
6
6
  "license": "MIT",