@ashray.mehta/statement-converter 1.7.0 → 1.7.1

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.
@@ -3,7 +3,8 @@ import { Transaction } from '../models/Transaction';
3
3
  import { TransactionAdapter } from './TransactionAdapter';
4
4
  export declare class ICICICreditCardAdapter extends TransactionAdapter {
5
5
  convert(xlsxData: ArrayBuffer): Promise<Transaction[]>;
6
- private findStartingRow;
6
+ private findFirstRow;
7
+ private findLastRow;
7
8
  private determineDebitOrCredit;
8
9
  supports(bank: Bank): boolean;
9
10
  }
@@ -65,20 +65,14 @@ class ICICICreditCardAdapter extends TransactionAdapter_1.TransactionAdapter {
65
65
  const addressForCreditOrDebit = XLSXUtil_1.XLSXUtil.findTextIgnoringWhitespace(sheet, "BillingAmountSign");
66
66
  const range = XLSX.utils.decode_range(sheet['!ref']);
67
67
  const rangeEnd = range.e;
68
- const lastRow = rangeEnd.r;
69
- const startingRow = this.findStartingRow(sheet, range, addressForTransactionDate);
68
+ const lastRow = this.findLastRow(sheet, range, addressForTransactionDate);
69
+ const startingRow = this.findFirstRow(sheet, range, addressForTransactionDate);
70
70
  const rows = [...Array(1 + lastRow - startingRow).keys()].map(v => startingRow + v);
71
71
  return rows
72
72
  .filter(row => {
73
73
  // ICICI sometimes has account numbers in the Date field which serve as a separator between inflows and outflows.
74
74
  // This filters those rows out.
75
- const dateText = XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForTransactionDate.c);
76
- if ((0, lodash_es_1.size)(dateText) === 16) {
77
- return false;
78
- }
79
- else {
80
- return true;
81
- }
75
+ return (0, moment_1.default)(XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForTransactionDate.c), 'DD/MM/YYYY').isValid();
82
76
  })
83
77
  .map(row => {
84
78
  let isOutflow, amount;
@@ -105,7 +99,7 @@ class ICICICreditCardAdapter extends TransactionAdapter_1.TransactionAdapter {
105
99
  });
106
100
  });
107
101
  }
108
- findStartingRow(sheet, range, addressForTransactionDate) {
102
+ findFirstRow(sheet, range, addressForTransactionDate) {
109
103
  var current = addressForTransactionDate.r; // Right after this is where the data should start, but sometimes there are blank rows after the header.
110
104
  for (var current = addressForTransactionDate.r + 1; current <= range.e.r; current++) {
111
105
  if (!(0, lodash_es_1.isEmpty)(XLSXUtil_1.XLSXUtil.getCellValue(sheet, current, addressForTransactionDate.c))) {
@@ -114,6 +108,15 @@ class ICICICreditCardAdapter extends TransactionAdapter_1.TransactionAdapter {
114
108
  }
115
109
  return addressForTransactionDate.r;
116
110
  }
111
+ findLastRow(sheet, range, addressForTransactionDate) {
112
+ for (var current = 0; current <= range.e.r; current++) {
113
+ const cellValue = XLSXUtil_1.XLSXUtil.getCellValue(sheet, current, addressForTransactionDate.c);
114
+ if (!!cellValue && cellValue.toString().includes("MESSAGE Details")) {
115
+ return current - 1;
116
+ }
117
+ }
118
+ return range.e.r;
119
+ }
117
120
  determineDebitOrCredit(sheet, row, column) {
118
121
  const cellValue = XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, column);
119
122
  // TODO - Replace parsing with Globalize
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ashray.mehta/statement-converter",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "description": "Library to convert statements from frequently used banks to QIF.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -34,12 +34,12 @@
34
34
  "@types/lodash-es": "4.17.12",
35
35
  "@types/mocha": "10.0.10",
36
36
  "@types/moment": "2.13.0",
37
- "@types/node": "25.5.2",
37
+ "@types/node": "25.6.0",
38
38
  "@types/yargs": "17.0.35",
39
39
  "chai": "6.2.2",
40
40
  "mocha": "11.7.5",
41
41
  "ts-node": "10.9.2",
42
42
  "tsx": "4.21.0",
43
- "typescript": "6.0.2"
43
+ "typescript": "6.0.3"
44
44
  }
45
45
  }