@tasenor/common-plugins 1.9.85 → 1.9.86
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/data/FinnishBalanceSheetReport.mjs +3 -2
- package/data/FinnishBalanceSheetReportLite.mjs +3 -2
- package/data/FinnishIncomeStatementReport.mjs +3 -2
- package/data/FinnishIncomeStatementReportLite.mjs +3 -2
- package/data/FinnishLimitedCompanyComplete.mjs +3 -2
- package/data/FinnishLimitedCompanyLite.mjs +3 -2
- package/data/IncomeAndExpenses.mjs +3 -2
- package/data/PluginIndex.mjs +1 -1
- package/data/VATFinland.mjs +3 -2
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/package.json +8 -6
- package/src/index.ts +0 -3
- package/data/FinnishBalanceSheetReportInvestment.mjs +0 -11
- package/data/FinnishIncomeStatementReportInvestment.mjs +0 -11
- package/data/FinnishInvestmentCompany.mjs +0 -5
- package/data/lib/utils.mjs +0 -314
- package/data/src/FinnishBalanceSheetReportInvestment - balance-sheet-detailed-fi.tsv +0 -100
- package/data/src/FinnishBalanceSheetReportInvestment - balance-sheet-fi.tsv +0 -52
- package/data/src/FinnishIncomeStatementReportInvestment - income-statement-detailed-fi.tsv +0 -96
- package/data/src/FinnishIncomeStatementReportInvestment - income-statement-fi.tsv +0 -39
- package/data/src/FinnishInvestmentCompany - fi-EUR.tsv +0 -722
- package/dist/FinnishBalanceSheetReportInvestment/backend/index.d.ts +0 -18
- package/dist/FinnishBalanceSheetReportInvestment/backend/index.js +0 -96
- package/dist/FinnishBalanceSheetReportInvestment/backend/index.js.map +0 -1
- package/dist/FinnishIncomeStatementReportInvestment/backend/index.d.ts +0 -26
- package/dist/FinnishIncomeStatementReportInvestment/backend/index.js +0 -190
- package/dist/FinnishIncomeStatementReportInvestment/backend/index.js.map +0 -1
- package/dist/FinnishInvestmentCompany/backend/index.d.ts +0 -10
- package/dist/FinnishInvestmentCompany/backend/index.js +0 -36
- package/dist/FinnishInvestmentCompany/backend/index.js.map +0 -1
- package/dist/FinnishInvestmentCompany/ui/index.d.ts +0 -16
- package/dist/FinnishInvestmentCompany/ui/index.js +0 -22
- package/dist/FinnishInvestmentCompany/ui/index.js.map +0 -1
- package/src/FinnishBalanceSheetReportInvestment/backend/balance-sheet-investment-detailed-fi.tsv +0 -100
- package/src/FinnishBalanceSheetReportInvestment/backend/balance-sheet-investment-fi.tsv +0 -52
- package/src/FinnishBalanceSheetReportInvestment/backend/index.ts +0 -107
- package/src/FinnishIncomeStatementReportInvestment/backend/income-statement-detailed-fi.tsv +0 -118
- package/src/FinnishIncomeStatementReportInvestment/backend/income-statement-fi.tsv +0 -45
- package/src/FinnishIncomeStatementReportInvestment/backend/income-statement-investment-detailed-fi.tsv +0 -96
- package/src/FinnishIncomeStatementReportInvestment/backend/income-statement-investment-fi.tsv +0 -39
- package/src/FinnishIncomeStatementReportInvestment/backend/index.ts +0 -212
- package/src/FinnishInvestmentCompany/backend/fi-EUR.tsv +0 -722
- package/src/FinnishInvestmentCompany/backend/index.ts +0 -46
- package/src/FinnishInvestmentCompany/ui/index.tsx +0 -26
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-ci.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @tasenor/common-plugins@1.9.
|
|
2
|
+
> @tasenor/common-plugins@1.9.85 ci /home/wigy/project/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
3
3
|
> pnpm run lint
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @tasenor/common-plugins@1.9.
|
|
6
|
+
> @tasenor/common-plugins@1.9.85 lint /home/wigy/project/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
7
7
|
> eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'
|
|
8
8
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import
|
|
1
|
+
#!/usr/bin/env -S npx tsx
|
|
2
|
+
import commonNode from '@tasenor/common-node'
|
|
3
|
+
const { readFile, saveText, trimCRLF } = commonNode.dataUtils
|
|
3
4
|
|
|
4
5
|
let tsv
|
|
5
6
|
tsv = trimCRLF(readFile('FinnishBalanceSheetReport - balance-sheet-fi.tsv'))
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import
|
|
1
|
+
#!/usr/bin/env -S npx tsx
|
|
2
|
+
import commonNode from '@tasenor/common-node'
|
|
3
|
+
const { readFile, saveText, trimCRLF } = commonNode.dataUtils
|
|
3
4
|
|
|
4
5
|
let tsv
|
|
5
6
|
tsv = trimCRLF(readFile('FinnishIncomeStatementReport - income-statement-fi.tsv'))
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import
|
|
1
|
+
#!/usr/bin/env -S npx tsx
|
|
2
|
+
import commonNode from '@tasenor/common-node'
|
|
3
|
+
const { readFile, saveFile, trimCRLF } = commonNode.dataUtils
|
|
3
4
|
|
|
4
5
|
const tsv = trimCRLF(readFile('FinnishLimitedCompanyComplete - fi-EUR.tsv'))
|
|
5
6
|
saveFile('FinnishLimitedCompanyComplete', 'backend/fi-EUR.tsv', tsv)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import
|
|
1
|
+
#!/usr/bin/env -S npx tsx
|
|
2
|
+
import commonNode from '@tasenor/common-node'
|
|
3
|
+
const { readFile, saveFile, trimCRLF } = commonNode.dataUtils
|
|
3
4
|
|
|
4
5
|
let tsv
|
|
5
6
|
tsv = trimCRLF(readFile('FinnishLimitedCompanyLite - fi-EUR.tsv'))
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import
|
|
1
|
+
#!/usr/bin/env -S npx tsx
|
|
2
|
+
import commonNode from '@tasenor/common-node'
|
|
3
|
+
const { buildData, combine, insertToFile, lint, parseFile, rebuildTranslations, saveFile, saveJson, trimIndentation } = commonNode.dataUtils
|
|
3
4
|
|
|
4
5
|
// Collect JSON data.
|
|
5
6
|
const all = combine(
|
package/data/PluginIndex.mjs
CHANGED
package/data/VATFinland.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import
|
|
1
|
+
#!/usr/bin/env -S npx tsx
|
|
2
|
+
import commonNode from '@tasenor/common-node'
|
|
3
|
+
const { trimId, readTsv, fixNumber, saveJson } = commonNode.dataUtils
|
|
3
4
|
|
|
4
5
|
const data = []
|
|
5
6
|
const tsv = readTsv('Finland VAT - Definitions.tsv', true)
|
package/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,9 @@ export { default as CoinAPIBackend } from './CoinAPI/backend';
|
|
|
2
2
|
export { default as CoinbaseImportBackend } from './CoinbaseImport/backend';
|
|
3
3
|
export { CoinbaseHandler } from './CoinbaseImport/backend/CoinbaseHandler';
|
|
4
4
|
export { default as FinnishBalanceSheetReportBackend } from './FinnishBalanceSheetReport/backend';
|
|
5
|
-
export { default as FinnishBalanceSheetReportInvestmentBackend } from './FinnishBalanceSheetReportInvestment/backend';
|
|
6
5
|
export { default as FinnishBalanceSheetReportLiteBackend } from './FinnishBalanceSheetReportLite/backend';
|
|
7
6
|
export { default as FinnishIncomeStatementReportBackend } from './FinnishIncomeStatementReport/backend';
|
|
8
|
-
export { default as FinnishIncomeStatementReportInvestmentBackend } from './FinnishIncomeStatementReportInvestment/backend';
|
|
9
7
|
export { default as FinnishIncomeStatementReportLiteBackend } from './FinnishIncomeStatementReportLite/backend';
|
|
10
|
-
export { default as FinnishInvestmentCompanyBackend } from './FinnishInvestmentCompany/backend';
|
|
11
8
|
export { default as FinnishLimitedCompanyCompleteBackend } from './FinnishLimitedCompanyComplete/backend';
|
|
12
9
|
export { default as FinnishLimitedCompanyLiteBackend } from './FinnishLimitedCompanyLite/backend';
|
|
13
10
|
export { default as GitBackupBackend } from './GitBackup/backend';
|
package/dist/index.js
CHANGED
|
@@ -2,12 +2,9 @@ export { default as CoinAPIBackend } from './CoinAPI/backend';
|
|
|
2
2
|
export { default as CoinbaseImportBackend } from './CoinbaseImport/backend';
|
|
3
3
|
export { CoinbaseHandler } from './CoinbaseImport/backend/CoinbaseHandler';
|
|
4
4
|
export { default as FinnishBalanceSheetReportBackend } from './FinnishBalanceSheetReport/backend';
|
|
5
|
-
export { default as FinnishBalanceSheetReportInvestmentBackend } from './FinnishBalanceSheetReportInvestment/backend';
|
|
6
5
|
export { default as FinnishBalanceSheetReportLiteBackend } from './FinnishBalanceSheetReportLite/backend';
|
|
7
6
|
export { default as FinnishIncomeStatementReportBackend } from './FinnishIncomeStatementReport/backend';
|
|
8
|
-
export { default as FinnishIncomeStatementReportInvestmentBackend } from './FinnishIncomeStatementReportInvestment/backend';
|
|
9
7
|
export { default as FinnishIncomeStatementReportLiteBackend } from './FinnishIncomeStatementReportLite/backend';
|
|
10
|
-
export { default as FinnishInvestmentCompanyBackend } from './FinnishInvestmentCompany/backend';
|
|
11
8
|
export { default as FinnishLimitedCompanyCompleteBackend } from './FinnishLimitedCompanyComplete/backend';
|
|
12
9
|
export { default as FinnishLimitedCompanyLiteBackend } from './FinnishLimitedCompanyLite/backend';
|
|
13
10
|
export { default as GitBackupBackend } from './GitBackup/backend';
|
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,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,gCAAgC,EAAE,MAAM,qCAAqC,CAAA;AACjG,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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,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,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.9.
|
|
3
|
+
"version": "1.9.86",
|
|
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>",
|
|
@@ -11,9 +11,10 @@
|
|
|
11
11
|
"clone": "^2.1.2",
|
|
12
12
|
"dayjs": "1.10.8",
|
|
13
13
|
"sprintf-js": "^1.1.2",
|
|
14
|
-
"
|
|
15
|
-
"@tasenor/common
|
|
16
|
-
"@tasenor/common-
|
|
14
|
+
"tsx": "^3.12.7",
|
|
15
|
+
"@tasenor/common": "1.9.86",
|
|
16
|
+
"@tasenor/common-node": "1.9.86",
|
|
17
|
+
"@tasenor/common-ui": "1.9.86"
|
|
17
18
|
},
|
|
18
19
|
"devDependencies": {
|
|
19
20
|
"@mui/icons-material": "^5.14.1",
|
|
@@ -29,8 +30,8 @@
|
|
|
29
30
|
"react-i18next": "^13.0.2",
|
|
30
31
|
"react-router-dom": "^6.14.1",
|
|
31
32
|
"typescript": "^5.1.6",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
33
|
+
"@tasenor/config": "1.9.85",
|
|
34
|
+
"eslint-config-tasenor": "0.0.0"
|
|
34
35
|
},
|
|
35
36
|
"peerDependencies": {
|
|
36
37
|
"@mui/icons-material": "^5.14.1",
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
"fix": "eslint --fix 'src/**/*.{ts,tsx}' 'data/**/*.mjs'",
|
|
50
51
|
"lint": "eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'",
|
|
51
52
|
"nightly": "pnpm run ci",
|
|
53
|
+
"nightly3": "pnpm run data",
|
|
52
54
|
"data": "data/bin/build_all",
|
|
53
55
|
"prepublish": "pnpm version patch",
|
|
54
56
|
"release": "pnpm publish --access public --no-git-checks",
|
package/src/index.ts
CHANGED
|
@@ -2,12 +2,9 @@ export { default as CoinAPIBackend } from './CoinAPI/backend'
|
|
|
2
2
|
export { default as CoinbaseImportBackend } from './CoinbaseImport/backend'
|
|
3
3
|
export { CoinbaseHandler } from './CoinbaseImport/backend/CoinbaseHandler'
|
|
4
4
|
export { default as FinnishBalanceSheetReportBackend } from './FinnishBalanceSheetReport/backend'
|
|
5
|
-
export { default as FinnishBalanceSheetReportInvestmentBackend } from './FinnishBalanceSheetReportInvestment/backend'
|
|
6
5
|
export { default as FinnishBalanceSheetReportLiteBackend } from './FinnishBalanceSheetReportLite/backend'
|
|
7
6
|
export { default as FinnishIncomeStatementReportBackend } from './FinnishIncomeStatementReport/backend'
|
|
8
|
-
export { default as FinnishIncomeStatementReportInvestmentBackend } from './FinnishIncomeStatementReportInvestment/backend'
|
|
9
7
|
export { default as FinnishIncomeStatementReportLiteBackend } from './FinnishIncomeStatementReportLite/backend'
|
|
10
|
-
export { default as FinnishInvestmentCompanyBackend } from './FinnishInvestmentCompany/backend'
|
|
11
8
|
export { default as FinnishLimitedCompanyCompleteBackend } from './FinnishLimitedCompanyComplete/backend'
|
|
12
9
|
export { default as FinnishLimitedCompanyLiteBackend } from './FinnishLimitedCompanyLite/backend'
|
|
13
10
|
export { default as GitBackupBackend } from './GitBackup/backend'
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { cleanFlagDuplicates, readFile, saveText, trimCRLF } from './lib/utils.mjs'
|
|
3
|
-
|
|
4
|
-
let tsv
|
|
5
|
-
tsv = trimCRLF(readFile('FinnishBalanceSheetReportInvestment - balance-sheet-fi.tsv'))
|
|
6
|
-
tsv = cleanFlagDuplicates(tsv)
|
|
7
|
-
saveText('FinnishBalanceSheetReportInvestment', 'balance-sheet-investment-fi.tsv', tsv)
|
|
8
|
-
|
|
9
|
-
tsv = trimCRLF(readFile('FinnishBalanceSheetReportInvestment - balance-sheet-detailed-fi.tsv'))
|
|
10
|
-
tsv = cleanFlagDuplicates(tsv)
|
|
11
|
-
saveText('FinnishBalanceSheetReportInvestment', 'balance-sheet-investment-detailed-fi.tsv', tsv)
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { cleanFlagDuplicates, readFile, saveText, trimCRLF } from './lib/utils.mjs'
|
|
3
|
-
|
|
4
|
-
let tsv
|
|
5
|
-
tsv = trimCRLF(readFile('FinnishIncomeStatementReportInvestment - income-statement-fi.tsv'))
|
|
6
|
-
tsv = cleanFlagDuplicates(tsv)
|
|
7
|
-
saveText('FinnishIncomeStatementReportInvestment', 'income-statement-investment-fi.tsv', tsv)
|
|
8
|
-
|
|
9
|
-
tsv = trimCRLF(readFile('FinnishIncomeStatementReportInvestment - income-statement-detailed-fi.tsv'))
|
|
10
|
-
tsv = cleanFlagDuplicates(tsv)
|
|
11
|
-
saveText('FinnishIncomeStatementReportInvestment', 'income-statement-investment-detailed-fi.tsv', tsv)
|
package/data/lib/utils.mjs
DELETED
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import fs from 'fs'
|
|
2
|
-
import path, { dirname } from 'path'
|
|
3
|
-
import { fileURLToPath } from 'url'
|
|
4
|
-
// TODO: This should be imported from tasenor-common but it does not work yet.
|
|
5
|
-
const MAX_TARGET_ID_LEN = 64
|
|
6
|
-
|
|
7
|
-
const DIRNAME = path.join(dirname(fileURLToPath(import.meta.url)), '..', '..')
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Read in text from UTF-8 encoded file.
|
|
11
|
-
* @param fileName
|
|
12
|
-
*/
|
|
13
|
-
export function readFile(fileName) {
|
|
14
|
-
const file = path.join(DIRNAME, 'data', 'src', fileName)
|
|
15
|
-
const text = fs.readFileSync(file).toString('utf-8')
|
|
16
|
-
return text
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Read TSV file so that first line defines names for columns, which are used in the mapping.
|
|
21
|
-
* @param file
|
|
22
|
-
* @returns
|
|
23
|
-
*/
|
|
24
|
-
export function readTsv(fileName, raw = false) {
|
|
25
|
-
const data = readFile(fileName).split('\n').map(s => s.trim()).filter(s => !!s).map(s => s.split('\t'))
|
|
26
|
-
if (raw) {
|
|
27
|
-
return data
|
|
28
|
-
}
|
|
29
|
-
const headers = data[0]
|
|
30
|
-
headers[0] = headers[0].replace(/^#\s*/, '')
|
|
31
|
-
const results = []
|
|
32
|
-
for (let i = 1; i < data.length; i++) {
|
|
33
|
-
const item = {}
|
|
34
|
-
for (let j = 0; j < headers.length; j++) {
|
|
35
|
-
item[headers[j]] = data[i][j]
|
|
36
|
-
}
|
|
37
|
-
results.push(item)
|
|
38
|
-
}
|
|
39
|
-
return results
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Go through data entries and add `level` and `parent` fields. Remove _ prefixes from idField.
|
|
44
|
-
* @param data
|
|
45
|
-
* @param idField
|
|
46
|
-
*/
|
|
47
|
-
export function collectParents(data, idField) {
|
|
48
|
-
const parents = {
|
|
49
|
-
'-1': null,
|
|
50
|
-
0: null,
|
|
51
|
-
1: null,
|
|
52
|
-
2: null,
|
|
53
|
-
3: null,
|
|
54
|
-
4: null,
|
|
55
|
-
5: null,
|
|
56
|
-
6: null
|
|
57
|
-
}
|
|
58
|
-
for (const line of data) {
|
|
59
|
-
const match = /^(_*)/.exec(line[idField])
|
|
60
|
-
line.level = match[1].length
|
|
61
|
-
line[idField] = line[idField].replace(/^_+/, '')
|
|
62
|
-
line.parent = parents[line.level - 1]
|
|
63
|
-
if (line.level && !line.parent) {
|
|
64
|
-
throw new Error(`Something wrong with ${JSON.stringify(line)}. Cannot find parent level for it.`)
|
|
65
|
-
}
|
|
66
|
-
parents[line.level] = line[idField]
|
|
67
|
-
}
|
|
68
|
-
return data
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Collect language codes from header line.
|
|
73
|
-
* @param data
|
|
74
|
-
*/
|
|
75
|
-
export function languages(data) {
|
|
76
|
-
return Object.keys(data[0]).slice(1).filter(k => /^[a-z][a-z]$/.test(k))
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Construct a language translation table.
|
|
81
|
-
* @param data
|
|
82
|
-
* @param prefix
|
|
83
|
-
* @param translations
|
|
84
|
-
*/
|
|
85
|
-
export function makeTranslations(data, prefix, translations) {
|
|
86
|
-
const tr = {}
|
|
87
|
-
for (const lang of translations) {
|
|
88
|
-
tr[lang] = data.reduce((prev, cur) => ({ ...prev, [`${prefix}-${cur.id}`]: cur[lang] }), {})
|
|
89
|
-
}
|
|
90
|
-
return tr
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Drop first and last bracket and add indentation to every line.
|
|
95
|
-
* @param output
|
|
96
|
-
*/
|
|
97
|
-
export function trimIndentation(output, indent = '') {
|
|
98
|
-
let text = JSON.stringify(output, null, 2)
|
|
99
|
-
text = text.substr(2, text.length - 4)
|
|
100
|
-
text = text.split('\n').map(line => indent + line.replace(/^ {2}/, ''))
|
|
101
|
-
return '\n' + text.join('\n') + '\n'
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Load and pre-process a TSV file.
|
|
106
|
-
* @param fileName
|
|
107
|
-
*/
|
|
108
|
-
export function parseFile(fileName) {
|
|
109
|
-
const tsv = readTsv(fileName)
|
|
110
|
-
const data = collectParents(tsv, 'id')
|
|
111
|
-
return data
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Refresh plugin translation data.
|
|
116
|
-
* @param prefix
|
|
117
|
-
* @param fileName
|
|
118
|
-
*/
|
|
119
|
-
export function rebuildTranslations(plugin, prefix, fileName) {
|
|
120
|
-
const data = parseFile(fileName)
|
|
121
|
-
const translations = languages(data)
|
|
122
|
-
const output = makeTranslations(data, prefix, translations)
|
|
123
|
-
return output
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Put together multiple translations and sort them all.
|
|
128
|
-
* @param files
|
|
129
|
-
* @returns
|
|
130
|
-
*/
|
|
131
|
-
export function combine(...files) {
|
|
132
|
-
const all = {}
|
|
133
|
-
const languages = new Set()
|
|
134
|
-
for (const file of files) {
|
|
135
|
-
Object.entries(file).forEach(([lang, data]) => {
|
|
136
|
-
all[lang] = all[lang] || {}
|
|
137
|
-
languages.add(lang)
|
|
138
|
-
Object.assign(all[lang], data)
|
|
139
|
-
})
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
const sorted = {}
|
|
143
|
-
for (const lang of languages) {
|
|
144
|
-
sorted[lang] = {}
|
|
145
|
-
const keys = Object.keys(all[lang]).sort()
|
|
146
|
-
for (const k of keys) {
|
|
147
|
-
sorted[lang][k] = all[lang][k]
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return sorted
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Do rude lint fixing for JSON string.
|
|
156
|
-
* @param text
|
|
157
|
-
*/
|
|
158
|
-
export function lint(text) {
|
|
159
|
-
return text.replace(/"/g, "'").replace(/'(\w+)':/g, '$1:')
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Insert text between the given separators in a file.
|
|
164
|
-
* @param pathParts
|
|
165
|
-
* @param text
|
|
166
|
-
* @param startSep
|
|
167
|
-
* @param endSep
|
|
168
|
-
*/
|
|
169
|
-
export function insertToFile(pathParts, text, startSep, endSep) {
|
|
170
|
-
const filePath = path.join(DIRNAME, 'src', ...pathParts)
|
|
171
|
-
const current = fs.readFileSync(filePath).toString('utf-8').split(startSep)
|
|
172
|
-
if (current.length !== 2) {
|
|
173
|
-
throw new Error(`Insertion to ${filePath} failed: start separator ${JSON.stringify(startSep)} not correct.`)
|
|
174
|
-
}
|
|
175
|
-
const tail = current[1].split(endSep)
|
|
176
|
-
if (tail.length !== 2) {
|
|
177
|
-
throw new Error(`Insertion to ${filePath} failed: end separator ${JSON.stringify(endSep)} not correct.`)
|
|
178
|
-
}
|
|
179
|
-
const combined = current[0] + startSep + text + endSep + tail[1]
|
|
180
|
-
fs.writeFileSync(filePath, combined)
|
|
181
|
-
console.log(new Date(), `Refreshed translation data in ${filePath}`)
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Construct actual data to store as a knowledge.
|
|
186
|
-
*/
|
|
187
|
-
export function buildData(data) {
|
|
188
|
-
const result = {
|
|
189
|
-
root: null,
|
|
190
|
-
children: {},
|
|
191
|
-
parents: {}
|
|
192
|
-
}
|
|
193
|
-
for (let i = 0; i < data.length; i++) {
|
|
194
|
-
const { id, parent } = data[i]
|
|
195
|
-
if (id.length > MAX_TARGET_ID_LEN) {
|
|
196
|
-
throw new Error(`An ID '${id}' is too long (max. ${MAX_TARGET_ID_LEN}).`)
|
|
197
|
-
}
|
|
198
|
-
result.parents[id] = parent
|
|
199
|
-
if (!parent) {
|
|
200
|
-
if (result.root !== null) {
|
|
201
|
-
throw new Error(`Found second root element ${JSON.stringify(data[i])}.`)
|
|
202
|
-
}
|
|
203
|
-
result.root = id
|
|
204
|
-
continue
|
|
205
|
-
}
|
|
206
|
-
result.children[parent] = result.children[parent] || []
|
|
207
|
-
result.children[parent].push(id)
|
|
208
|
-
}
|
|
209
|
-
return result
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Save JSON data to the plugin directory.
|
|
214
|
-
* @param name
|
|
215
|
-
* @param data
|
|
216
|
-
*/
|
|
217
|
-
export function saveJson(plugin, name, data) {
|
|
218
|
-
const filePath = path.join(DIRNAME, 'src', plugin, 'backend', `${name}.json`)
|
|
219
|
-
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n')
|
|
220
|
-
console.log(new Date(), `Saved JSON data to ${filePath}`)
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Save text file as it is to the plugin directory.
|
|
225
|
-
* @param name
|
|
226
|
-
* @param data
|
|
227
|
-
*/
|
|
228
|
-
export function saveText(plugin, name, text) {
|
|
229
|
-
const filePath = path.join(DIRNAME, 'src', plugin, 'backend', name)
|
|
230
|
-
fs.writeFileSync(filePath, text)
|
|
231
|
-
console.log(new Date(), `Saved text data to ${filePath}`)
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* Save text data to the file.
|
|
236
|
-
* @param plugin
|
|
237
|
-
* @param filePath
|
|
238
|
-
* @param text
|
|
239
|
-
*/
|
|
240
|
-
export function saveFile(plugin, filePath, text) {
|
|
241
|
-
let targetPath
|
|
242
|
-
if (plugin[0] === '@') {
|
|
243
|
-
const project = plugin.substr(1)
|
|
244
|
-
if (!fs.existsSync(path.join(DIRNAME, '..', project))) {
|
|
245
|
-
throw new Error(`Cannot find other project ${project} to write file.`)
|
|
246
|
-
}
|
|
247
|
-
targetPath = path.join(DIRNAME, '..', plugin.substr(1), filePath)
|
|
248
|
-
} else {
|
|
249
|
-
targetPath = path.join(DIRNAME, 'src', plugin, filePath)
|
|
250
|
-
}
|
|
251
|
-
fs.writeFileSync(targetPath, text)
|
|
252
|
-
console.log(new Date(), `Saved data to ${targetPath}`)
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Remove _ prefixes from ID field.
|
|
257
|
-
* @param data
|
|
258
|
-
*/
|
|
259
|
-
export function trimId(value) {
|
|
260
|
-
return value.replace(/^_+/, '')
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Remove _ prefixes from ID fields from each line.
|
|
265
|
-
* @param data
|
|
266
|
-
*/
|
|
267
|
-
export function trimIds(data, idField = 'id') {
|
|
268
|
-
return data.map(line => ({ ...line, [idField]: trimId(line.id) }))
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Strip extras away and convert numeric string to proper number.
|
|
273
|
-
* @param data
|
|
274
|
-
*/
|
|
275
|
-
export function fixNumber(data) {
|
|
276
|
-
return parseFloat(data.replace(/[^0-9.]/g, ''))
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* Strip extras away and convert numeric string to proper number.
|
|
281
|
-
* @param data
|
|
282
|
-
* @param fieldName
|
|
283
|
-
*/
|
|
284
|
-
export function fixNumbers(data, fieldName) {
|
|
285
|
-
return data.map(line => ({ ...line, [fieldName]: fixNumber(line[fieldName]) }))
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* Gather two values from data to form a mapping from one field value to another.
|
|
290
|
-
* @param data
|
|
291
|
-
* @param keyName
|
|
292
|
-
* @param valueName
|
|
293
|
-
*/
|
|
294
|
-
export function toMap(data, keyName, valueName) {
|
|
295
|
-
return data.reduce((prev, cur) => ({ ...prev, [cur[keyName]]: cur[valueName] }), {})
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* Replace CRLF with LF.
|
|
300
|
-
* @param text
|
|
301
|
-
*/
|
|
302
|
-
export function trimCRLF(text) {
|
|
303
|
-
return text.replace(/\r\n/g, '\n')
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Remove duplicated flags from report as TSV data.
|
|
308
|
-
*/
|
|
309
|
-
export function cleanFlagDuplicates(tsv) {
|
|
310
|
-
const rempoveDuplicates = (s) => {
|
|
311
|
-
return [...new Set(s.split(' '))].join(' ').trim()
|
|
312
|
-
}
|
|
313
|
-
return tsv.split('\n').map(line => line.split('\t')).map(([a, b, c]) => [a, b, rempoveDuplicates(c)]).map(a => a.join('\t')).join('\n')
|
|
314
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# accounts title flags
|
|
2
|
-
1000-4000 VASTAAVAA HIDE_TOTAL REQUIRED BOLD
|
|
3
|
-
1000-1100 _PYSYVÄT VASTAAVAT HIDE_TOTAL REQUIRED BOLD
|
|
4
|
-
1000-1040 __Aineettomat hyödykkeet HIDE_TOTAL BOLD
|
|
5
|
-
1020-1030 ___Kehittämismenot HIDE_TOTAL BOLD
|
|
6
|
-
1020-1030 ____Kehittämismenot DETAILS
|
|
7
|
-
1020-1030 ___Kehittämismenot yhteensä BOLD
|
|
8
|
-
1030-1040 ___Aineettomat oikeudet HIDE_TOTAL BOLD
|
|
9
|
-
1030-1040 ____Aineettomat oikeudet DETAILS
|
|
10
|
-
1030-1040 ___Aineettomat oikeudet yhteensä BOLD
|
|
11
|
-
1000-1040 __Aineettomat hyödykkeet yhteensä BOLD
|
|
12
|
-
1040-1049 ___Maa- ja vesialueet HIDE_TOTAL BOLD
|
|
13
|
-
1040-1049 ____Maa- ja vesialueet DETAILS
|
|
14
|
-
1040-1049 ___Maa- ja vesialueet yhteensä BOLD
|
|
15
|
-
1049-1090 ___Rakennukset ja rakennelmat HIDE_TOTAL BOLD
|
|
16
|
-
1049-1090 ____Rakennukset ja rakennelmat DETAILS
|
|
17
|
-
1049-1090 ___Rakennukset ja rakennelmat yhteensä BOLD
|
|
18
|
-
1000-1100 _Pysyvät vastaavat yhteensä REQUIRED BOLD
|
|
19
|
-
BREAK
|
|
20
|
-
1100-4000 _VAIHTUVAT VASTAAVAT HIDE_TOTAL REQUIRED BOLD
|
|
21
|
-
1100-1600 __Vaihto-omaisuus HIDE_TOTAL BOLD
|
|
22
|
-
1100-1499 ___Arvopaperit HIDE_TOTAL BOLD
|
|
23
|
-
1100-1499 ____Arvopaperit DETAILS
|
|
24
|
-
1100-1499 ___Arvopaperit yhteensä BOLD
|
|
25
|
-
1500-1589 ___Kryptovaluutat HIDE_TOTAL BOLD
|
|
26
|
-
1500-1589 ____Kryptovaluutat DETAILS
|
|
27
|
-
1500-1589 ___Kryptovaluutat yhteensä BOLD
|
|
28
|
-
1590-1598 ___Muu vaihto-omaisuus HIDE_TOTAL BOLD
|
|
29
|
-
1590-1598 ____Muu vaihto-omaisuus DETAILS
|
|
30
|
-
1590-1598 ___Muu vaihto-omaisuus yhteensä BOLD
|
|
31
|
-
1100-1600 __Vaihto-omaisuus yhteensä BOLD
|
|
32
|
-
1600-2920 __Saamiset HIDE_TOTAL BOLD
|
|
33
|
-
1600-1650 2749-2759 ___Myyntisaamiset HIDE_TOTAL BOLD
|
|
34
|
-
1600-1650 2749-2759 ____Myyntisaamiset DETAILS
|
|
35
|
-
1600-1650 2749-2759 ___Myyntisaamiset yhteensä BOLD
|
|
36
|
-
1650-1660 2760-2779 ___Lainasaamiset HIDE_TOTAL BOLD
|
|
37
|
-
1650-1660 2760-2779 ____Lainasaamiset DETAILS
|
|
38
|
-
1650-1660 2760-2779 ___Lainasaamiset yhteensä BOLD
|
|
39
|
-
1700-2699 ___Vertaislainasaamiset HIDE_TOTAL BOLD
|
|
40
|
-
1700-2699 ____Vertaislainasaamiset DETAILS
|
|
41
|
-
1700-2699 ___Vertaislainasaamiset yhteensä BOLD
|
|
42
|
-
2700-2719 2779-2829 ___Muut saamiset HIDE_TOTAL BOLD HIDE_TOTAL BOLD
|
|
43
|
-
2700-2719 2779-2829 ____Muut saamiset DETAILS DETAILS
|
|
44
|
-
2700-2719 2779-2829 ___Muut saamiset yhteensä BOLD BOLD
|
|
45
|
-
2719-2729 2829-2839 ___Maksamattomat osakkeet/osuudet HIDE_TOTAL BOLD
|
|
46
|
-
2719-2729 2829-2839 ____Maksamattomat osakkeet/osuudet DETAILS
|
|
47
|
-
2719-2729 2829-2839 ___Maksamattomat osakkeet/osuudet yhteensä BOLD
|
|
48
|
-
2729-2739 2839-2919 ___Siirtosaamiset HIDE_TOTAL BOLD
|
|
49
|
-
2729-2739 2839-2919 ____Siirtosaamiset DETAILS
|
|
50
|
-
2729-2739 2839-2919 ___Siirtosaamiset yhteensä BOLD
|
|
51
|
-
1600-2920 __Saamiset yhteensä BOLD
|
|
52
|
-
2920-3000 __Rahoitusarvopaperit HIDE_TOTAL BOLD
|
|
53
|
-
2920-3000 __Rahoitusarvopaperit yhteensä BOLD
|
|
54
|
-
3000-4000 __Rahat ja pankkisaamiset HIDE_TOTAL BOLD
|
|
55
|
-
3000-3009 ___Rahat HIDE_TOTAL BOLD
|
|
56
|
-
3000-3009 ____Rahat DETAILS
|
|
57
|
-
3000-3009 ___Rahat yhteensä BOLD
|
|
58
|
-
3010-3049 ___Pankkitilit HIDE_TOTAL BOLD
|
|
59
|
-
3010-3049 ____Pankkitilit DETAILS
|
|
60
|
-
3010-3049 ___Pankkitilit yhteensä BOLD
|
|
61
|
-
3050-3299 ___Osakevälittäjien valuuttatilit HIDE_TOTAL BOLD
|
|
62
|
-
3050-3299 ____Osakevälittäjien valuuttatilit DETAILS
|
|
63
|
-
3050-3299 ___Osakevälittäjien valuuttatilit yhteensä BOLD
|
|
64
|
-
3300-3599 ___Kryptovälittäjien valuuttatilit HIDE_TOTAL BOLD
|
|
65
|
-
3300-3599 ____Kryptovälittäjien valuuttatilit DETAILS
|
|
66
|
-
3300-3599 ___Kryptovälittäjien valuuttatilit yhteensä BOLD
|
|
67
|
-
3600-3899 ___Vertaislainavälittäjien valuuttatilit HIDE_TOTAL BOLD
|
|
68
|
-
3600-3899 ____Vertaislainavälittäjien valuuttatilit DETAILS
|
|
69
|
-
3600-3899 ___Vertaislainavälittäjien valuuttatilit yhteensä BOLD
|
|
70
|
-
3000-4000 __Rahat ja pankkisaamiset yhteensä BOLD
|
|
71
|
-
1100-4000 _Vaihtuvat vastaavat yhteensä REQUIRED BOLD
|
|
72
|
-
1000-4000 Vastaavaa yhteensä REQUIRED BOLD
|
|
73
|
-
NEW_PAGE
|
|
74
|
-
4000-9999 VASTATTAVAA HIDE_TOTAL REQUIRED BOLD
|
|
75
|
-
4000-4079 _OMA PÄÄOMA HIDE_TOTAL REQUIRED BOLD
|
|
76
|
-
4000-4020 __Osakepääoma HIDE_TOTAL BOLD
|
|
77
|
-
4000-4020 ___Osakepääoma DETAILS
|
|
78
|
-
4000-4020 __Osakepääoma yhteensä BOLD
|
|
79
|
-
4030-4039 __Muut rahastot HIDE_TOTAL BOLD
|
|
80
|
-
4030-4039 ___Muut rahastot DETAILS
|
|
81
|
-
4030-4039 __Muut rahastot yhteensä BOLD
|
|
82
|
-
4040-4059 __Edellisten tilikausien voitto (tappio) BOLD
|
|
83
|
-
5000-9999 __Tilikauden voitto (tappio) BOLD
|
|
84
|
-
4000-4079 5000-9999 _Oma pääoma yhteensä REQUIRED BOLD
|
|
85
|
-
BREAK
|
|
86
|
-
4190-5000 _VIERAS PÄÄOMA HIDE_TOTAL REQUIRED BOLD
|
|
87
|
-
4225-4239 4630-4690 __Lainat rahoituslaitoksilta HIDE_TOTAL BOLD
|
|
88
|
-
4225-4239 4630-4690 ___Lainat rahoituslaitoksilta DETAILS
|
|
89
|
-
4225-4239 4630-4690 __Lainat rahoituslaitoksilta yhteensä BOLD
|
|
90
|
-
4250-4499 __Lainat osakevälittäjiltä HIDE_TOTAL BOLD
|
|
91
|
-
4250-4499 ___Lainat osakevälittäjiltä DETAILS
|
|
92
|
-
4250-4499 __Lainat osakevälittäjiltä yhteensä BOLD
|
|
93
|
-
4530-4559 4760-4839 __Muut velat HIDE_TOTAL BOLD
|
|
94
|
-
4530-4559 4760-4839 ___Muut velat DETAILS
|
|
95
|
-
4530-4559 4760-4839 __Muut velat yhteensä BOLD
|
|
96
|
-
4559-4599 4839-4999 __Siirtovelat HIDE_TOTAL BOLD
|
|
97
|
-
4559-4599 4839-4999 ___Siirtovelat DETAILS
|
|
98
|
-
4559-4599 4839-4999 __Siirtovelat yhteensä BOLD
|
|
99
|
-
4190-5000 _Vieras pääoma yhteensä REQUIRED BOLD
|
|
100
|
-
4000-9999 Vastattavaa yhteensä REQUIRED BOLD
|