@ashray.mehta/statement-converter 1.4.6 → 1.4.7
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/StatementConverter.d.ts +0 -1
- package/adapters/ABNAdapter.js +29 -3
- package/adapters/AxisAdapter.d.ts +1 -1
- package/adapters/AxisAdapter.js +29 -3
- package/adapters/ICICIAdapter.js +29 -3
- package/adapters/ICICICreditCardAdapter.js +29 -3
- package/adapters/MT940Adapter.js +11 -8
- package/adapters/N26Adapter.js +29 -3
- package/adapters/StandardCharteredAdapter.js +30 -4
- package/adapters/TransactionsQifConverter.d.ts +0 -1
- package/adapters/TransactionsQifConverter.js +29 -3
- package/helpers/NumberUtil.js +4 -1
- package/helpers/XLSXUtil.js +3 -3
- package/models/Bank.js +1 -1
- package/package.json +18 -17
package/StatementConverter.d.ts
CHANGED
package/adapters/ABNAdapter.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,13 +31,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.ABNAdapter = void 0;
|
|
13
39
|
const __1 = require("..");
|
|
14
40
|
const XLSXUtil_1 = require("../helpers/XLSXUtil");
|
|
15
41
|
const TransactionAdapter_1 = require("./TransactionAdapter");
|
|
16
|
-
const XLSX = require("xlsx");
|
|
17
|
-
const
|
|
42
|
+
const XLSX = __importStar(require("xlsx"));
|
|
43
|
+
const moment_1 = __importDefault(require("moment"));
|
|
18
44
|
class ABNAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
19
45
|
convert(xlsxData) {
|
|
20
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -29,7 +55,7 @@ class ABNAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
|
29
55
|
const lastRow = rangeEnd.r;
|
|
30
56
|
const rows = [...Array(1 + lastRow - startingRow).keys()].map(v => startingRow + v);
|
|
31
57
|
return rows.map(row => {
|
|
32
|
-
const parsedDate =
|
|
58
|
+
const parsedDate = (0, moment_1.default)(XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForTransactionDate.c), 'YYYYMMDD');
|
|
33
59
|
if (!parsedDate.isValid())
|
|
34
60
|
return undefined;
|
|
35
61
|
const date = parsedDate.toDate();
|
|
@@ -3,5 +3,5 @@ import { Transaction } from '../models/Transaction';
|
|
|
3
3
|
import { TransactionAdapter } from './TransactionAdapter';
|
|
4
4
|
export declare class AxisAdapter extends TransactionAdapter {
|
|
5
5
|
convert(xlsxData: ArrayBuffer): Promise<Transaction[]>;
|
|
6
|
-
supports(bank: Bank):
|
|
6
|
+
supports(bank: Bank): bank is Bank.Axis;
|
|
7
7
|
}
|
package/adapters/AxisAdapter.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,13 +31,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.AxisAdapter = void 0;
|
|
13
39
|
const __1 = require("..");
|
|
14
40
|
const XLSXUtil_1 = require("../helpers/XLSXUtil");
|
|
15
41
|
const TransactionAdapter_1 = require("./TransactionAdapter");
|
|
16
|
-
const XLSX = require("xlsx");
|
|
17
|
-
const
|
|
42
|
+
const XLSX = __importStar(require("xlsx"));
|
|
43
|
+
const moment_1 = __importDefault(require("moment"));
|
|
18
44
|
class AxisAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
19
45
|
convert(xlsxData) {
|
|
20
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -30,7 +56,7 @@ class AxisAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
|
30
56
|
const lastRow = rangeEnd.r;
|
|
31
57
|
const rows = [...Array(1 + lastRow - startingRow).keys()].map(v => startingRow + v);
|
|
32
58
|
return rows.map(row => {
|
|
33
|
-
const parsedDate =
|
|
59
|
+
const parsedDate = (0, moment_1.default)(XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForTransactionDate.c), 'DD-MM-YYYY');
|
|
34
60
|
if (!parsedDate.isValid())
|
|
35
61
|
return undefined;
|
|
36
62
|
const date = parsedDate.toDate();
|
package/adapters/ICICIAdapter.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,13 +31,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.ICICIAdapter = void 0;
|
|
13
|
-
const XLSX = require("xlsx");
|
|
14
39
|
const __1 = require("..");
|
|
15
40
|
const XLSXUtil_1 = require("../helpers/XLSXUtil");
|
|
16
41
|
const TransactionAdapter_1 = require("./TransactionAdapter");
|
|
17
|
-
const
|
|
42
|
+
const XLSX = __importStar(require("xlsx"));
|
|
43
|
+
const moment_1 = __importDefault(require("moment"));
|
|
18
44
|
class ICICIAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
19
45
|
convert(xlsxData) {
|
|
20
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -31,7 +57,7 @@ class ICICIAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
|
31
57
|
return rows.map(row => {
|
|
32
58
|
const isOutflow = this.isOutflow(sheet, row, addressForCreditOrDebit.c);
|
|
33
59
|
const amount = XLSXUtil_1.XLSXUtil.getNumberInCell(sheet, row, addressForAmount.c);
|
|
34
|
-
const date =
|
|
60
|
+
const date = (0, moment_1.default)(XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForTransactionDate.c), 'DD/MM/YYYY').toDate();
|
|
35
61
|
const payee = XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForDetails.c);
|
|
36
62
|
return {
|
|
37
63
|
Payee: payee,
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,13 +31,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.ICICICreditCardAdapter = void 0;
|
|
13
|
-
const XLSX = require("xlsx");
|
|
14
39
|
const __1 = require("..");
|
|
15
40
|
const XLSXUtil_1 = require("../helpers/XLSXUtil");
|
|
16
41
|
const TransactionAdapter_1 = require("./TransactionAdapter");
|
|
17
|
-
const
|
|
42
|
+
const XLSX = __importStar(require("xlsx"));
|
|
43
|
+
const moment_1 = __importDefault(require("moment"));
|
|
18
44
|
class ICICICreditCardAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
19
45
|
convert(xlsxData) {
|
|
20
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -31,7 +57,7 @@ class ICICICreditCardAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
|
31
57
|
const rows = [...Array(1 + lastRow - startingRow).keys()].map(v => startingRow + v);
|
|
32
58
|
return rows.map(row => {
|
|
33
59
|
const { isOutflow, amount } = this.determineDebitOrCredit(sheet, row, addressForAmount.c);
|
|
34
|
-
const date =
|
|
60
|
+
const date = (0, moment_1.default)(XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForTransactionDate.c), 'DD/MM/YYYY').toDate();
|
|
35
61
|
return {
|
|
36
62
|
Payee: XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForDetails.c),
|
|
37
63
|
Outflow: isOutflow ? amount : 0,
|
package/adapters/MT940Adapter.js
CHANGED
|
@@ -8,13 +8,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.MT940Adapter = void 0;
|
|
13
16
|
const __1 = require("..");
|
|
14
17
|
const TransactionAdapter_1 = require("./TransactionAdapter");
|
|
15
|
-
const stitch_swiftmessageparser_1 = require("stitch-swiftmessageparser");
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
+
const stitch_swiftmessageparser_1 = __importDefault(require("stitch-swiftmessageparser"));
|
|
19
|
+
const lodash_es_1 = require("lodash-es");
|
|
20
|
+
const moment_1 = __importDefault(require("moment"));
|
|
18
21
|
class MT940Adapter extends TransactionAdapter_1.TransactionAdapter {
|
|
19
22
|
convert(data) {
|
|
20
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -22,20 +25,20 @@ class MT940Adapter extends TransactionAdapter_1.TransactionAdapter {
|
|
|
22
25
|
data: new TextDecoder().decode(data),
|
|
23
26
|
type: "mt940",
|
|
24
27
|
});
|
|
25
|
-
return (0,
|
|
28
|
+
return (0, lodash_es_1.flatMap)(rows, row => row.transactions)
|
|
26
29
|
.map((row) => {
|
|
27
|
-
const parsedDate =
|
|
30
|
+
const parsedDate = (0, moment_1.default)(row.date);
|
|
28
31
|
const date = parsedDate.toDate();
|
|
29
32
|
const amount = row.amount;
|
|
30
33
|
const outflow = amount.isNegative() ? amount.abs().toNumber() : 0;
|
|
31
34
|
const inflow = amount.isPositive() ? amount.toNumber() : 0;
|
|
32
|
-
const memo = (0,
|
|
35
|
+
const memo = (0, lodash_es_1.filter)([
|
|
33
36
|
row.bankReference,
|
|
34
37
|
row.details,
|
|
35
38
|
row.extraDetails,
|
|
36
39
|
row.reference,
|
|
37
|
-
(0,
|
|
38
|
-
], (0,
|
|
40
|
+
(0, lodash_es_1.filter)(row.detailSegments, (0, lodash_es_1.negate)(lodash_es_1.isEmpty)).join(" - ")
|
|
41
|
+
], (0, lodash_es_1.negate)(lodash_es_1.isEmpty))
|
|
39
42
|
.join(" - ")
|
|
40
43
|
.trim();
|
|
41
44
|
return {
|
package/adapters/N26Adapter.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,13 +31,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.N26Adapter = void 0;
|
|
13
39
|
const __1 = require("..");
|
|
14
40
|
const XLSXUtil_1 = require("../helpers/XLSXUtil");
|
|
15
41
|
const TransactionAdapter_1 = require("./TransactionAdapter");
|
|
16
|
-
const XLSX = require("xlsx");
|
|
17
|
-
const
|
|
42
|
+
const XLSX = __importStar(require("xlsx"));
|
|
43
|
+
const moment_1 = __importDefault(require("moment"));
|
|
18
44
|
class N26Adapter extends TransactionAdapter_1.TransactionAdapter {
|
|
19
45
|
convert(xlsxData) {
|
|
20
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -31,7 +57,7 @@ class N26Adapter extends TransactionAdapter_1.TransactionAdapter {
|
|
|
31
57
|
const lastRow = rangeEnd.r;
|
|
32
58
|
const rows = [...Array(1 + lastRow - startingRow).keys()].map(v => startingRow + v);
|
|
33
59
|
return rows.map(row => {
|
|
34
|
-
const parsedDate =
|
|
60
|
+
const parsedDate = (0, moment_1.default)(XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForTransactionDate.c), 'YYYYMMDD');
|
|
35
61
|
if (!parsedDate.isValid())
|
|
36
62
|
return undefined;
|
|
37
63
|
const date = parsedDate.toDate();
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,13 +31,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.StandardCharteredAdapter = void 0;
|
|
13
39
|
const __1 = require("..");
|
|
14
40
|
const XLSXUtil_1 = require("../helpers/XLSXUtil");
|
|
15
41
|
const TransactionAdapter_1 = require("./TransactionAdapter");
|
|
16
|
-
const XLSX = require("xlsx");
|
|
17
|
-
const
|
|
42
|
+
const XLSX = __importStar(require("xlsx"));
|
|
43
|
+
const moment_1 = __importDefault(require("moment"));
|
|
18
44
|
class StandardCharteredAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
19
45
|
convert(xlsxData) {
|
|
20
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -30,7 +56,7 @@ class StandardCharteredAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
|
30
56
|
const lastRow = rangeEnd.r;
|
|
31
57
|
const rows = [...Array(1 + lastRow - startingRow).keys()].map(v => startingRow + v);
|
|
32
58
|
return rows.map(row => {
|
|
33
|
-
const date =
|
|
59
|
+
const date = (0, moment_1.default)(XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForTransactionDate.c), 'DD/MM/YYYY').toDate();
|
|
34
60
|
const outflow = XLSXUtil_1.XLSXUtil.getNumberInCell(sheet, row, addressForWithdrawalAmount.c);
|
|
35
61
|
const inflow = XLSXUtil_1.XLSXUtil.getNumberInCell(sheet, row, addressForDepositAmount.c);
|
|
36
62
|
const payee = XLSXUtil_1.XLSXUtil.getCellValue(sheet, row, addressForDetails.c);
|
|
@@ -42,7 +68,7 @@ class StandardCharteredAdapter extends TransactionAdapter_1.TransactionAdapter {
|
|
|
42
68
|
Memo: payee,
|
|
43
69
|
Category: null
|
|
44
70
|
};
|
|
45
|
-
}).filter(datum =>
|
|
71
|
+
}).filter(datum => (0, moment_1.default)(datum.Date).isValid());
|
|
46
72
|
});
|
|
47
73
|
}
|
|
48
74
|
supports(bank) {
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,16 +31,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.TransactionsQifConverter = void 0;
|
|
13
|
-
const qif = require("qif");
|
|
14
|
-
const
|
|
39
|
+
const qif = __importStar(require("qif"));
|
|
40
|
+
const moment_1 = __importDefault(require("moment"));
|
|
15
41
|
class TransactionsQifConverter {
|
|
16
42
|
convert(transactions) {
|
|
17
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
18
44
|
const qifTransactions = transactions.map(t => {
|
|
19
45
|
return {
|
|
20
|
-
date:
|
|
46
|
+
date: (0, moment_1.default)(t.Date).format('D/M/YYYY'),
|
|
21
47
|
amount: t.Inflow ? t.Inflow : -t.Outflow,
|
|
22
48
|
payee: t.Payee,
|
|
23
49
|
memo: t.Memo,
|
package/helpers/NumberUtil.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.NumberUtil = void 0;
|
|
4
|
-
const multi_number_parse_1 = require("multi-number-parse");
|
|
7
|
+
const multi_number_parse_1 = __importDefault(require("multi-number-parse"));
|
|
5
8
|
class NumberUtil {
|
|
6
9
|
constructor() {
|
|
7
10
|
this.commonSeparators = [",", "."];
|
package/helpers/XLSXUtil.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.XLSXUtil = void 0;
|
|
4
|
-
const
|
|
4
|
+
const lodash_es_1 = require("lodash-es");
|
|
5
5
|
const NumberUtil_1 = require("./NumberUtil");
|
|
6
6
|
const xlsx_1 = require("xlsx");
|
|
7
7
|
class XLSXUtil {
|
|
@@ -17,7 +17,7 @@ class XLSXUtil {
|
|
|
17
17
|
const cell = sheet[cellAddress];
|
|
18
18
|
if (!(cell.t == 's' || cell.t == 'str'))
|
|
19
19
|
continue;
|
|
20
|
-
if ((0,
|
|
20
|
+
if ((0, lodash_es_1.trim)(cell.v) === (0, lodash_es_1.trim)(text))
|
|
21
21
|
return xlsx_1.utils.decode_cell(cellAddress);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -31,7 +31,7 @@ class XLSXUtil {
|
|
|
31
31
|
if (!sheet[cellAddress])
|
|
32
32
|
return null;
|
|
33
33
|
const value = sheet[cellAddress].v;
|
|
34
|
-
if ((0,
|
|
34
|
+
if ((0, lodash_es_1.isNumber)(value)) {
|
|
35
35
|
return value;
|
|
36
36
|
}
|
|
37
37
|
const number = new NumberUtil_1.NumberUtil().parseNumber(value);
|
package/models/Bank.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ashray.mehta/statement-converter",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.7",
|
|
4
4
|
"description": "Library to convert statements from frequently used banks to QIF.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"prebuild": "npm run clean",
|
|
12
12
|
"build": "tsc && cp package.json ./dist/",
|
|
13
13
|
"clean": "rm -rf build",
|
|
14
|
-
"test": "mocha"
|
|
14
|
+
"test": "mocha test/**/*.ts"
|
|
15
15
|
},
|
|
16
16
|
"author": "Ashray Mehta",
|
|
17
17
|
"repository": {
|
|
@@ -20,24 +20,25 @@
|
|
|
20
20
|
},
|
|
21
21
|
"license": "ISC",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@types/lodash": "
|
|
24
|
-
"lodash": "
|
|
25
|
-
"moment": "
|
|
26
|
-
"multi-number-parse": "
|
|
23
|
+
"@types/lodash": "4.17.6",
|
|
24
|
+
"lodash-es": "4.17.21",
|
|
25
|
+
"moment": "2.23.0",
|
|
26
|
+
"multi-number-parse": "1.1.0",
|
|
27
27
|
"qif": "0.0.2",
|
|
28
|
-
"stitch-swiftmessageparser": "
|
|
28
|
+
"stitch-swiftmessageparser": "2.0.1",
|
|
29
29
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@types/chai": "
|
|
33
|
-
"@types/globalize": "
|
|
34
|
-
"@types/mocha": "
|
|
35
|
-
"@types/moment": "
|
|
36
|
-
"@types/node": "
|
|
37
|
-
"@types/yargs": "
|
|
38
|
-
"chai": "
|
|
39
|
-
"mocha": "
|
|
40
|
-
"ts-node": "
|
|
41
|
-
"
|
|
32
|
+
"@types/chai": "4.3.16",
|
|
33
|
+
"@types/globalize": "1.5.0",
|
|
34
|
+
"@types/mocha": "8.2.0",
|
|
35
|
+
"@types/moment": "2.13.0",
|
|
36
|
+
"@types/node": "20.14.10",
|
|
37
|
+
"@types/yargs": "17.0.32",
|
|
38
|
+
"chai": "5.1.1",
|
|
39
|
+
"mocha": "10.4.0",
|
|
40
|
+
"ts-node": "10.9.1",
|
|
41
|
+
"tsx": "4.16.2",
|
|
42
|
+
"typescript": "5.5.3"
|
|
42
43
|
}
|
|
43
44
|
}
|