@tasenor/common-plugins 1.13.14 → 1.13.16
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-ci.log +2 -2
- package/.turbo/turbo-nightly.log +3 -3
- package/.turbo/turbo-nightly3.log +24 -24
- package/dist/DocumentCleaner/ui/index.d.ts +0 -1
- package/dist/GitBackup/ui/index.d.ts +0 -1
- package/dist/SPankkiImport/backend/SPankkiHandler.d.ts +12 -0
- package/dist/SPankkiImport/backend/SPankkiHandler.js +42 -0
- package/dist/SPankkiImport/backend/SPankkiHandler.js.map +1 -0
- package/dist/SPankkiImport/backend/index.d.ts +5 -0
- package/dist/SPankkiImport/backend/index.js +18 -0
- package/dist/SPankkiImport/backend/index.js.map +1 -0
- package/dist/TagEditor/ui/index.d.ts +0 -1
- package/dist/VAT/ui/index.d.ts +0 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/src/SPankkiImport/backend/SPankkiHandler.ts +48 -0
- package/src/SPankkiImport/backend/index.ts +24 -0
- package/src/SPankkiImport/backend/rules.json +4 -0
- package/src/index.ts +2 -0
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-ci.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @tasenor/common-plugins@1.13.
|
|
2
|
+
> @tasenor/common-plugins@1.13.15 ci /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
3
3
|
> pnpm run lint
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @tasenor/common-plugins@1.13.
|
|
6
|
+
> @tasenor/common-plugins@1.13.15 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
7
7
|
> eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'
|
|
8
8
|
|
package/.turbo/turbo-nightly.log
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
> @tasenor/common-plugins@1.13.
|
|
2
|
+
> @tasenor/common-plugins@1.13.15 nightly /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
3
3
|
> pnpm run ci
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @tasenor/common-plugins@1.13.
|
|
6
|
+
> @tasenor/common-plugins@1.13.15 ci /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
7
7
|
> pnpm run lint
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @tasenor/common-plugins@1.13.
|
|
10
|
+
> @tasenor/common-plugins@1.13.15 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
11
11
|
> eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'
|
|
12
12
|
|
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
|
|
2
|
-
> @tasenor/common-plugins@1.13.
|
|
2
|
+
> @tasenor/common-plugins@1.13.15 nightly3 /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
3
3
|
> pnpm run data
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @tasenor/common-plugins@1.13.
|
|
6
|
+
> @tasenor/common-plugins@1.13.15 data /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
7
7
|
> data/bin/build_all
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/FinnishBalanceSheetReportLite.mjs
|
|
11
11
|
|
|
12
|
-
2024-05-
|
|
13
|
-
2024-05-
|
|
12
|
+
2024-05-14T00:39:43.629Z Saved text data to src/FinnishBalanceSheetReportLite/backend/balance-sheet-lite-fi.tsv
|
|
13
|
+
2024-05-14T00:39:43.630Z Saved text data to src/FinnishBalanceSheetReportLite/backend/balance-sheet-lite-en.tsv
|
|
14
14
|
|
|
15
15
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/FinnishBalanceSheetReport.mjs
|
|
16
16
|
|
|
17
|
-
2024-05-
|
|
18
|
-
2024-05-
|
|
17
|
+
2024-05-14T00:39:44.832Z Saved text data to src/FinnishBalanceSheetReport/backend/balance-sheet-fi.tsv
|
|
18
|
+
2024-05-14T00:39:44.833Z Saved text data to src/FinnishBalanceSheetReport/backend/balance-sheet-detailed-fi.tsv
|
|
19
19
|
|
|
20
20
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/FinnishIncomeStatementReportLite.mjs
|
|
21
21
|
|
|
22
|
-
2024-05-
|
|
23
|
-
2024-05-
|
|
22
|
+
2024-05-14T00:39:46.016Z Saved text data to src/FinnishIncomeStatementReportLite/backend/income-statement-lite-fi.tsv
|
|
23
|
+
2024-05-14T00:39:46.017Z Saved text data to src/FinnishIncomeStatementReportLite/backend/income-statement-lite-en.tsv
|
|
24
24
|
|
|
25
25
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/FinnishIncomeStatementReport.mjs
|
|
26
26
|
|
|
27
|
-
2024-05-
|
|
28
|
-
2024-05-
|
|
27
|
+
2024-05-14T00:39:47.219Z Saved text data to src/FinnishIncomeStatementReport/backend/income-statement-fi.tsv
|
|
28
|
+
2024-05-14T00:39:47.220Z Saved text data to src/FinnishIncomeStatementReport/backend/income-statement-detailed-fi.tsv
|
|
29
29
|
|
|
30
30
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/FinnishLimitedCompanyComplete.mjs
|
|
31
31
|
|
|
32
|
-
2024-05-
|
|
32
|
+
2024-05-14T00:39:48.385Z Saved data to src/FinnishLimitedCompanyComplete/backend/fi-EUR.tsv
|
|
33
33
|
|
|
34
34
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/FinnishLimitedCompanyLite.mjs
|
|
35
35
|
|
|
36
|
-
2024-05-
|
|
37
|
-
2024-05-
|
|
36
|
+
2024-05-14T00:39:49.550Z Saved data to src/FinnishLimitedCompanyLite/backend/fi-EUR.tsv
|
|
37
|
+
2024-05-14T00:39:49.551Z Saved data to src/FinnishLimitedCompanyLite/backend/en-EUR.tsv
|
|
38
38
|
|
|
39
39
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/IncomeAndExpenses.mjs
|
|
40
40
|
|
|
41
|
-
2024-05-
|
|
42
|
-
2024-05-
|
|
43
|
-
2024-05-
|
|
44
|
-
2024-05-
|
|
45
|
-
2024-05-
|
|
46
|
-
2024-05-
|
|
47
|
-
2024-05-
|
|
48
|
-
2024-05-
|
|
41
|
+
2024-05-14T00:39:50.718Z Saved JSON data to src/IncomeAndExpenses/backend/income.json
|
|
42
|
+
2024-05-14T00:39:50.719Z Saved JSON data to src/IncomeAndExpenses/backend/expense.json
|
|
43
|
+
2024-05-14T00:39:50.720Z Saved JSON data to src/IncomeAndExpenses/backend/assetCodes.json
|
|
44
|
+
2024-05-14T00:39:50.720Z Saved JSON data to src/IncomeAndExpenses/backend/taxTypes.json
|
|
45
|
+
2024-05-14T00:39:50.720Z Refreshed translation data in src/IncomeAndExpenses/backend/index.ts
|
|
46
|
+
2024-05-14T00:39:50.721Z Saved data to ../tasenor-common/src/types/income.ts
|
|
47
|
+
2024-05-14T00:39:50.721Z Saved data to ../tasenor-common/src/types/expense.ts
|
|
48
|
+
2024-05-14T00:39:50.721Z Saved data to ../tasenor-common/src/types/assetCodes.ts
|
|
49
49
|
|
|
50
50
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/PluginIndex.mjs
|
|
51
51
|
|
|
52
|
-
2024-05-
|
|
52
|
+
2024-05-14T00:39:51.288Z Saved plugin index to /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/src/index.ts
|
|
53
53
|
|
|
54
54
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/TickerData.mjs
|
|
55
55
|
|
|
56
|
-
2024-05-
|
|
56
|
+
2024-05-14T00:39:52.541Z Saved JSON data to src/TickerData/backend/currencies.json
|
|
57
57
|
|
|
58
58
|
Running /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins/data/VATFinland.mjs
|
|
59
59
|
|
|
60
|
-
2024-05-
|
|
60
|
+
2024-05-14T00:39:53.718Z Saved JSON data to src/VATFinland/backend/vat.json
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DirectoryPath, NO_SEGMENT, SegmentId, TextFileLine } from '@tasenor/common';
|
|
2
|
+
import { ProcessFile, TransactionImportHandler } from '@tasenor/common-node';
|
|
3
|
+
/**
|
|
4
|
+
* Import implementation for S-Pankki CSV format.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SPankkiHandler extends TransactionImportHandler {
|
|
7
|
+
constructor();
|
|
8
|
+
get path(): DirectoryPath;
|
|
9
|
+
canHandle(file: ProcessFile): boolean;
|
|
10
|
+
segmentId(line: TextFileLine): SegmentId | typeof NO_SEGMENT;
|
|
11
|
+
time(line: TextFileLine): Date | undefined;
|
|
12
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { NO_SEGMENT } from '@tasenor/common';
|
|
2
|
+
import { TransactionImportHandler } from '@tasenor/common-node';
|
|
3
|
+
/**
|
|
4
|
+
* Import implementation for S-Pankki CSV format.
|
|
5
|
+
*/
|
|
6
|
+
export class SPankkiHandler extends TransactionImportHandler {
|
|
7
|
+
constructor() {
|
|
8
|
+
super('SPankkiImport');
|
|
9
|
+
this.importOptions = {
|
|
10
|
+
parser: 'csv',
|
|
11
|
+
numericFields: ['Summa'],
|
|
12
|
+
requiredFields: ['Saajan nimi', 'Maksupäivä'],
|
|
13
|
+
insignificantFields: ['Saajan BIC-tunnus', 'Arkistointitunnus', 'Kirjauspäivä'],
|
|
14
|
+
textField: 'Viesti',
|
|
15
|
+
totalAmountField: 'Summa',
|
|
16
|
+
csv: {
|
|
17
|
+
trimLines: true,
|
|
18
|
+
cutFromBeginning: 0,
|
|
19
|
+
useFirstLineHeadings: true,
|
|
20
|
+
columnSeparator: ';'
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
get path() {
|
|
25
|
+
return __dirname;
|
|
26
|
+
}
|
|
27
|
+
canHandle(file) {
|
|
28
|
+
return file.firstLineMatch(/^Kirjauspäivä;Maksupäivä;Summa;Tapahtumalaji;Maksaja;Saajan nimi;Saajan tilinumero;Saajan BIC-tunnus;Viitenumero;Viesti;Arkistointitunnus$/);
|
|
29
|
+
}
|
|
30
|
+
segmentId(line) {
|
|
31
|
+
return line.columns ? this.hash(line) : NO_SEGMENT;
|
|
32
|
+
}
|
|
33
|
+
time(line) {
|
|
34
|
+
const match = /(\d+)\.(\d+)\.(\d+)/.exec(line.columns['Maksupäivä']);
|
|
35
|
+
if (match) {
|
|
36
|
+
const stamp = match[3] + '-' + match[2] + '-' + match[1] + 'T12:00:00.000Z';
|
|
37
|
+
return new Date(stamp);
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=SPankkiHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SPankkiHandler.js","sourceRoot":"","sources":["../../../src/SPankkiImport/backend/SPankkiHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAA2B,MAAM,iBAAiB,CAAA;AACpF,OAAO,EAAe,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE5E;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,wBAAwB;IAE1D;QACE,KAAK,CAAC,eAAe,CAAC,CAAA;QAEtB,IAAI,CAAC,aAAa,GAAG;YACnB,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,CAAC,OAAO,CAAC;YACxB,cAAc,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;YAC7C,mBAAmB,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,cAAc,CAAC;YAC/E,SAAS,EAAE,QAAQ;YACnB,gBAAgB,EAAE,OAAO;YACzB,GAAG,EAAE;gBACH,SAAS,EAAE,IAAI;gBACf,gBAAgB,EAAE,CAAC;gBACnB,oBAAoB,EAAE,IAAI;gBAC1B,eAAe,EAAE,GAAG;aACrB;SACF,CAAA;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,SAA0B,CAAA;IACnC,CAAC;IAED,SAAS,CAAC,IAAiB;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,4IAA4I,CAAC,CAAA;IAC1K,CAAC;IAED,SAAS,CAAC,IAAkB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IACpD,CAAC;IAED,IAAI,CAAC,IAAkB;QACrB,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;QACpE,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAA;YAC3E,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;SACvB;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ImportPlugin } from '@tasenor/common-node';
|
|
2
|
+
import { SPankkiHandler } from './SPankkiHandler';
|
|
3
|
+
class SPankkiImportPlugin extends ImportPlugin {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(new SPankkiHandler());
|
|
6
|
+
this.code = 'SPankkiImport';
|
|
7
|
+
this.title = 'Import for S-Pankki';
|
|
8
|
+
this.version = '1.0.0';
|
|
9
|
+
this.icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M5 6.99h3V14h2V6.99h3L9 3zM14 10v7.01h-3L15 21l4-3.99h-3V10z"/></svg>';
|
|
10
|
+
this.releaseDate = '2024-05-14';
|
|
11
|
+
this.use = 'backend';
|
|
12
|
+
this.type = 'import';
|
|
13
|
+
this.description = 'Import plugin for importing transaction data in CSV format provided by S-Pankki bank.';
|
|
14
|
+
this.languages = this.getLanguages();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export default SPankkiImportPlugin;
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/SPankkiImport/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,mBAAoB,SAAQ,YAAY;IAE5C;QACE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC,CAAA;QAE3B,IAAI,CAAC,IAAI,GAAG,eAA6B,CAAA;QACzC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAA;QAClC,IAAI,CAAC,OAAO,GAAG,OAAkB,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,6NAA6N,CAAA;QACzO,IAAI,CAAC,WAAW,GAAG,YAAY,CAAA;QAC/B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,uFAAuF,CAAA;QAE1G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;IACtC,CAAC;CAEF;AAED,eAAe,mBAAmB,CAAA"}
|
package/dist/VAT/ui/index.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export { NordeaHandler } from './NordeaImport/backend/NordeaHandler';
|
|
|
23
23
|
export { default as NordnetImportBackend } from './NordnetImport/backend';
|
|
24
24
|
export { NordnetHandler } from './NordnetImport/backend/NordnetHandler';
|
|
25
25
|
export { default as RapidAPIBackend } from './RapidAPI/backend';
|
|
26
|
+
export { default as SPankkiImportBackend } from './SPankkiImport/backend';
|
|
27
|
+
export { SPankkiHandler } from './SPankkiImport/backend/SPankkiHandler';
|
|
26
28
|
export { default as TickerDataBackend } from './TickerData/backend';
|
|
27
29
|
export { default as TITOImportBackend } from './TITOImport/backend';
|
|
28
30
|
export { TITOHandler } from './TITOImport/backend/TITOHandler';
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,8 @@ export { NordeaHandler } from './NordeaImport/backend/NordeaHandler';
|
|
|
23
23
|
export { default as NordnetImportBackend } from './NordnetImport/backend';
|
|
24
24
|
export { NordnetHandler } from './NordnetImport/backend/NordnetHandler';
|
|
25
25
|
export { default as RapidAPIBackend } from './RapidAPI/backend';
|
|
26
|
+
export { default as SPankkiImportBackend } from './SPankkiImport/backend';
|
|
27
|
+
export { SPankkiHandler } from './SPankkiImport/backend/SPankkiHandler';
|
|
26
28
|
export { default as TickerDataBackend } from './TickerData/backend';
|
|
27
29
|
export { default as TITOImportBackend } from './TITOImport/backend';
|
|
28
30
|
export { TITOHandler } from './TITOImport/backend/TITOHandler';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,qCAAqC,CAAA;AACjG,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,yCAAyC,CAAA;AACzG,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,MAAM,wCAAwC,CAAA;AACvG,OAAO,EAAE,OAAO,IAAI,uCAAuC,EAAE,MAAM,4CAA4C,CAAA;AAC/G,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,yCAAyC,CAAA;AACzG,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,qCAAqC,CAAA;AACjG,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,qCAAqC,CAAA;AACjG,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,yCAAyC,CAAA;AACzG,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,MAAM,wCAAwC,CAAA;AACvG,OAAO,EAAE,OAAO,IAAI,uCAAuC,EAAE,MAAM,4CAA4C,CAAA;AAC/G,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,yCAAyC,CAAA;AACzG,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,qCAAqC,CAAA;AACjG,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tasenor/common-plugins",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.16",
|
|
4
4
|
"description": "Shared common plugins of Tasenor project",
|
|
5
5
|
"repository": "git@github.com:dataplugoy/tasenor-bookkeeper.git",
|
|
6
6
|
"author": "Tommi Ronkainen <tommi.ronkainen@gmail.com>",
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"dayjs": "1.10.8",
|
|
14
14
|
"sprintf-js": "^1.1.2",
|
|
15
15
|
"tsx": "^4.7.0",
|
|
16
|
-
"@tasenor/common": "1.13.
|
|
17
|
-
"@tasenor/common
|
|
18
|
-
"@tasenor/common-
|
|
16
|
+
"@tasenor/common-ui": "1.13.16",
|
|
17
|
+
"@tasenor/common": "1.13.16",
|
|
18
|
+
"@tasenor/common-node": "1.13.16"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@mui/icons-material": "^5.14.1",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"react-i18next": "^14.0.5",
|
|
32
32
|
"react-router-dom": "^6.14.1",
|
|
33
33
|
"typescript": "^5.1.6",
|
|
34
|
-
"
|
|
35
|
-
"
|
|
34
|
+
"eslint-config-tasenor": "0.0.0",
|
|
35
|
+
"@tasenor/config": "1.13.16"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@mui/icons-material": "^5.14.1",
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { DirectoryPath, NO_SEGMENT, SegmentId, TextFileLine } from '@tasenor/common'
|
|
2
|
+
import { ProcessFile, TransactionImportHandler } from '@tasenor/common-node'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Import implementation for S-Pankki CSV format.
|
|
6
|
+
*/
|
|
7
|
+
export class SPankkiHandler extends TransactionImportHandler {
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
super('SPankkiImport')
|
|
11
|
+
|
|
12
|
+
this.importOptions = {
|
|
13
|
+
parser: 'csv',
|
|
14
|
+
numericFields: ['Summa'],
|
|
15
|
+
requiredFields: ['Saajan nimi', 'Maksupäivä'],
|
|
16
|
+
insignificantFields: ['Saajan BIC-tunnus', 'Arkistointitunnus', 'Kirjauspäivä'],
|
|
17
|
+
textField: 'Viesti',
|
|
18
|
+
totalAmountField: 'Summa',
|
|
19
|
+
csv: {
|
|
20
|
+
trimLines: true,
|
|
21
|
+
cutFromBeginning: 0,
|
|
22
|
+
useFirstLineHeadings: true,
|
|
23
|
+
columnSeparator: ';'
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
get path(): DirectoryPath {
|
|
29
|
+
return __dirname as DirectoryPath
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
canHandle(file: ProcessFile): boolean {
|
|
33
|
+
return file.firstLineMatch(/^Kirjauspäivä;Maksupäivä;Summa;Tapahtumalaji;Maksaja;Saajan nimi;Saajan tilinumero;Saajan BIC-tunnus;Viitenumero;Viesti;Arkistointitunnus$/)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
segmentId(line: TextFileLine): SegmentId | typeof NO_SEGMENT {
|
|
37
|
+
return line.columns ? this.hash(line) : NO_SEGMENT
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
time(line: TextFileLine): Date | undefined {
|
|
41
|
+
const match = /(\d+)\.(\d+)\.(\d+)/.exec(line.columns['Maksupäivä'])
|
|
42
|
+
if (match) {
|
|
43
|
+
const stamp = match[3] + '-' + match[2] + '-' + match[1] + 'T12:00:00.000Z'
|
|
44
|
+
return new Date(stamp)
|
|
45
|
+
}
|
|
46
|
+
return undefined
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ImportPlugin } from '@tasenor/common-node'
|
|
2
|
+
import { PluginCode, Version } from '@tasenor/common'
|
|
3
|
+
import { SPankkiHandler } from './SPankkiHandler'
|
|
4
|
+
|
|
5
|
+
class SPankkiImportPlugin extends ImportPlugin {
|
|
6
|
+
|
|
7
|
+
constructor() {
|
|
8
|
+
super(new SPankkiHandler())
|
|
9
|
+
|
|
10
|
+
this.code = 'SPankkiImport' as PluginCode
|
|
11
|
+
this.title = 'Import for S-Pankki'
|
|
12
|
+
this.version = '1.0.0' as Version
|
|
13
|
+
this.icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M5 6.99h3V14h2V6.99h3L9 3zM14 10v7.01h-3L15 21l4-3.99h-3V10z"/></svg>'
|
|
14
|
+
this.releaseDate = '2024-05-14'
|
|
15
|
+
this.use = 'backend'
|
|
16
|
+
this.type = 'import'
|
|
17
|
+
this.description = 'Import plugin for importing transaction data in CSV format provided by S-Pankki bank.'
|
|
18
|
+
|
|
19
|
+
this.languages = this.getLanguages()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export default SPankkiImportPlugin
|
package/src/index.ts
CHANGED
|
@@ -23,6 +23,8 @@ export { NordeaHandler } from './NordeaImport/backend/NordeaHandler'
|
|
|
23
23
|
export { default as NordnetImportBackend } from './NordnetImport/backend'
|
|
24
24
|
export { NordnetHandler } from './NordnetImport/backend/NordnetHandler'
|
|
25
25
|
export { default as RapidAPIBackend } from './RapidAPI/backend'
|
|
26
|
+
export { default as SPankkiImportBackend } from './SPankkiImport/backend'
|
|
27
|
+
export { SPankkiHandler } from './SPankkiImport/backend/SPankkiHandler'
|
|
26
28
|
export { default as TickerDataBackend } from './TickerData/backend'
|
|
27
29
|
export { default as TITOImportBackend } from './TITOImport/backend'
|
|
28
30
|
export { TITOHandler } from './TITOImport/backend/TITOHandler'
|