@pax2pay/model-banking 0.1.651 → 0.1.653

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 (111) hide show
  1. package/Client/Policies.ts +23 -0
  2. package/Client/index.ts +3 -3
  3. package/Rule/State/Transaction.ts +1 -25
  4. package/Rule/State/index.ts +0 -15
  5. package/Transaction/Creatable.ts +3 -1
  6. package/dist/cjs/Client/Policies.d.ts +15 -0
  7. package/dist/cjs/Client/{MCCPolicies.js → Policies.js} +8 -8
  8. package/dist/cjs/Client/Policies.js.map +1 -0
  9. package/dist/cjs/Client/index.d.ts +2 -2
  10. package/dist/cjs/Client/index.js +3 -3
  11. package/dist/cjs/Client/index.js.map +1 -1
  12. package/dist/cjs/Rule/State/Transaction.d.ts +0 -1
  13. package/dist/cjs/Rule/State/Transaction.js +1 -21
  14. package/dist/cjs/Rule/State/Transaction.js.map +1 -1
  15. package/dist/cjs/Rule/State/index.d.ts +0 -4
  16. package/dist/cjs/Rule/State/index.js +0 -9
  17. package/dist/cjs/Rule/State/index.js.map +1 -1
  18. package/dist/cjs/Transaction/Creatable.d.ts +4 -3
  19. package/dist/cjs/Transaction/Creatable.js +1 -0
  20. package/dist/cjs/Transaction/Creatable.js.map +1 -1
  21. package/dist/cjs/pax2pay.d.ts +1 -1
  22. package/dist/cjs/pax2pay.js +3 -3
  23. package/dist/cjs/pax2pay.js.map +1 -1
  24. package/dist/cjs/policy/Mcc/Action.js.map +1 -0
  25. package/dist/{mjs/MCCPolicy → cjs/policy/Mcc}/Creatable.d.ts +1 -1
  26. package/dist/cjs/{MCCPolicy → policy/Mcc}/Creatable.js +1 -1
  27. package/dist/cjs/policy/Mcc/Creatable.js.map +1 -0
  28. package/dist/{mjs/MCCPolicy → cjs/policy/Mcc}/Group.d.ts +1 -1
  29. package/dist/cjs/{MCCPolicy → policy/Mcc}/Group.js +3 -9
  30. package/dist/cjs/policy/Mcc/Group.js.map +1 -0
  31. package/dist/cjs/{MCCPolicy → policy/Mcc}/Updatable.js +1 -3
  32. package/dist/cjs/policy/Mcc/Updatable.js.map +1 -0
  33. package/dist/cjs/policy/Mcc/index.d.ts +29 -0
  34. package/dist/cjs/{MCCPolicy → policy/Mcc}/index.js +20 -21
  35. package/dist/cjs/policy/Mcc/index.js.map +1 -0
  36. package/dist/cjs/policy/index.d.ts +4 -0
  37. package/dist/cjs/policy/index.js +9 -0
  38. package/dist/cjs/policy/index.js.map +1 -0
  39. package/dist/mjs/Client/Policies.d.ts +15 -0
  40. package/dist/mjs/Client/{MCCPolicies.js → Policies.js} +6 -6
  41. package/dist/mjs/Client/Policies.js.map +1 -0
  42. package/dist/mjs/Client/index.d.ts +2 -2
  43. package/dist/mjs/Client/index.js +3 -3
  44. package/dist/mjs/Client/index.js.map +1 -1
  45. package/dist/mjs/Rule/State/Transaction.d.ts +0 -1
  46. package/dist/mjs/Rule/State/Transaction.js +1 -21
  47. package/dist/mjs/Rule/State/Transaction.js.map +1 -1
  48. package/dist/mjs/Rule/State/index.d.ts +0 -4
  49. package/dist/mjs/Rule/State/index.js +0 -9
  50. package/dist/mjs/Rule/State/index.js.map +1 -1
  51. package/dist/mjs/Transaction/Creatable.d.ts +4 -3
  52. package/dist/mjs/Transaction/Creatable.js +1 -0
  53. package/dist/mjs/Transaction/Creatable.js.map +1 -1
  54. package/dist/mjs/pax2pay.d.ts +1 -1
  55. package/dist/mjs/pax2pay.js +1 -1
  56. package/dist/mjs/pax2pay.js.map +1 -1
  57. package/dist/mjs/policy/Mcc/Action.js.map +1 -0
  58. package/dist/{cjs/MCCPolicy → mjs/policy/Mcc}/Creatable.d.ts +1 -1
  59. package/dist/mjs/{MCCPolicy → policy/Mcc}/Creatable.js +1 -1
  60. package/dist/mjs/policy/Mcc/Creatable.js.map +1 -0
  61. package/dist/{cjs/MCCPolicy → mjs/policy/Mcc}/Group.d.ts +1 -1
  62. package/dist/mjs/{MCCPolicy → policy/Mcc}/Group.js +3 -9
  63. package/dist/mjs/policy/Mcc/Group.js.map +1 -0
  64. package/dist/mjs/{MCCPolicy → policy/Mcc}/Updatable.js +1 -3
  65. package/dist/mjs/policy/Mcc/Updatable.js.map +1 -0
  66. package/dist/mjs/policy/Mcc/index.d.ts +29 -0
  67. package/dist/mjs/policy/Mcc/index.js +42 -0
  68. package/dist/mjs/policy/Mcc/index.js.map +1 -0
  69. package/dist/mjs/policy/index.d.ts +4 -0
  70. package/dist/mjs/policy/index.js +6 -0
  71. package/dist/mjs/policy/index.js.map +1 -0
  72. package/package.json +2 -1
  73. package/pax2pay.ts +1 -1
  74. package/{MCCPolicy → policy/Mcc}/Action.ts +1 -2
  75. package/{MCCPolicy → policy/Mcc}/Creatable.ts +1 -2
  76. package/{MCCPolicy → policy/Mcc}/Group.ts +3 -9
  77. package/{MCCPolicy → policy/Mcc}/Updatable.ts +1 -4
  78. package/policy/Mcc/index.ts +47 -0
  79. package/policy/index.ts +5 -0
  80. package/Client/MCCPolicies.ts +0 -23
  81. package/MCCPolicy/Identifier.ts +0 -9
  82. package/MCCPolicy/index.ts +0 -47
  83. package/dist/cjs/Client/MCCPolicies.d.ts +0 -15
  84. package/dist/cjs/Client/MCCPolicies.js.map +0 -1
  85. package/dist/cjs/MCCPolicy/Action.js.map +0 -1
  86. package/dist/cjs/MCCPolicy/Creatable.js.map +0 -1
  87. package/dist/cjs/MCCPolicy/Group.js.map +0 -1
  88. package/dist/cjs/MCCPolicy/Identifier.d.ts +0 -4
  89. package/dist/cjs/MCCPolicy/Identifier.js +0 -12
  90. package/dist/cjs/MCCPolicy/Identifier.js.map +0 -1
  91. package/dist/cjs/MCCPolicy/Updatable.js.map +0 -1
  92. package/dist/cjs/MCCPolicy/index.d.ts +0 -31
  93. package/dist/cjs/MCCPolicy/index.js.map +0 -1
  94. package/dist/mjs/Client/MCCPolicies.d.ts +0 -15
  95. package/dist/mjs/Client/MCCPolicies.js.map +0 -1
  96. package/dist/mjs/MCCPolicy/Action.js.map +0 -1
  97. package/dist/mjs/MCCPolicy/Creatable.js.map +0 -1
  98. package/dist/mjs/MCCPolicy/Group.js.map +0 -1
  99. package/dist/mjs/MCCPolicy/Identifier.d.ts +0 -4
  100. package/dist/mjs/MCCPolicy/Identifier.js +0 -9
  101. package/dist/mjs/MCCPolicy/Identifier.js.map +0 -1
  102. package/dist/mjs/MCCPolicy/Updatable.js.map +0 -1
  103. package/dist/mjs/MCCPolicy/index.d.ts +0 -31
  104. package/dist/mjs/MCCPolicy/index.js +0 -43
  105. package/dist/mjs/MCCPolicy/index.js.map +0 -1
  106. /package/dist/cjs/{MCCPolicy → policy/Mcc}/Action.d.ts +0 -0
  107. /package/dist/cjs/{MCCPolicy → policy/Mcc}/Action.js +0 -0
  108. /package/dist/cjs/{MCCPolicy → policy/Mcc}/Updatable.d.ts +0 -0
  109. /package/dist/mjs/{MCCPolicy → policy/Mcc}/Action.d.ts +0 -0
  110. /package/dist/mjs/{MCCPolicy → policy/Mcc}/Action.js +0 -0
  111. /package/dist/mjs/{MCCPolicy → policy/Mcc}/Updatable.d.ts +0 -0
@@ -1,23 +0,0 @@
1
- import { gracely } from "gracely"
2
- import { http } from "cloudly-http"
3
- import { Card } from "../Card"
4
- import { MCCPolicy } from "../MCCPolicy"
5
-
6
- export class MCCPolicies {
7
- constructor(private readonly client: http.Client) {}
8
- async create(policy: MCCPolicy.Creatable): Promise<MCCPolicy | gracely.Error> {
9
- return this.client.post<MCCPolicy>(`/mcc-policy`, policy)
10
- }
11
- async update(policy: MCCPolicy.Updatable): Promise<MCCPolicy | gracely.Error> {
12
- return this.client.put<MCCPolicy>(`/mcc-policy`, policy)
13
- }
14
- async list(filter: { organization?: string; stack?: Card.Stack }): Promise<MCCPolicy[] | gracely.Error> {
15
- const query = Object.entries(filter)
16
- .map(([key, value]) => `${key}=${value}`)
17
- .join("&")
18
- return this.client.get<MCCPolicy[]>(`/mcc-policy${query ? `?${query}` : ""}`)
19
- }
20
- async remove(id: string): Promise<MCCPolicy | gracely.Error> {
21
- return this.client.delete<MCCPolicy>(`/mcc-policy/${id}`)
22
- }
23
- }
@@ -1,9 +0,0 @@
1
- import { cryptly } from "cryptly"
2
-
3
- export type Identifier = string
4
-
5
- export namespace Identifier {
6
- export function generate(): Identifier {
7
- return cryptly.Identifier.generate(8)
8
- }
9
- }
@@ -1,47 +0,0 @@
1
- import { isoly } from "isoly"
2
- import { isly } from "isly"
3
- import { Card } from "../Card"
4
- import { Merchant } from "../Merchant"
5
- import { Realm } from "../Realm"
6
- import { Action as MCCAction } from "./Action"
7
- import { Creatable as MCCPolicyCreatable } from "./Creatable"
8
- import { Group as MCCGroup } from "./Group"
9
- import { Identifier as MCCPolicyIdentifier } from "./Identifier"
10
- import { Updatable as MCCPolicyUpdatable } from "./Updatable"
11
-
12
- export interface MCCPolicy extends MCCPolicyCreatable {
13
- id: string
14
- realm: Realm
15
- created: isoly.DateTime
16
- updated: isoly.DateTime
17
- }
18
- export namespace MCCPolicy {
19
- export import Creatable = MCCPolicyCreatable
20
- export import Updatable = MCCPolicyUpdatable
21
- export import Identifier = MCCPolicyIdentifier
22
- export import Action = MCCAction
23
- export import Group = MCCGroup
24
- export type TransactionInput = { category?: Merchant.Category; cardPreset?: Card.Preset; org?: string }
25
- export const type = Creatable.type.extend<MCCPolicy>({
26
- id: isly.string(),
27
- realm: Realm.type,
28
- created: isly.fromIs("isoly.DateTime", isoly.DateTime.is),
29
- updated: isly.fromIs("isoly.DateTime", isoly.DateTime.is),
30
- })
31
- export function match(policy: MCCPolicy, transaction: TransactionInput): boolean {
32
- const stack = transaction.cardPreset ? Card.Preset.presets[transaction.cardPreset] : undefined
33
- const stackMatches = !policy.stacks || (!!stack && policy.stacks.includes(stack))
34
- const orgMatches = policy.organization == undefined || (!!transaction.org && policy.organization == transaction.org)
35
- return !!transaction.category && stackMatches && orgMatches && Group.within(policy.group, transaction.category)
36
- }
37
- export function resolve(policies: MCCPolicy[], transaction: TransactionInput): MCCPolicy[] {
38
- const blocks = policies.filter(c => c.action == "block")
39
- const blockMatches = blocks.filter(c => MCCPolicy.match(c, transaction))
40
- const allows = policies.filter(c => c.action == "allow")
41
- return blockMatches.length ? blockMatches : allows.filter(c => MCCPolicy.match(c, transaction))
42
- }
43
- export function isAllowed(policies: MCCPolicy[], transaction: TransactionInput): boolean | undefined {
44
- const [result] = resolve(policies, transaction)
45
- return result ? result.action == "allow" : undefined
46
- }
47
- }
@@ -1,15 +0,0 @@
1
- import { gracely } from "gracely";
2
- import { http } from "cloudly-http";
3
- import { Card } from "../Card";
4
- import { MCCPolicy } from "../MCCPolicy";
5
- export declare class MCCPolicies {
6
- private readonly client;
7
- constructor(client: http.Client);
8
- create(policy: MCCPolicy.Creatable): Promise<MCCPolicy | gracely.Error>;
9
- update(policy: MCCPolicy.Updatable): Promise<MCCPolicy | gracely.Error>;
10
- list(filter: {
11
- organization?: string;
12
- stack?: Card.Stack;
13
- }): Promise<MCCPolicy[] | gracely.Error>;
14
- remove(id: string): Promise<MCCPolicy | gracely.Error>;
15
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"MCCPolicies.js","sourceRoot":"","sources":["../../../Client/MCCPolicies.ts"],"names":[],"mappings":";;;AAKA,MAAa,WAAW;IACM;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IACpD,KAAK,CAAC,MAAM,CAAC,MAA2B;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAY,aAAa,EAAE,MAAM,CAAC,CAAA;IAC1D,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,MAA2B;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAY,aAAa,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAqD;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,cAAc,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAY,eAAe,EAAE,EAAE,CAAC,CAAA;IAC1D,CAAC;CACD;AAjBD,kCAiBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../MCCPolicy/Action.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAI3B,IAAiB,MAAM,CAGtB;AAHD,WAAiB,MAAM;IACT,aAAM,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAA;IACpC,WAAI,GAAG,WAAI,CAAC,MAAM,CAAC,OAAA,MAAM,CAAC,CAAA;AACxC,CAAC,EAHgB,MAAM,sBAAN,MAAM,QAGtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../../MCCPolicy/Creatable.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,kCAA8B;AAC9B,qCAAiC;AACjC,mCAA+B;AAW/B,IAAiB,SAAS,CASzB;AATD,WAAiB,SAAS;IACZ,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY;QAC1C,MAAM,EAAE,eAAM,CAAC,IAAI;QACnB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,YAAY,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACtC,MAAM,EAAE,WAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;QAC1C,KAAK,EAAE,aAAK,CAAC,IAAI;KACjB,CAAC,CAAA;AACH,CAAC,EATgB,SAAS,yBAAT,SAAS,QASzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../MCCPolicy/Group.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,0CAAsC;AAMtC,IAAiB,KAAK,CAkBrB;AAlBD,WAAiB,KAAK;IAKrB,IAAiB,KAAK,CAKrB;IALD,WAAiB,KAAK;QACR,UAAI,GAAG,WAAI,CAAC,MAAM,CAAQ;YACtC,IAAI,EAAE,mBAAQ,CAAC,QAAQ,CAAC,IAAI;YAC5B,EAAE,EAAE,mBAAQ,CAAC,QAAQ,CAAC,IAAI;SAC1B,CAAC,CAAA;IACH,CAAC,EALgB,KAAK,GAAL,WAAK,KAAL,WAAK,QAKrB;IACY,UAAI,GAAG,WAAI,CAAC,MAAM,CAAQ;QACtC,MAAM,EAAE,mBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;KAC1B,CAAC,CAAA;IACF,SAAgB,MAAM,CAAC,GAAU,EAAE,QAA2B;QAC7D,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;IACrG,CAAC;IAFe,YAAM,SAErB,CAAA;AACF,CAAC,EAlBgB,KAAK,qBAAL,KAAK,QAkBrB"}
@@ -1,4 +0,0 @@
1
- export type Identifier = string;
2
- export declare namespace Identifier {
3
- function generate(): Identifier;
4
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Identifier = void 0;
4
- const cryptly_1 = require("cryptly");
5
- var Identifier;
6
- (function (Identifier) {
7
- function generate() {
8
- return cryptly_1.cryptly.Identifier.generate(8);
9
- }
10
- Identifier.generate = generate;
11
- })(Identifier || (exports.Identifier = Identifier = {}));
12
- //# sourceMappingURL=Identifier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Identifier.js","sourceRoot":"","sources":["../../../MCCPolicy/Identifier.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAIjC,IAAiB,UAAU,CAI1B;AAJD,WAAiB,UAAU;IAC1B,SAAgB,QAAQ;QACvB,OAAO,iBAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAFe,mBAAQ,WAEvB,CAAA;AACF,CAAC,EAJgB,UAAU,0BAAV,UAAU,QAI1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Updatable.js","sourceRoot":"","sources":["../../../MCCPolicy/Updatable.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,2CAAuC;AAMvC,IAAiB,SAAS,CAIzB;AAJD,WAAiB,SAAS;IACZ,cAAI,GAAG,qBAAS,CAAC,IAAI,CAAC,MAAM,CAAY;QACpD,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;KACjB,CAAC,CAAA;AACH,CAAC,EAJgB,SAAS,yBAAT,SAAS,QAIzB"}
@@ -1,31 +0,0 @@
1
- import { isoly } from "isoly";
2
- import { Card } from "../Card";
3
- import { Merchant } from "../Merchant";
4
- import { Realm } from "../Realm";
5
- import { Action as MCCAction } from "./Action";
6
- import { Creatable as MCCPolicyCreatable } from "./Creatable";
7
- import { Group as MCCGroup } from "./Group";
8
- import { Identifier as MCCPolicyIdentifier } from "./Identifier";
9
- import { Updatable as MCCPolicyUpdatable } from "./Updatable";
10
- export interface MCCPolicy extends MCCPolicyCreatable {
11
- id: string;
12
- realm: Realm;
13
- created: isoly.DateTime;
14
- updated: isoly.DateTime;
15
- }
16
- export declare namespace MCCPolicy {
17
- export import Creatable = MCCPolicyCreatable;
18
- export import Updatable = MCCPolicyUpdatable;
19
- export import Identifier = MCCPolicyIdentifier;
20
- export import Action = MCCAction;
21
- export import Group = MCCGroup;
22
- type TransactionInput = {
23
- category?: Merchant.Category;
24
- cardPreset?: Card.Preset;
25
- org?: string;
26
- };
27
- const type: import("isly/dist/cjs/object").IslyObject<MCCPolicy, Creatable>;
28
- function match(policy: MCCPolicy, transaction: TransactionInput): boolean;
29
- function resolve(policies: MCCPolicy[], transaction: TransactionInput): MCCPolicy[];
30
- function isAllowed(policies: MCCPolicy[], transaction: TransactionInput): boolean | undefined;
31
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../MCCPolicy/index.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,+BAA2B;AAC3B,kCAA8B;AAE9B,oCAAgC;AAChC,qCAA8C;AAC9C,2CAA6D;AAC7D,mCAA2C;AAC3C,6CAAgE;AAChE,2CAA6D;AAQ7D,IAAiB,SAAS,CA6BzB;AA7BD,WAAiB,SAAS;IACX,mBAAS,GAAG,qBAAkB,CAAA;IAC9B,mBAAS,GAAG,qBAAkB,CAAA;IAC9B,oBAAU,GAAG,uBAAmB,CAAA;IAChC,gBAAM,GAAG,eAAS,CAAA;IAClB,eAAK,GAAG,aAAQ,CAAA;IAEjB,cAAI,GAAG,UAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAY;QACpD,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,aAAK,CAAC,IAAI;QACjB,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;KACzD,CAAC,CAAA;IACF,SAAgB,KAAK,CAAC,MAAiB,EAAE,WAA6B;QACrE,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9F,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QACjF,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;QACpH,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,YAAY,IAAI,UAAU,IAAI,UAAA,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAChH,CAAC;IALe,eAAK,QAKpB,CAAA;IACD,SAAgB,OAAO,CAAC,QAAqB,EAAE,WAA6B;QAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAA;QACxD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAA;QACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAA;QACxD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAA;IAChG,CAAC;IALe,iBAAO,UAKtB,CAAA;IACD,SAAgB,SAAS,CAAC,QAAqB,EAAE,WAA6B;QAC7E,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACrD,CAAC;IAHe,mBAAS,YAGxB,CAAA;AACF,CAAC,EA7BgB,SAAS,yBAAT,SAAS,QA6BzB"}
@@ -1,15 +0,0 @@
1
- import { gracely } from "gracely";
2
- import { http } from "cloudly-http";
3
- import { Card } from "../Card";
4
- import { MCCPolicy } from "../MCCPolicy";
5
- export declare class MCCPolicies {
6
- private readonly client;
7
- constructor(client: http.Client);
8
- create(policy: MCCPolicy.Creatable): Promise<MCCPolicy | gracely.Error>;
9
- update(policy: MCCPolicy.Updatable): Promise<MCCPolicy | gracely.Error>;
10
- list(filter: {
11
- organization?: string;
12
- stack?: Card.Stack;
13
- }): Promise<MCCPolicy[] | gracely.Error>;
14
- remove(id: string): Promise<MCCPolicy | gracely.Error>;
15
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"MCCPolicies.js","sourceRoot":"","sources":["../../../Client/MCCPolicies.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,WAAW;IACM;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IACpD,KAAK,CAAC,MAAM,CAAC,MAA2B;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAY,aAAa,EAAE,MAAM,CAAC,CAAA;IAC1D,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,MAA2B;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAY,aAAa,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAqD;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,cAAc,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAY,eAAe,EAAE,EAAE,CAAC,CAAA;IAC1D,CAAC;CACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../MCCPolicy/Action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,MAAM,KAAW,MAAM,CAGtB;AAHD,WAAiB,MAAM;IACT,aAAM,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAA;IACpC,WAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAA,MAAM,CAAC,CAAA;AACxC,CAAC,EAHgB,MAAM,KAAN,MAAM,QAGtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../../MCCPolicy/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAW/B,MAAM,KAAW,SAAS,CASzB;AATD,WAAiB,SAAS;IACZ,cAAI,GAAG,IAAI,CAAC,MAAM,CAAY;QAC1C,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACtC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;QAC1C,KAAK,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAA;AACH,CAAC,EATgB,SAAS,KAAT,SAAS,QASzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../MCCPolicy/Group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAMtC,MAAM,KAAW,KAAK,CAkBrB;AAlBD,WAAiB,KAAK;IAKrB,IAAiB,KAAK,CAKrB;IALD,WAAiB,KAAK;QACR,UAAI,GAAG,IAAI,CAAC,MAAM,CAAQ;YACtC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;SAC1B,CAAC,CAAA;IACH,CAAC,EALgB,KAAK,GAAL,WAAK,KAAL,WAAK,QAKrB;IACY,UAAI,GAAG,IAAI,CAAC,MAAM,CAAQ;QACtC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;KAC1B,CAAC,CAAA;IACF,SAAgB,MAAM,CAAC,GAAU,EAAE,QAA2B;QAC7D,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;IACrG,CAAC;IAFe,YAAM,SAErB,CAAA;AACF,CAAC,EAlBgB,KAAK,KAAL,KAAK,QAkBrB"}
@@ -1,4 +0,0 @@
1
- export type Identifier = string;
2
- export declare namespace Identifier {
3
- function generate(): Identifier;
4
- }
@@ -1,9 +0,0 @@
1
- import { cryptly } from "cryptly";
2
- export var Identifier;
3
- (function (Identifier) {
4
- function generate() {
5
- return cryptly.Identifier.generate(8);
6
- }
7
- Identifier.generate = generate;
8
- })(Identifier || (Identifier = {}));
9
- //# sourceMappingURL=Identifier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Identifier.js","sourceRoot":"","sources":["../../../MCCPolicy/Identifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAIjC,MAAM,KAAW,UAAU,CAI1B;AAJD,WAAiB,UAAU;IAC1B,SAAgB,QAAQ;QACvB,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAFe,mBAAQ,WAEvB,CAAA;AACF,CAAC,EAJgB,UAAU,KAAV,UAAU,QAI1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Updatable.js","sourceRoot":"","sources":["../../../MCCPolicy/Updatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAMvC,MAAM,KAAW,SAAS,CAIzB;AAJD,WAAiB,SAAS;IACZ,cAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAY;QACpD,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;KACjB,CAAC,CAAA;AACH,CAAC,EAJgB,SAAS,KAAT,SAAS,QAIzB"}
@@ -1,31 +0,0 @@
1
- import { isoly } from "isoly";
2
- import { Card } from "../Card";
3
- import { Merchant } from "../Merchant";
4
- import { Realm } from "../Realm";
5
- import { Action as MCCAction } from "./Action";
6
- import { Creatable as MCCPolicyCreatable } from "./Creatable";
7
- import { Group as MCCGroup } from "./Group";
8
- import { Identifier as MCCPolicyIdentifier } from "./Identifier";
9
- import { Updatable as MCCPolicyUpdatable } from "./Updatable";
10
- export interface MCCPolicy extends MCCPolicyCreatable {
11
- id: string;
12
- realm: Realm;
13
- created: isoly.DateTime;
14
- updated: isoly.DateTime;
15
- }
16
- export declare namespace MCCPolicy {
17
- export import Creatable = MCCPolicyCreatable;
18
- export import Updatable = MCCPolicyUpdatable;
19
- export import Identifier = MCCPolicyIdentifier;
20
- export import Action = MCCAction;
21
- export import Group = MCCGroup;
22
- type TransactionInput = {
23
- category?: Merchant.Category;
24
- cardPreset?: Card.Preset;
25
- org?: string;
26
- };
27
- const type: import("isly/dist/cjs/object").IslyObject<MCCPolicy, Creatable>;
28
- function match(policy: MCCPolicy, transaction: TransactionInput): boolean;
29
- function resolve(policies: MCCPolicy[], transaction: TransactionInput): MCCPolicy[];
30
- function isAllowed(policies: MCCPolicy[], transaction: TransactionInput): boolean | undefined;
31
- }
@@ -1,43 +0,0 @@
1
- import { isoly } from "isoly";
2
- import { isly } from "isly";
3
- import { Card } from "../Card";
4
- import { Realm } from "../Realm";
5
- import { Action as MCCAction } from "./Action";
6
- import { Creatable as MCCPolicyCreatable } from "./Creatable";
7
- import { Group as MCCGroup } from "./Group";
8
- import { Identifier as MCCPolicyIdentifier } from "./Identifier";
9
- import { Updatable as MCCPolicyUpdatable } from "./Updatable";
10
- export var MCCPolicy;
11
- (function (MCCPolicy) {
12
- MCCPolicy.Creatable = MCCPolicyCreatable;
13
- MCCPolicy.Updatable = MCCPolicyUpdatable;
14
- MCCPolicy.Identifier = MCCPolicyIdentifier;
15
- MCCPolicy.Action = MCCAction;
16
- MCCPolicy.Group = MCCGroup;
17
- MCCPolicy.type = MCCPolicy.Creatable.type.extend({
18
- id: isly.string(),
19
- realm: Realm.type,
20
- created: isly.fromIs("isoly.DateTime", isoly.DateTime.is),
21
- updated: isly.fromIs("isoly.DateTime", isoly.DateTime.is),
22
- });
23
- function match(policy, transaction) {
24
- const stack = transaction.cardPreset ? Card.Preset.presets[transaction.cardPreset] : undefined;
25
- const stackMatches = !policy.stacks || (!!stack && policy.stacks.includes(stack));
26
- const orgMatches = policy.organization == undefined || (!!transaction.org && policy.organization == transaction.org);
27
- return !!transaction.category && stackMatches && orgMatches && MCCPolicy.Group.within(policy.group, transaction.category);
28
- }
29
- MCCPolicy.match = match;
30
- function resolve(policies, transaction) {
31
- const blocks = policies.filter(c => c.action == "block");
32
- const blockMatches = blocks.filter(c => MCCPolicy.match(c, transaction));
33
- const allows = policies.filter(c => c.action == "allow");
34
- return blockMatches.length ? blockMatches : allows.filter(c => MCCPolicy.match(c, transaction));
35
- }
36
- MCCPolicy.resolve = resolve;
37
- function isAllowed(policies, transaction) {
38
- const [result] = resolve(policies, transaction);
39
- return result ? result.action == "allow" : undefined;
40
- }
41
- MCCPolicy.isAllowed = isAllowed;
42
- })(MCCPolicy || (MCCPolicy = {}));
43
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../MCCPolicy/index.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;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAQ7D,MAAM,KAAW,SAAS,CA6BzB;AA7BD,WAAiB,SAAS;IACX,mBAAS,GAAG,kBAAkB,CAAA;IAC9B,mBAAS,GAAG,kBAAkB,CAAA;IAC9B,oBAAU,GAAG,mBAAmB,CAAA;IAChC,gBAAM,GAAG,SAAS,CAAA;IAClB,eAAK,GAAG,QAAQ,CAAA;IAEjB,cAAI,GAAG,UAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAY;QACpD,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;KACzD,CAAC,CAAA;IACF,SAAgB,KAAK,CAAC,MAAiB,EAAE,WAA6B;QACrE,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9F,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QACjF,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;QACpH,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,YAAY,IAAI,UAAU,IAAI,UAAA,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAChH,CAAC;IALe,eAAK,QAKpB,CAAA;IACD,SAAgB,OAAO,CAAC,QAAqB,EAAE,WAA6B;QAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAA;QACxD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAA;QACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAA;QACxD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAA;IAChG,CAAC;IALe,iBAAO,UAKtB,CAAA;IACD,SAAgB,SAAS,CAAC,QAAqB,EAAE,WAA6B;QAC7E,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACrD,CAAC;IAHe,mBAAS,YAGxB,CAAA;AACF,CAAC,EA7BgB,SAAS,KAAT,SAAS,QA6BzB"}
File without changes
File without changes
File without changes
File without changes