@novha/calc-engines 7.0.0 → 7.0.1

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 (309) hide show
  1. package/all-commits.bundle +0 -0
  2. package/dist/capital-gains/brazil/BrazilCapitalGainsService.js +3 -0
  3. package/dist/capital-gains/brazil/BrazilCapitalGainsServiceImpl.js +56 -0
  4. package/dist/capital-gains/brazil/domain/types.js +3 -0
  5. package/dist/capital-gains/index.js +17 -2
  6. package/dist/capital-gains/india/IndiaCapitalGainsService.js +3 -0
  7. package/dist/capital-gains/india/IndiaCapitalGainsServiceImpl.js +58 -0
  8. package/dist/capital-gains/india/domain/types.js +3 -0
  9. package/dist/capital-gains/israel/IsraelCapitalGainsService.js +3 -0
  10. package/dist/capital-gains/israel/IsraelCapitalGainsServiceImpl.js +56 -0
  11. package/dist/capital-gains/israel/domain/types.js +3 -0
  12. package/dist/capital-gains/japan/JapanCapitalGainsService.js +3 -0
  13. package/dist/capital-gains/japan/JapanCapitalGainsServiceImpl.js +41 -0
  14. package/dist/capital-gains/japan/domain/types.js +3 -0
  15. package/dist/capital-gains/spain/SpainCapitalGainsService.js +3 -0
  16. package/dist/capital-gains/spain/SpainCapitalGainsServiceImpl.js +56 -0
  17. package/dist/capital-gains/spain/domain/types.js +3 -0
  18. package/dist/corporate/brazil/BrazilCorporateTaxService.js +3 -0
  19. package/dist/corporate/brazil/BrazilCorporateTaxServiceImpl.js +33 -0
  20. package/dist/corporate/brazil/domain/types.js +3 -0
  21. package/dist/corporate/index.js +19 -2
  22. package/dist/corporate/india/IndiaCorporateTaxService.js +3 -0
  23. package/dist/corporate/india/IndiaCorporateTaxServiceImpl.js +29 -0
  24. package/dist/corporate/india/domain/types.js +3 -0
  25. package/dist/corporate/israel/IsraelCorporateTaxService.js +3 -0
  26. package/dist/corporate/israel/IsraelCorporateTaxServiceImpl.js +29 -0
  27. package/dist/corporate/israel/domain/types.js +3 -0
  28. package/dist/corporate/japan/JapanCorporateTaxService.js +3 -0
  29. package/dist/corporate/japan/JapanCorporateTaxServiceImpl.js +29 -0
  30. package/dist/corporate/japan/domain/types.js +3 -0
  31. package/dist/corporate/netherlands/NetherlandsCorporateTaxService.js +3 -0
  32. package/dist/corporate/netherlands/NetherlandsCorporateTaxServiceImpl.js +40 -0
  33. package/dist/corporate/netherlands/domain/types.js +3 -0
  34. package/dist/corporate/spain/SpainCorporateTaxService.js +3 -0
  35. package/dist/corporate/spain/SpainCorporateTaxServiceImpl.js +29 -0
  36. package/dist/corporate/spain/domain/types.js +3 -0
  37. package/dist/corporate/switzerland/SwitzerlandCorporateTaxService.js +3 -0
  38. package/dist/corporate/switzerland/SwitzerlandCorporateTaxServiceImpl.js +29 -0
  39. package/dist/corporate/switzerland/domain/types.js +3 -0
  40. package/dist/income-tax/brazil/BrazilIncomeTaxService.js +3 -0
  41. package/dist/income-tax/brazil/BrazilIncomeTaxServiceImpl.js +78 -0
  42. package/dist/income-tax/brazil/domain/types.js +3 -0
  43. package/dist/income-tax/index.js +23 -2
  44. package/dist/income-tax/india/IndiaIncomeTaxService.js +3 -0
  45. package/dist/income-tax/india/IndiaIncomeTaxServiceImpl.js +75 -0
  46. package/dist/income-tax/india/domain/types.js +3 -0
  47. package/dist/income-tax/israel/IsraelIncomeTaxService.js +3 -0
  48. package/dist/income-tax/israel/IsraelIncomeTaxServiceImpl.js +62 -0
  49. package/dist/income-tax/israel/domain/types.js +3 -0
  50. package/dist/income-tax/japan/JapanIncomeTaxService.js +3 -0
  51. package/dist/income-tax/japan/JapanIncomeTaxServiceImpl.js +75 -0
  52. package/dist/income-tax/japan/domain/types.js +3 -0
  53. package/dist/income-tax/netherlands/NetherlandsIncomeTaxService.js +3 -0
  54. package/dist/income-tax/netherlands/NetherlandsIncomeTaxServiceImpl.js +62 -0
  55. package/dist/income-tax/netherlands/domain/types.js +3 -0
  56. package/dist/income-tax/spain/SpainIncomeTaxService.js +3 -0
  57. package/dist/income-tax/spain/SpainIncomeTaxServiceImpl.js +62 -0
  58. package/dist/income-tax/spain/domain/types.js +3 -0
  59. package/dist/income-tax/switzerland/SwitzerlandIncomeTaxService.js +3 -0
  60. package/dist/income-tax/switzerland/SwitzerlandIncomeTaxServiceImpl.js +62 -0
  61. package/dist/income-tax/switzerland/domain/types.js +3 -0
  62. package/dist/inheritance-tax/index.js +11 -2
  63. package/dist/inheritance-tax/japan/JapanInheritanceTaxService.js +3 -0
  64. package/dist/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.js +53 -0
  65. package/dist/inheritance-tax/japan/domain/types.js +3 -0
  66. package/dist/inheritance-tax/netherlands/NetherlandsInheritanceTaxService.js +3 -0
  67. package/dist/inheritance-tax/netherlands/NetherlandsInheritanceTaxServiceImpl.js +52 -0
  68. package/dist/inheritance-tax/netherlands/domain/types.js +3 -0
  69. package/dist/inheritance-tax/spain/SpainInheritanceTaxService.js +3 -0
  70. package/dist/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.js +51 -0
  71. package/dist/inheritance-tax/spain/domain/types.js +3 -0
  72. package/dist/mortgage/brazil/BrazilMortgageService.js +3 -0
  73. package/dist/mortgage/brazil/BrazilMortgageServiceImpl.js +76 -0
  74. package/dist/mortgage/brazil/domain/types.js +3 -0
  75. package/dist/mortgage/index.js +23 -2
  76. package/dist/mortgage/india/IndiaMortgageService.js +3 -0
  77. package/dist/mortgage/india/IndiaMortgageServiceImpl.js +76 -0
  78. package/dist/mortgage/india/domain/types.js +3 -0
  79. package/dist/mortgage/israel/IsraelMortgageService.js +3 -0
  80. package/dist/mortgage/israel/IsraelMortgageServiceImpl.js +100 -0
  81. package/dist/mortgage/israel/domain/types.js +3 -0
  82. package/dist/mortgage/japan/JapanMortgageService.js +3 -0
  83. package/dist/mortgage/japan/JapanMortgageServiceImpl.js +76 -0
  84. package/dist/mortgage/japan/domain/types.js +3 -0
  85. package/dist/mortgage/netherlands/NetherlandsMortgageService.js +3 -0
  86. package/dist/mortgage/netherlands/NetherlandsMortgageServiceImpl.js +83 -0
  87. package/dist/mortgage/netherlands/domain/types.js +3 -0
  88. package/dist/mortgage/spain/SpainMortgageService.js +3 -0
  89. package/dist/mortgage/spain/SpainMortgageServiceImpl.js +96 -0
  90. package/dist/mortgage/spain/domain/types.js +3 -0
  91. package/dist/mortgage/switzerland/SwitzerlandMortgageService.js +3 -0
  92. package/dist/mortgage/switzerland/SwitzerlandMortgageServiceImpl.js +80 -0
  93. package/dist/mortgage/switzerland/domain/types.js +3 -0
  94. package/dist/types/capital-gains/brazil/BrazilCapitalGainsService.d.ts +4 -0
  95. package/dist/types/capital-gains/brazil/BrazilCapitalGainsServiceImpl.d.ts +10 -0
  96. package/dist/types/capital-gains/brazil/domain/types.d.ts +11 -0
  97. package/dist/types/capital-gains/index.d.ts +11 -1
  98. package/dist/types/capital-gains/india/IndiaCapitalGainsService.d.ts +4 -0
  99. package/dist/types/capital-gains/india/IndiaCapitalGainsServiceImpl.d.ts +9 -0
  100. package/dist/types/capital-gains/india/domain/types.d.ts +9 -0
  101. package/dist/types/capital-gains/israel/IsraelCapitalGainsService.d.ts +4 -0
  102. package/dist/types/capital-gains/israel/IsraelCapitalGainsServiceImpl.d.ts +10 -0
  103. package/dist/types/capital-gains/israel/domain/types.d.ts +11 -0
  104. package/dist/types/capital-gains/japan/JapanCapitalGainsService.d.ts +4 -0
  105. package/dist/types/capital-gains/japan/JapanCapitalGainsServiceImpl.d.ts +9 -0
  106. package/dist/types/capital-gains/japan/domain/types.d.ts +6 -0
  107. package/dist/types/capital-gains/spain/SpainCapitalGainsService.d.ts +4 -0
  108. package/dist/types/capital-gains/spain/SpainCapitalGainsServiceImpl.d.ts +10 -0
  109. package/dist/types/capital-gains/spain/domain/types.d.ts +11 -0
  110. package/dist/types/corporate/brazil/BrazilCorporateTaxService.d.ts +4 -0
  111. package/dist/types/corporate/brazil/BrazilCorporateTaxServiceImpl.d.ts +8 -0
  112. package/dist/types/corporate/brazil/domain/types.d.ts +19 -0
  113. package/dist/types/corporate/index.d.ts +15 -1
  114. package/dist/types/corporate/india/IndiaCorporateTaxService.d.ts +4 -0
  115. package/dist/types/corporate/india/IndiaCorporateTaxServiceImpl.d.ts +8 -0
  116. package/dist/types/corporate/india/domain/types.d.ts +15 -0
  117. package/dist/types/corporate/israel/IsraelCorporateTaxService.d.ts +4 -0
  118. package/dist/types/corporate/israel/IsraelCorporateTaxServiceImpl.d.ts +8 -0
  119. package/dist/types/corporate/israel/domain/types.d.ts +15 -0
  120. package/dist/types/corporate/japan/JapanCorporateTaxService.d.ts +4 -0
  121. package/dist/types/corporate/japan/JapanCorporateTaxServiceImpl.d.ts +8 -0
  122. package/dist/types/corporate/japan/domain/types.d.ts +15 -0
  123. package/dist/types/corporate/netherlands/NetherlandsCorporateTaxService.d.ts +4 -0
  124. package/dist/types/corporate/netherlands/NetherlandsCorporateTaxServiceImpl.d.ts +8 -0
  125. package/dist/types/corporate/netherlands/domain/types.d.ts +17 -0
  126. package/dist/types/corporate/spain/SpainCorporateTaxService.d.ts +4 -0
  127. package/dist/types/corporate/spain/SpainCorporateTaxServiceImpl.d.ts +8 -0
  128. package/dist/types/corporate/spain/domain/types.d.ts +15 -0
  129. package/dist/types/corporate/switzerland/SwitzerlandCorporateTaxService.d.ts +4 -0
  130. package/dist/types/corporate/switzerland/SwitzerlandCorporateTaxServiceImpl.d.ts +8 -0
  131. package/dist/types/corporate/switzerland/domain/types.d.ts +15 -0
  132. package/dist/types/income-tax/brazil/BrazilIncomeTaxService.d.ts +4 -0
  133. package/dist/types/income-tax/brazil/BrazilIncomeTaxServiceImpl.d.ts +11 -0
  134. package/dist/types/income-tax/brazil/domain/types.d.ts +18 -0
  135. package/dist/types/income-tax/index.d.ts +15 -1
  136. package/dist/types/income-tax/india/IndiaIncomeTaxService.d.ts +4 -0
  137. package/dist/types/income-tax/india/IndiaIncomeTaxServiceImpl.d.ts +10 -0
  138. package/dist/types/income-tax/india/domain/types.d.ts +16 -0
  139. package/dist/types/income-tax/israel/IsraelIncomeTaxService.d.ts +4 -0
  140. package/dist/types/income-tax/israel/IsraelIncomeTaxServiceImpl.d.ts +10 -0
  141. package/dist/types/income-tax/israel/domain/types.d.ts +16 -0
  142. package/dist/types/income-tax/japan/JapanIncomeTaxService.d.ts +4 -0
  143. package/dist/types/income-tax/japan/JapanIncomeTaxServiceImpl.d.ts +10 -0
  144. package/dist/types/income-tax/japan/domain/types.d.ts +16 -0
  145. package/dist/types/income-tax/netherlands/NetherlandsIncomeTaxService.d.ts +4 -0
  146. package/dist/types/income-tax/netherlands/NetherlandsIncomeTaxServiceImpl.d.ts +10 -0
  147. package/dist/types/income-tax/netherlands/domain/types.d.ts +16 -0
  148. package/dist/types/income-tax/spain/SpainIncomeTaxService.d.ts +4 -0
  149. package/dist/types/income-tax/spain/SpainIncomeTaxServiceImpl.d.ts +10 -0
  150. package/dist/types/income-tax/spain/domain/types.d.ts +16 -0
  151. package/dist/types/income-tax/switzerland/SwitzerlandIncomeTaxService.d.ts +4 -0
  152. package/dist/types/income-tax/switzerland/SwitzerlandIncomeTaxServiceImpl.d.ts +10 -0
  153. package/dist/types/income-tax/switzerland/domain/types.d.ts +16 -0
  154. package/dist/types/inheritance-tax/index.d.ts +7 -1
  155. package/dist/types/inheritance-tax/japan/JapanInheritanceTaxService.d.ts +4 -0
  156. package/dist/types/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.d.ts +9 -0
  157. package/dist/types/inheritance-tax/japan/domain/types.d.ts +21 -0
  158. package/dist/types/inheritance-tax/netherlands/NetherlandsInheritanceTaxService.d.ts +4 -0
  159. package/dist/types/inheritance-tax/netherlands/NetherlandsInheritanceTaxServiceImpl.d.ts +9 -0
  160. package/dist/types/inheritance-tax/netherlands/domain/types.d.ts +28 -0
  161. package/dist/types/inheritance-tax/spain/SpainInheritanceTaxService.d.ts +4 -0
  162. package/dist/types/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.d.ts +9 -0
  163. package/dist/types/inheritance-tax/spain/domain/types.d.ts +19 -0
  164. package/dist/types/mortgage/brazil/BrazilMortgageService.d.ts +4 -0
  165. package/dist/types/mortgage/brazil/BrazilMortgageServiceImpl.d.ts +7 -0
  166. package/dist/types/mortgage/brazil/domain/types.d.ts +39 -0
  167. package/dist/types/mortgage/index.d.ts +15 -1
  168. package/dist/types/mortgage/india/IndiaMortgageService.d.ts +4 -0
  169. package/dist/types/mortgage/india/IndiaMortgageServiceImpl.d.ts +7 -0
  170. package/dist/types/mortgage/india/domain/types.d.ts +39 -0
  171. package/dist/types/mortgage/israel/IsraelMortgageService.d.ts +4 -0
  172. package/dist/types/mortgage/israel/IsraelMortgageServiceImpl.d.ts +8 -0
  173. package/dist/types/mortgage/israel/domain/types.d.ts +43 -0
  174. package/dist/types/mortgage/japan/JapanMortgageService.d.ts +4 -0
  175. package/dist/types/mortgage/japan/JapanMortgageServiceImpl.d.ts +7 -0
  176. package/dist/types/mortgage/japan/domain/types.d.ts +39 -0
  177. package/dist/types/mortgage/netherlands/NetherlandsMortgageService.d.ts +4 -0
  178. package/dist/types/mortgage/netherlands/NetherlandsMortgageServiceImpl.d.ts +7 -0
  179. package/dist/types/mortgage/netherlands/domain/types.d.ts +41 -0
  180. package/dist/types/mortgage/spain/SpainMortgageService.d.ts +4 -0
  181. package/dist/types/mortgage/spain/SpainMortgageServiceImpl.d.ts +8 -0
  182. package/dist/types/mortgage/spain/domain/types.d.ts +44 -0
  183. package/dist/types/mortgage/switzerland/SwitzerlandMortgageService.d.ts +4 -0
  184. package/dist/types/mortgage/switzerland/SwitzerlandMortgageServiceImpl.d.ts +7 -0
  185. package/dist/types/mortgage/switzerland/domain/types.d.ts +37 -0
  186. package/package.json +1 -1
  187. package/src/capital-gains/brazil/BrazilCapitalGainsService.ts +5 -0
  188. package/src/capital-gains/brazil/BrazilCapitalGainsServiceImpl.ts +69 -0
  189. package/src/capital-gains/brazil/domain/types.ts +15 -0
  190. package/src/capital-gains/index.ts +50 -0
  191. package/src/capital-gains/india/IndiaCapitalGainsService.ts +5 -0
  192. package/src/capital-gains/india/IndiaCapitalGainsServiceImpl.ts +64 -0
  193. package/src/capital-gains/india/domain/types.ts +12 -0
  194. package/src/capital-gains/israel/IsraelCapitalGainsService.ts +5 -0
  195. package/src/capital-gains/israel/IsraelCapitalGainsServiceImpl.ts +69 -0
  196. package/src/capital-gains/israel/domain/types.ts +15 -0
  197. package/src/capital-gains/japan/JapanCapitalGainsService.ts +5 -0
  198. package/src/capital-gains/japan/JapanCapitalGainsServiceImpl.ts +47 -0
  199. package/src/capital-gains/japan/domain/types.ts +9 -0
  200. package/src/capital-gains/spain/SpainCapitalGainsService.ts +5 -0
  201. package/src/capital-gains/spain/SpainCapitalGainsServiceImpl.ts +69 -0
  202. package/src/capital-gains/spain/domain/types.ts +15 -0
  203. package/src/corporate/brazil/BrazilCorporateTaxService.ts +5 -0
  204. package/src/corporate/brazil/BrazilCorporateTaxServiceImpl.ts +40 -0
  205. package/src/corporate/brazil/domain/types.ts +16 -0
  206. package/src/corporate/index.ts +81 -1
  207. package/src/corporate/india/IndiaCorporateTaxService.ts +5 -0
  208. package/src/corporate/india/IndiaCorporateTaxServiceImpl.ts +35 -0
  209. package/src/corporate/india/domain/types.ts +15 -0
  210. package/src/corporate/israel/IsraelCorporateTaxService.ts +5 -0
  211. package/src/corporate/israel/IsraelCorporateTaxServiceImpl.ts +35 -0
  212. package/src/corporate/israel/domain/types.ts +15 -0
  213. package/src/corporate/japan/JapanCorporateTaxService.ts +5 -0
  214. package/src/corporate/japan/JapanCorporateTaxServiceImpl.ts +35 -0
  215. package/src/corporate/japan/domain/types.ts +15 -0
  216. package/src/corporate/netherlands/NetherlandsCorporateTaxService.ts +5 -0
  217. package/src/corporate/netherlands/NetherlandsCorporateTaxServiceImpl.ts +48 -0
  218. package/src/corporate/netherlands/domain/types.ts +21 -0
  219. package/src/corporate/spain/SpainCorporateTaxService.ts +5 -0
  220. package/src/corporate/spain/SpainCorporateTaxServiceImpl.ts +35 -0
  221. package/src/corporate/spain/domain/types.ts +15 -0
  222. package/src/corporate/switzerland/SwitzerlandCorporateTaxService.ts +5 -0
  223. package/src/corporate/switzerland/SwitzerlandCorporateTaxServiceImpl.ts +35 -0
  224. package/src/corporate/switzerland/domain/types.ts +15 -0
  225. package/src/income-tax/brazil/BrazilIncomeTaxService.ts +5 -0
  226. package/src/income-tax/brazil/BrazilIncomeTaxServiceImpl.ts +91 -0
  227. package/src/income-tax/brazil/domain/types.ts +21 -0
  228. package/src/income-tax/index.ts +70 -0
  229. package/src/income-tax/india/IndiaIncomeTaxService.ts +5 -0
  230. package/src/income-tax/india/IndiaIncomeTaxServiceImpl.ts +87 -0
  231. package/src/income-tax/india/domain/types.ts +16 -0
  232. package/src/income-tax/israel/IsraelIncomeTaxService.ts +5 -0
  233. package/src/income-tax/israel/IsraelIncomeTaxServiceImpl.ts +75 -0
  234. package/src/income-tax/israel/domain/types.ts +16 -0
  235. package/src/income-tax/japan/JapanIncomeTaxService.ts +5 -0
  236. package/src/income-tax/japan/JapanIncomeTaxServiceImpl.ts +87 -0
  237. package/src/income-tax/japan/domain/types.ts +16 -0
  238. package/src/income-tax/netherlands/NetherlandsIncomeTaxService.ts +5 -0
  239. package/src/income-tax/netherlands/NetherlandsIncomeTaxServiceImpl.ts +75 -0
  240. package/src/income-tax/netherlands/domain/types.ts +16 -0
  241. package/src/income-tax/spain/SpainIncomeTaxService.ts +5 -0
  242. package/src/income-tax/spain/SpainIncomeTaxServiceImpl.ts +75 -0
  243. package/src/income-tax/spain/domain/types.ts +16 -0
  244. package/src/income-tax/switzerland/SwitzerlandIncomeTaxService.ts +5 -0
  245. package/src/income-tax/switzerland/SwitzerlandIncomeTaxServiceImpl.ts +75 -0
  246. package/src/income-tax/switzerland/domain/types.ts +16 -0
  247. package/src/inheritance-tax/index.ts +36 -0
  248. package/src/inheritance-tax/japan/JapanInheritanceTaxService.ts +5 -0
  249. package/src/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.ts +67 -0
  250. package/src/inheritance-tax/japan/domain/types.ts +25 -0
  251. package/src/inheritance-tax/netherlands/NetherlandsInheritanceTaxService.ts +5 -0
  252. package/src/inheritance-tax/netherlands/NetherlandsInheritanceTaxServiceImpl.ts +66 -0
  253. package/src/inheritance-tax/netherlands/domain/types.ts +34 -0
  254. package/src/inheritance-tax/spain/SpainInheritanceTaxService.ts +5 -0
  255. package/src/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.ts +65 -0
  256. package/src/inheritance-tax/spain/domain/types.ts +23 -0
  257. package/src/mortgage/brazil/BrazilMortgageService.ts +5 -0
  258. package/src/mortgage/brazil/BrazilMortgageServiceImpl.ts +101 -0
  259. package/src/mortgage/brazil/domain/types.ts +46 -0
  260. package/src/mortgage/index.ts +85 -1
  261. package/src/mortgage/india/IndiaMortgageService.ts +5 -0
  262. package/src/mortgage/india/IndiaMortgageServiceImpl.ts +101 -0
  263. package/src/mortgage/india/domain/types.ts +46 -0
  264. package/src/mortgage/israel/IsraelMortgageService.ts +5 -0
  265. package/src/mortgage/israel/IsraelMortgageServiceImpl.ts +132 -0
  266. package/src/mortgage/israel/domain/types.ts +41 -0
  267. package/src/mortgage/japan/JapanMortgageService.ts +5 -0
  268. package/src/mortgage/japan/JapanMortgageServiceImpl.ts +101 -0
  269. package/src/mortgage/japan/domain/types.ts +46 -0
  270. package/src/mortgage/netherlands/NetherlandsMortgageService.ts +5 -0
  271. package/src/mortgage/netherlands/NetherlandsMortgageServiceImpl.ts +109 -0
  272. package/src/mortgage/netherlands/domain/types.ts +37 -0
  273. package/src/mortgage/spain/SpainMortgageService.ts +5 -0
  274. package/src/mortgage/spain/SpainMortgageServiceImpl.ts +130 -0
  275. package/src/mortgage/spain/domain/types.ts +52 -0
  276. package/src/mortgage/switzerland/SwitzerlandMortgageService.ts +5 -0
  277. package/src/mortgage/switzerland/SwitzerlandMortgageServiceImpl.ts +106 -0
  278. package/src/mortgage/switzerland/domain/types.ts +36 -0
  279. package/test/brazil-capital-gains.test.ts +65 -0
  280. package/test/brazil-corporate-tax.test.ts +63 -0
  281. package/test/brazil-income-tax.test.ts +85 -0
  282. package/test/brazil-mortgage.test.ts +70 -0
  283. package/test/india-capital-gains.test.ts +71 -0
  284. package/test/india-corporate-tax.test.ts +54 -0
  285. package/test/india-income-tax.test.ts +78 -0
  286. package/test/india-mortgage.test.ts +70 -0
  287. package/test/israel-capital-gains.test.ts +45 -0
  288. package/test/israel-corporate-tax.test.ts +49 -0
  289. package/test/israel-income-tax.test.ts +76 -0
  290. package/test/israel-mortgage.test.ts +80 -0
  291. package/test/japan-capital-gains.test.ts +55 -0
  292. package/test/japan-corporate-tax.test.ts +54 -0
  293. package/test/japan-income-tax.test.ts +76 -0
  294. package/test/japan-inheritance-tax.test.ts +74 -0
  295. package/test/japan-mortgage.test.ts +69 -0
  296. package/test/netherlands-corporate-tax.test.ts +54 -0
  297. package/test/netherlands-income-tax.test.ts +54 -0
  298. package/test/netherlands-inheritance-tax.test.ts +79 -0
  299. package/test/netherlands-mortgage.test.ts +79 -0
  300. package/test/spain-capital-gains.test.ts +66 -0
  301. package/test/spain-corporate-tax.test.ts +54 -0
  302. package/test/spain-income-tax.test.ts +84 -0
  303. package/test/spain-inheritance-tax.test.ts +78 -0
  304. package/test/spain-mortgage.test.ts +70 -0
  305. package/test/switzerland-corporate-tax.test.ts +39 -0
  306. package/test/switzerland-income-tax.test.ts +66 -0
  307. package/test/switzerland-mortgage.test.ts +70 -0
  308. package/dist/domain/types.js +0 -10
  309. package/dist/types/domain/types.d.ts +0 -41
@@ -0,0 +1,15 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ regime: {
4
+ type: 'flat';
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface Input {
9
+ taxableIncome: number;
10
+ }
11
+ export interface Result {
12
+ corporateTax: number;
13
+ effectiveTaxRate: number;
14
+ breakdowns: Breakdown[];
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface JapanCorporateTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { JapanCorporateTaxService } from "./JapanCorporateTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class JapanCorporateTaxServiceImpl implements JapanCorporateTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ regime: {
4
+ type: 'flat';
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface Input {
9
+ taxableIncome: number;
10
+ }
11
+ export interface Result {
12
+ corporateTax: number;
13
+ effectiveTaxRate: number;
14
+ breakdowns: Breakdown[];
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface NetherlandsCorporateTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { NetherlandsCorporateTaxService } from "./NetherlandsCorporateTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class NetherlandsCorporateTaxServiceImpl implements NetherlandsCorporateTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,17 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface TaxTier {
3
+ from: number;
4
+ to: number | null;
5
+ rate: number;
6
+ }
7
+ export interface Rules {
8
+ tiers: TaxTier[];
9
+ }
10
+ export interface Input {
11
+ taxableIncome: number;
12
+ }
13
+ export interface Result {
14
+ corporateTax: number;
15
+ effectiveTaxRate: number;
16
+ breakdowns: Breakdown[];
17
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface SpainCorporateTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { SpainCorporateTaxService } from "./SpainCorporateTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class SpainCorporateTaxServiceImpl implements SpainCorporateTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ regime: {
4
+ type: 'flat';
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface Input {
9
+ taxableIncome: number;
10
+ }
11
+ export interface Result {
12
+ corporateTax: number;
13
+ effectiveTaxRate: number;
14
+ breakdowns: Breakdown[];
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface SwitzerlandCorporateTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { SwitzerlandCorporateTaxService } from "./SwitzerlandCorporateTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class SwitzerlandCorporateTaxServiceImpl implements SwitzerlandCorporateTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface Rules {
3
+ regime: {
4
+ type: 'flat';
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface Input {
9
+ taxableIncome: number;
10
+ }
11
+ export interface Result {
12
+ corporateTax: number;
13
+ effectiveTaxRate: number;
14
+ breakdowns: Breakdown[];
15
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface BrazilIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,11 @@
1
+ import { BrazilIncomeTaxService } from "./BrazilIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class BrazilIncomeTaxServiceImpl implements BrazilIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private computeINSS;
10
+ private round;
11
+ }
@@ -0,0 +1,18 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ inss: INSSRules;
5
+ }
6
+ export interface INSSRules {
7
+ rate: number;
8
+ cap: number;
9
+ }
10
+ export interface ComputedIncomeTaxValues {
11
+ grossIncome: number;
12
+ incomeTax: number;
13
+ inss: number;
14
+ totalDeductions: number;
15
+ netIncome: number;
16
+ effectiveTaxRate: number;
17
+ taxBracketBreakdown: BracketAllocation[];
18
+ }
@@ -12,4 +12,18 @@ import { USAIncomeTaxServiceImpl as USAIncomeTaxService } from './usa/USAIncomeT
12
12
  import { ComputedIncomeTaxValues as USAComputedIncomeTaxValues, IncomeTaxRules as USAIncomeTaxRules } from './usa/domain/types';
13
13
  import { GermanyIncomeTaxServiceImpl as GermanyIncomeTaxService } from './germany/GermanyIncomeTaxServiceImpl';
14
14
  import { ComputedIncomeTaxValues as GermanyComputedIncomeTaxValues, IncomeTaxRules as GermanyIncomeTaxRules } from './germany/domain/types';
15
- export { CanadaIncomeTaxService, CanadaComputedIncomeTaxValues, CanadaIncomeTaxRules, FranceIncomeTaxService, FranceComputedIncomeTaxValues, FranceIncomeTaxRules, SouthAfricaIncomeTaxService, SouthAfricaComputedIncomeTaxValues, SouthAfricaIncomeTaxRules, AustraliaIncomeTaxService, AustraliaComputedIncomeTaxValues, AustraliaIncomeTaxRules, UKIncomeTaxService, UKComputedIncomeTaxValues, UKIncomeTaxRules, USAIncomeTaxService, USAComputedIncomeTaxValues, USAIncomeTaxRules, GermanyIncomeTaxService, GermanyComputedIncomeTaxValues, GermanyIncomeTaxRules, };
15
+ import { BrazilIncomeTaxServiceImpl as BrazilIncomeTaxService } from './brazil/BrazilIncomeTaxServiceImpl';
16
+ import { ComputedIncomeTaxValues as BrazilComputedIncomeTaxValues, IncomeTaxRules as BrazilIncomeTaxRules } from './brazil/domain/types';
17
+ import { SpainIncomeTaxServiceImpl as SpainIncomeTaxService } from './spain/SpainIncomeTaxServiceImpl';
18
+ import { ComputedIncomeTaxValues as SpainComputedIncomeTaxValues, IncomeTaxRules as SpainIncomeTaxRules } from './spain/domain/types';
19
+ import { IndiaIncomeTaxServiceImpl as IndiaIncomeTaxService } from './india/IndiaIncomeTaxServiceImpl';
20
+ import { ComputedIncomeTaxValues as IndiaComputedIncomeTaxValues, IncomeTaxRules as IndiaIncomeTaxRules } from './india/domain/types';
21
+ import { JapanIncomeTaxServiceImpl as JapanIncomeTaxService } from './japan/JapanIncomeTaxServiceImpl';
22
+ import { ComputedIncomeTaxValues as JapanComputedIncomeTaxValues, IncomeTaxRules as JapanIncomeTaxRules } from './japan/domain/types';
23
+ import { IsraelIncomeTaxServiceImpl as IsraelIncomeTaxService } from './israel/IsraelIncomeTaxServiceImpl';
24
+ import { ComputedIncomeTaxValues as IsraelComputedIncomeTaxValues, IncomeTaxRules as IsraelIncomeTaxRules } from './israel/domain/types';
25
+ import { SwitzerlandIncomeTaxServiceImpl as SwitzerlandIncomeTaxService } from './switzerland/SwitzerlandIncomeTaxServiceImpl';
26
+ import { ComputedIncomeTaxValues as SwitzerlandComputedIncomeTaxValues, IncomeTaxRules as SwitzerlandIncomeTaxRules } from './switzerland/domain/types';
27
+ import { NetherlandsIncomeTaxServiceImpl as NetherlandsIncomeTaxService } from './netherlands/NetherlandsIncomeTaxServiceImpl';
28
+ import { ComputedIncomeTaxValues as NetherlandsComputedIncomeTaxValues, IncomeTaxRules as NetherlandsIncomeTaxRules } from './netherlands/domain/types';
29
+ export { CanadaIncomeTaxService, CanadaComputedIncomeTaxValues, CanadaIncomeTaxRules, FranceIncomeTaxService, FranceComputedIncomeTaxValues, FranceIncomeTaxRules, SouthAfricaIncomeTaxService, SouthAfricaComputedIncomeTaxValues, SouthAfricaIncomeTaxRules, AustraliaIncomeTaxService, AustraliaComputedIncomeTaxValues, AustraliaIncomeTaxRules, UKIncomeTaxService, UKComputedIncomeTaxValues, UKIncomeTaxRules, USAIncomeTaxService, USAComputedIncomeTaxValues, USAIncomeTaxRules, GermanyIncomeTaxService, GermanyComputedIncomeTaxValues, GermanyIncomeTaxRules, BrazilIncomeTaxService, BrazilComputedIncomeTaxValues, BrazilIncomeTaxRules, SpainIncomeTaxService, SpainComputedIncomeTaxValues, SpainIncomeTaxRules, IndiaIncomeTaxService, IndiaComputedIncomeTaxValues, IndiaIncomeTaxRules, JapanIncomeTaxService, JapanComputedIncomeTaxValues, JapanIncomeTaxRules, IsraelIncomeTaxService, IsraelComputedIncomeTaxValues, IsraelIncomeTaxRules, SwitzerlandIncomeTaxService, SwitzerlandComputedIncomeTaxValues, SwitzerlandIncomeTaxRules, NetherlandsIncomeTaxService, NetherlandsComputedIncomeTaxValues, NetherlandsIncomeTaxRules, };
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface IndiaIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { IndiaIncomeTaxService } from "./IndiaIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class IndiaIncomeTaxServiceImpl implements IndiaIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ cess: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ incomeTax: number;
11
+ cess: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface IsraelIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { IsraelIncomeTaxService } from "./IsraelIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class IsraelIncomeTaxServiceImpl implements IsraelIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ socialContributions: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ incomeTax: number;
11
+ socialContributions: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface JapanIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { JapanIncomeTaxService } from "./JapanIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class JapanIncomeTaxServiceImpl implements JapanIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ inhabitantTax: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ nationalIncomeTax: number;
11
+ inhabitantTax: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface NetherlandsIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { NetherlandsIncomeTaxService } from "./NetherlandsIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class NetherlandsIncomeTaxServiceImpl implements NetherlandsIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ socialContributions: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ incomeTax: number;
11
+ socialContributions: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface SpainIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { SpainIncomeTaxService } from "./SpainIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class SpainIncomeTaxServiceImpl implements SpainIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ socialContributions: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ incomeTax: number;
11
+ socialContributions: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -0,0 +1,4 @@
1
+ import { ComputedIncomeTaxValues } from "./domain/types";
2
+ export interface SwitzerlandIncomeTaxService {
3
+ calculateNetIncome(): ComputedIncomeTaxValues;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { SwitzerlandIncomeTaxService } from "./SwitzerlandIncomeTaxService";
2
+ import { ComputedIncomeTaxValues, IncomeTaxRules } from "./domain/types";
3
+ export declare class SwitzerlandIncomeTaxServiceImpl implements SwitzerlandIncomeTaxService {
4
+ private _income;
5
+ private _rules;
6
+ constructor(income: number, rules: IncomeTaxRules);
7
+ calculateNetIncome(): ComputedIncomeTaxValues;
8
+ private computeTaxBrackets;
9
+ private round;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { BracketAllocation, TaxBracket } from "../../domain/types";
2
+ export interface IncomeTaxRules {
3
+ taxBrackets: TaxBracket[];
4
+ socialContributions: {
5
+ rate: number;
6
+ };
7
+ }
8
+ export interface ComputedIncomeTaxValues {
9
+ grossIncome: number;
10
+ incomeTax: number;
11
+ socialContributions: number;
12
+ totalDeductions: number;
13
+ netIncome: number;
14
+ effectiveTaxRate: number;
15
+ taxBracketBreakdown: BracketAllocation[];
16
+ }
@@ -12,4 +12,10 @@ import { USAInheritanceTaxServiceImpl as USAInheritanceTaxService } from './usa/
12
12
  import { Input as USAInheritanceTaxInput, Rules as USAInheritanceTaxRules, Result as USAInheritanceTaxResult } from './usa/domain/types';
13
13
  import { GermanyInheritanceTaxServiceImpl as GermanyInheritanceTaxService } from './germany/GermanyInheritanceTaxServiceImpl';
14
14
  import { Input as GermanyInheritanceTaxInput, Rules as GermanyInheritanceTaxRules, Result as GermanyInheritanceTaxResult } from './germany/domain/types';
15
- export { CanadaInheritanceTaxService, CanadaInheritanceTaxInput, CanadaInheritanceTaxRules, CanadaInheritanceTaxResult, FranceInheritanceTaxService, FranceInheritanceTaxInput, FranceInheritanceTaxRules, FranceInheritanceTaxResult, SouthAfricaInheritanceTaxService, SouthAfricaInheritanceTaxInput, SouthAfricaInheritanceTaxRules, SouthAfricaInheritanceTaxResult, AustraliaInheritanceTaxService, AustraliaInheritanceTaxInput, AustraliaInheritanceTaxRules, AustraliaInheritanceTaxResult, UKInheritanceTaxService, UKInheritanceTaxInput, UKInheritanceTaxRules, UKInheritanceTaxResult, USAInheritanceTaxService, USAInheritanceTaxInput, USAInheritanceTaxRules, USAInheritanceTaxResult, GermanyInheritanceTaxService, GermanyInheritanceTaxInput, GermanyInheritanceTaxRules, GermanyInheritanceTaxResult, };
15
+ import { SpainInheritanceTaxServiceImpl as SpainInheritanceTaxService } from './spain/SpainInheritanceTaxServiceImpl';
16
+ import { Input as SpainInheritanceTaxInput, Rules as SpainInheritanceTaxRules, Result as SpainInheritanceTaxResult } from './spain/domain/types';
17
+ import { JapanInheritanceTaxServiceImpl as JapanInheritanceTaxService } from './japan/JapanInheritanceTaxServiceImpl';
18
+ import { Input as JapanInheritanceTaxInput, Rules as JapanInheritanceTaxRules, Result as JapanInheritanceTaxResult } from './japan/domain/types';
19
+ import { NetherlandsInheritanceTaxServiceImpl as NetherlandsInheritanceTaxService } from './netherlands/NetherlandsInheritanceTaxServiceImpl';
20
+ import { Input as NetherlandsInheritanceTaxInput, Rules as NetherlandsInheritanceTaxRules, Result as NetherlandsInheritanceTaxResult } from './netherlands/domain/types';
21
+ export { CanadaInheritanceTaxService, CanadaInheritanceTaxInput, CanadaInheritanceTaxRules, CanadaInheritanceTaxResult, FranceInheritanceTaxService, FranceInheritanceTaxInput, FranceInheritanceTaxRules, FranceInheritanceTaxResult, SouthAfricaInheritanceTaxService, SouthAfricaInheritanceTaxInput, SouthAfricaInheritanceTaxRules, SouthAfricaInheritanceTaxResult, AustraliaInheritanceTaxService, AustraliaInheritanceTaxInput, AustraliaInheritanceTaxRules, AustraliaInheritanceTaxResult, UKInheritanceTaxService, UKInheritanceTaxInput, UKInheritanceTaxRules, UKInheritanceTaxResult, USAInheritanceTaxService, USAInheritanceTaxInput, USAInheritanceTaxRules, USAInheritanceTaxResult, GermanyInheritanceTaxService, GermanyInheritanceTaxInput, GermanyInheritanceTaxRules, GermanyInheritanceTaxResult, SpainInheritanceTaxService, SpainInheritanceTaxInput, SpainInheritanceTaxRules, SpainInheritanceTaxResult, JapanInheritanceTaxService, JapanInheritanceTaxInput, JapanInheritanceTaxRules, JapanInheritanceTaxResult, NetherlandsInheritanceTaxService, NetherlandsInheritanceTaxInput, NetherlandsInheritanceTaxRules, NetherlandsInheritanceTaxResult, };
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface JapanInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { JapanInheritanceTaxService } from "./JapanInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class JapanInheritanceTaxServiceImpl implements JapanInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ private applyBrackets;
9
+ }
@@ -0,0 +1,21 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface TaxBracket {
3
+ from: number;
4
+ to: number | null;
5
+ rate: number;
6
+ }
7
+ export interface Rules {
8
+ baseExemption: number;
9
+ perHeirExemption: number;
10
+ taxBrackets: TaxBracket[];
11
+ }
12
+ export interface Input {
13
+ estateValue: number;
14
+ numberOfStatutoryHeirs: number;
15
+ }
16
+ export interface Result {
17
+ taxableEstate: number;
18
+ inheritanceTax: number;
19
+ effectiveRate: number;
20
+ breakdowns: Breakdown[];
21
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface NetherlandsInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { NetherlandsInheritanceTaxService } from "./NetherlandsInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class NetherlandsInheritanceTaxServiceImpl implements NetherlandsInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ private applyBrackets;
9
+ }
@@ -0,0 +1,28 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface TaxBracket {
3
+ from: number;
4
+ to: number | null;
5
+ rate: number;
6
+ }
7
+ export interface TaxClass {
8
+ exemption: number;
9
+ brackets: TaxBracket[];
10
+ }
11
+ export type TaxClassName = 'Partner' | 'Child' | 'Other';
12
+ export interface Rules {
13
+ taxClasses: {
14
+ Partner: TaxClass;
15
+ Child: TaxClass;
16
+ Other: TaxClass;
17
+ };
18
+ }
19
+ export interface Input {
20
+ estateValue: number;
21
+ taxClass: TaxClassName;
22
+ }
23
+ export interface Result {
24
+ taxableEstate: number;
25
+ inheritanceTax: number;
26
+ effectiveRate: number;
27
+ breakdowns: Breakdown[];
28
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "./domain/types";
2
+ export interface SpainInheritanceTaxService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { SpainInheritanceTaxService } from "./SpainInheritanceTaxService";
2
+ import { Input, Result, Rules } from "./domain/types";
3
+ export declare class SpainInheritanceTaxServiceImpl implements SpainInheritanceTaxService {
4
+ private _input;
5
+ private _rules;
6
+ constructor(input: Input, rules: Rules);
7
+ calculate(): Result;
8
+ private applyBrackets;
9
+ }
@@ -0,0 +1,19 @@
1
+ import { Breakdown } from "../../domain/types";
2
+ export interface TaxBracket {
3
+ from: number;
4
+ to: number | null;
5
+ rate: number;
6
+ }
7
+ export interface Rules {
8
+ exemption: number;
9
+ taxBrackets: TaxBracket[];
10
+ }
11
+ export interface Input {
12
+ estateValue: number;
13
+ }
14
+ export interface Result {
15
+ taxableEstate: number;
16
+ inheritanceTax: number;
17
+ effectiveRate: number;
18
+ breakdowns: Breakdown[];
19
+ }
@@ -0,0 +1,4 @@
1
+ import { MortgageInput, MortgageOutput, MortgageRules } from "./domain/types";
2
+ export interface BrazilMortgageService {
3
+ calculate(input: MortgageInput, rules: MortgageRules): MortgageOutput;
4
+ }
@@ -0,0 +1,7 @@
1
+ import { BrazilMortgageService } from "./BrazilMortgageService";
2
+ import { MortgageInput, MortgageOutput, MortgageRules } from "./domain/types";
3
+ export declare class BrazilMortgageServiceImpl implements BrazilMortgageService {
4
+ calculate(input: MortgageInput, rules: MortgageRules): MortgageOutput;
5
+ private calculateAmortizationSchedule;
6
+ private calculatePayment;
7
+ }
@@ -0,0 +1,39 @@
1
+ import { OtherFees } from "../../domain/types";
2
+ export interface MortgageRules {
3
+ loanConstraints: LoanConstraints;
4
+ interest: InterestRules;
5
+ itbi: ITBIRules;
6
+ }
7
+ export interface LoanConstraints {
8
+ maxLtvPercent: number;
9
+ maxAmortizationYears: number;
10
+ }
11
+ export interface InterestRules {
12
+ compounding: 'MONTHLY';
13
+ }
14
+ export interface ITBIRules {
15
+ rate: number;
16
+ }
17
+ export interface AmortizationScheduleItem {
18
+ year: number;
19
+ principal: number;
20
+ interest: number;
21
+ balance: number;
22
+ }
23
+ export interface MortgageInput {
24
+ propertyPrice: number;
25
+ downPayment: number;
26
+ annualInterestRate: number;
27
+ amortizationYears: number;
28
+ isFirstTimeBuyer: boolean;
29
+ }
30
+ export interface MortgageOutput {
31
+ loanAmount: number;
32
+ totalMortgage: number;
33
+ monthlyPayment: number;
34
+ totalInterestPaid: number;
35
+ totalPaid: number;
36
+ itbi: number;
37
+ amortizationSchedule: AmortizationScheduleItem[];
38
+ otherFees: OtherFees;
39
+ }