@tasenor/common-node 1.9.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/.eslintrc.js +4 -0
- package/LICENSE +21 -0
- package/dist/tasenor-common-node/src/cli.d.ts +81 -0
- package/dist/tasenor-common-node/src/cli.js +242 -0
- package/dist/tasenor-common-node/src/cli.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/account.d.ts +12 -0
- package/dist/tasenor-common-node/src/commands/account.js +58 -0
- package/dist/tasenor-common-node/src/commands/account.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/balance.d.ts +11 -0
- package/dist/tasenor-common-node/src/commands/balance.js +117 -0
- package/dist/tasenor-common-node/src/commands/balance.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/db.d.ts +14 -0
- package/dist/tasenor-common-node/src/commands/db.js +69 -0
- package/dist/tasenor-common-node/src/commands/db.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/entry.d.ts +13 -0
- package/dist/tasenor-common-node/src/commands/entry.js +106 -0
- package/dist/tasenor-common-node/src/commands/entry.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/import.d.ts +17 -0
- package/dist/tasenor-common-node/src/commands/import.js +140 -0
- package/dist/tasenor-common-node/src/commands/import.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/importer.d.ts +13 -0
- package/dist/tasenor-common-node/src/commands/importer.js +71 -0
- package/dist/tasenor-common-node/src/commands/importer.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/index.d.ts +191 -0
- package/dist/tasenor-common-node/src/commands/index.js +482 -0
- package/dist/tasenor-common-node/src/commands/index.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/period.d.ts +12 -0
- package/dist/tasenor-common-node/src/commands/period.js +48 -0
- package/dist/tasenor-common-node/src/commands/period.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/plugin.d.ts +15 -0
- package/dist/tasenor-common-node/src/commands/plugin.js +78 -0
- package/dist/tasenor-common-node/src/commands/plugin.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/report.d.ts +11 -0
- package/dist/tasenor-common-node/src/commands/report.js +96 -0
- package/dist/tasenor-common-node/src/commands/report.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/settings.d.ts +10 -0
- package/dist/tasenor-common-node/src/commands/settings.js +64 -0
- package/dist/tasenor-common-node/src/commands/settings.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/stock.d.ts +8 -0
- package/dist/tasenor-common-node/src/commands/stock.js +73 -0
- package/dist/tasenor-common-node/src/commands/stock.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/tag.d.ts +13 -0
- package/dist/tasenor-common-node/src/commands/tag.js +89 -0
- package/dist/tasenor-common-node/src/commands/tag.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/tx.d.ts +12 -0
- package/dist/tasenor-common-node/src/commands/tx.js +81 -0
- package/dist/tasenor-common-node/src/commands/tx.js.map +1 -0
- package/dist/tasenor-common-node/src/commands/user.d.ts +12 -0
- package/dist/tasenor-common-node/src/commands/user.js +52 -0
- package/dist/tasenor-common-node/src/commands/user.js.map +1 -0
- package/dist/tasenor-common-node/src/database/BookkeeperImporter.d.ts +77 -0
- package/dist/tasenor-common-node/src/database/BookkeeperImporter.js +343 -0
- package/dist/tasenor-common-node/src/database/BookkeeperImporter.js.map +1 -0
- package/dist/tasenor-common-node/src/database/DB.d.ts +51 -0
- package/dist/tasenor-common-node/src/database/DB.js +354 -0
- package/dist/tasenor-common-node/src/database/DB.js.map +1 -0
- package/dist/tasenor-common-node/src/database/index.d.ts +7 -0
- package/dist/tasenor-common-node/src/database/index.js +8 -0
- package/dist/tasenor-common-node/src/database/index.js.map +1 -0
- package/dist/tasenor-common-node/src/doccer.d.ts +29 -0
- package/dist/tasenor-common-node/src/doccer.js +30 -0
- package/dist/tasenor-common-node/src/doccer.js.map +1 -0
- package/dist/tasenor-common-node/src/error.d.ts +30 -0
- package/dist/tasenor-common-node/src/error.js +35 -0
- package/dist/tasenor-common-node/src/error.js.map +1 -0
- package/dist/tasenor-common-node/src/export/Exporter.d.ts +69 -0
- package/dist/tasenor-common-node/src/export/Exporter.js +123 -0
- package/dist/tasenor-common-node/src/export/Exporter.js.map +1 -0
- package/dist/tasenor-common-node/src/export/TasenorExporter.d.ts +55 -0
- package/dist/tasenor-common-node/src/export/TasenorExporter.js +135 -0
- package/dist/tasenor-common-node/src/export/TasenorExporter.js.map +1 -0
- package/dist/tasenor-common-node/src/export/TilitinExporter.d.ts +71 -0
- package/dist/tasenor-common-node/src/export/TilitinExporter.js +290 -0
- package/dist/tasenor-common-node/src/export/TilitinExporter.js.map +1 -0
- package/dist/tasenor-common-node/src/export/index.d.ts +8 -0
- package/dist/tasenor-common-node/src/export/index.js +9 -0
- package/dist/tasenor-common-node/src/export/index.js.map +1 -0
- package/dist/tasenor-common-node/src/import/TextFileProcessHandler.d.ts +104 -0
- package/dist/tasenor-common-node/src/import/TextFileProcessHandler.js +354 -0
- package/dist/tasenor-common-node/src/import/TextFileProcessHandler.js.map +1 -0
- package/dist/tasenor-common-node/src/import/TransactionImportConnector.d.ts +38 -0
- package/dist/tasenor-common-node/src/import/TransactionImportConnector.js +27 -0
- package/dist/tasenor-common-node/src/import/TransactionImportConnector.js.map +1 -0
- package/dist/tasenor-common-node/src/import/TransactionImportHandler.d.ts +173 -0
- package/dist/tasenor-common-node/src/import/TransactionImportHandler.js +733 -0
- package/dist/tasenor-common-node/src/import/TransactionImportHandler.js.map +1 -0
- package/dist/tasenor-common-node/src/import/TransactionRules.d.ts +238 -0
- package/dist/tasenor-common-node/src/import/TransactionRules.js +522 -0
- package/dist/tasenor-common-node/src/import/TransactionRules.js.map +1 -0
- package/dist/tasenor-common-node/src/import/TransactionUI.d.ts +181 -0
- package/dist/tasenor-common-node/src/import/TransactionUI.js +482 -0
- package/dist/tasenor-common-node/src/import/TransactionUI.js.map +1 -0
- package/dist/tasenor-common-node/src/import/TransferAnalyzer.d.ts +324 -0
- package/dist/tasenor-common-node/src/import/TransferAnalyzer.js +1379 -0
- package/dist/tasenor-common-node/src/import/TransferAnalyzer.js.map +1 -0
- package/dist/tasenor-common-node/src/import/index.d.ts +11 -0
- package/dist/tasenor-common-node/src/import/index.js +12 -0
- package/dist/tasenor-common-node/src/import/index.js.map +1 -0
- package/dist/tasenor-common-node/src/index.d.ts +12 -0
- package/dist/tasenor-common-node/src/index.js +13 -0
- package/dist/tasenor-common-node/src/index.js.map +1 -0
- package/dist/tasenor-common-node/src/net/crypto.d.ts +33 -0
- package/dist/tasenor-common-node/src/net/crypto.js +63 -0
- package/dist/tasenor-common-node/src/net/crypto.js.map +1 -0
- package/dist/tasenor-common-node/src/net/git.d.ts +49 -0
- package/dist/tasenor-common-node/src/net/git.js +137 -0
- package/dist/tasenor-common-node/src/net/git.js.map +1 -0
- package/dist/tasenor-common-node/src/net/index.d.ts +10 -0
- package/dist/tasenor-common-node/src/net/index.js +11 -0
- package/dist/tasenor-common-node/src/net/index.js.map +1 -0
- package/dist/tasenor-common-node/src/net/middleware.d.ts +61 -0
- package/dist/tasenor-common-node/src/net/middleware.js +220 -0
- package/dist/tasenor-common-node/src/net/middleware.js.map +1 -0
- package/dist/tasenor-common-node/src/net/tokens.d.ts +50 -0
- package/dist/tasenor-common-node/src/net/tokens.js +141 -0
- package/dist/tasenor-common-node/src/net/tokens.js.map +1 -0
- package/dist/tasenor-common-node/src/net/vault.d.ts +67 -0
- package/dist/tasenor-common-node/src/net/vault.js +145 -0
- package/dist/tasenor-common-node/src/net/vault.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/BackendPlugin.d.ts +91 -0
- package/dist/tasenor-common-node/src/plugins/BackendPlugin.js +165 -0
- package/dist/tasenor-common-node/src/plugins/BackendPlugin.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/DataPlugin.d.ts +13 -0
- package/dist/tasenor-common-node/src/plugins/DataPlugin.js +26 -0
- package/dist/tasenor-common-node/src/plugins/DataPlugin.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/ImportPlugin.d.ts +188 -0
- package/dist/tasenor-common-node/src/plugins/ImportPlugin.js +204 -0
- package/dist/tasenor-common-node/src/plugins/ImportPlugin.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/ReportPlugin.d.ts +132 -0
- package/dist/tasenor-common-node/src/plugins/ReportPlugin.js +393 -0
- package/dist/tasenor-common-node/src/plugins/ReportPlugin.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/SchemePlugin.d.ts +34 -0
- package/dist/tasenor-common-node/src/plugins/SchemePlugin.js +47 -0
- package/dist/tasenor-common-node/src/plugins/SchemePlugin.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/ServicePlugin.d.ts +80 -0
- package/dist/tasenor-common-node/src/plugins/ServicePlugin.js +168 -0
- package/dist/tasenor-common-node/src/plugins/ServicePlugin.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/ToolPlugin.d.ts +27 -0
- package/dist/tasenor-common-node/src/plugins/ToolPlugin.js +37 -0
- package/dist/tasenor-common-node/src/plugins/ToolPlugin.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/index.d.ts +13 -0
- package/dist/tasenor-common-node/src/plugins/index.js +14 -0
- package/dist/tasenor-common-node/src/plugins/index.js.map +1 -0
- package/dist/tasenor-common-node/src/plugins/plugins.d.ts +101 -0
- package/dist/tasenor-common-node/src/plugins/plugins.js +292 -0
- package/dist/tasenor-common-node/src/plugins/plugins.js.map +1 -0
- package/dist/tasenor-common-node/src/process/Process.d.ts +108 -0
- package/dist/tasenor-common-node/src/process/Process.js +335 -0
- package/dist/tasenor-common-node/src/process/Process.js.map +1 -0
- package/dist/tasenor-common-node/src/process/ProcessConnector.d.ts +24 -0
- package/dist/tasenor-common-node/src/process/ProcessConnector.js +28 -0
- package/dist/tasenor-common-node/src/process/ProcessConnector.js.map +1 -0
- package/dist/tasenor-common-node/src/process/ProcessFile.d.ts +69 -0
- package/dist/tasenor-common-node/src/process/ProcessFile.js +145 -0
- package/dist/tasenor-common-node/src/process/ProcessFile.js.map +1 -0
- package/dist/tasenor-common-node/src/process/ProcessHandler.d.ts +60 -0
- package/dist/tasenor-common-node/src/process/ProcessHandler.js +73 -0
- package/dist/tasenor-common-node/src/process/ProcessHandler.js.map +1 -0
- package/dist/tasenor-common-node/src/process/ProcessStep.d.ts +52 -0
- package/dist/tasenor-common-node/src/process/ProcessStep.js +78 -0
- package/dist/tasenor-common-node/src/process/ProcessStep.js.map +1 -0
- package/dist/tasenor-common-node/src/process/ProcessingSystem.d.ts +60 -0
- package/dist/tasenor-common-node/src/process/ProcessingSystem.js +182 -0
- package/dist/tasenor-common-node/src/process/ProcessingSystem.js.map +1 -0
- package/dist/tasenor-common-node/src/process/index.d.ts +11 -0
- package/dist/tasenor-common-node/src/process/index.js +12 -0
- package/dist/tasenor-common-node/src/process/index.js.map +1 -0
- package/dist/tasenor-common-node/src/reports/conversions.d.ts +8 -0
- package/dist/tasenor-common-node/src/reports/conversions.js +47 -0
- package/dist/tasenor-common-node/src/reports/conversions.js.map +1 -0
- package/dist/tasenor-common-node/src/reports/index.d.ts +6 -0
- package/dist/tasenor-common-node/src/reports/index.js +7 -0
- package/dist/tasenor-common-node/src/reports/index.js.map +1 -0
- package/dist/tasenor-common-node/src/server/ISPDemoServer.d.ts +43 -0
- package/dist/tasenor-common-node/src/server/ISPDemoServer.js +112 -0
- package/dist/tasenor-common-node/src/server/ISPDemoServer.js.map +1 -0
- package/dist/tasenor-common-node/src/server/api.d.ts +15 -0
- package/dist/tasenor-common-node/src/server/api.js +27 -0
- package/dist/tasenor-common-node/src/server/api.js.map +1 -0
- package/dist/tasenor-common-node/src/server/index.d.ts +7 -0
- package/dist/tasenor-common-node/src/server/index.js +8 -0
- package/dist/tasenor-common-node/src/server/index.js.map +1 -0
- package/dist/tasenor-common-node/src/server/router.d.ts +5 -0
- package/dist/tasenor-common-node/src/server/router.js +37 -0
- package/dist/tasenor-common-node/src/server/router.js.map +1 -0
- package/dist/tasenor-common-node/src/system.d.ts +27 -0
- package/dist/tasenor-common-node/src/system.js +95 -0
- package/dist/tasenor-common-node/src/system.js.map +1 -0
- package/dist/tasenor-common-node/src/testing/ProcessingSystemMock.d.ts +21 -0
- package/dist/tasenor-common-node/src/testing/ProcessingSystemMock.js +33 -0
- package/dist/tasenor-common-node/src/testing/ProcessingSystemMock.js.map +1 -0
- package/dist/tasenor-common-node/src/testing/UnitTestImportConnector.d.ts +24 -0
- package/dist/tasenor-common-node/src/testing/UnitTestImportConnector.js +68 -0
- package/dist/tasenor-common-node/src/testing/UnitTestImportConnector.js.map +1 -0
- package/dist/tasenor-common-node/src/testing/UnitTester.d.ts +64 -0
- package/dist/tasenor-common-node/src/testing/UnitTester.js +199 -0
- package/dist/tasenor-common-node/src/testing/UnitTester.js.map +1 -0
- package/dist/tasenor-common-node/src/testing/index.d.ts +4 -0
- package/dist/tasenor-common-node/src/testing/index.js +5 -0
- package/dist/tasenor-common-node/src/testing/index.js.map +1 -0
- package/dist/tasenor-common-node/src/testing/test-handlers.d.ts +13 -0
- package/dist/tasenor-common-node/src/testing/test-handlers.js +52 -0
- package/dist/tasenor-common-node/src/testing/test-handlers.js.map +1 -0
- package/dist/tasenor-common-node/tests/TransactionRules.spec.d.ts +1 -0
- package/dist/tasenor-common-node/tests/TransactionRules.spec.js +64 -0
- package/dist/tasenor-common-node/tests/TransactionRules.spec.js.map +1 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-account-address.spec.d.ts +1 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-account-address.spec.js +80 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-account-address.spec.js.map +1 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-buying-and-selling.spec.d.ts +1 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-buying-and-selling.spec.js +342 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-buying-and-selling.spec.js.map +1 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-loans.spec.d.ts +1 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-loans.spec.js +174 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-loans.spec.js.map +1 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-multiple-null-amounts.spec.d.ts +1 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-multiple-null-amounts.spec.js +175 -0
- package/dist/tasenor-common-node/tests/TransferAnalyzer-multiple-null-amounts.spec.js.map +1 -0
- package/dist/tasenor-common-node/tests/password.spec.d.ts +1 -0
- package/dist/tasenor-common-node/tests/password.spec.js +8 -0
- package/dist/tasenor-common-node/tests/password.spec.js.map +1 -0
- package/dist/tasenor-common-node/tests/tokens.spec.d.ts +1 -0
- package/dist/tasenor-common-node/tests/tokens.spec.js +49 -0
- package/dist/tasenor-common-node/tests/tokens.spec.js.map +1 -0
- package/dist/tasenor-common-node/tests/vault.spec.d.ts +1 -0
- package/dist/tasenor-common-node/tests/vault.spec.js +19 -0
- package/dist/tasenor-common-node/tests/vault.spec.js.map +1 -0
- package/dist/tasenor-common-plugins/src/CoinbaseImport/backend/CoinbaseHandler.d.ts +11 -0
- package/dist/tasenor-common-plugins/src/CoinbaseImport/backend/CoinbaseHandler.js +30 -0
- package/dist/tasenor-common-plugins/src/CoinbaseImport/backend/CoinbaseHandler.js.map +1 -0
- package/dist/tasenor-common-plugins/src/IncomeAndExpenses/backend/index.d.ts +5 -0
- package/dist/tasenor-common-plugins/src/IncomeAndExpenses/backend/index.js +350 -0
- package/dist/tasenor-common-plugins/src/IncomeAndExpenses/backend/index.js.map +1 -0
- package/dist/tasenor-common-plugins/src/KrakenImport/backend/KrakenHandler.d.ts +23 -0
- package/dist/tasenor-common-plugins/src/KrakenImport/backend/KrakenHandler.js +83 -0
- package/dist/tasenor-common-plugins/src/KrakenImport/backend/KrakenHandler.js.map +1 -0
- package/dist/tasenor-common-plugins/src/LynxImport/backend/LynxHandler.d.ts +28 -0
- package/dist/tasenor-common-plugins/src/LynxImport/backend/LynxHandler.js +340 -0
- package/dist/tasenor-common-plugins/src/LynxImport/backend/LynxHandler.js.map +1 -0
- package/dist/tasenor-common-plugins/src/NordeaImport/backend/NordeaHandler.d.ts +11 -0
- package/dist/tasenor-common-plugins/src/NordeaImport/backend/NordeaHandler.js +39 -0
- package/dist/tasenor-common-plugins/src/NordeaImport/backend/NordeaHandler.js.map +1 -0
- package/dist/tasenor-common-plugins/src/NordnetImport/backend/NordnetHandler.d.ts +17 -0
- package/dist/tasenor-common-plugins/src/NordnetImport/backend/NordnetHandler.js +66 -0
- package/dist/tasenor-common-plugins/src/NordnetImport/backend/NordnetHandler.js.map +1 -0
- package/dist/tasenor-common-plugins/src/TITOImport/backend/TITOHandler.d.ts +13 -0
- package/dist/tasenor-common-plugins/src/TITOImport/backend/TITOHandler.js +241 -0
- package/dist/tasenor-common-plugins/src/TITOImport/backend/TITOHandler.js.map +1 -0
- package/jest.config.js +1 -0
- package/package.json +62 -0
- package/src/cli.ts +267 -0
- package/src/commands/account.ts +69 -0
- package/src/commands/balance.ts +131 -0
- package/src/commands/db.ts +84 -0
- package/src/commands/entry.ts +117 -0
- package/src/commands/import.ts +160 -0
- package/src/commands/importer.ts +84 -0
- package/src/commands/index.ts +534 -0
- package/src/commands/period.ts +59 -0
- package/src/commands/plugin.ts +95 -0
- package/src/commands/report.ts +113 -0
- package/src/commands/settings.ts +75 -0
- package/src/commands/stock.ts +80 -0
- package/src/commands/tag.ts +102 -0
- package/src/commands/tx.ts +93 -0
- package/src/commands/user.ts +65 -0
- package/src/database/BookkeeperImporter.ts +358 -0
- package/src/database/DB.ts +396 -0
- package/src/database/index.ts +7 -0
- package/src/doccer.ts +29 -0
- package/src/error.ts +32 -0
- package/src/export/Exporter.ts +136 -0
- package/src/export/TasenorExporter.ts +144 -0
- package/src/export/TilitinExporter.ts +302 -0
- package/src/export/index.ts +8 -0
- package/src/import/TextFileProcessHandler.ts +384 -0
- package/src/import/TransactionImportConnector.ts +65 -0
- package/src/import/TransactionImportHandler.ts +819 -0
- package/src/import/TransactionRules.ts +570 -0
- package/src/import/TransactionUI.ts +520 -0
- package/src/import/TransferAnalyzer.ts +1450 -0
- package/src/import/index.ts +11 -0
- package/src/index.ts +12 -0
- package/src/net/crypto.ts +69 -0
- package/src/net/git.ts +151 -0
- package/src/net/index.ts +10 -0
- package/src/net/middleware.ts +261 -0
- package/src/net/tokens.ts +140 -0
- package/src/net/vault.ts +161 -0
- package/src/plugins/BackendPlugin.ts +188 -0
- package/src/plugins/DataPlugin.ts +29 -0
- package/src/plugins/ImportPlugin.ts +211 -0
- package/src/plugins/ReportPlugin.ts +443 -0
- package/src/plugins/SchemePlugin.ts +56 -0
- package/src/plugins/ServicePlugin.ts +188 -0
- package/src/plugins/ToolPlugin.ts +44 -0
- package/src/plugins/index.ts +13 -0
- package/src/plugins/plugins.ts +345 -0
- package/src/process/Process.ts +368 -0
- package/src/process/ProcessConnector.ts +45 -0
- package/src/process/ProcessFile.ts +169 -0
- package/src/process/ProcessHandler.ts +94 -0
- package/src/process/ProcessStep.ts +100 -0
- package/src/process/ProcessingSystem.ts +202 -0
- package/src/process/index.ts +11 -0
- package/src/reports/conversions.ts +52 -0
- package/src/reports/index.ts +6 -0
- package/src/server/ISPDemoServer.ts +122 -0
- package/src/server/api.ts +37 -0
- package/src/server/index.ts +7 -0
- package/src/server/router.ts +60 -0
- package/src/system.ts +96 -0
- package/src/testing/ProcessingSystemMock.ts +45 -0
- package/src/testing/UnitTestImportConnector.ts +86 -0
- package/src/testing/UnitTester.ts +231 -0
- package/src/testing/index.ts +4 -0
- package/src/testing/test-handlers.ts +55 -0
- package/tests/TransactionRules.spec.ts +73 -0
- package/tests/TransferAnalyzer-account-address.spec.ts +87 -0
- package/tests/TransferAnalyzer-buying-and-selling.spec.ts +354 -0
- package/tests/TransferAnalyzer-loans.spec.ts +197 -0
- package/tests/TransferAnalyzer-multiple-null-amounts.spec.ts +181 -0
- package/tests/password.spec.ts +8 -0
- package/tests/tokens.spec.ts +52 -0
- package/tests/vault.spec.ts +20 -0
- package/tsconfig.json +13 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { AccountNumber, Asset, AccountAddress, AssetTransfer, AssetTransferReason, AssetType, StockValueData, Transaction, TransactionDescription, TransactionKind, TransactionLine, UIQuery, Tag, ImportSegment, ImportStateText, ProcessConfig, SegmentId, TextFileLine } from '@dataplug/tasenor-common';
|
|
2
|
+
import { TransactionImportHandler } from './TransactionImportHandler';
|
|
3
|
+
import { TransactionUI } from './TransactionUI';
|
|
4
|
+
/**
|
|
5
|
+
* ## Transfer Analysis
|
|
6
|
+
*
|
|
7
|
+
* ### Transfer
|
|
8
|
+
*
|
|
9
|
+
* The structure desribing a single part of a transfer is the following:
|
|
10
|
+
* ```json
|
|
11
|
+
* {
|
|
12
|
+
* "if": "<optional condition>",
|
|
13
|
+
* "reason": "<reason>",
|
|
14
|
+
* "type": "<type>",
|
|
15
|
+
* "asset": "<asset>",
|
|
16
|
+
* "amount": "<amount>",
|
|
17
|
+
* "text": "<optional description>"
|
|
18
|
+
* "questions": {
|
|
19
|
+
* },
|
|
20
|
+
* "data": {
|
|
21
|
+
* <optional additional data>
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
* Note that every expression is a string. Value to evaluate to `null` has to be given as a string `"null"`.
|
|
26
|
+
*
|
|
27
|
+
* #### Reason
|
|
28
|
+
*
|
|
29
|
+
* The reason component describes the fundamental general background causing the transaction. For example reason
|
|
30
|
+
* can be `expense` or `income`. Some spesific cases are taken seprately due to their nature, which may need
|
|
31
|
+
* different handling. For example `fee` or `dividend` are special cases of those.
|
|
32
|
+
*
|
|
33
|
+
* For more details {@link AssetTransferReason}.
|
|
34
|
+
*
|
|
35
|
+
* #### Type
|
|
36
|
+
*
|
|
37
|
+
* The type of transfer describes either concrete asset class (`stock`, `currency`, `cryptocurrency`) or sometimes
|
|
38
|
+
* more abstract thing like for example `statement` which represent transfer counterpart in the report.
|
|
39
|
+
*
|
|
40
|
+
* For more details {@link AssetType}.
|
|
41
|
+
*
|
|
42
|
+
* #### Asset
|
|
43
|
+
*
|
|
44
|
+
* Asset is the code for denoting the asset itself like currency code or stock ticker. It is also used for
|
|
45
|
+
* other purposes like code denoting income, expense or tax type.
|
|
46
|
+
*
|
|
47
|
+
* Definition is here {@link Asset}.
|
|
48
|
+
*
|
|
49
|
+
* #### Amount
|
|
50
|
+
*
|
|
51
|
+
* The amount is the number of units of the asset transferred. Typically it is measured in default currency but
|
|
52
|
+
* it could be also other currency or crypto currency. These are converted to the default currency during the
|
|
53
|
+
* processing either by using rates information in the transfer itself or by calling external service to find
|
|
54
|
+
* out the value at the transaction date.
|
|
55
|
+
*
|
|
56
|
+
* Special value `null` can be used to denote amount that must be calculated based on the remainder value of
|
|
57
|
+
* all the other transfer parts added together.
|
|
58
|
+
*
|
|
59
|
+
* #### Text
|
|
60
|
+
*
|
|
61
|
+
* By default the explanation is constructed automatically. If one wants to override the description, then the
|
|
62
|
+
* `text` field can be used.
|
|
63
|
+
*
|
|
64
|
+
* #### Questions
|
|
65
|
+
*
|
|
66
|
+
* Questions defined in setup (See {@link TransactionRules}) can be used in a transfer. When we want to determine
|
|
67
|
+
* some aspect of the transaction by using from the user, we can define additional variables mapping the variable
|
|
68
|
+
* names to the question names. Once the questions are answered, the variables are filled with the answers.
|
|
69
|
+
*
|
|
70
|
+
* For example the following sets the variable `type` based on the selection given
|
|
71
|
+
* ```json
|
|
72
|
+
* "questions": {
|
|
73
|
+
* "type": "Computer purchase"
|
|
74
|
+
* }
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* #### Other Fields
|
|
78
|
+
*
|
|
79
|
+
* In addition it may have some special fields:
|
|
80
|
+
* - `if` When this arbitrary expression is given, it is evaluated and if not `true`, entry is skipped.
|
|
81
|
+
* - `data` This field can have optional informative fields of interest displayed by UI. (See {@link AdditionalTransferInfo}.)
|
|
82
|
+
*/
|
|
83
|
+
export declare class TransferAnalyzer {
|
|
84
|
+
private handler;
|
|
85
|
+
private config;
|
|
86
|
+
private stocks;
|
|
87
|
+
private state;
|
|
88
|
+
private balances;
|
|
89
|
+
constructor(handler: TransactionImportHandler, config: ProcessConfig, state: ImportStateText<'classified'>);
|
|
90
|
+
get UI(): TransactionUI;
|
|
91
|
+
/**
|
|
92
|
+
* Read the initial balance.
|
|
93
|
+
*/
|
|
94
|
+
initialize(time: Date): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Get the summary of the balances.
|
|
97
|
+
*/
|
|
98
|
+
getBalances(): import("@dataplug/tasenor-common").BalanceSummaryEntry[];
|
|
99
|
+
/**
|
|
100
|
+
* Get a single account balance.
|
|
101
|
+
* @param addr
|
|
102
|
+
*/
|
|
103
|
+
getBalance(addr: AccountAddress): number;
|
|
104
|
+
/**
|
|
105
|
+
* Update balance.
|
|
106
|
+
* @param txEntry
|
|
107
|
+
* @param name
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
110
|
+
applyBalance(txEntry: TransactionLine): number;
|
|
111
|
+
/**
|
|
112
|
+
* Revert balance.
|
|
113
|
+
* @param txEntry
|
|
114
|
+
* @param name
|
|
115
|
+
* @returns
|
|
116
|
+
*/
|
|
117
|
+
revertBalance(txEntry: TransactionLine): number;
|
|
118
|
+
/**
|
|
119
|
+
* Get the value from the system configuration.
|
|
120
|
+
*/
|
|
121
|
+
getConfig(name: string, def?: unknown): unknown;
|
|
122
|
+
/**
|
|
123
|
+
* Translate a text.
|
|
124
|
+
* @param text
|
|
125
|
+
* @param language
|
|
126
|
+
* @returns
|
|
127
|
+
*/
|
|
128
|
+
getTranslation(text: string): Promise<string>;
|
|
129
|
+
/**
|
|
130
|
+
* Collect lines related to the segment.
|
|
131
|
+
* @param segmentId
|
|
132
|
+
*/
|
|
133
|
+
getLines(segmentId: SegmentId): TextFileLine[] | null;
|
|
134
|
+
/**
|
|
135
|
+
* Analyse transfers and collect accounts needed.
|
|
136
|
+
* @param transfers
|
|
137
|
+
* @param options.findMissing If given, list missing accounts by their reason and type instead of throwing error.
|
|
138
|
+
* @returns Accounts or list of missing.
|
|
139
|
+
*/
|
|
140
|
+
collectAccounts(segment: ImportSegment, transfers: TransactionDescription, options?: {
|
|
141
|
+
findMissing?: boolean;
|
|
142
|
+
}): Promise<Record<string, AccountNumber> | AccountAddress[]>;
|
|
143
|
+
/**
|
|
144
|
+
* Collect some important values needed from transfer and resolve what kind of transfer we have.
|
|
145
|
+
*
|
|
146
|
+
* The following values are resolved:
|
|
147
|
+
* * `kind` - Kind of transfer recognized.
|
|
148
|
+
* * `exchange` - Name of the imporeter.
|
|
149
|
+
* * `name` - Name of the target asset for statement, if relevant.
|
|
150
|
+
* * `takeAmount` - Amount affecting the asset.
|
|
151
|
+
* * `takeAsset` - The name of the asset.
|
|
152
|
+
*/
|
|
153
|
+
collectOtherValues(transfers: TransactionDescription, values: Record<string, string | number>): Promise<Record<string, string | number>>;
|
|
154
|
+
/**
|
|
155
|
+
* Helper to set values in data field.
|
|
156
|
+
* @param transfer
|
|
157
|
+
* @param values
|
|
158
|
+
*/
|
|
159
|
+
setData(transfer: any, values: any): void;
|
|
160
|
+
/**
|
|
161
|
+
* Helper to set rate in data field.
|
|
162
|
+
* @param transfer
|
|
163
|
+
* @param asset
|
|
164
|
+
* @param rate
|
|
165
|
+
*/
|
|
166
|
+
setRate(transfer: any, asset: any, rate: any): void;
|
|
167
|
+
/**
|
|
168
|
+
* Helper to either get asset rate from data directly or ask from elsewhere.
|
|
169
|
+
* @param time
|
|
170
|
+
* @param transfer
|
|
171
|
+
* @param type
|
|
172
|
+
* @param asset
|
|
173
|
+
*/
|
|
174
|
+
getRate(time: Date, transfer: AssetTransfer, type: AssetType, asset: Asset): Promise<number>;
|
|
175
|
+
/**
|
|
176
|
+
* Check if rate needs to be fetched and updates it, if needed. Calculate the value.
|
|
177
|
+
* @param time
|
|
178
|
+
* @param transfer
|
|
179
|
+
* @param type
|
|
180
|
+
* @param asset
|
|
181
|
+
*/
|
|
182
|
+
setValue(time: Date, transfer: AssetTransfer, type: AssetType, asset: Asset, amount?: number | null): Promise<void>;
|
|
183
|
+
/**
|
|
184
|
+
* Find local currency entries and valueate them trivially.
|
|
185
|
+
* @param time
|
|
186
|
+
* @param transfers
|
|
187
|
+
*/
|
|
188
|
+
fillInLocalCurrencies(time: Date, transfers: TransactionDescription): Promise<void>;
|
|
189
|
+
/**
|
|
190
|
+
* Find currency entries and valueate them.
|
|
191
|
+
* @param time
|
|
192
|
+
* @param transfers
|
|
193
|
+
*/
|
|
194
|
+
fillInCurrencies(time: Date, transfers: TransactionDescription): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
* Check and fill the last unknown value, if only one left.
|
|
197
|
+
* @param canDeduct - If set to false, just check and do not fill.
|
|
198
|
+
* @returns
|
|
199
|
+
*/
|
|
200
|
+
fillLastMissing(transfers: AssetTransfer[], canDeduct: boolean): boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Look for all missing asset values and fill them in as system currency to transfer list and values list.
|
|
203
|
+
*
|
|
204
|
+
* May fill the following values:
|
|
205
|
+
*
|
|
206
|
+
* * `giveAmount` - Amount used the other given away if any.
|
|
207
|
+
* * `giveAsset` - Name of the other asset given away if any.
|
|
208
|
+
* * `takeAmount` - Amount the other asset received if any.
|
|
209
|
+
* * `takeAsset` - Name of the other asset received if any.
|
|
210
|
+
* * `data.currency` - The original currency used, if different than default.
|
|
211
|
+
* * `data.currencyValue` - Value in original currency used, if different than default.
|
|
212
|
+
*
|
|
213
|
+
* For transfers, the following values may be filled:
|
|
214
|
+
*
|
|
215
|
+
* * `value` - Value in the system default currency.
|
|
216
|
+
* * `rates` - Asset value rates vs. the system currency used in conversion.
|
|
217
|
+
*
|
|
218
|
+
* @param transfers
|
|
219
|
+
* @param values
|
|
220
|
+
* @param segment
|
|
221
|
+
* @param config
|
|
222
|
+
*/
|
|
223
|
+
calculateAssetValues(transfers: TransactionDescription, segment: ImportSegment): Promise<Record<string, string | number>>;
|
|
224
|
+
/**
|
|
225
|
+
* Try some heuristics if we can map transfers so that can solve multiple missing valuations.
|
|
226
|
+
* @param transfers
|
|
227
|
+
*/
|
|
228
|
+
handleMultipleMissingValues(transfers: TransactionDescription): Promise<void>;
|
|
229
|
+
/**
|
|
230
|
+
* Analyze transfer and construct the corresponding transaction structure.
|
|
231
|
+
* @param transfers
|
|
232
|
+
* @returns
|
|
233
|
+
*/
|
|
234
|
+
analyze(transfers: TransactionDescription, segment: ImportSegment, config: ProcessConfig): Promise<TransactionDescription>;
|
|
235
|
+
/**
|
|
236
|
+
* Construct a transaction based on the data collected.
|
|
237
|
+
* @param transfers
|
|
238
|
+
* @param kind
|
|
239
|
+
* @param values
|
|
240
|
+
* @param accounts
|
|
241
|
+
* @param segment
|
|
242
|
+
* @returns
|
|
243
|
+
*/
|
|
244
|
+
createTransaction(transfers: TransactionDescription, kind: TransactionKind, values: Record<string, string | number>, accounts: Record<string, AccountNumber>, segment: ImportSegment): Promise<Transaction>;
|
|
245
|
+
/**
|
|
246
|
+
* Handle tags for one transaction line.
|
|
247
|
+
* @param tx
|
|
248
|
+
* @param segment
|
|
249
|
+
* @param config
|
|
250
|
+
*/
|
|
251
|
+
postProcessTags(tx: TransactionLine, transfer: AssetTransfer, segment: ImportSegment): Promise<TransactionLine>;
|
|
252
|
+
/**
|
|
253
|
+
* Get the specific account from the settings. Checks also more generic '<reason>.<type>.*' version if the exact not found.
|
|
254
|
+
* @param reason
|
|
255
|
+
* @param type
|
|
256
|
+
* @param asset
|
|
257
|
+
* @returns
|
|
258
|
+
*/
|
|
259
|
+
getAccount(reason: AssetTransferReason, type: AssetType, asset: Asset, segmentId?: SegmentId): Promise<undefined | AccountNumber>;
|
|
260
|
+
/**
|
|
261
|
+
* Get tags for the transfer if defined in configuration.
|
|
262
|
+
* @param reason
|
|
263
|
+
* @param type
|
|
264
|
+
* @param asset
|
|
265
|
+
* @returns
|
|
266
|
+
*/
|
|
267
|
+
getTags(reason: AssetTransferReason, type: AssetType, asset: Asset): Promise<Tag[] | undefined>;
|
|
268
|
+
/**
|
|
269
|
+
* Similar to getTags() but use account address.
|
|
270
|
+
* @param addr
|
|
271
|
+
*/
|
|
272
|
+
getTagsForAddr(addr: AccountAddress): Promise<Tag[] | undefined>;
|
|
273
|
+
/**
|
|
274
|
+
* Get the UI query for account from the settings if defined.
|
|
275
|
+
* @param reason
|
|
276
|
+
* @param type
|
|
277
|
+
* @param asset
|
|
278
|
+
* @returns
|
|
279
|
+
*/
|
|
280
|
+
getAccountQuery(reason: AssetTransferReason, type: AssetType, asset: Asset): Promise<undefined | UIQuery>;
|
|
281
|
+
/**
|
|
282
|
+
* Builder for text descriptions.
|
|
283
|
+
* @param template
|
|
284
|
+
* @param values
|
|
285
|
+
*/
|
|
286
|
+
constructText(kind: TransactionKind, values: Record<string, unknown>, original: TransactionDescription): Promise<string>;
|
|
287
|
+
/**
|
|
288
|
+
* Find the rate in the default currency for the asset.
|
|
289
|
+
* @param time
|
|
290
|
+
* @param type
|
|
291
|
+
* @param asset
|
|
292
|
+
*/
|
|
293
|
+
getRateAt(time: Date, type: AssetType, asset: Asset): Promise<number>;
|
|
294
|
+
/**
|
|
295
|
+
* Find the amount of asset owned at the spesific time.
|
|
296
|
+
* @param time
|
|
297
|
+
* @param type
|
|
298
|
+
* @param asset
|
|
299
|
+
* @returns
|
|
300
|
+
*/
|
|
301
|
+
getStock(time: Date, type: AssetType, asset: Asset): Promise<StockValueData>;
|
|
302
|
+
/**
|
|
303
|
+
* Update internal stock bookkeeping.
|
|
304
|
+
* @param time
|
|
305
|
+
* @param type
|
|
306
|
+
* @param asset
|
|
307
|
+
* @param amount
|
|
308
|
+
* @param value
|
|
309
|
+
*/
|
|
310
|
+
changeStock(time: Date, type: AssetType, asset: Asset, amount: number, value: number): Promise<void>;
|
|
311
|
+
/**
|
|
312
|
+
* Get the average price of the asset at the specific time.
|
|
313
|
+
* @param time
|
|
314
|
+
* @param type
|
|
315
|
+
* @param asset
|
|
316
|
+
* @returns
|
|
317
|
+
*/
|
|
318
|
+
getAverage(time: Date, type: AssetType, asset: Asset): Promise<number>;
|
|
319
|
+
/**
|
|
320
|
+
* Detect currencies and their rates and fill in data where we can.
|
|
321
|
+
* @param transfers
|
|
322
|
+
*/
|
|
323
|
+
fillCurrencies(transfers: TransactionDescription): void;
|
|
324
|
+
}
|