@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.
Files changed (326) hide show
  1. package/.eslintrc.js +4 -0
  2. package/LICENSE +21 -0
  3. package/dist/tasenor-common-node/src/cli.d.ts +81 -0
  4. package/dist/tasenor-common-node/src/cli.js +242 -0
  5. package/dist/tasenor-common-node/src/cli.js.map +1 -0
  6. package/dist/tasenor-common-node/src/commands/account.d.ts +12 -0
  7. package/dist/tasenor-common-node/src/commands/account.js +58 -0
  8. package/dist/tasenor-common-node/src/commands/account.js.map +1 -0
  9. package/dist/tasenor-common-node/src/commands/balance.d.ts +11 -0
  10. package/dist/tasenor-common-node/src/commands/balance.js +117 -0
  11. package/dist/tasenor-common-node/src/commands/balance.js.map +1 -0
  12. package/dist/tasenor-common-node/src/commands/db.d.ts +14 -0
  13. package/dist/tasenor-common-node/src/commands/db.js +69 -0
  14. package/dist/tasenor-common-node/src/commands/db.js.map +1 -0
  15. package/dist/tasenor-common-node/src/commands/entry.d.ts +13 -0
  16. package/dist/tasenor-common-node/src/commands/entry.js +106 -0
  17. package/dist/tasenor-common-node/src/commands/entry.js.map +1 -0
  18. package/dist/tasenor-common-node/src/commands/import.d.ts +17 -0
  19. package/dist/tasenor-common-node/src/commands/import.js +140 -0
  20. package/dist/tasenor-common-node/src/commands/import.js.map +1 -0
  21. package/dist/tasenor-common-node/src/commands/importer.d.ts +13 -0
  22. package/dist/tasenor-common-node/src/commands/importer.js +71 -0
  23. package/dist/tasenor-common-node/src/commands/importer.js.map +1 -0
  24. package/dist/tasenor-common-node/src/commands/index.d.ts +191 -0
  25. package/dist/tasenor-common-node/src/commands/index.js +482 -0
  26. package/dist/tasenor-common-node/src/commands/index.js.map +1 -0
  27. package/dist/tasenor-common-node/src/commands/period.d.ts +12 -0
  28. package/dist/tasenor-common-node/src/commands/period.js +48 -0
  29. package/dist/tasenor-common-node/src/commands/period.js.map +1 -0
  30. package/dist/tasenor-common-node/src/commands/plugin.d.ts +15 -0
  31. package/dist/tasenor-common-node/src/commands/plugin.js +78 -0
  32. package/dist/tasenor-common-node/src/commands/plugin.js.map +1 -0
  33. package/dist/tasenor-common-node/src/commands/report.d.ts +11 -0
  34. package/dist/tasenor-common-node/src/commands/report.js +96 -0
  35. package/dist/tasenor-common-node/src/commands/report.js.map +1 -0
  36. package/dist/tasenor-common-node/src/commands/settings.d.ts +10 -0
  37. package/dist/tasenor-common-node/src/commands/settings.js +64 -0
  38. package/dist/tasenor-common-node/src/commands/settings.js.map +1 -0
  39. package/dist/tasenor-common-node/src/commands/stock.d.ts +8 -0
  40. package/dist/tasenor-common-node/src/commands/stock.js +73 -0
  41. package/dist/tasenor-common-node/src/commands/stock.js.map +1 -0
  42. package/dist/tasenor-common-node/src/commands/tag.d.ts +13 -0
  43. package/dist/tasenor-common-node/src/commands/tag.js +89 -0
  44. package/dist/tasenor-common-node/src/commands/tag.js.map +1 -0
  45. package/dist/tasenor-common-node/src/commands/tx.d.ts +12 -0
  46. package/dist/tasenor-common-node/src/commands/tx.js +81 -0
  47. package/dist/tasenor-common-node/src/commands/tx.js.map +1 -0
  48. package/dist/tasenor-common-node/src/commands/user.d.ts +12 -0
  49. package/dist/tasenor-common-node/src/commands/user.js +52 -0
  50. package/dist/tasenor-common-node/src/commands/user.js.map +1 -0
  51. package/dist/tasenor-common-node/src/database/BookkeeperImporter.d.ts +77 -0
  52. package/dist/tasenor-common-node/src/database/BookkeeperImporter.js +343 -0
  53. package/dist/tasenor-common-node/src/database/BookkeeperImporter.js.map +1 -0
  54. package/dist/tasenor-common-node/src/database/DB.d.ts +51 -0
  55. package/dist/tasenor-common-node/src/database/DB.js +354 -0
  56. package/dist/tasenor-common-node/src/database/DB.js.map +1 -0
  57. package/dist/tasenor-common-node/src/database/index.d.ts +7 -0
  58. package/dist/tasenor-common-node/src/database/index.js +8 -0
  59. package/dist/tasenor-common-node/src/database/index.js.map +1 -0
  60. package/dist/tasenor-common-node/src/doccer.d.ts +29 -0
  61. package/dist/tasenor-common-node/src/doccer.js +30 -0
  62. package/dist/tasenor-common-node/src/doccer.js.map +1 -0
  63. package/dist/tasenor-common-node/src/error.d.ts +30 -0
  64. package/dist/tasenor-common-node/src/error.js +35 -0
  65. package/dist/tasenor-common-node/src/error.js.map +1 -0
  66. package/dist/tasenor-common-node/src/export/Exporter.d.ts +69 -0
  67. package/dist/tasenor-common-node/src/export/Exporter.js +123 -0
  68. package/dist/tasenor-common-node/src/export/Exporter.js.map +1 -0
  69. package/dist/tasenor-common-node/src/export/TasenorExporter.d.ts +55 -0
  70. package/dist/tasenor-common-node/src/export/TasenorExporter.js +135 -0
  71. package/dist/tasenor-common-node/src/export/TasenorExporter.js.map +1 -0
  72. package/dist/tasenor-common-node/src/export/TilitinExporter.d.ts +71 -0
  73. package/dist/tasenor-common-node/src/export/TilitinExporter.js +290 -0
  74. package/dist/tasenor-common-node/src/export/TilitinExporter.js.map +1 -0
  75. package/dist/tasenor-common-node/src/export/index.d.ts +8 -0
  76. package/dist/tasenor-common-node/src/export/index.js +9 -0
  77. package/dist/tasenor-common-node/src/export/index.js.map +1 -0
  78. package/dist/tasenor-common-node/src/import/TextFileProcessHandler.d.ts +104 -0
  79. package/dist/tasenor-common-node/src/import/TextFileProcessHandler.js +354 -0
  80. package/dist/tasenor-common-node/src/import/TextFileProcessHandler.js.map +1 -0
  81. package/dist/tasenor-common-node/src/import/TransactionImportConnector.d.ts +38 -0
  82. package/dist/tasenor-common-node/src/import/TransactionImportConnector.js +27 -0
  83. package/dist/tasenor-common-node/src/import/TransactionImportConnector.js.map +1 -0
  84. package/dist/tasenor-common-node/src/import/TransactionImportHandler.d.ts +173 -0
  85. package/dist/tasenor-common-node/src/import/TransactionImportHandler.js +733 -0
  86. package/dist/tasenor-common-node/src/import/TransactionImportHandler.js.map +1 -0
  87. package/dist/tasenor-common-node/src/import/TransactionRules.d.ts +238 -0
  88. package/dist/tasenor-common-node/src/import/TransactionRules.js +522 -0
  89. package/dist/tasenor-common-node/src/import/TransactionRules.js.map +1 -0
  90. package/dist/tasenor-common-node/src/import/TransactionUI.d.ts +181 -0
  91. package/dist/tasenor-common-node/src/import/TransactionUI.js +482 -0
  92. package/dist/tasenor-common-node/src/import/TransactionUI.js.map +1 -0
  93. package/dist/tasenor-common-node/src/import/TransferAnalyzer.d.ts +324 -0
  94. package/dist/tasenor-common-node/src/import/TransferAnalyzer.js +1379 -0
  95. package/dist/tasenor-common-node/src/import/TransferAnalyzer.js.map +1 -0
  96. package/dist/tasenor-common-node/src/import/index.d.ts +11 -0
  97. package/dist/tasenor-common-node/src/import/index.js +12 -0
  98. package/dist/tasenor-common-node/src/import/index.js.map +1 -0
  99. package/dist/tasenor-common-node/src/index.d.ts +12 -0
  100. package/dist/tasenor-common-node/src/index.js +13 -0
  101. package/dist/tasenor-common-node/src/index.js.map +1 -0
  102. package/dist/tasenor-common-node/src/net/crypto.d.ts +33 -0
  103. package/dist/tasenor-common-node/src/net/crypto.js +63 -0
  104. package/dist/tasenor-common-node/src/net/crypto.js.map +1 -0
  105. package/dist/tasenor-common-node/src/net/git.d.ts +49 -0
  106. package/dist/tasenor-common-node/src/net/git.js +137 -0
  107. package/dist/tasenor-common-node/src/net/git.js.map +1 -0
  108. package/dist/tasenor-common-node/src/net/index.d.ts +10 -0
  109. package/dist/tasenor-common-node/src/net/index.js +11 -0
  110. package/dist/tasenor-common-node/src/net/index.js.map +1 -0
  111. package/dist/tasenor-common-node/src/net/middleware.d.ts +61 -0
  112. package/dist/tasenor-common-node/src/net/middleware.js +220 -0
  113. package/dist/tasenor-common-node/src/net/middleware.js.map +1 -0
  114. package/dist/tasenor-common-node/src/net/tokens.d.ts +50 -0
  115. package/dist/tasenor-common-node/src/net/tokens.js +141 -0
  116. package/dist/tasenor-common-node/src/net/tokens.js.map +1 -0
  117. package/dist/tasenor-common-node/src/net/vault.d.ts +67 -0
  118. package/dist/tasenor-common-node/src/net/vault.js +145 -0
  119. package/dist/tasenor-common-node/src/net/vault.js.map +1 -0
  120. package/dist/tasenor-common-node/src/plugins/BackendPlugin.d.ts +91 -0
  121. package/dist/tasenor-common-node/src/plugins/BackendPlugin.js +165 -0
  122. package/dist/tasenor-common-node/src/plugins/BackendPlugin.js.map +1 -0
  123. package/dist/tasenor-common-node/src/plugins/DataPlugin.d.ts +13 -0
  124. package/dist/tasenor-common-node/src/plugins/DataPlugin.js +26 -0
  125. package/dist/tasenor-common-node/src/plugins/DataPlugin.js.map +1 -0
  126. package/dist/tasenor-common-node/src/plugins/ImportPlugin.d.ts +188 -0
  127. package/dist/tasenor-common-node/src/plugins/ImportPlugin.js +204 -0
  128. package/dist/tasenor-common-node/src/plugins/ImportPlugin.js.map +1 -0
  129. package/dist/tasenor-common-node/src/plugins/ReportPlugin.d.ts +132 -0
  130. package/dist/tasenor-common-node/src/plugins/ReportPlugin.js +393 -0
  131. package/dist/tasenor-common-node/src/plugins/ReportPlugin.js.map +1 -0
  132. package/dist/tasenor-common-node/src/plugins/SchemePlugin.d.ts +34 -0
  133. package/dist/tasenor-common-node/src/plugins/SchemePlugin.js +47 -0
  134. package/dist/tasenor-common-node/src/plugins/SchemePlugin.js.map +1 -0
  135. package/dist/tasenor-common-node/src/plugins/ServicePlugin.d.ts +80 -0
  136. package/dist/tasenor-common-node/src/plugins/ServicePlugin.js +168 -0
  137. package/dist/tasenor-common-node/src/plugins/ServicePlugin.js.map +1 -0
  138. package/dist/tasenor-common-node/src/plugins/ToolPlugin.d.ts +27 -0
  139. package/dist/tasenor-common-node/src/plugins/ToolPlugin.js +37 -0
  140. package/dist/tasenor-common-node/src/plugins/ToolPlugin.js.map +1 -0
  141. package/dist/tasenor-common-node/src/plugins/index.d.ts +13 -0
  142. package/dist/tasenor-common-node/src/plugins/index.js +14 -0
  143. package/dist/tasenor-common-node/src/plugins/index.js.map +1 -0
  144. package/dist/tasenor-common-node/src/plugins/plugins.d.ts +101 -0
  145. package/dist/tasenor-common-node/src/plugins/plugins.js +292 -0
  146. package/dist/tasenor-common-node/src/plugins/plugins.js.map +1 -0
  147. package/dist/tasenor-common-node/src/process/Process.d.ts +108 -0
  148. package/dist/tasenor-common-node/src/process/Process.js +335 -0
  149. package/dist/tasenor-common-node/src/process/Process.js.map +1 -0
  150. package/dist/tasenor-common-node/src/process/ProcessConnector.d.ts +24 -0
  151. package/dist/tasenor-common-node/src/process/ProcessConnector.js +28 -0
  152. package/dist/tasenor-common-node/src/process/ProcessConnector.js.map +1 -0
  153. package/dist/tasenor-common-node/src/process/ProcessFile.d.ts +69 -0
  154. package/dist/tasenor-common-node/src/process/ProcessFile.js +145 -0
  155. package/dist/tasenor-common-node/src/process/ProcessFile.js.map +1 -0
  156. package/dist/tasenor-common-node/src/process/ProcessHandler.d.ts +60 -0
  157. package/dist/tasenor-common-node/src/process/ProcessHandler.js +73 -0
  158. package/dist/tasenor-common-node/src/process/ProcessHandler.js.map +1 -0
  159. package/dist/tasenor-common-node/src/process/ProcessStep.d.ts +52 -0
  160. package/dist/tasenor-common-node/src/process/ProcessStep.js +78 -0
  161. package/dist/tasenor-common-node/src/process/ProcessStep.js.map +1 -0
  162. package/dist/tasenor-common-node/src/process/ProcessingSystem.d.ts +60 -0
  163. package/dist/tasenor-common-node/src/process/ProcessingSystem.js +182 -0
  164. package/dist/tasenor-common-node/src/process/ProcessingSystem.js.map +1 -0
  165. package/dist/tasenor-common-node/src/process/index.d.ts +11 -0
  166. package/dist/tasenor-common-node/src/process/index.js +12 -0
  167. package/dist/tasenor-common-node/src/process/index.js.map +1 -0
  168. package/dist/tasenor-common-node/src/reports/conversions.d.ts +8 -0
  169. package/dist/tasenor-common-node/src/reports/conversions.js +47 -0
  170. package/dist/tasenor-common-node/src/reports/conversions.js.map +1 -0
  171. package/dist/tasenor-common-node/src/reports/index.d.ts +6 -0
  172. package/dist/tasenor-common-node/src/reports/index.js +7 -0
  173. package/dist/tasenor-common-node/src/reports/index.js.map +1 -0
  174. package/dist/tasenor-common-node/src/server/ISPDemoServer.d.ts +43 -0
  175. package/dist/tasenor-common-node/src/server/ISPDemoServer.js +112 -0
  176. package/dist/tasenor-common-node/src/server/ISPDemoServer.js.map +1 -0
  177. package/dist/tasenor-common-node/src/server/api.d.ts +15 -0
  178. package/dist/tasenor-common-node/src/server/api.js +27 -0
  179. package/dist/tasenor-common-node/src/server/api.js.map +1 -0
  180. package/dist/tasenor-common-node/src/server/index.d.ts +7 -0
  181. package/dist/tasenor-common-node/src/server/index.js +8 -0
  182. package/dist/tasenor-common-node/src/server/index.js.map +1 -0
  183. package/dist/tasenor-common-node/src/server/router.d.ts +5 -0
  184. package/dist/tasenor-common-node/src/server/router.js +37 -0
  185. package/dist/tasenor-common-node/src/server/router.js.map +1 -0
  186. package/dist/tasenor-common-node/src/system.d.ts +27 -0
  187. package/dist/tasenor-common-node/src/system.js +95 -0
  188. package/dist/tasenor-common-node/src/system.js.map +1 -0
  189. package/dist/tasenor-common-node/src/testing/ProcessingSystemMock.d.ts +21 -0
  190. package/dist/tasenor-common-node/src/testing/ProcessingSystemMock.js +33 -0
  191. package/dist/tasenor-common-node/src/testing/ProcessingSystemMock.js.map +1 -0
  192. package/dist/tasenor-common-node/src/testing/UnitTestImportConnector.d.ts +24 -0
  193. package/dist/tasenor-common-node/src/testing/UnitTestImportConnector.js +68 -0
  194. package/dist/tasenor-common-node/src/testing/UnitTestImportConnector.js.map +1 -0
  195. package/dist/tasenor-common-node/src/testing/UnitTester.d.ts +64 -0
  196. package/dist/tasenor-common-node/src/testing/UnitTester.js +199 -0
  197. package/dist/tasenor-common-node/src/testing/UnitTester.js.map +1 -0
  198. package/dist/tasenor-common-node/src/testing/index.d.ts +4 -0
  199. package/dist/tasenor-common-node/src/testing/index.js +5 -0
  200. package/dist/tasenor-common-node/src/testing/index.js.map +1 -0
  201. package/dist/tasenor-common-node/src/testing/test-handlers.d.ts +13 -0
  202. package/dist/tasenor-common-node/src/testing/test-handlers.js +52 -0
  203. package/dist/tasenor-common-node/src/testing/test-handlers.js.map +1 -0
  204. package/dist/tasenor-common-node/tests/TransactionRules.spec.d.ts +1 -0
  205. package/dist/tasenor-common-node/tests/TransactionRules.spec.js +64 -0
  206. package/dist/tasenor-common-node/tests/TransactionRules.spec.js.map +1 -0
  207. package/dist/tasenor-common-node/tests/TransferAnalyzer-account-address.spec.d.ts +1 -0
  208. package/dist/tasenor-common-node/tests/TransferAnalyzer-account-address.spec.js +80 -0
  209. package/dist/tasenor-common-node/tests/TransferAnalyzer-account-address.spec.js.map +1 -0
  210. package/dist/tasenor-common-node/tests/TransferAnalyzer-buying-and-selling.spec.d.ts +1 -0
  211. package/dist/tasenor-common-node/tests/TransferAnalyzer-buying-and-selling.spec.js +342 -0
  212. package/dist/tasenor-common-node/tests/TransferAnalyzer-buying-and-selling.spec.js.map +1 -0
  213. package/dist/tasenor-common-node/tests/TransferAnalyzer-loans.spec.d.ts +1 -0
  214. package/dist/tasenor-common-node/tests/TransferAnalyzer-loans.spec.js +174 -0
  215. package/dist/tasenor-common-node/tests/TransferAnalyzer-loans.spec.js.map +1 -0
  216. package/dist/tasenor-common-node/tests/TransferAnalyzer-multiple-null-amounts.spec.d.ts +1 -0
  217. package/dist/tasenor-common-node/tests/TransferAnalyzer-multiple-null-amounts.spec.js +175 -0
  218. package/dist/tasenor-common-node/tests/TransferAnalyzer-multiple-null-amounts.spec.js.map +1 -0
  219. package/dist/tasenor-common-node/tests/password.spec.d.ts +1 -0
  220. package/dist/tasenor-common-node/tests/password.spec.js +8 -0
  221. package/dist/tasenor-common-node/tests/password.spec.js.map +1 -0
  222. package/dist/tasenor-common-node/tests/tokens.spec.d.ts +1 -0
  223. package/dist/tasenor-common-node/tests/tokens.spec.js +49 -0
  224. package/dist/tasenor-common-node/tests/tokens.spec.js.map +1 -0
  225. package/dist/tasenor-common-node/tests/vault.spec.d.ts +1 -0
  226. package/dist/tasenor-common-node/tests/vault.spec.js +19 -0
  227. package/dist/tasenor-common-node/tests/vault.spec.js.map +1 -0
  228. package/dist/tasenor-common-plugins/src/CoinbaseImport/backend/CoinbaseHandler.d.ts +11 -0
  229. package/dist/tasenor-common-plugins/src/CoinbaseImport/backend/CoinbaseHandler.js +30 -0
  230. package/dist/tasenor-common-plugins/src/CoinbaseImport/backend/CoinbaseHandler.js.map +1 -0
  231. package/dist/tasenor-common-plugins/src/IncomeAndExpenses/backend/index.d.ts +5 -0
  232. package/dist/tasenor-common-plugins/src/IncomeAndExpenses/backend/index.js +350 -0
  233. package/dist/tasenor-common-plugins/src/IncomeAndExpenses/backend/index.js.map +1 -0
  234. package/dist/tasenor-common-plugins/src/KrakenImport/backend/KrakenHandler.d.ts +23 -0
  235. package/dist/tasenor-common-plugins/src/KrakenImport/backend/KrakenHandler.js +83 -0
  236. package/dist/tasenor-common-plugins/src/KrakenImport/backend/KrakenHandler.js.map +1 -0
  237. package/dist/tasenor-common-plugins/src/LynxImport/backend/LynxHandler.d.ts +28 -0
  238. package/dist/tasenor-common-plugins/src/LynxImport/backend/LynxHandler.js +340 -0
  239. package/dist/tasenor-common-plugins/src/LynxImport/backend/LynxHandler.js.map +1 -0
  240. package/dist/tasenor-common-plugins/src/NordeaImport/backend/NordeaHandler.d.ts +11 -0
  241. package/dist/tasenor-common-plugins/src/NordeaImport/backend/NordeaHandler.js +39 -0
  242. package/dist/tasenor-common-plugins/src/NordeaImport/backend/NordeaHandler.js.map +1 -0
  243. package/dist/tasenor-common-plugins/src/NordnetImport/backend/NordnetHandler.d.ts +17 -0
  244. package/dist/tasenor-common-plugins/src/NordnetImport/backend/NordnetHandler.js +66 -0
  245. package/dist/tasenor-common-plugins/src/NordnetImport/backend/NordnetHandler.js.map +1 -0
  246. package/dist/tasenor-common-plugins/src/TITOImport/backend/TITOHandler.d.ts +13 -0
  247. package/dist/tasenor-common-plugins/src/TITOImport/backend/TITOHandler.js +241 -0
  248. package/dist/tasenor-common-plugins/src/TITOImport/backend/TITOHandler.js.map +1 -0
  249. package/jest.config.js +1 -0
  250. package/package.json +62 -0
  251. package/src/cli.ts +267 -0
  252. package/src/commands/account.ts +69 -0
  253. package/src/commands/balance.ts +131 -0
  254. package/src/commands/db.ts +84 -0
  255. package/src/commands/entry.ts +117 -0
  256. package/src/commands/import.ts +160 -0
  257. package/src/commands/importer.ts +84 -0
  258. package/src/commands/index.ts +534 -0
  259. package/src/commands/period.ts +59 -0
  260. package/src/commands/plugin.ts +95 -0
  261. package/src/commands/report.ts +113 -0
  262. package/src/commands/settings.ts +75 -0
  263. package/src/commands/stock.ts +80 -0
  264. package/src/commands/tag.ts +102 -0
  265. package/src/commands/tx.ts +93 -0
  266. package/src/commands/user.ts +65 -0
  267. package/src/database/BookkeeperImporter.ts +358 -0
  268. package/src/database/DB.ts +396 -0
  269. package/src/database/index.ts +7 -0
  270. package/src/doccer.ts +29 -0
  271. package/src/error.ts +32 -0
  272. package/src/export/Exporter.ts +136 -0
  273. package/src/export/TasenorExporter.ts +144 -0
  274. package/src/export/TilitinExporter.ts +302 -0
  275. package/src/export/index.ts +8 -0
  276. package/src/import/TextFileProcessHandler.ts +384 -0
  277. package/src/import/TransactionImportConnector.ts +65 -0
  278. package/src/import/TransactionImportHandler.ts +819 -0
  279. package/src/import/TransactionRules.ts +570 -0
  280. package/src/import/TransactionUI.ts +520 -0
  281. package/src/import/TransferAnalyzer.ts +1450 -0
  282. package/src/import/index.ts +11 -0
  283. package/src/index.ts +12 -0
  284. package/src/net/crypto.ts +69 -0
  285. package/src/net/git.ts +151 -0
  286. package/src/net/index.ts +10 -0
  287. package/src/net/middleware.ts +261 -0
  288. package/src/net/tokens.ts +140 -0
  289. package/src/net/vault.ts +161 -0
  290. package/src/plugins/BackendPlugin.ts +188 -0
  291. package/src/plugins/DataPlugin.ts +29 -0
  292. package/src/plugins/ImportPlugin.ts +211 -0
  293. package/src/plugins/ReportPlugin.ts +443 -0
  294. package/src/plugins/SchemePlugin.ts +56 -0
  295. package/src/plugins/ServicePlugin.ts +188 -0
  296. package/src/plugins/ToolPlugin.ts +44 -0
  297. package/src/plugins/index.ts +13 -0
  298. package/src/plugins/plugins.ts +345 -0
  299. package/src/process/Process.ts +368 -0
  300. package/src/process/ProcessConnector.ts +45 -0
  301. package/src/process/ProcessFile.ts +169 -0
  302. package/src/process/ProcessHandler.ts +94 -0
  303. package/src/process/ProcessStep.ts +100 -0
  304. package/src/process/ProcessingSystem.ts +202 -0
  305. package/src/process/index.ts +11 -0
  306. package/src/reports/conversions.ts +52 -0
  307. package/src/reports/index.ts +6 -0
  308. package/src/server/ISPDemoServer.ts +122 -0
  309. package/src/server/api.ts +37 -0
  310. package/src/server/index.ts +7 -0
  311. package/src/server/router.ts +60 -0
  312. package/src/system.ts +96 -0
  313. package/src/testing/ProcessingSystemMock.ts +45 -0
  314. package/src/testing/UnitTestImportConnector.ts +86 -0
  315. package/src/testing/UnitTester.ts +231 -0
  316. package/src/testing/index.ts +4 -0
  317. package/src/testing/test-handlers.ts +55 -0
  318. package/tests/TransactionRules.spec.ts +73 -0
  319. package/tests/TransferAnalyzer-account-address.spec.ts +87 -0
  320. package/tests/TransferAnalyzer-buying-and-selling.spec.ts +354 -0
  321. package/tests/TransferAnalyzer-loans.spec.ts +197 -0
  322. package/tests/TransferAnalyzer-multiple-null-amounts.spec.ts +181 -0
  323. package/tests/password.spec.ts +8 -0
  324. package/tests/tokens.spec.ts +52 -0
  325. package/tests/vault.spec.ts +20 -0
  326. package/tsconfig.json +13 -0
@@ -0,0 +1,204 @@
1
+ import { log } from '@dataplug/tasenor-common';
2
+ import fs from 'fs';
3
+ import { BackendPlugin } from './BackendPlugin';
4
+ /**
5
+ * A plugin providing import services for one or more file formats.
6
+ */
7
+ export class ImportPlugin extends BackendPlugin {
8
+ handler;
9
+ UI;
10
+ constructor(handler) {
11
+ super();
12
+ this.handler = handler;
13
+ this.UI = handler.UI;
14
+ // This class is used as its own for translations. Let us initialize it.
15
+ this.languages = this.getLanguages();
16
+ }
17
+ /**
18
+ * Get common translations for all import plugins.
19
+ * @returns
20
+ */
21
+ getLanguages() {
22
+ return {
23
+ en: {
24
+ 'account-debt-currency': 'Account for recording debt in {asset} currency',
25
+ 'account-deposit-currency': 'Account for depositing {asset} currency',
26
+ 'account-deposit-external': 'Account for external deposit source for {asset}',
27
+ 'account-distribution-currency': 'Account to pay our {asset} dividends from',
28
+ 'account-distribution-statement': 'Account to record our dividend payments for {asset}',
29
+ 'account-dividend-currency': 'Account for recording received {asset} dividends',
30
+ 'account-expense-currency': 'Account for expenses in {asset} currency',
31
+ 'account-expense-statement': 'Account for recording expense {asset}',
32
+ 'account-fee-currency': 'Account for fees in {asset} currency',
33
+ 'account-fee-crypto': 'Account for fees in {asset} crypto currency',
34
+ 'account-forex-currency': 'Account for {asset} foreign exchange',
35
+ 'account-income-currency': 'Account for income in {asset} currency',
36
+ 'account-income-statement': 'Account for recording income {asset}',
37
+ 'account-investment-currency': 'Account for receiving investments in {asset} currency',
38
+ 'account-investment-statement': 'Account for recording investment {asset}',
39
+ 'account-tax-currency': 'Account for recording tax in currency {asset}',
40
+ 'account-tax-statement': 'Account for tax statament {asset}',
41
+ 'account-trade-crypto': 'Account for trading crypto currency {asset}',
42
+ 'account-trade-stock': 'Account for trading stocks {asset}',
43
+ 'account-trade-currency': 'Account for using currency {asset} for trading',
44
+ 'account-transfer-currency': 'Account for transferring currency {asset}',
45
+ 'account-transfer-external': 'Account for transferring to/from external source {asset}',
46
+ 'account-withdrawal-currency': 'Account for withdrawing currency {asset}',
47
+ 'account-withdrawal-external': 'Account for withdrawing from external source {asset}',
48
+ 'asset-type-crypto': 'a crypto currency',
49
+ 'asset-type-currency': 'a currency',
50
+ 'asset-type-external': 'an external instance',
51
+ 'asset-type-statement': 'a statement recording',
52
+ 'asset-type-stock': 'a stock exchange traded asset',
53
+ 'asset-type-short': 'a short position',
54
+ 'import-text-buy': 'Buy {takeAmount} {takeAsset}',
55
+ 'import-text-correction': '{name}',
56
+ 'import-text-deposit': 'Deposit to {exchange} service',
57
+ 'import-text-distribution': '{name}',
58
+ 'import-text-dividend': 'Dividend {asset}',
59
+ 'import-text-expense': '{name}',
60
+ 'import-text-forex': 'Sell currency {giveAsset} for {takeAsset}',
61
+ 'import-text-income': '{name}',
62
+ 'import-text-investment': '{name}',
63
+ 'import-text-sell': 'Sell {giveAmount} {giveAsset}',
64
+ 'import-text-short-buy': 'Closing short position {takeAmount} {takeAsset}',
65
+ 'import-text-short-sell': 'Short selling {giveAmount} {giveAsset}',
66
+ 'import-text-tax': '{name}',
67
+ 'import-text-trade': 'Trade {giveAmount} {giveAsset} {takeAmount} {takeAsset}',
68
+ 'import-text-transfer': '{service} transfer',
69
+ 'import-text-withdrawal': 'Withdrawal from {exchange} service',
70
+ 'reason-deposit': 'deposit',
71
+ 'reason-dividend': 'payment',
72
+ 'reason-expense': 'expense',
73
+ 'reason-fee': 'fee',
74
+ 'reason-forex': 'exchange',
75
+ 'reason-income': 'income',
76
+ 'reason-trade': 'trading',
77
+ 'reason-transfer': 'transfers',
78
+ 'reason-withdrawal': 'withdrawal',
79
+ 'note-split': 'Split',
80
+ 'note-converted': 'Converted',
81
+ 'note-spinoff': 'Spinoff',
82
+ 'note-renamed': 'Renamed',
83
+ 'note-old-name': 'Old name',
84
+ 'note-new-name': 'New name',
85
+ 'note-renaming': 'Renaming'
86
+ },
87
+ fi: {
88
+ 'account-debt-currency': 'Tili veloille valuutassa {asset}',
89
+ 'account-deposit-currency': 'Tili valuutan {asset} talletuksille',
90
+ 'account-deposit-external': 'Vastatili ulkoisille talletuksille {asset}',
91
+ 'account-distribution-currency': 'Tili, josta maksetaan {asset} osingot',
92
+ 'account-distribution-statement': 'Raportointitili, johon kirjataan maksettavat osingot {asset}',
93
+ 'account-dividend-currency': 'Tili saaduista {asset} osingoista',
94
+ 'account-expense-currency': 'Tili kuluille {asset} valuutassa',
95
+ 'account-expense-statement': 'Raportointitili {asset} kuluille',
96
+ 'account-fee-currency': 'Tili käyttömaksuille {asset} valuutassa',
97
+ 'account-fee-crypto': 'Tili käyttömaksuille {asset} kryptovaluutassa',
98
+ 'account-forex-currency': 'Valuutanvaihtotili {asset} valuutalle',
99
+ 'account-income-currency': 'Tili tuloille {asset} valuutassa',
100
+ 'account-income-statement': 'Raportointitili {asset} tuloille',
101
+ 'account-investment-currency': 'Tili saaduille sijoituksille {asset} valuutassa',
102
+ 'account-investment-statement': 'Raportointitili sijoituksille {asset}',
103
+ 'account-tax-currency': 'Verot {asset} valuutassa',
104
+ 'account-tax-statement': 'Raportointitili veroille {asset}',
105
+ 'account-trade-crypto': 'Vaihto-omaisuustili {asset} kryptovaluutalle',
106
+ 'account-trade-stock': 'Vaihto-omaisuustili {asset} osakkeelle',
107
+ 'account-trade-currency': 'Valuuttatili {asset} valuutalle vaihto-omaisuuden hankintaan',
108
+ 'account-transfer-currency': 'Siirtotili {asset} valuutalle',
109
+ 'account-transfer-external': 'Siirtotili ulkoiseen kohteeseen {asset}',
110
+ 'account-withdrawal-currency': 'Nostotili {asset} valuutalle',
111
+ 'account-withdrawal-external': 'Vastatili {asset} nostoille',
112
+ 'asset-type-crypto': 'kryptovaluutta',
113
+ 'asset-type-currency': 'valuutta',
114
+ 'asset-type-external': 'ulkopuolinen instanssi',
115
+ 'asset-type-statement': 'raportointi',
116
+ 'asset-type-stock': 'osake tai vastaava',
117
+ 'asset-type-short': 'lyhyeksi myyty positio',
118
+ 'Do you want to import also currency deposits here?': 'Haluatko tuoda myös valuuttojen talletukset tänne?',
119
+ 'Do you want to import also currency withdrawals here?': 'Haluatko tuoda myös valuuttojen nostot tänne?',
120
+ 'import-text-buy': 'Osto {takeAmount} {takeAsset}',
121
+ 'import-text-correction': '{name}',
122
+ 'import-text-deposit': 'Talletus {exchange}-palveluun',
123
+ 'import-text-distribution': '{name}',
124
+ 'import-text-dividend': 'Osinko {asset}',
125
+ 'import-text-expense': '{name}',
126
+ 'import-text-forex': 'Valuutanvaihto',
127
+ 'import-text-income': '{name}',
128
+ 'import-text-investment': '{name}',
129
+ 'import-text-sell': 'Myynti {giveAmount} {giveAsset}',
130
+ 'import-text-short-buy': 'Suljettu lyhyeksimyynti {takeAmount} {takeAsset}',
131
+ 'import-text-short-sell': 'Lyhyeksimyynti {giveAmount} {giveAsset}',
132
+ 'import-text-tax': '{name}',
133
+ 'import-text-trade': 'Vaihto {giveAmount} {giveAsset} {takeAmount} {takeAsset}',
134
+ 'import-text-transfer': '{service} siirto',
135
+ 'import-text-withdrawal': 'Nosto {exchange}-palvelusta',
136
+ 'Parsing error in expression `{expr}`: {message}': 'Virhe laskukaavassa `{expr}`: {message}',
137
+ 'reason-deposit': 'talletus',
138
+ 'reason-dividend': 'maksu',
139
+ 'reason-expense': 'meno',
140
+ 'reason-fee': 'kulu',
141
+ 'reason-forex': 'vaihto',
142
+ 'reason-income': 'tulo',
143
+ 'reason-trade': 'vaihdanta',
144
+ 'reason-transfer': 'siirto',
145
+ 'reason-withdrawal': 'nosto',
146
+ 'Retried successfully': 'Uudelleenyritys onnistui',
147
+ 'Retry failed': 'Uudelleenyritys ei onnistunut',
148
+ 'Select one of the following:': 'Valitse yksi seuraavista:',
149
+ 'Additional information needed': 'Tarvitaan lisätietoja',
150
+ 'Based on the following imported lines': 'Seuraavien tuotujen rivien perusteella',
151
+ 'Do you want to use the same account for all of them?': 'Haluatko käyttää samaa tiliä kaikille samanlaisille?',
152
+ Created: 'Luotuja',
153
+ Duplicates: 'Aiemmin luotuja',
154
+ Ignored: 'Väliinjätettyjä',
155
+ Skipped: 'Ohitettuja',
156
+ 'Account Changes': 'Tilien muutokset',
157
+ 'Process Was Successfully Completed!': 'Prosessointi saatu päätökseen onnistuneesti!',
158
+ 'Do we allow short selling of assets?': 'Sallitaanko lyhyeksi myynti?',
159
+ January: 'tammikuu',
160
+ February: 'helmikuu',
161
+ March: 'maaliskuu',
162
+ April: 'huhtikuu',
163
+ May: 'toukokuu',
164
+ June: 'kesäkuu',
165
+ July: 'heinäkuu',
166
+ August: 'elokuu',
167
+ September: 'syyskuu',
168
+ October: 'lokakuu',
169
+ November: 'marraskuu',
170
+ December: 'joulukuu',
171
+ 'note-split': 'splitti',
172
+ 'note-converted': 'konvertoitu',
173
+ 'note-spinoff': 'irtautuminen',
174
+ 'note-renamed': 'uudelleennimeäminen',
175
+ 'note-old-name': 'vanha nimi',
176
+ 'note-new-name': 'uusi nimi',
177
+ 'The account below has negative balance. If you want to record it to the separate debt account, please select another account below:': 'Tilillä {account} on negatiivinen saldo. Jos haluat kirjata negatiiviset saldot erilliselle velkatilille, valitse tili seuraavasta:',
178
+ 'The date {date} falls outside of the period {firstDate} to {lastDate}.': 'Päivämäärä {date} on tilikauden {firstDate} - {lastDate} ulkopuolella.',
179
+ 'What do we do with that kind of transactions?': 'Mitä tämänkaltaisille tapahtumille tulisi tehdä?',
180
+ 'Ignore transaction': 'Jättää väliin',
181
+ 'Halt with an error': 'Keskeyttää tuonti virheeseen',
182
+ 'Is transaction fee of type {type} already included in the {reason} total?': 'Onko {reason}-tapahtumassa tyypin {type} kulut lisätty valmiiksi yhteissummaan?',
183
+ 'Select contra account for imported transactions, i.e. cash account.': 'Valitse vastatili tuotaville tapahtumille (esim. kohteen käteistili).'
184
+ }
185
+ };
186
+ }
187
+ /**
188
+ * Get instance of internal handler class.
189
+ * @returns
190
+ */
191
+ getHandler() {
192
+ return this.handler;
193
+ }
194
+ /**
195
+ * Load and return default rules from the JSON-rules file.
196
+ * @returns
197
+ */
198
+ getRules() {
199
+ const path = this.filePath('rules.json');
200
+ log(`Reading rules ${path}.`);
201
+ return JSON.parse(fs.readFileSync(path).toString('utf-8')).rules;
202
+ }
203
+ }
204
+ //# sourceMappingURL=ImportPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/ImportPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import { ReportOptions, ReportID, ReportFlagName, ReportItem, ReportQueryParams, ReportLine, AccountNumber, ReportColumnDefinition, PeriodModel, ReportFormat, Language } from '@dataplug/tasenor-common';
2
+ import { BackendPlugin } from './BackendPlugin';
3
+ /**
4
+ * A plugin providing one or more reports.
5
+ */
6
+ export declare class ReportPlugin extends BackendPlugin {
7
+ private formats;
8
+ protected schemes: Set<string> | undefined;
9
+ constructor(...formats: ReportID[]);
10
+ /**
11
+ * Read in report struture file.
12
+ */
13
+ getReportStructure(id: ReportID, lang: Language): ReportFormat | undefined;
14
+ /**
15
+ * Get the list of supported languages.
16
+ */
17
+ getLanguages(): Language[];
18
+ /**
19
+ * Check if the given report is provided by this plugin.
20
+ * @param id
21
+ */
22
+ hasReport(id: any): boolean;
23
+ /**
24
+ * Get the list of report IDs.
25
+ */
26
+ getFormats(scheme?: string | undefined): ReportID[];
27
+ /**
28
+ * Return UI option definitions for the given report.
29
+ * @param id
30
+ */
31
+ getReportOptions(id: any): ReportOptions;
32
+ /**
33
+ * Convert time stamp or Date to date string YYYY-MM-DD.
34
+ * @param {Number} timestamp
35
+ */
36
+ time2str(timestamp: any): any;
37
+ /**
38
+ * Construct rendering information from report flags
39
+ * @param flags
40
+ * @returns
41
+ */
42
+ flags2item(flags: ReportFlagName[]): ReportItem;
43
+ /**
44
+ * Construct column definitions for the report.
45
+ * @param id
46
+ * @param entries
47
+ * @param options
48
+ */
49
+ getColumns(id: any, entries: any, options: ReportOptions, settings: any): Promise<ReportColumnDefinition[]>;
50
+ /**
51
+ * Construct a title for a column.
52
+ * @param id
53
+ * @param period
54
+ * @param options
55
+ */
56
+ columnTitle(id: ReportID, period: PeriodModel, options: ReportOptions): string;
57
+ /**
58
+ * Force some options, if needed.
59
+ * @returns
60
+ */
61
+ forceOptions(options: any): {
62
+ negateAssetAndProfit: boolean;
63
+ addPreviousPeriod: boolean;
64
+ };
65
+ /**
66
+ * Construct a SQL for the report query.
67
+ * @param db
68
+ * @param options
69
+ * @returns A knex query prepared.
70
+ */
71
+ constructSqlQuery(db: any, options: any, settings: any): Promise<any>;
72
+ /**
73
+ * Construct a report data for the report.
74
+ * @param db
75
+ * @param id
76
+ * @param options
77
+ *
78
+ * Resulting entries on data is an array of objects containing:
79
+ * * `tab` Zero originating indentation number.
80
+ * * `error` If true, this row has an error.
81
+ * * `required` If true, this is always shown.
82
+ * * `hideTotal` if true, do not show total.
83
+ * * `bold` if true, show in bold.
84
+ * * `italic` if true, show in italic.
85
+ * * `bigger` if true, show in bigger font.
86
+ * * `fullWidth` if set, the content in column index defined here is expanded to cover all columns.
87
+ * * `useRemainingColumns` if set, extend this column index to use all the rest columns in the row.
88
+ * * `accountDetails` if true, after this are summarized accounts under this entry.
89
+ * * `isAccount` if true, this is an account entry.
90
+ * * `needLocalization` if set, value should be localized, i.e. translated via Localization component in ui.
91
+ * * `name` Title of the entry.
92
+ * * `number` Account number if the entry is an account.
93
+ * * `amounts` An object with entry for each column mapping name of the columnt to the value to display.
94
+ */
95
+ renderReport(db: any, id: any, options?: ReportQueryParams): Promise<any>;
96
+ /**
97
+ * Filter out entries not matching to the report selected parameters.
98
+ * @param id
99
+ * @param entries
100
+ * @param options
101
+ * @param settings
102
+ */
103
+ doFiltering(id: any, entries: any, options: any, settings: any): any;
104
+ /**
105
+ * This function converts the list of relevant entries to the column report data.
106
+ * @param id
107
+ * @param entries
108
+ * @param options
109
+ * @param columns
110
+ */
111
+ preProcess(id: any, entries: any, options: any, settings: any, columns: any): void;
112
+ /**
113
+ * Do post processing for report data before sending it.
114
+ * @param id Report type.
115
+ * @param data Calculated report data
116
+ * @param options Report options.
117
+ * @param settings System settings.
118
+ * @param columns Column definitions.
119
+ * @returns
120
+ */
121
+ postProcess(id: any, data: any, options: any, settings: any, columns: any): any;
122
+ /**
123
+ * A helper to combine final report from pre-processed material for reports using text description.
124
+ * @param accountNumbers A set of all account numbers found.
125
+ * @param accountNames A mapping from account numbers to their names.
126
+ * @param columnNames A list of column names.
127
+ * @param format A text description of the report.
128
+ * @param totals A mapping from account numbers their total balance.
129
+ * @returns
130
+ */
131
+ parseAndCombineReport(accountNumbers: AccountNumber[], accountNames: any, columns: any, format: any, totals: any): ReportLine[];
132
+ }