@pax2pay/model-banking 0.1.465 → 0.1.466

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 (49) hide show
  1. package/Transaction/Statistics.ts +6 -23
  2. package/dist/Transaction/Statistics.js +1 -4
  3. package/dist/Transaction/Statistics.js.map +1 -1
  4. package/dist/pax2pay.d.ts +1 -0
  5. package/dist/pax2pay.js +1 -0
  6. package/dist/pax2pay.js.map +1 -1
  7. package/dist/reports/index.d.ts +4 -0
  8. package/dist/reports/index.js +6 -0
  9. package/dist/reports/index.js.map +1 -0
  10. package/dist/reports/visa/Data/Country.d.ts +15 -0
  11. package/dist/reports/visa/Data/Country.js +43 -0
  12. package/dist/reports/visa/Data/Country.js.map +1 -0
  13. package/dist/reports/visa/Data/Iin.d.ts +10 -0
  14. package/dist/reports/visa/Data/Iin.js +11 -0
  15. package/dist/reports/visa/Data/Iin.js.map +1 -0
  16. package/dist/reports/visa/Data/Monthly.d.ts +14 -0
  17. package/dist/reports/visa/Data/Monthly.js +34 -0
  18. package/dist/reports/visa/Data/Monthly.js.map +1 -0
  19. package/dist/reports/visa/Data/NonMonthly.d.ts +9 -0
  20. package/dist/reports/visa/Data/NonMonthly.js +29 -0
  21. package/dist/reports/visa/Data/NonMonthly.js.map +1 -0
  22. package/dist/reports/visa/Data/Region.d.ts +10 -0
  23. package/dist/reports/visa/Data/Region.js +72 -0
  24. package/dist/reports/visa/Data/Region.js.map +1 -0
  25. package/dist/reports/visa/Data/Regional.d.ts +8 -0
  26. package/dist/reports/visa/Data/Regional.js +27 -0
  27. package/dist/reports/visa/Data/Regional.js.map +1 -0
  28. package/dist/reports/visa/Data/index.d.ts +17 -0
  29. package/dist/reports/visa/Data/index.js +29 -0
  30. package/dist/reports/visa/Data/index.js.map +1 -0
  31. package/dist/reports/visa/index.d.ts +7 -0
  32. package/dist/reports/visa/index.js +33 -0
  33. package/dist/reports/visa/index.js.map +1 -0
  34. package/dist/reports/visa/rows.d.ts +17 -0
  35. package/dist/reports/visa/rows.js +155 -0
  36. package/dist/reports/visa/rows.js.map +1 -0
  37. package/package.json +1 -1
  38. package/pax2pay.ts +1 -0
  39. package/reports/index.ts +5 -0
  40. package/reports/visa/Data/Country.ts +59 -0
  41. package/reports/visa/Data/Iin.ts +11 -0
  42. package/reports/visa/Data/Monthly.ts +45 -0
  43. package/reports/visa/Data/NonMonthly.ts +36 -0
  44. package/reports/visa/Data/Region.ts +71 -0
  45. package/reports/visa/Data/Regional.ts +26 -0
  46. package/reports/visa/Data/index.ts +33 -0
  47. package/reports/visa/index.ts +37 -0
  48. package/reports/visa/rows.ts +151 -0
  49. package/reports/visa/visa.csv +227 -0
@@ -19,20 +19,11 @@ export namespace Statistics {
19
19
  export namespace Region {
20
20
  export const values = ["domestic", "intraRegion", "extraRegion"] as const
21
21
  }
22
- export type Regional = Record<
23
- Statistics.Region,
24
- {
25
- count: number
26
- amount: number
27
- }
28
- >
22
+ export type Regional = Record<Statistics.Region, { count: number; amount: number }>
29
23
  export namespace Regional {
30
24
  export const type = isly.record(
31
25
  isly.string<Region>(Region.values),
32
- isly.object({
33
- count: isly.number(),
34
- amount: isly.number(),
35
- })
26
+ isly.object({ count: isly.number(), amount: isly.number() })
36
27
  )
37
28
  }
38
29
  export const type = isly.object<Statistics>({
@@ -87,18 +78,10 @@ export namespace Statistics {
87
78
  export function combine(accumulation: Statistics, incoming: Statistics, currency: isoly.Currency): Statistics {
88
79
  const [statistics, cards] = (({ cursor, cards, ...rest }) => [rest, cards])(incoming)
89
80
  Object.entries(statistics).forEach(([kind, statistic]: [TransactionType, Statistics[TransactionType]]) =>
90
- Object.entries(statistic).forEach(
91
- ([region, { count, amount }]: [
92
- Region,
93
- {
94
- count: number
95
- amount: number
96
- }
97
- ]) => {
98
- accumulation[kind][region].count += count
99
- accumulation[kind][region].amount = isoly.Currency.add(currency, accumulation[kind][region].amount, amount)
100
- }
101
- )
81
+ Object.entries(statistic).forEach(([region, { count, amount }]: [Region, { count: number; amount: number }]) => {
82
+ accumulation[kind][region].count += count
83
+ accumulation[kind][region].amount = isoly.Currency.add(currency, accumulation[kind][region].amount, amount)
84
+ })
102
85
  )
103
86
  cards.forEach(card => accumulation.cards.includes(card) || accumulation.cards.push(card))
104
87
  return accumulation
@@ -13,10 +13,7 @@ export var Statistics;
13
13
  })(Region = Statistics.Region || (Statistics.Region = {}));
14
14
  let Regional;
15
15
  (function (Regional) {
16
- Regional.type = isly.record(isly.string(Region.values), isly.object({
17
- count: isly.number(),
18
- amount: isly.number(),
19
- }));
16
+ Regional.type = isly.record(isly.string(Region.values), isly.object({ count: isly.number(), amount: isly.number() }));
20
17
  })(Regional = Statistics.Regional || (Statistics.Regional = {}));
21
18
  Statistics.type = isly.object({
22
19
  capture: Regional.type,
@@ -1 +1 @@
1
- {"version":3,"file":"Statistics.js","sourceRoot":"../","sources":["Transaction/Statistics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Statistics.js","sourceRoot":"../","sources":["Transaction/Statistics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAA;AAS/B,MAAM,KAAW,UAAU,CA4E1B;AA5ED,WAAiB,UAAU;IAE1B,IAAiB,eAAe,CAE/B;IAFD,WAAiB,eAAe;QAClB,sBAAM,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAA;IACrD,CAAC,EAFgB,eAAe,GAAf,0BAAe,KAAf,0BAAe,QAE/B;IAED,IAAiB,MAAM,CAEtB;IAFD,WAAiB,MAAM;QACT,aAAM,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAU,CAAA;IAC1E,CAAC,EAFgB,MAAM,GAAN,iBAAM,KAAN,iBAAM,QAEtB;IAED,IAAiB,QAAQ,CAKxB;IALD,WAAiB,QAAQ;QACX,aAAI,GAAG,IAAI,CAAC,MAAM,CAC9B,IAAI,CAAC,MAAM,CAAS,MAAM,CAAC,MAAM,CAAC,EAClC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAC5D,CAAA;IACF,CAAC,EALgB,QAAQ,GAAR,mBAAQ,KAAR,mBAAQ,QAKxB;IACY,eAAI,GAAG,IAAI,CAAC,MAAM,CAAa;QAC3C,OAAO,EAAE,QAAQ,CAAC,IAAI;QACtB,MAAM,EAAE,QAAQ,CAAC,IAAI;QACrB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CAAA;IACF,SAAS,KAAK;QACb,OAAO;YACN,OAAO,EAAE;gBACR,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACjC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACpC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;aACpC;YACD,MAAM,EAAE;gBACP,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACjC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACpC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;aACpC;YACD,KAAK,EAAE,EAAE;SACT,CAAA;IACF,CAAC;IACD,SAAgB,OAAO,CACtB,YAA2B,EAC3B,MAAmB,EACnB,OAAuE;QAEvE,MAAM,MAAM,GAAe,KAAK,EAAE,CAAA;QAClC,KAAK,MAAM,WAAW,IAAI,YAAY;YACrC,IACC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBAChD,WAAW,CAAC,MAAM,IAAI,WAAW;gBACjC,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,EACnC,CAAC;gBACF,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACjF,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;wBACxE,CAAC,CAAC,aAAa;wBACf,CAAC,CAAC,aAAa,CAAA;gBAChB,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;gBACvE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;gBAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAC/C,WAAW,CAAC,QAAQ,EACpB,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAC3B,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CACrC,CAAA;gBACD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3F,CAAC;QACF,OAAO,MAAM,CAAA;IACd,CAAC;IA3Be,kBAAO,UA2BtB,CAAA;IACD,SAAgB,OAAO,CAAC,YAAwB,EAAE,QAAoB,EAAE,QAAwB;QAC/F,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QACrF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAiD,EAAE,EAAE,CACxG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAA8C,EAAE,EAAE;YAC9G,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,KAAK,CAAA;YACzC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5G,CAAC,CAAC,CACF,CAAA;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACzF,OAAO,YAAY,CAAA;IACpB,CAAC;IAVe,kBAAO,UAUtB,CAAA;AACF,CAAC,EA5EgB,UAAU,KAAV,UAAU,QA4E1B"}
package/dist/pax2pay.d.ts CHANGED
@@ -30,4 +30,5 @@ export { Supplier } from "./Supplier";
30
30
  export { Transaction } from "./Transaction";
31
31
  export { Treasury } from "./Treasury";
32
32
  export { Warning } from "./Warning";
33
+ export { reports } from "./reports";
33
34
  export { Quarter } from "./Quarter";
package/dist/pax2pay.js CHANGED
@@ -30,5 +30,6 @@ export { Supplier } from "./Supplier";
30
30
  export { Transaction } from "./Transaction";
31
31
  export { Treasury } from "./Treasury";
32
32
  export { Warning } from "./Warning";
33
+ export { reports } from "./reports";
33
34
  export { Quarter } from "./Quarter";
34
35
  //# sourceMappingURL=pax2pay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pax2pay.js","sourceRoot":"../","sources":["pax2pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,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,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"pax2pay.js","sourceRoot":"../","sources":["pax2pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,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,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { visa as reportsVisa } from "./visa";
2
+ export declare namespace reports {
3
+ export import visa = reportsVisa;
4
+ }
@@ -0,0 +1,6 @@
1
+ import { visa as reportsVisa } from "./visa";
2
+ export var reports;
3
+ (function (reports) {
4
+ reports.visa = reportsVisa;
5
+ })(reports || (reports = {}));
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["reports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAA;AAE5C,MAAM,KAAW,OAAO,CAEvB;AAFD,WAAiB,OAAO;IACT,YAAI,GAAG,WAAW,CAAA;AACjC,CAAC,EAFgB,OAAO,KAAP,OAAO,QAEvB"}
@@ -0,0 +1,15 @@
1
+ import { isoly } from "isoly";
2
+ import { Transaction } from "../../../Transaction";
3
+ import { Monthly } from "./Monthly";
4
+ import { Region } from "./Region";
5
+ type PerCountry = {
6
+ present?: Monthly;
7
+ notPresent?: Monthly;
8
+ };
9
+ export type Country = Partial<Record<isoly.CountryCode.Alpha2, PerCountry>>;
10
+ export declare namespace Country {
11
+ function toCsv(country: Country): string;
12
+ function csvLine(country: string, region: Region, data: PerCountry, presence: "present" | "notPresent", type: "count" | "volume"): string;
13
+ function update(country: Country, transaction: Transaction.CardTransaction): Country;
14
+ }
15
+ export {};
@@ -0,0 +1,43 @@
1
+ import { Iin } from "./Iin";
2
+ import { Monthly } from "./Monthly";
3
+ import { Region } from "./Region";
4
+ export var Country;
5
+ (function (Country) {
6
+ function toCsv(country) {
7
+ let result = "";
8
+ for (const [countryCode, perCountry] of Object.entries(country)) {
9
+ const region = Region.find(countryCode);
10
+ result += csvLine(countryCode, region, perCountry, "present", "count");
11
+ result += csvLine(countryCode, region, perCountry, "present", "volume");
12
+ result += csvLine(countryCode, region, perCountry, "notPresent", "count");
13
+ result += csvLine(countryCode, region, perCountry, "notPresent", "volume");
14
+ }
15
+ return result;
16
+ }
17
+ Country.toCsv = toCsv;
18
+ function csvLine(country, region, data, presence, type) {
19
+ let result = "";
20
+ if (data[presence])
21
+ for (const month of Monthly.Month.values) {
22
+ result += `Country ${country} - ${region} Card ${presence == "present" ? "Present" : "Not Present"} ${type == "count" ? "Count" : "Volume"} - Month ${month}`;
23
+ for (const iin of Iin.values)
24
+ result += `|${data[presence][month][type][iin] ?? 0}`;
25
+ result += "\n";
26
+ }
27
+ return result;
28
+ }
29
+ Country.csvLine = csvLine;
30
+ function update(country, transaction) {
31
+ const result = country;
32
+ result[transaction.counterpart.merchant.country] = updatePerCountry(result[transaction.counterpart.merchant.country] ?? {}, transaction);
33
+ return result;
34
+ }
35
+ Country.update = update;
36
+ function updatePerCountry(input, transaction) {
37
+ const result = input;
38
+ const key = transaction.counterpart.present === true ? "present" : "notPresent";
39
+ result[key] = Monthly.update(result[key], transaction);
40
+ return result;
41
+ }
42
+ })(Country || (Country = {}));
43
+ //# sourceMappingURL=Country.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Country.js","sourceRoot":"../","sources":["reports/visa/Data/Country.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AASjC,MAAM,KAAW,OAAO,CA6CvB;AA7CD,WAAiB,OAAO;IACvB,SAAgB,KAAK,CAAC,OAAgB;QACrC,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAuC,CAAC,CAAA;YACnE,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;YACtE,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;YACvE,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;YACzE,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC3E,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAVe,aAAK,QAUpB,CAAA;IACD,SAAgB,OAAO,CACtB,OAAe,EACf,MAAc,EACd,IAAgB,EAChB,QAAkC,EAClC,IAAwB;QAExB,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC;YACjB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAM,IAAI,WAAW,OAAO,MAAM,MAAM,SAAS,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,IACjG,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAC7B,YAAY,KAAK,EAAE,CAAA;gBACnB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM;oBAC3B,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;gBACtD,MAAM,IAAI,IAAI,CAAA;YACf,CAAC;QACF,OAAO,MAAM,CAAA;IACd,CAAC;IAlBe,eAAO,UAkBtB,CAAA;IACD,SAAgB,MAAM,CAAC,OAAgB,EAAE,WAAwC;QAChF,MAAM,MAAM,GAAY,OAAO,CAAA;QAC/B,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAClE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EACtD,WAAW,CACX,CAAA;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAPe,cAAM,SAOrB,CAAA;IACD,SAAS,gBAAgB,CAAC,KAAiB,EAAE,WAAwC;QACpF,MAAM,MAAM,GAAG,KAAK,CAAA;QACpB,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAA;QAC/E,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAA;QACtD,OAAO,MAAM,CAAA;IACd,CAAC;AACF,CAAC,EA7CgB,OAAO,KAAP,OAAO,QA6CvB"}
@@ -0,0 +1,10 @@
1
+ import { isly } from "isly";
2
+ export type Iin = typeof Iin.values[number];
3
+ export declare namespace Iin {
4
+ type Idx = typeof Idx.values[number];
5
+ namespace Idx {
6
+ const values: readonly ["45672555", "4567255", "45672557"];
7
+ const type: isly.Type<"45672555" | "4567255" | "45672557">;
8
+ }
9
+ const values: readonly ["45672555", "4567255", "45672557", "totalIdx", "44260108", "49359119", "45672554"];
10
+ }
@@ -0,0 +1,11 @@
1
+ import { isly } from "isly";
2
+ export var Iin;
3
+ (function (Iin) {
4
+ let Idx;
5
+ (function (Idx) {
6
+ Idx.values = ["45672555", "4567255", "45672557"];
7
+ Idx.type = isly.string(Idx.values);
8
+ })(Idx = Iin.Idx || (Iin.Idx = {}));
9
+ Iin.values = [...Idx.values, "totalIdx", "44260108", "49359119", "45672554"];
10
+ })(Iin || (Iin = {}));
11
+ //# sourceMappingURL=Iin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Iin.js","sourceRoot":"../","sources":["reports/visa/Data/Iin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,MAAM,KAAW,GAAG,CAOnB;AAPD,WAAiB,GAAG;IAEnB,IAAiB,GAAG,CAGnB;IAHD,WAAiB,GAAG;QACN,UAAM,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAU,CAAA;QACrD,QAAI,GAAG,IAAI,CAAC,MAAM,CAAM,IAAA,MAAM,CAAC,CAAA;IAC7C,CAAC,EAHgB,GAAG,GAAH,OAAG,KAAH,OAAG,QAGnB;IACY,UAAM,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAU,CAAA;AAC/F,CAAC,EAPgB,GAAG,KAAH,GAAG,QAOnB"}
@@ -0,0 +1,14 @@
1
+ import { Transaction } from "../../../Transaction";
2
+ import { Iin } from "./Iin";
3
+ export type Monthly = Record<Monthly.Month, {
4
+ count: Partial<Record<Iin, number>>;
5
+ volume: Partial<Record<Iin, number>>;
6
+ }>;
7
+ export declare namespace Monthly {
8
+ type Month = typeof Month.values[number];
9
+ namespace Month {
10
+ const values: readonly [1, 2, 3];
11
+ }
12
+ function getMonth(transaction: Transaction.CardTransaction): Monthly.Month;
13
+ function update(previous: Monthly | undefined, transaction: Transaction.CardTransaction): Monthly;
14
+ }
@@ -0,0 +1,34 @@
1
+ import { isoly } from "isoly";
2
+ import { Iin } from "./Iin";
3
+ export var Monthly;
4
+ (function (Monthly) {
5
+ let Month;
6
+ (function (Month) {
7
+ Month.values = [1, 2, 3];
8
+ })(Month = Monthly.Month || (Monthly.Month = {}));
9
+ function getMonth(transaction) {
10
+ const month = isoly.DateTime.getMonth(transaction.transacted ?? transaction.posted);
11
+ return (((month - 1) % 3) + 1);
12
+ }
13
+ Monthly.getMonth = getMonth;
14
+ function update(previous, transaction) {
15
+ const result = previous ?? {
16
+ "1": { count: {}, volume: {} },
17
+ "2": { count: {}, volume: {} },
18
+ "3": { count: {}, volume: {} },
19
+ };
20
+ if (transaction.direction == "outbound" && transaction.status == "finalized") {
21
+ const month = getMonth(transaction);
22
+ result[month].count[transaction.account.iin] =
23
+ (result[month].count[transaction.account.iin] ?? 0) + 1;
24
+ result[month].volume[transaction.account.iin] = isoly.Currency.add("GBP", result[month].volume[transaction.account.iin] ?? 0, Math.abs(transaction.amount.original));
25
+ if (Iin.Idx.type.is(transaction.account.iin)) {
26
+ result[month].count["totalIdx"] = (result[month].count["totalIdx"] ?? 0) + 1;
27
+ result[month].volume["totalIdx"] = isoly.Currency.add("GBP", result[month].volume["totalIdx"] ?? 0, Math.abs(transaction.amount.original));
28
+ }
29
+ }
30
+ return result;
31
+ }
32
+ Monthly.update = update;
33
+ })(Monthly || (Monthly = {}));
34
+ //# sourceMappingURL=Monthly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Monthly.js","sourceRoot":"../","sources":["reports/visa/Data/Monthly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAM3B,MAAM,KAAW,OAAO,CAoCvB;AApCD,WAAiB,OAAO;IAEvB,IAAiB,KAAK,CAErB;IAFD,WAAiB,KAAK;QACR,YAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAA;IACzC,CAAC,EAFgB,KAAK,GAAL,aAAK,KAAL,aAAK,QAErB;IAED,SAAgB,QAAQ,CAAC,WAAwC;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;QACnF,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAkB,CAAA;IAChD,CAAC;IAHe,gBAAQ,WAGvB,CAAA;IACD,SAAgB,MAAM,CAAC,QAA6B,EAAE,WAAwC;QAC7F,MAAM,MAAM,GAAY,QAAQ,IAAI;YACnC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAC9B,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAC9B,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAC9B,CAAA;QACD,IAAI,WAAW,CAAC,SAAS,IAAI,UAAU,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;YACnC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAU,CAAC;gBAClD,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;YAC/D,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACxE,KAAK,EACL,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAU,CAAC,IAAI,CAAC,EACzD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CACrC,CAAA;YACD,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC5E,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACpD,KAAK,EACL,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EACrC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CACrC,CAAA;YACF,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAzBe,cAAM,SAyBrB,CAAA;AACF,CAAC,EApCgB,OAAO,KAAP,OAAO,QAoCvB"}
@@ -0,0 +1,9 @@
1
+ import { Transaction } from "../../../Transaction";
2
+ import { rows } from "../rows";
3
+ import { Iin } from "./Iin";
4
+ export type NonMonthly = Record<"Total Number of Cards" | "Total Number of Active Cards" | "Total Number of Accounts" | "Number of Accounts - International Enabled" | "Payments Transactions Declined for Insufficient Funds - Number", Partial<Record<Iin, number>>>;
5
+ export declare namespace NonMonthly {
6
+ const empty: NonMonthly;
7
+ function update(previous: NonMonthly, transaction: Transaction.CardTransaction): NonMonthly;
8
+ function toCsvRow(data: NonMonthly, row: rows.NonZero): string;
9
+ }
@@ -0,0 +1,29 @@
1
+ import { Iin } from "./Iin";
2
+ export var NonMonthly;
3
+ (function (NonMonthly) {
4
+ NonMonthly.empty = {
5
+ "Number of Accounts - International Enabled": {},
6
+ "Payments Transactions Declined for Insufficient Funds - Number": {},
7
+ "Total Number of Accounts": {},
8
+ "Total Number of Active Cards": {},
9
+ "Total Number of Cards": {},
10
+ };
11
+ function update(previous, transaction) {
12
+ const result = previous;
13
+ if (Array.isArray(transaction.status) && transaction.status[1] == "insufficient funds")
14
+ result["Payments Transactions Declined for Insufficient Funds - Number"][transaction.account.iin] =
15
+ (result["Payments Transactions Declined for Insufficient Funds - Number"]?.[transaction.account.iin] ??
16
+ 0) + 1;
17
+ return result;
18
+ }
19
+ NonMonthly.update = update;
20
+ function toCsvRow(data, row) {
21
+ let result = row;
22
+ for (const iin of Iin.values)
23
+ result += `|${data[row][iin] ?? 0}`;
24
+ result += "\n";
25
+ return result;
26
+ }
27
+ NonMonthly.toCsvRow = toCsvRow;
28
+ })(NonMonthly || (NonMonthly = {}));
29
+ //# sourceMappingURL=NonMonthly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NonMonthly.js","sourceRoot":"../","sources":["reports/visa/Data/NonMonthly.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAU3B,MAAM,KAAW,UAAU,CAuB1B;AAvBD,WAAiB,UAAU;IACb,gBAAK,GAAe;QAChC,4CAA4C,EAAE,EAAE;QAChD,gEAAgE,EAAE,EAAE;QACpE,0BAA0B,EAAE,EAAE;QAC9B,8BAA8B,EAAE,EAAE;QAClC,uBAAuB,EAAE,EAAE;KAC3B,CAAA;IACD,SAAgB,MAAM,CAAC,QAAoB,EAAE,WAAwC;QACpF,MAAM,MAAM,GAAG,QAAQ,CAAA;QACvB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,oBAAoB;YACrF,MAAM,CAAC,gEAAgE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAU,CAAC;gBACvG,CAAC,MAAM,CAAC,gEAAgE,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAU,CAAC;oBAC1G,CAAC,CAAC,GAAG,CAAC,CAAA;QACT,OAAO,MAAM,CAAA;IACd,CAAC;IAPe,iBAAM,SAOrB,CAAA;IACD,SAAgB,QAAQ,CAAC,IAAgB,EAAE,GAAiB;QAC3D,IAAI,MAAM,GAAG,GAAG,CAAA;QAChB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM;YAC3B,MAAM,IAAI,IAAI,IAAI,CAAC,GAAuB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;QACxD,MAAM,IAAI,IAAI,CAAA;QACd,OAAO,MAAM,CAAA;IACd,CAAC;IANe,mBAAQ,WAMvB,CAAA;AACF,CAAC,EAvBgB,UAAU,KAAV,UAAU,QAuB1B"}
@@ -0,0 +1,10 @@
1
+ import { isoly } from "isoly";
2
+ import { isly } from "isly";
3
+ export type Region = typeof Region.values[number];
4
+ export declare namespace Region {
5
+ const values: readonly ["National Payments", "International - Intra-Regional Payments", "International - Non-EEA Payments", "International - Inter-Regional Payments"];
6
+ const type: isly.Type<"National Payments" | "International - Intra-Regional Payments" | "International - Non-EEA Payments" | "International - Inter-Regional Payments">;
7
+ const regions: Record<Region, isoly.CountryCode.Alpha2[]>;
8
+ function find(country: isoly.CountryCode.Alpha2): Region;
9
+ function fromRow(row: string): Region;
10
+ }
@@ -0,0 +1,72 @@
1
+ import { isly } from "isly";
2
+ export var Region;
3
+ (function (Region) {
4
+ Region.values = [
5
+ "National Payments",
6
+ "International - Intra-Regional Payments",
7
+ "International - Non-EEA Payments",
8
+ "International - Inter-Regional Payments",
9
+ ];
10
+ Region.type = isly.string(Region.values);
11
+ Region.regions = {
12
+ "National Payments": ["GB"],
13
+ "International - Intra-Regional Payments": [
14
+ "AT",
15
+ "BE",
16
+ "BG",
17
+ "HR",
18
+ "CY",
19
+ "CZ",
20
+ "DK",
21
+ "EE",
22
+ "FI",
23
+ "FR",
24
+ "DE",
25
+ "GR",
26
+ "HU",
27
+ "IE",
28
+ "IT",
29
+ "LV",
30
+ "LT",
31
+ "LU",
32
+ "MT",
33
+ "NL",
34
+ "PL",
35
+ "PT",
36
+ "RO",
37
+ "SK",
38
+ "SI",
39
+ "ES",
40
+ "SE",
41
+ ],
42
+ "International - Non-EEA Payments": [],
43
+ "International - Inter-Regional Payments": ["IS", "NO", "LI"],
44
+ };
45
+ function find(country) {
46
+ let result;
47
+ if (Region.regions["National Payments"].includes(country))
48
+ result = "National Payments";
49
+ else if (Region.regions["International - Intra-Regional Payments"].includes(country))
50
+ result = "International - Intra-Regional Payments";
51
+ else if (Region.regions["International - Inter-Regional Payments"].includes(country))
52
+ result = "International - Inter-Regional Payments";
53
+ else
54
+ result = "International - Non-EEA Payments";
55
+ return result;
56
+ }
57
+ Region.find = find;
58
+ function fromRow(row) {
59
+ let result;
60
+ if (row.startsWith("National"))
61
+ result = "National Payments";
62
+ else if (row.startsWith("International - Inter-Regional"))
63
+ result = "International - Inter-Regional Payments";
64
+ else if (row.startsWith("International - Intra-Regional"))
65
+ result = "International - Intra-Regional Payments";
66
+ else
67
+ result = "International - Non-EEA Payments";
68
+ return result;
69
+ }
70
+ Region.fromRow = fromRow;
71
+ })(Region || (Region = {}));
72
+ //# sourceMappingURL=Region.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Region.js","sourceRoot":"../","sources":["reports/visa/Data/Region.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,MAAM,KAAW,MAAM,CAkEtB;AAlED,WAAiB,MAAM;IACT,aAAM,GAAG;QACrB,mBAAmB;QACnB,yCAAyC;QACzC,kCAAkC;QAClC,yCAAyC;KAChC,CAAA;IACG,WAAI,GAAG,IAAI,CAAC,MAAM,CAAS,OAAA,MAAM,CAAC,CAAA;IAClC,cAAO,GAA+C;QAClE,mBAAmB,EAAE,CAAC,IAAI,CAAC;QAC3B,yCAAyC,EAAE;YAC1C,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;SACJ;QACD,kCAAkC,EAAE,EAAE;QACtC,yCAAyC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;KAC7D,CAAA;IACD,SAAgB,IAAI,CAAC,OAAiC;QACrD,IAAI,MAAc,CAAA;QAClB,IAAI,OAAA,OAAO,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACjD,MAAM,GAAG,mBAAmB,CAAA;aACxB,IAAI,OAAA,OAAO,CAAC,yCAAyC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5E,MAAM,GAAG,yCAAyC,CAAA;aAC9C,IAAI,OAAA,OAAO,CAAC,yCAAyC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5E,MAAM,GAAG,yCAAyC,CAAA;;YAElD,MAAM,GAAG,kCAAkC,CAAA;QAC5C,OAAO,MAAM,CAAA;IACd,CAAC;IAXe,WAAI,OAWnB,CAAA;IACD,SAAgB,OAAO,CAAC,GAAW;QAClC,IAAI,MAAc,CAAA;QAClB,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;YAC7B,MAAM,GAAG,mBAAmB,CAAA;aACxB,IAAI,GAAG,CAAC,UAAU,CAAC,gCAAgC,CAAC;YACxD,MAAM,GAAG,yCAAyC,CAAA;aAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,gCAAgC,CAAC;YACxD,MAAM,GAAG,yCAAyC,CAAA;;YAElD,MAAM,GAAG,kCAAkC,CAAA;QAC5C,OAAO,MAAM,CAAA;IACd,CAAC;IAXe,cAAO,UAWtB,CAAA;AACF,CAAC,EAlEgB,MAAM,KAAN,MAAM,QAkEtB"}
@@ -0,0 +1,8 @@
1
+ import { Transaction } from "../../../Transaction";
2
+ import { Monthly } from "./Monthly";
3
+ import { Region } from "./Region";
4
+ export type Regional = Partial<Record<Region, Monthly>>;
5
+ export declare namespace Regional {
6
+ function update(previous: Regional, transaction: Transaction.CardTransaction): Regional;
7
+ function toCsvRow(regional: Regional, row: string): string;
8
+ }
@@ -0,0 +1,27 @@
1
+ import { Iin } from "./Iin";
2
+ import { Monthly } from "./Monthly";
3
+ import { Region } from "./Region";
4
+ export var Regional;
5
+ (function (Regional) {
6
+ function update(previous, transaction) {
7
+ const region = Region.find(transaction.counterpart.merchant.country);
8
+ const result = previous;
9
+ result[region] = Monthly.update(result[region], transaction);
10
+ return result;
11
+ }
12
+ Regional.update = update;
13
+ function toCsvRow(regional, row) {
14
+ let result = "";
15
+ const region = Region.fromRow(row);
16
+ const key = row.includes("Count") ? "count" : "volume";
17
+ for (const month of Monthly.Month.values) {
18
+ result += row.replace("Month x", `Month ${month}`);
19
+ for (const iin of Iin.values)
20
+ result += `|${regional[region]?.[month][key][iin] ?? 0}`;
21
+ result += "\n";
22
+ }
23
+ return result;
24
+ }
25
+ Regional.toCsvRow = toCsvRow;
26
+ })(Regional || (Regional = {}));
27
+ //# sourceMappingURL=Regional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Regional.js","sourceRoot":"../","sources":["reports/visa/Data/Regional.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,MAAM,KAAW,QAAQ,CAmBxB;AAnBD,WAAiB,QAAQ;IACxB,SAAgB,MAAM,CAAC,QAAkB,EAAE,WAAwC;QAClF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACpE,MAAM,MAAM,GAAa,QAAQ,CAAA;QACjC,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAA;QAC5D,OAAO,MAAM,CAAA;IACd,CAAC;IALe,eAAM,SAKrB,CAAA;IACD,SAAgB,QAAQ,CAAC,QAAkB,EAAE,GAAW;QACvD,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAClC,MAAM,GAAG,GAAuB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;QAC1E,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,KAAK,EAAE,CAAC,CAAA;YAClD,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM;gBAC3B,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;YACzD,MAAM,IAAI,IAAI,CAAA;QACf,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAXe,iBAAQ,WAWvB,CAAA;AACF,CAAC,EAnBgB,QAAQ,KAAR,QAAQ,QAmBxB"}
@@ -0,0 +1,17 @@
1
+ import { Transaction } from "../../../Transaction";
2
+ import { rows } from "../rows";
3
+ import { Country as DataCountry } from "./Country";
4
+ import { Iin as DataIin } from "./Iin";
5
+ import { NonMonthly } from "./NonMonthly";
6
+ import { Regional } from "./Regional";
7
+ export type Data = {
8
+ regional: Regional;
9
+ nonMonthly: NonMonthly;
10
+ country: Data.Country;
11
+ };
12
+ export declare namespace Data {
13
+ export import Iin = DataIin;
14
+ export import Country = DataCountry;
15
+ function create(transactions: Transaction.CardTransaction[]): Data;
16
+ function toCsv(data: Data, row: rows.NonZero): string;
17
+ }
@@ -0,0 +1,29 @@
1
+ import { Country as DataCountry } from "./Country";
2
+ import { Iin as DataIin } from "./Iin";
3
+ import { NonMonthly } from "./NonMonthly";
4
+ import { Regional } from "./Regional";
5
+ export var Data;
6
+ (function (Data) {
7
+ Data.Iin = DataIin;
8
+ Data.Country = DataCountry;
9
+ function create(transactions) {
10
+ const result = { regional: {}, nonMonthly: NonMonthly.empty, country: {} };
11
+ for (const transaction of transactions) {
12
+ result.nonMonthly = NonMonthly.update(result.nonMonthly, transaction);
13
+ result.regional = Regional.update(result.regional, transaction);
14
+ result.country = Data.Country.update(result.country, transaction);
15
+ }
16
+ return result;
17
+ }
18
+ Data.create = create;
19
+ function toCsv(data, row) {
20
+ let result;
21
+ if (row.endsWith("Month x"))
22
+ result = Regional.toCsvRow(data.regional, row);
23
+ else
24
+ result = NonMonthly.toCsvRow(data.nonMonthly, row);
25
+ return result;
26
+ }
27
+ Data.toCsv = toCsv;
28
+ })(Data || (Data = {}));
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["reports/visa/Data/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAOrC,MAAM,KAAW,IAAI,CAoBpB;AApBD,WAAiB,IAAI;IACN,QAAG,GAAG,OAAO,CAAA;IACb,YAAO,GAAG,WAAW,CAAA;IACnC,SAAgB,MAAM,CAAC,YAA2C;QACjE,MAAM,MAAM,GAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAChF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;YACrE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;YAC/D,MAAM,CAAC,OAAO,GAAG,KAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC7D,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IARe,WAAM,SAQrB,CAAA;IACD,SAAgB,KAAK,CAAC,IAAU,EAAE,GAAiB;QAClD,IAAI,MAAc,CAAA;QAClB,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC1B,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;;YAE9C,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QACnD,OAAO,MAAM,CAAA;IACd,CAAC;IAPe,UAAK,QAOpB,CAAA;AACF,CAAC,EApBgB,IAAI,KAAJ,IAAI,QAoBpB"}
@@ -0,0 +1,7 @@
1
+ import { Data as visaData } from "./Data";
2
+ import { rows as visaRows } from "./rows";
3
+ export declare namespace visa {
4
+ export import Data = visaData;
5
+ export import rows = visaRows;
6
+ function toCsv(data: Data): string;
7
+ }
@@ -0,0 +1,33 @@
1
+ import { Data as visaData } from "./Data";
2
+ import { rows as visaRows } from "./rows";
3
+ export var visa;
4
+ (function (visa) {
5
+ visa.Data = visaData;
6
+ visa.rows = visaRows;
7
+ const headers = [
8
+ "Product Local Name",
9
+ "Visa IDX - 45672555",
10
+ "Visa IDX - 4567255",
11
+ "Visa IDX 1.4% - 45672557",
12
+ "Total Visa IDX products",
13
+ "Visa Business Prepaid - 44260108",
14
+ "Visa Corporate Deferred Debit - 49359119",
15
+ "Visa Business Immediate Debit - BIN: 45672554",
16
+ ];
17
+ function toCsv(data) {
18
+ let csv = headers.join("|") + "\n";
19
+ for (const row of visa.rows.all)
20
+ if (visa.rows.Blank.type.is(row))
21
+ csv += visa.rows.Blank.toCsvRow(row, headers.length - 1);
22
+ else if (visa.rows.NonZero.type.is(row))
23
+ csv += visa.Data.toCsv(data, row);
24
+ else if (row.endsWith("Month x"))
25
+ csv += visa.rows.monthlyZeroRows(row, headers.length - 1);
26
+ else
27
+ csv += visa.rows.zeros(row, headers.length - 1);
28
+ csv += visa.Data.Country.toCsv(data.country);
29
+ return csv;
30
+ }
31
+ visa.toCsv = toCsv;
32
+ })(visa || (visa = {}));
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../","sources":["reports/visa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEzC,MAAM,KAAW,IAAI,CAiCpB;AAjCD,WAAiB,IAAI;IACN,SAAI,GAAG,QAAQ,CAAA;IACf,SAAI,GAAG,QAAQ,CAAA;IAC7B,MAAM,OAAO,GAAG;QACf,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,0BAA0B;QAC1B,yBAAyB;QACzB,kCAAkC;QAClC,2CAA2C;QAC3C,+CAA+C;KACtC,CAAA;IACV,SAAgB,KAAK,CAAC,IAAU;QAE/B,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QAClC,KAAK,MAAM,GAAG,IAAI,KAAA,IAAI,CAAC,GAAG;YACzB,IAAI,KAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;gBAE1B,GAAG,IAAI,KAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;iBAC/C,IAAI,KAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;gBAEjC,GAAG,IAAI,KAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;iBACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAE/B,GAAG,IAAI,KAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;;gBAGpD,GAAG,IAAI,KAAA,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE5C,GAAG,IAAI,KAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACX,CAAC;IAnBe,UAAK,QAmBpB,CAAA;AACF,CAAC,EAjCgB,IAAI,KAAJ,IAAI,QAiCpB"}
@@ -0,0 +1,17 @@
1
+ import { isly } from "isly";
2
+ export declare namespace rows {
3
+ const all: readonly ["On-Us Payments Count - Month x", "On-Us Payments Volume - Month x", "On-Us Account Funding Transaction Count - Month x", "On-Us Account Funding Transaction Volume - Month x", "On-Us Original Credits Count - Month x", "On-Us Original Credits Volume - Month x", "On-Us ATM Cash Advances Count - Month x", "On-Us ATM Cash Advances Volume - Month x", "On-Us Manual Cash Count - Month x", "On-Us Manual Cash Volume - Month x", "On-Us Cashback Count - Month x", "On-Us Cashback Volume - Month x", "National Payments Count - Month x", "National Payments Volume - Month x", "National Account Funding Transaction Count - Month x", "National Account Funding Transaction Volume - Month x", "National Original Credits Count - Month x", "National Original Credits Volume - Month x", "National ATM Cash Advances Count - Month x", "National ATM Cash Advances Volume - Month x", "National Manual Cash Count - Month x", "National Manual Cash Volume - Month x", "National Cashback Count - Month x", "National Cashback Volume - Month x", "International - Intra-Regional Payments Count - Month x", "International - Intra-Regional Payments Volume - Month x", "International - Intra-Regional Account Funding Transaction Count - Month x", "International - Intra-Regional Account Funding Transaction Volume - Month x", "International - Intra-Regional Original Credits Count - Month x", "International - Intra-Regional Original Credits Volume - Month x", "International - Intra-Regional ATM Cash Advances Count - Month x", "International - Intra-Regional ATM Cash Advances Volume - Month x", "International - Intra-Regional Manual Cash Count - Month x", "International - Intra-Regional Manual Cash Volume - Month x", "International - Intra-Regional Cashback Count - Month x", "International - Intra-Regional Cashback Volume - Month x", "International - Non-EEA Payments Count - Month x", "International - Non-EEA Payments Volume - Month x", "International - Non-EEA Account Funding Transaction Count - Month x", "International - Non-EEA Account Funding Transaction Volume - Month x", "International - Non-EEA Original Credits Count - Month x", "International - Non-EEA Original Credits Volume - Month x", "International - Non-EEA ATM Cash Advances Count - Month x", "International - Non-EEA ATM Cash Advances Volume - Month x", "International - Non-EEA Manual Cash Count - Month x", "International - Non-EEA Manual Cash Volume - Month x", "International - Non-EEA Cashback Count - Month x", "International - Non-EEA Cashback Volume - Month x", "International - Inter-Regional Payments Count - Month x", "International - Inter-Regional Payments Volume - Month x", "International - Inter-Regional Account Funding Transaction Count - Month x", "International - Inter-Regional Account Funding Transaction Volume - Month x", "International - Inter-Regional Original Credits Count - Month x", "International - Inter-Regional Original Credits Volume - Month x", "International - Inter-Regional ATM Cash Advances Count - Month x", "International - Inter-Regional ATM Cash Advances Volume - Month x", "International - Inter-Regional Manual Cash Count - Month x", "International - Inter-Regional Manual Cash Volume - Month x", "International - Inter-Regional Cashback Count - Month x", "International - Inter-Regional Cashback Volume - Month x", "Total Number of Cards", "Number of Cards - Magnetic Stripe", "Number of Cards - Magnetic Stripe, Chip", "Number of Cards - Magnetic Stripe, Contactless", "Number of Cards - Magnetic Stripe, Chip, Contactless", "Total Number of Active Cards", "Number of Active Cards - used at Contactless device", "Number of Devices with Visa Contactless - Micro Tags", "Number of Devices with Visa Contactless - Mobile Phones", "Number of Devices with Visa Contactless - Other Devices", "Total Number of Accounts", "Number of Accounts - Domestic Use Only", "Number of Accounts - International Enabled", "Total Number of Active Accounts", "Total Number of Personal Deposit Accounts", "Number of Savings Accounts", "Number of Regular Checking Accounts", "Fraud Recoveries - Domestic - Cash Disbursements - Amount", "Fraud Recoveries - Domestic - Payments - Amount", "Fraud Recoveries - International - Cash Disbursements - Amount", "Fraud Recoveries - International - Payments - Amount", "Gross Fraud Losses - Number of Accounts", "Gross Fraud Losses - Number of Recovered Accounts", "Gross Fraud Losses - Domestic - Cash Disbursements - Count", "Gross Fraud Losses - Domestic - Cash Disbursements - Volume", "Gross Fraud Losses - Domestic - Payments - Count", "Gross Fraud Losses - Domestic - Payments - Volume", "Gross Fraud Losses - International - Cash Disbursements - Count", "Gross Fraud Losses - International - Cash Disbursements - Volume", "Gross Fraud Losses - International - Payments - Count", "Gross Fraud Losses - International - Payments - Volume", "Total Product Balance - Volume", "Payments Transactions Declined for Insufficient Funds - Number", "Cash Transactions Declined for Insufficient Funds - Number"];
4
+ type NonZero = typeof NonZero.values[number];
5
+ namespace NonZero {
6
+ const values: readonly ["National Payments Count - Month x", "National Payments Volume - Month x", "International - Intra-Regional Payments Count - Month x", "International - Intra-Regional Payments Volume - Month x", "International - Non-EEA Payments Count - Month x", "International - Non-EEA Payments Volume - Month x", "International - Inter-Regional Payments Count - Month x", "International - Inter-Regional Payments Volume - Month x", "Total Number of Cards", "Total Number of Active Cards", "Total Number of Accounts", "Number of Accounts - International Enabled", "Payments Transactions Declined for Insufficient Funds - Number"];
7
+ const type: isly.Type<"National Payments Count - Month x" | "National Payments Volume - Month x" | "International - Intra-Regional Payments Count - Month x" | "International - Intra-Regional Payments Volume - Month x" | "International - Non-EEA Payments Count - Month x" | "International - Non-EEA Payments Volume - Month x" | "International - Inter-Regional Payments Count - Month x" | "International - Inter-Regional Payments Volume - Month x" | "Total Number of Cards" | "Total Number of Active Cards" | "Total Number of Accounts" | "Number of Accounts - International Enabled" | "Payments Transactions Declined for Insufficient Funds - Number">;
8
+ }
9
+ type Blank = typeof Blank.values[number];
10
+ namespace Blank {
11
+ const values: readonly ["Fraud Recoveries - Domestic - Cash Disbursements - Amount", "Fraud Recoveries - Domestic - Payments - Amount", "Fraud Recoveries - International - Cash Disbursements - Amount", "Fraud Recoveries - International - Payments - Amount", "Gross Fraud Losses - Number of Accounts", "Gross Fraud Losses - Number of Recovered Accounts", "Gross Fraud Losses - Domestic - Cash Disbursements - Count", "Gross Fraud Losses - Domestic - Cash Disbursements - Volume", "Gross Fraud Losses - Domestic - Payments - Count", "Gross Fraud Losses - Domestic - Payments - Volume", "Gross Fraud Losses - International - Cash Disbursements - Count", "Gross Fraud Losses - International - Cash Disbursements - Volume", "Gross Fraud Losses - International - Payments - Count", "Gross Fraud Losses - International - Payments - Volume"];
12
+ const type: isly.Type<"Fraud Recoveries - Domestic - Cash Disbursements - Amount" | "Fraud Recoveries - Domestic - Payments - Amount" | "Fraud Recoveries - International - Cash Disbursements - Amount" | "Fraud Recoveries - International - Payments - Amount" | "Gross Fraud Losses - Number of Accounts" | "Gross Fraud Losses - Number of Recovered Accounts" | "Gross Fraud Losses - Domestic - Cash Disbursements - Count" | "Gross Fraud Losses - Domestic - Cash Disbursements - Volume" | "Gross Fraud Losses - Domestic - Payments - Count" | "Gross Fraud Losses - Domestic - Payments - Volume" | "Gross Fraud Losses - International - Cash Disbursements - Count" | "Gross Fraud Losses - International - Cash Disbursements - Volume" | "Gross Fraud Losses - International - Payments - Count" | "Gross Fraud Losses - International - Payments - Volume">;
13
+ function toCsvRow(row: Blank, count: number): string;
14
+ }
15
+ function monthlyZeroRows(row: string, zeroes: number): string;
16
+ function zeros(row: string, zeroes: number): string;
17
+ }