@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,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implementation for process handling.
|
|
3
|
+
*
|
|
4
|
+
* @module tasenor-common-node/src/process
|
|
5
|
+
*/
|
|
6
|
+
export * from './Process';
|
|
7
|
+
export * from './ProcessConnector';
|
|
8
|
+
export * from './ProcessFile';
|
|
9
|
+
export * from './ProcessingSystem';
|
|
10
|
+
export * from './ProcessStep';
|
|
11
|
+
export * from './ProcessHandler';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implementation for process handling.
|
|
3
|
+
*
|
|
4
|
+
* @module tasenor-common-node/src/process
|
|
5
|
+
*/
|
|
6
|
+
export * from './Process';
|
|
7
|
+
export * from './ProcessConnector';
|
|
8
|
+
export * from './ProcessFile';
|
|
9
|
+
export * from './ProcessingSystem';
|
|
10
|
+
export * from './ProcessStep';
|
|
11
|
+
export * from './ProcessHandler';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/process/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReportQueryParams } from '@dataplug/tasenor-common';
|
|
2
|
+
/**
|
|
3
|
+
* Convert report to CSV format.
|
|
4
|
+
* @param {Object} report
|
|
5
|
+
* @param {Object} options
|
|
6
|
+
* @param {String} options.lang Localize number using this language.
|
|
7
|
+
*/
|
|
8
|
+
export declare function data2csv(report: any, options: ReportQueryParams): any;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import json2csv from 'json2csv';
|
|
2
|
+
import { sprintf } from 'sprintf-js';
|
|
3
|
+
/**
|
|
4
|
+
* Convert report to CSV format.
|
|
5
|
+
* @param {Object} report
|
|
6
|
+
* @param {Object} options
|
|
7
|
+
* @param {String} options.lang Localize number using this language.
|
|
8
|
+
*/
|
|
9
|
+
export function data2csv(report, options) {
|
|
10
|
+
const csv = [];
|
|
11
|
+
const render = {
|
|
12
|
+
id: (column, entry) => entry.id,
|
|
13
|
+
name: (column, entry) => `${entry.isAccount ? entry.number + ' ' : ''}${entry.name}`,
|
|
14
|
+
text: (column, entry) => entry[column.name],
|
|
15
|
+
numeric: (column, entry) => (entry.amounts &&
|
|
16
|
+
!entry.hideTotal &&
|
|
17
|
+
entry.amounts[column.name] !== '' &&
|
|
18
|
+
!isNaN(entry.amounts[column.name]) &&
|
|
19
|
+
entry.amounts[column.name] !== undefined)
|
|
20
|
+
? (entry.amounts[column.name] === null ? '—' : sprintf('%.2f', entry.amounts[column.name] / 100))
|
|
21
|
+
: ''
|
|
22
|
+
};
|
|
23
|
+
const { data, columns } = report;
|
|
24
|
+
let line = {};
|
|
25
|
+
if (!options.dropTitle) {
|
|
26
|
+
columns.forEach((column) => (line[column.name] = column.title));
|
|
27
|
+
csv.push(line);
|
|
28
|
+
}
|
|
29
|
+
data.forEach((entry) => {
|
|
30
|
+
if (entry.paragraphBreak) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
line = {};
|
|
34
|
+
columns.forEach((column) => {
|
|
35
|
+
if (entry.pageBreak || entry.paragraphBreak) {
|
|
36
|
+
line[column.name] = '';
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
line[column.name] = render[column.type](column, entry);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
csv.push(line);
|
|
43
|
+
});
|
|
44
|
+
const fields = columns.map((c) => c.name);
|
|
45
|
+
return json2csv.parse(csv, { fields, header: false });
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=conversions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversions.js","sourceRoot":"","sources":["../../../../src/reports/conversions.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAM,EAAE,OAA0B;IACzD,MAAM,GAAG,GAA6B,EAAE,CAAA;IAExC,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE;QAC/B,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QACpF,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3C,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;YACxC,CAAC,KAAK,CAAC,SAAS;YAChB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;YACjC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;YACzC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACjG,CAAC,CAAC,EAAE;KACP,CAAA;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAChC,IAAI,IAAI,GAA2B,EAAE,CAAA;IACrC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QACtB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACf;IAED,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,KAAK,CAAC,cAAc,EAAE;YACxB,OAAM;SACP;QACD,IAAI,GAAG,EAAE,CAAA;QACT,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,cAAc,EAAE;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;aACvB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;aACvD;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAEzC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;AACvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/reports/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ID } from '@dataplug/tasenor-common';
|
|
2
|
+
import { ProcessHandler, ProcessConnector } from '../process';
|
|
3
|
+
/**
|
|
4
|
+
* Simple demo server for one or more handler.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```
|
|
8
|
+
* const handler1 = new MyCustomHandler('Custom 1')
|
|
9
|
+
* const handler2 = new MyCustomHandler('Custom 2')
|
|
10
|
+
* const server = new ISPDemoServer(PORT, DATABASE_URL, [handler1, handler2])
|
|
11
|
+
* server.start()
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare class ISPDemoServer {
|
|
15
|
+
private app;
|
|
16
|
+
private server;
|
|
17
|
+
private port;
|
|
18
|
+
private db;
|
|
19
|
+
private handlers;
|
|
20
|
+
private connector;
|
|
21
|
+
private configDefaults;
|
|
22
|
+
/**
|
|
23
|
+
* Prepare settings.
|
|
24
|
+
*
|
|
25
|
+
* @param port
|
|
26
|
+
* @param databaseUrl
|
|
27
|
+
* @param handlers
|
|
28
|
+
* @param connector
|
|
29
|
+
*/
|
|
30
|
+
constructor(port: number, databaseUrl: string, handlers: ProcessHandler[], connector?: ProcessConnector | null, configDefaults?: Record<string, unknown>);
|
|
31
|
+
/**
|
|
32
|
+
* Launch the demo server.
|
|
33
|
+
*
|
|
34
|
+
* @param reset If set, reset the database on boot.
|
|
35
|
+
*/
|
|
36
|
+
start: (reset?: boolean) => Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Exit the server. If an error is given, raise also that error.
|
|
39
|
+
* @param err
|
|
40
|
+
*/
|
|
41
|
+
stop: (err?: Error | undefined) => Promise<void>;
|
|
42
|
+
lastProcessID(): Promise<ID>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import express from 'express';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import Knex from 'knex';
|
|
5
|
+
import cors from 'cors';
|
|
6
|
+
import { router } from './router';
|
|
7
|
+
import { defaultConnector, ProcessingSystem } from '../process';
|
|
8
|
+
/**
|
|
9
|
+
* Simple demo server for one or more handler.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* ```
|
|
13
|
+
* const handler1 = new MyCustomHandler('Custom 1')
|
|
14
|
+
* const handler2 = new MyCustomHandler('Custom 2')
|
|
15
|
+
* const server = new ISPDemoServer(PORT, DATABASE_URL, [handler1, handler2])
|
|
16
|
+
* server.start()
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export class ISPDemoServer {
|
|
20
|
+
app = express();
|
|
21
|
+
server;
|
|
22
|
+
port;
|
|
23
|
+
db;
|
|
24
|
+
handlers;
|
|
25
|
+
connector;
|
|
26
|
+
configDefaults;
|
|
27
|
+
/**
|
|
28
|
+
* Prepare settings.
|
|
29
|
+
*
|
|
30
|
+
* @param port
|
|
31
|
+
* @param databaseUrl
|
|
32
|
+
* @param handlers
|
|
33
|
+
* @param connector
|
|
34
|
+
*/
|
|
35
|
+
constructor(port, databaseUrl, handlers, connector = null, configDefaults = {}) {
|
|
36
|
+
this.port = port;
|
|
37
|
+
this.configDefaults = configDefaults;
|
|
38
|
+
let migrationsPath = path.normalize(path.join(__dirname, '/migrations/01_init.js'));
|
|
39
|
+
if (!fs.existsSync(migrationsPath)) {
|
|
40
|
+
migrationsPath = path.normalize(path.join(__dirname, '../../dist/migrations/01_init.js'));
|
|
41
|
+
}
|
|
42
|
+
if (!fs.existsSync(migrationsPath)) {
|
|
43
|
+
migrationsPath = path.normalize(path.join(__dirname, '../../../dist/migrations/01_init.js'));
|
|
44
|
+
}
|
|
45
|
+
if (!fs.existsSync(migrationsPath)) {
|
|
46
|
+
console.log(__dirname);
|
|
47
|
+
throw new Error(`Cannot find migrations file '${migrationsPath}'.`);
|
|
48
|
+
}
|
|
49
|
+
this.db = Knex({
|
|
50
|
+
client: 'pg',
|
|
51
|
+
connection: databaseUrl,
|
|
52
|
+
migrations: {
|
|
53
|
+
directory: path.dirname(migrationsPath)
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
this.handlers = handlers;
|
|
57
|
+
if (connector) {
|
|
58
|
+
this.connector = connector;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.connector = defaultConnector;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Launch the demo server.
|
|
66
|
+
*
|
|
67
|
+
* @param reset If set, reset the database on boot.
|
|
68
|
+
*/
|
|
69
|
+
start = async (reset = false) => {
|
|
70
|
+
if (reset) {
|
|
71
|
+
await this.db.migrate.rollback();
|
|
72
|
+
}
|
|
73
|
+
await this.db.migrate.latest();
|
|
74
|
+
const systemCreator = () => {
|
|
75
|
+
const system = new ProcessingSystem(this.db, this.connector);
|
|
76
|
+
this.handlers.forEach(handler => system.register(handler));
|
|
77
|
+
return system;
|
|
78
|
+
};
|
|
79
|
+
this.app.use((req, res, next) => { res.locals.server = this; next(); });
|
|
80
|
+
this.app.use((req, res, next) => { console.log(new Date(), req.method, req.url); next(); });
|
|
81
|
+
this.app.use(cors());
|
|
82
|
+
this.app.use(express.json({ limit: '1024MB' }));
|
|
83
|
+
this.app.use('/api/isp', router(this.db, systemCreator));
|
|
84
|
+
this.server = this.app.listen(this.port, () => {
|
|
85
|
+
console.log(new Date(), `Server started on port ${this.port}.`);
|
|
86
|
+
this.connector.initialize(this);
|
|
87
|
+
});
|
|
88
|
+
this.server.on('error', (msg) => {
|
|
89
|
+
console.error(new Date(), msg);
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Exit the server. If an error is given, raise also that error.
|
|
94
|
+
* @param err
|
|
95
|
+
*/
|
|
96
|
+
stop = async (err = undefined) => {
|
|
97
|
+
console.log(new Date(), 'Stopping the server.');
|
|
98
|
+
await this.server.close(() => {
|
|
99
|
+
if (err) {
|
|
100
|
+
throw err;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
process.exit();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
async lastProcessID() {
|
|
108
|
+
const ids = await this.db('processes').max('id').first();
|
|
109
|
+
return ids ? ids.max : null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=ISPDemoServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ISPDemoServer.js","sourceRoot":"","sources":["../../../../src/server/ISPDemoServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ProcessModelData, ID, ProcessModelDetailedData, ProcessStepModelData } from '@dataplug/tasenor-common';
|
|
2
|
+
import { KnexDatabase } from '../database';
|
|
3
|
+
export type ProcessApi = {
|
|
4
|
+
process: {
|
|
5
|
+
getAll: () => Promise<ProcessModelData[]>;
|
|
6
|
+
get: (id: ID) => Promise<ProcessModelDetailedData>;
|
|
7
|
+
getStep: (id: ID, step: number) => Promise<ProcessStepModelData>;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Data query API for processes.
|
|
12
|
+
* @param db
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export default function (db: KnexDatabase): ProcessApi;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data query API for processes.
|
|
3
|
+
* @param db
|
|
4
|
+
* @returns
|
|
5
|
+
*/
|
|
6
|
+
export default function (db) {
|
|
7
|
+
return {
|
|
8
|
+
process: {
|
|
9
|
+
getAll: async () => {
|
|
10
|
+
return db('processes').select('*').orderBy('created', 'desc');
|
|
11
|
+
},
|
|
12
|
+
get: async (id) => {
|
|
13
|
+
const data = await db('processes').select('*').where({ id }).first();
|
|
14
|
+
if (data) {
|
|
15
|
+
const steps = await db('process_steps').select('id', 'action', 'directions', 'number', 'started', 'finished').where({ processId: id }).orderBy('number');
|
|
16
|
+
data.steps = steps || [];
|
|
17
|
+
}
|
|
18
|
+
return data;
|
|
19
|
+
},
|
|
20
|
+
getStep: async (id, number) => {
|
|
21
|
+
const data = await db('process_steps').select('*').where({ processId: id, number }).first();
|
|
22
|
+
return data;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/server/api.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAU,EAAgB;IACtC,OAAO;QACL,OAAO,EAAE;YACP,MAAM,EAAE,KAAK,IAAiC,EAAE;gBAC9C,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAC/D,CAAC;YACD,GAAG,EAAE,KAAK,EAAE,EAAM,EAAqC,EAAE;gBACvD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;gBACpE,IAAI,IAAI,EAAE;oBACR,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;oBACxJ,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;iBACzB;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,EAAM,EAAE,MAAc,EAAiC,EAAE;gBACvE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;gBAC3F,OAAO,IAAI,CAAA;YACb,CAAC;SACF;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Request, Router } from 'express';
|
|
2
|
+
import { KnexDatabase } from '../database';
|
|
3
|
+
import { ProcessingSystem } from '../process';
|
|
4
|
+
export type ProcessingConfigurator = (req: Request) => ProcessingSystem;
|
|
5
|
+
export declare function router(db: KnexDatabase, configurator: ProcessingConfigurator): Router;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import apiCreator from './api';
|
|
3
|
+
export function router(db, configurator) {
|
|
4
|
+
const router = express.Router();
|
|
5
|
+
const api = apiCreator(db);
|
|
6
|
+
router.get('/', async (req, res) => {
|
|
7
|
+
return res.send(await api.process.getAll());
|
|
8
|
+
});
|
|
9
|
+
router.get('/:id', async (req, res) => {
|
|
10
|
+
return res.send(await api.process.get(parseInt(req.params.id)));
|
|
11
|
+
});
|
|
12
|
+
router.post('/', async (req, res) => {
|
|
13
|
+
const system = configurator(req);
|
|
14
|
+
const { files, config } = req.body;
|
|
15
|
+
const names = files.map(f => f.name);
|
|
16
|
+
const process = await system.createProcess(`Uploading files ${names.join(', ')}`, files, { ...res.locals.server.configDefaults, ...config });
|
|
17
|
+
if (process.canRun()) {
|
|
18
|
+
await process.run();
|
|
19
|
+
}
|
|
20
|
+
return res.send(await api.process.get(process.id));
|
|
21
|
+
});
|
|
22
|
+
router.post('/:id', async (req, res) => {
|
|
23
|
+
const system = configurator(req);
|
|
24
|
+
const { id } = req.params;
|
|
25
|
+
const process = await system.loadProcess(parseInt(id));
|
|
26
|
+
await process.input(req.body);
|
|
27
|
+
if (process.canRun()) {
|
|
28
|
+
await process.run();
|
|
29
|
+
}
|
|
30
|
+
res.sendStatus(204);
|
|
31
|
+
});
|
|
32
|
+
router.get('/:id/step/:number', async (req, res) => {
|
|
33
|
+
return res.send(await api.process.getStep(parseInt(req.params.id), parseInt(req.params.number)));
|
|
34
|
+
});
|
|
35
|
+
return router;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/server/router.ts"],"names":[],"mappings":"AAAA,OAAO,OAA4B,MAAM,SAAS,CAAA;AAGlD,OAAO,UAAU,MAAM,OAAO,CAAA;AAG9B,MAAM,UAAU,MAAM,CAAC,EAAgB,EAAE,YAAoC;IAE3E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;IAE1B,MAAM,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7C,CAAC,CACF,CAAA;IAED,MAAM,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACjE,CAAC,CACF,CAAA;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,EACb,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CACxC,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrC,KAAK,EACL,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,MAAM,EAAE,CACnD,CAAA;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;YACpB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAA;SACpB;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAChB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;QACzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;QACtD,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;YACpB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAA;SACpB;QACD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC,CACF,CAAA;IAED,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAC5B,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAClG,CAAC,CACF,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper to execute system command as a promise.
|
|
3
|
+
* @param command A command.
|
|
4
|
+
* @param quiet If set, do not output.
|
|
5
|
+
* @returns Srandard output if successfully executed.
|
|
6
|
+
*/
|
|
7
|
+
export declare function system(command: string, quiet?: boolean): Promise<string>;
|
|
8
|
+
/**
|
|
9
|
+
* A system call showing real time output of stdout.
|
|
10
|
+
* @param command
|
|
11
|
+
* @param quiet
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare function systemPiped(command: string, quiet?: boolean, ignoreError?: boolean): Promise<string | null>;
|
|
15
|
+
/**
|
|
16
|
+
* Check if the current environment is not development environment.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isProduction(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Check and return the operating environment.
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare function nodeEnv(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Check if the current environment is development environment.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isDevelopment(): boolean;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server operating system related functions.
|
|
3
|
+
*
|
|
4
|
+
* @module tasenor-common-node/src/system
|
|
5
|
+
*/
|
|
6
|
+
import { exec, spawn } from 'child_process';
|
|
7
|
+
import { log, error, note } from '@dataplug/tasenor-common';
|
|
8
|
+
/**
|
|
9
|
+
* Helper to execute system command as a promise.
|
|
10
|
+
* @param command A command.
|
|
11
|
+
* @param quiet If set, do not output.
|
|
12
|
+
* @returns Srandard output if successfully executed.
|
|
13
|
+
*/
|
|
14
|
+
export async function system(command, quiet = false) {
|
|
15
|
+
if (!quiet) {
|
|
16
|
+
log(`Running system command: ${command}`);
|
|
17
|
+
}
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
exec(command, { maxBuffer: 1024 * 1024 * 500 }, (err, stdout, stderr) => {
|
|
20
|
+
if (err) {
|
|
21
|
+
if (!quiet)
|
|
22
|
+
error(err);
|
|
23
|
+
return reject(err);
|
|
24
|
+
}
|
|
25
|
+
if (stderr && !quiet) {
|
|
26
|
+
note(`${stderr}`);
|
|
27
|
+
}
|
|
28
|
+
if (stdout && !quiet) {
|
|
29
|
+
log(`${stdout}`);
|
|
30
|
+
}
|
|
31
|
+
resolve(stdout);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A system call showing real time output of stdout.
|
|
37
|
+
* @param command
|
|
38
|
+
* @param quiet
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
export async function systemPiped(command, quiet = false, ignoreError = false) {
|
|
42
|
+
if (!quiet) {
|
|
43
|
+
log(`Running system command: ${command}`);
|
|
44
|
+
}
|
|
45
|
+
return new Promise((resolve, reject) => {
|
|
46
|
+
let out = '';
|
|
47
|
+
const proc = spawn(command, { shell: true });
|
|
48
|
+
proc.stdout.on('data', (data) => {
|
|
49
|
+
out += data;
|
|
50
|
+
if (!quiet)
|
|
51
|
+
process.stdout.write(data);
|
|
52
|
+
});
|
|
53
|
+
proc.stderr.on('data', (data) => {
|
|
54
|
+
if (!quiet)
|
|
55
|
+
process.stderr.write(data);
|
|
56
|
+
});
|
|
57
|
+
proc.on('close', (code) => {
|
|
58
|
+
if (code) {
|
|
59
|
+
if (ignoreError) {
|
|
60
|
+
resolve(null);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
reject(new Error(`Call '${command}' failed with code ${code}.`));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
resolve(out);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check if the current environment is not development environment.
|
|
74
|
+
*/
|
|
75
|
+
export function isProduction() {
|
|
76
|
+
return !isDevelopment();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Check and return the operating environment.
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
export function nodeEnv() {
|
|
83
|
+
const env = process.env.NODE_ENV || 'production';
|
|
84
|
+
if (!['development', 'staging', 'production'].includes(env)) {
|
|
85
|
+
throw new Error(`Invalid NODE_ENV ${env}.`);
|
|
86
|
+
}
|
|
87
|
+
return env;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check if the current environment is development environment.
|
|
91
|
+
*/
|
|
92
|
+
export function isDevelopment() {
|
|
93
|
+
return nodeEnv() === 'development';
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ID, ProcessConfig, ProcessName } from '@dataplug/tasenor-common';
|
|
2
|
+
import { KnexDatabase, Process, ProcessConnector, ProcessFileData, ProcessHandler, ProcessHandlerMap, ProcessStep } from '..';
|
|
3
|
+
/**
|
|
4
|
+
* Processing system mock for unit testing.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SystemMock {
|
|
7
|
+
db: KnexDatabase;
|
|
8
|
+
handlers: ProcessHandlerMap;
|
|
9
|
+
connector: ProcessConnector;
|
|
10
|
+
logger: {
|
|
11
|
+
info: (...msg: any[]) => void;
|
|
12
|
+
error: (...msg: any[]) => void;
|
|
13
|
+
};
|
|
14
|
+
constructor();
|
|
15
|
+
getTranslation(text: string, language: string): Promise<string>;
|
|
16
|
+
register(handler: ProcessHandler): void;
|
|
17
|
+
createProcess(name: ProcessName, filed: ProcessFileData[], config: ProcessConfig): Promise<Process>;
|
|
18
|
+
checkFinishAndFindDirections(handler: ProcessHandler, step: ProcessStep): Promise<void>;
|
|
19
|
+
getHandler(name: string): ProcessHandler;
|
|
20
|
+
loadProcess(id: ID): Promise<Process>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { UnitTestImportConnector } from './UnitTestImportConnector';
|
|
2
|
+
import { Process, ProcessFile } from '..';
|
|
3
|
+
/**
|
|
4
|
+
* Processing system mock for unit testing.
|
|
5
|
+
*/
|
|
6
|
+
export class SystemMock {
|
|
7
|
+
db;
|
|
8
|
+
handlers = {};
|
|
9
|
+
connector;
|
|
10
|
+
logger;
|
|
11
|
+
constructor() {
|
|
12
|
+
this.connector = new UnitTestImportConnector();
|
|
13
|
+
}
|
|
14
|
+
async getTranslation(text, language) {
|
|
15
|
+
return this.connector.getTranslation(text, language);
|
|
16
|
+
}
|
|
17
|
+
register(handler) {
|
|
18
|
+
//
|
|
19
|
+
}
|
|
20
|
+
async createProcess(name, filed, config) {
|
|
21
|
+
return new Process(this, name, config);
|
|
22
|
+
}
|
|
23
|
+
async checkFinishAndFindDirections(handler, step) {
|
|
24
|
+
//
|
|
25
|
+
}
|
|
26
|
+
getHandler(name) {
|
|
27
|
+
return this.handlers[name];
|
|
28
|
+
}
|
|
29
|
+
async loadProcess(id) {
|
|
30
|
+
return this.createProcess('dummy', [new ProcessFile({ name: 'file', encoding: 'utf-8', data: 'Hello' })], {});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ProcessingSystemMock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessingSystemMock.js","sourceRoot":"","sources":["../../../../src/testing/ProcessingSystemMock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAgB,OAAO,EAAoB,WAAW,EAAmE,MAAM,IAAI,CAAA;AAE1I;;GAEG;AACH,MAAM,OAAO,UAAU;IACrB,EAAE,CAAc;IAChB,QAAQ,GAAsB,EAAE,CAAA;IAChC,SAAS,CAAkB;IAC3B,MAAM,CAGL;IAED;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,QAAgB;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED,QAAQ,CAAC,OAAuB;QAC9B,EAAE;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAiB,EAAE,KAAwB,EAAE,MAAqB;QACpF,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,OAAuB,EAAE,IAAiB;QAC3E,EAAE;IACJ,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAM;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/G,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AccountAddress, AccountNumber, Asset, AssetExchange, AssetTransfer, AssetType, BalanceBookkeeping, Currency, StockValueData, TradeableAsset, ImportState, ProcessConfig, Directions, ID } from '@dataplug/tasenor-common';
|
|
2
|
+
import { TransactionImportConnector, ISPDemoServer } from '..';
|
|
3
|
+
/**
|
|
4
|
+
* A connector mock for unit testing.
|
|
5
|
+
*/
|
|
6
|
+
export declare class UnitTestImportConnector implements TransactionImportConnector {
|
|
7
|
+
private balance;
|
|
8
|
+
private number;
|
|
9
|
+
initialize(server: ISPDemoServer): Promise<void>;
|
|
10
|
+
addMoney(address: AccountAddress, number: AccountNumber, amount: number): void;
|
|
11
|
+
initializeBalances(time: Date, balances: BalanceBookkeeping, config: ProcessConfig): Promise<void>;
|
|
12
|
+
getAccountCanditates(): Promise<AccountNumber[]>;
|
|
13
|
+
getStock(time: Date, account: AccountNumber, symbol: TradeableAsset): Promise<StockValueData>;
|
|
14
|
+
getVAT(time: Date, transfer: AssetTransfer, currency: Currency): Promise<null | number>;
|
|
15
|
+
getRate(time: Date, type: AssetType, asset: Asset, currency: Currency, exchange?: AssetExchange | null): Promise<number>;
|
|
16
|
+
getTranslation(text: string, language: string): Promise<string>;
|
|
17
|
+
applyResult(): Promise<Record<string, unknown>>;
|
|
18
|
+
resultExists(processId: ID, args: unknown): Promise<boolean>;
|
|
19
|
+
success(res: ImportState): Promise<void>;
|
|
20
|
+
fail(res: ImportState): Promise<void>;
|
|
21
|
+
waiting(res: ImportState, directions: Directions): Promise<void>;
|
|
22
|
+
run(): Promise<void>;
|
|
23
|
+
rollback(processId: ID): Promise<boolean>;
|
|
24
|
+
}
|