@novha/calc-engines 6.3.0 → 8.0.0

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 (278) hide show
  1. package/dist/capital-gains/brazil/BrazilCapitalGainsService.js +3 -0
  2. package/dist/capital-gains/brazil/BrazilCapitalGainsServiceImpl.js +56 -0
  3. package/dist/capital-gains/brazil/domain/types.js +3 -0
  4. package/dist/capital-gains/canada/CanadaCapitalGainsServiceImpl.js +29 -17
  5. package/dist/capital-gains/index.js +14 -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/japan/JapanCapitalGainsService.js +3 -0
  10. package/dist/capital-gains/japan/JapanCapitalGainsServiceImpl.js +41 -0
  11. package/dist/capital-gains/japan/domain/types.js +3 -0
  12. package/dist/capital-gains/spain/SpainCapitalGainsService.js +3 -0
  13. package/dist/capital-gains/spain/SpainCapitalGainsServiceImpl.js +56 -0
  14. package/dist/capital-gains/spain/domain/types.js +3 -0
  15. package/dist/corporate/brazil/BrazilCorporateTaxService.js +3 -0
  16. package/dist/corporate/brazil/BrazilCorporateTaxServiceImpl.js +33 -0
  17. package/dist/corporate/brazil/domain/types.js +3 -0
  18. package/dist/corporate/index.js +10 -2
  19. package/dist/corporate/india/IndiaCorporateTaxService.js +3 -0
  20. package/dist/corporate/india/IndiaCorporateTaxServiceImpl.js +29 -0
  21. package/dist/corporate/india/domain/types.js +3 -0
  22. package/dist/corporate/japan/JapanCorporateTaxService.js +3 -0
  23. package/dist/corporate/japan/JapanCorporateTaxServiceImpl.js +29 -0
  24. package/dist/corporate/japan/domain/types.js +3 -0
  25. package/dist/corporate/spain/SpainCorporateTaxService.js +3 -0
  26. package/dist/corporate/spain/SpainCorporateTaxServiceImpl.js +29 -0
  27. package/dist/corporate/spain/domain/types.js +3 -0
  28. package/dist/income-tax/brazil/BrazilIncomeTaxService.js +3 -0
  29. package/dist/income-tax/brazil/BrazilIncomeTaxServiceImpl.js +78 -0
  30. package/dist/income-tax/brazil/domain/types.js +3 -0
  31. package/dist/income-tax/index.js +14 -2
  32. package/dist/income-tax/india/IndiaIncomeTaxService.js +3 -0
  33. package/dist/income-tax/india/IndiaIncomeTaxServiceImpl.js +75 -0
  34. package/dist/income-tax/india/domain/types.js +3 -0
  35. package/dist/income-tax/japan/JapanIncomeTaxService.js +3 -0
  36. package/dist/income-tax/japan/JapanIncomeTaxServiceImpl.js +75 -0
  37. package/dist/income-tax/japan/domain/types.js +3 -0
  38. package/dist/income-tax/spain/SpainIncomeTaxService.js +3 -0
  39. package/dist/income-tax/spain/SpainIncomeTaxServiceImpl.js +62 -0
  40. package/dist/income-tax/spain/domain/types.js +3 -0
  41. package/dist/index.js +3 -2
  42. package/dist/inheritance-tax/australia/AustraliaInheritanceTaxService.js +3 -0
  43. package/dist/inheritance-tax/australia/AustraliaInheritanceTaxServiceImpl.js +19 -0
  44. package/dist/inheritance-tax/australia/domain/types.js +3 -0
  45. package/dist/inheritance-tax/canada/CanadaInheritanceTaxService.js +3 -0
  46. package/dist/inheritance-tax/canada/CanadaInheritanceTaxServiceImpl.js +51 -0
  47. package/dist/inheritance-tax/canada/domain/types.js +3 -0
  48. package/dist/inheritance-tax/domain/types.js +3 -0
  49. package/dist/inheritance-tax/france/FranceInheritanceTaxService.js +3 -0
  50. package/dist/inheritance-tax/france/FranceInheritanceTaxServiceImpl.js +52 -0
  51. package/dist/inheritance-tax/france/domain/types.js +3 -0
  52. package/dist/inheritance-tax/germany/GermanyInheritanceTaxService.js +3 -0
  53. package/dist/inheritance-tax/germany/GermanyInheritanceTaxServiceImpl.js +52 -0
  54. package/dist/inheritance-tax/germany/domain/types.js +3 -0
  55. package/dist/inheritance-tax/index.js +31 -0
  56. package/dist/inheritance-tax/japan/JapanInheritanceTaxService.js +3 -0
  57. package/dist/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.js +53 -0
  58. package/dist/inheritance-tax/japan/domain/types.js +3 -0
  59. package/dist/inheritance-tax/south-africa/SouthAfricaInheritanceTaxService.js +3 -0
  60. package/dist/inheritance-tax/south-africa/SouthAfricaInheritanceTaxServiceImpl.js +52 -0
  61. package/dist/inheritance-tax/south-africa/domain/types.js +3 -0
  62. package/dist/inheritance-tax/spain/SpainInheritanceTaxService.js +3 -0
  63. package/dist/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.js +51 -0
  64. package/dist/inheritance-tax/spain/domain/types.js +3 -0
  65. package/dist/inheritance-tax/uk/UKInheritanceTaxService.js +3 -0
  66. package/dist/inheritance-tax/uk/UKInheritanceTaxServiceImpl.js +39 -0
  67. package/dist/inheritance-tax/uk/domain/types.js +3 -0
  68. package/dist/inheritance-tax/usa/USAInheritanceTaxService.js +3 -0
  69. package/dist/inheritance-tax/usa/USAInheritanceTaxServiceImpl.js +51 -0
  70. package/dist/inheritance-tax/usa/domain/types.js +3 -0
  71. package/dist/mortgage/brazil/BrazilMortgageService.js +3 -0
  72. package/dist/mortgage/brazil/BrazilMortgageServiceImpl.js +76 -0
  73. package/dist/mortgage/brazil/domain/types.js +3 -0
  74. package/dist/mortgage/index.js +14 -2
  75. package/dist/mortgage/india/IndiaMortgageService.js +3 -0
  76. package/dist/mortgage/india/IndiaMortgageServiceImpl.js +76 -0
  77. package/dist/mortgage/india/domain/types.js +3 -0
  78. package/dist/mortgage/japan/JapanMortgageService.js +3 -0
  79. package/dist/mortgage/japan/JapanMortgageServiceImpl.js +76 -0
  80. package/dist/mortgage/japan/domain/types.js +3 -0
  81. package/dist/mortgage/spain/SpainMortgageService.js +3 -0
  82. package/dist/mortgage/spain/SpainMortgageServiceImpl.js +96 -0
  83. package/dist/mortgage/spain/domain/types.js +3 -0
  84. package/dist/shared/domain/types.js +2 -1
  85. package/dist/types/capital-gains/brazil/BrazilCapitalGainsService.d.ts +4 -0
  86. package/dist/types/capital-gains/brazil/BrazilCapitalGainsServiceImpl.d.ts +10 -0
  87. package/dist/types/capital-gains/brazil/domain/types.d.ts +11 -0
  88. package/dist/types/capital-gains/canada/CanadaCapitalGainsServiceImpl.d.ts +1 -1
  89. package/dist/types/capital-gains/index.d.ts +9 -1
  90. package/dist/types/capital-gains/india/IndiaCapitalGainsService.d.ts +4 -0
  91. package/dist/types/capital-gains/india/IndiaCapitalGainsServiceImpl.d.ts +9 -0
  92. package/dist/types/capital-gains/india/domain/types.d.ts +9 -0
  93. package/dist/types/capital-gains/japan/JapanCapitalGainsService.d.ts +4 -0
  94. package/dist/types/capital-gains/japan/JapanCapitalGainsServiceImpl.d.ts +9 -0
  95. package/dist/types/capital-gains/japan/domain/types.d.ts +6 -0
  96. package/dist/types/capital-gains/spain/SpainCapitalGainsService.d.ts +4 -0
  97. package/dist/types/capital-gains/spain/SpainCapitalGainsServiceImpl.d.ts +10 -0
  98. package/dist/types/capital-gains/spain/domain/types.d.ts +11 -0
  99. package/dist/types/corporate/brazil/BrazilCorporateTaxService.d.ts +4 -0
  100. package/dist/types/corporate/brazil/BrazilCorporateTaxServiceImpl.d.ts +8 -0
  101. package/dist/types/corporate/brazil/domain/types.d.ts +19 -0
  102. package/dist/types/corporate/index.d.ts +9 -1
  103. package/dist/types/corporate/india/IndiaCorporateTaxService.d.ts +4 -0
  104. package/dist/types/corporate/india/IndiaCorporateTaxServiceImpl.d.ts +8 -0
  105. package/dist/types/corporate/india/domain/types.d.ts +15 -0
  106. package/dist/types/corporate/japan/JapanCorporateTaxService.d.ts +4 -0
  107. package/dist/types/corporate/japan/JapanCorporateTaxServiceImpl.d.ts +8 -0
  108. package/dist/types/corporate/japan/domain/types.d.ts +15 -0
  109. package/dist/types/corporate/spain/SpainCorporateTaxService.d.ts +4 -0
  110. package/dist/types/corporate/spain/SpainCorporateTaxServiceImpl.d.ts +8 -0
  111. package/dist/types/corporate/spain/domain/types.d.ts +15 -0
  112. package/dist/types/income-tax/brazil/BrazilIncomeTaxService.d.ts +4 -0
  113. package/dist/types/income-tax/brazil/BrazilIncomeTaxServiceImpl.d.ts +11 -0
  114. package/dist/types/income-tax/brazil/domain/types.d.ts +18 -0
  115. package/dist/types/income-tax/index.d.ts +9 -1
  116. package/dist/types/income-tax/india/IndiaIncomeTaxService.d.ts +4 -0
  117. package/dist/types/income-tax/india/IndiaIncomeTaxServiceImpl.d.ts +10 -0
  118. package/dist/types/income-tax/india/domain/types.d.ts +16 -0
  119. package/dist/types/income-tax/japan/JapanIncomeTaxService.d.ts +4 -0
  120. package/dist/types/income-tax/japan/JapanIncomeTaxServiceImpl.d.ts +10 -0
  121. package/dist/types/income-tax/japan/domain/types.d.ts +16 -0
  122. package/dist/types/income-tax/spain/SpainIncomeTaxService.d.ts +4 -0
  123. package/dist/types/income-tax/spain/SpainIncomeTaxServiceImpl.d.ts +10 -0
  124. package/dist/types/income-tax/spain/domain/types.d.ts +16 -0
  125. package/dist/types/index.d.ts +1 -0
  126. package/dist/types/inheritance-tax/australia/AustraliaInheritanceTaxService.d.ts +4 -0
  127. package/dist/types/inheritance-tax/australia/AustraliaInheritanceTaxServiceImpl.d.ts +8 -0
  128. package/dist/types/inheritance-tax/australia/domain/types.d.ts +13 -0
  129. package/dist/types/inheritance-tax/canada/CanadaInheritanceTaxService.d.ts +4 -0
  130. package/dist/types/inheritance-tax/canada/CanadaInheritanceTaxServiceImpl.d.ts +9 -0
  131. package/dist/types/inheritance-tax/canada/domain/types.d.ts +20 -0
  132. package/dist/types/inheritance-tax/domain/types.d.ts +17 -0
  133. package/dist/types/inheritance-tax/france/FranceInheritanceTaxService.d.ts +4 -0
  134. package/dist/types/inheritance-tax/france/FranceInheritanceTaxServiceImpl.d.ts +9 -0
  135. package/dist/types/inheritance-tax/france/domain/types.d.ts +29 -0
  136. package/dist/types/inheritance-tax/germany/GermanyInheritanceTaxService.d.ts +4 -0
  137. package/dist/types/inheritance-tax/germany/GermanyInheritanceTaxServiceImpl.d.ts +9 -0
  138. package/dist/types/inheritance-tax/germany/domain/types.d.ts +28 -0
  139. package/dist/types/inheritance-tax/index.d.ts +19 -0
  140. package/dist/types/inheritance-tax/japan/JapanInheritanceTaxService.d.ts +4 -0
  141. package/dist/types/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.d.ts +9 -0
  142. package/dist/types/inheritance-tax/japan/domain/types.d.ts +21 -0
  143. package/dist/types/inheritance-tax/south-africa/SouthAfricaInheritanceTaxService.d.ts +4 -0
  144. package/dist/types/inheritance-tax/south-africa/SouthAfricaInheritanceTaxServiceImpl.d.ts +9 -0
  145. package/dist/types/inheritance-tax/south-africa/domain/types.d.ts +20 -0
  146. package/dist/types/inheritance-tax/spain/SpainInheritanceTaxService.d.ts +4 -0
  147. package/dist/types/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.d.ts +9 -0
  148. package/dist/types/inheritance-tax/spain/domain/types.d.ts +19 -0
  149. package/dist/types/inheritance-tax/uk/UKInheritanceTaxService.d.ts +4 -0
  150. package/dist/types/inheritance-tax/uk/UKInheritanceTaxServiceImpl.d.ts +8 -0
  151. package/dist/types/inheritance-tax/uk/domain/types.d.ts +17 -0
  152. package/dist/types/inheritance-tax/usa/USAInheritanceTaxService.d.ts +4 -0
  153. package/dist/types/inheritance-tax/usa/USAInheritanceTaxServiceImpl.d.ts +9 -0
  154. package/dist/types/inheritance-tax/usa/domain/types.d.ts +19 -0
  155. package/dist/types/mortgage/brazil/BrazilMortgageService.d.ts +4 -0
  156. package/dist/types/mortgage/brazil/BrazilMortgageServiceImpl.d.ts +7 -0
  157. package/dist/types/mortgage/brazil/domain/types.d.ts +39 -0
  158. package/dist/types/mortgage/index.d.ts +9 -1
  159. package/dist/types/mortgage/india/IndiaMortgageService.d.ts +4 -0
  160. package/dist/types/mortgage/india/IndiaMortgageServiceImpl.d.ts +7 -0
  161. package/dist/types/mortgage/india/domain/types.d.ts +39 -0
  162. package/dist/types/mortgage/japan/JapanMortgageService.d.ts +4 -0
  163. package/dist/types/mortgage/japan/JapanMortgageServiceImpl.d.ts +7 -0
  164. package/dist/types/mortgage/japan/domain/types.d.ts +39 -0
  165. package/dist/types/mortgage/spain/SpainMortgageService.d.ts +4 -0
  166. package/dist/types/mortgage/spain/SpainMortgageServiceImpl.d.ts +8 -0
  167. package/dist/types/mortgage/spain/domain/types.d.ts +44 -0
  168. package/dist/types/shared/domain/types.d.ts +2 -1
  169. package/package.json +1 -1
  170. package/src/capital-gains/brazil/BrazilCapitalGainsService.ts +5 -0
  171. package/src/capital-gains/brazil/BrazilCapitalGainsServiceImpl.ts +69 -0
  172. package/src/capital-gains/brazil/domain/types.ts +15 -0
  173. package/src/capital-gains/canada/CanadaCapitalGainsServiceImpl.ts +34 -21
  174. package/src/capital-gains/index.ts +40 -0
  175. package/src/capital-gains/india/IndiaCapitalGainsService.ts +5 -0
  176. package/src/capital-gains/india/IndiaCapitalGainsServiceImpl.ts +64 -0
  177. package/src/capital-gains/india/domain/types.ts +12 -0
  178. package/src/capital-gains/japan/JapanCapitalGainsService.ts +5 -0
  179. package/src/capital-gains/japan/JapanCapitalGainsServiceImpl.ts +47 -0
  180. package/src/capital-gains/japan/domain/types.ts +9 -0
  181. package/src/capital-gains/spain/SpainCapitalGainsService.ts +5 -0
  182. package/src/capital-gains/spain/SpainCapitalGainsServiceImpl.ts +69 -0
  183. package/src/capital-gains/spain/domain/types.ts +15 -0
  184. package/src/corporate/brazil/BrazilCorporateTaxService.ts +5 -0
  185. package/src/corporate/brazil/BrazilCorporateTaxServiceImpl.ts +40 -0
  186. package/src/corporate/brazil/domain/types.ts +16 -0
  187. package/src/corporate/index.ts +45 -1
  188. package/src/corporate/india/IndiaCorporateTaxService.ts +5 -0
  189. package/src/corporate/india/IndiaCorporateTaxServiceImpl.ts +35 -0
  190. package/src/corporate/india/domain/types.ts +15 -0
  191. package/src/corporate/japan/JapanCorporateTaxService.ts +5 -0
  192. package/src/corporate/japan/JapanCorporateTaxServiceImpl.ts +35 -0
  193. package/src/corporate/japan/domain/types.ts +15 -0
  194. package/src/corporate/spain/SpainCorporateTaxService.ts +5 -0
  195. package/src/corporate/spain/SpainCorporateTaxServiceImpl.ts +35 -0
  196. package/src/corporate/spain/domain/types.ts +15 -0
  197. package/src/income-tax/brazil/BrazilIncomeTaxService.ts +5 -0
  198. package/src/income-tax/brazil/BrazilIncomeTaxServiceImpl.ts +91 -0
  199. package/src/income-tax/brazil/domain/types.ts +21 -0
  200. package/src/income-tax/index.ts +40 -0
  201. package/src/income-tax/india/IndiaIncomeTaxService.ts +5 -0
  202. package/src/income-tax/india/IndiaIncomeTaxServiceImpl.ts +87 -0
  203. package/src/income-tax/india/domain/types.ts +16 -0
  204. package/src/income-tax/japan/JapanIncomeTaxService.ts +5 -0
  205. package/src/income-tax/japan/JapanIncomeTaxServiceImpl.ts +87 -0
  206. package/src/income-tax/japan/domain/types.ts +16 -0
  207. package/src/income-tax/spain/SpainIncomeTaxService.ts +5 -0
  208. package/src/income-tax/spain/SpainIncomeTaxServiceImpl.ts +75 -0
  209. package/src/income-tax/spain/domain/types.ts +16 -0
  210. package/src/index.ts +1 -0
  211. package/src/inheritance-tax/australia/AustraliaInheritanceTaxService.ts +5 -0
  212. package/src/inheritance-tax/australia/AustraliaInheritanceTaxServiceImpl.ts +21 -0
  213. package/src/inheritance-tax/australia/domain/types.ts +16 -0
  214. package/src/inheritance-tax/canada/CanadaInheritanceTaxService.ts +5 -0
  215. package/src/inheritance-tax/canada/CanadaInheritanceTaxServiceImpl.ts +65 -0
  216. package/src/inheritance-tax/canada/domain/types.ts +24 -0
  217. package/src/inheritance-tax/domain/types.ts +19 -0
  218. package/src/inheritance-tax/france/FranceInheritanceTaxService.ts +5 -0
  219. package/src/inheritance-tax/france/FranceInheritanceTaxServiceImpl.ts +66 -0
  220. package/src/inheritance-tax/france/domain/types.ts +35 -0
  221. package/src/inheritance-tax/germany/GermanyInheritanceTaxService.ts +5 -0
  222. package/src/inheritance-tax/germany/GermanyInheritanceTaxServiceImpl.ts +66 -0
  223. package/src/inheritance-tax/germany/domain/types.ts +34 -0
  224. package/src/inheritance-tax/index.ts +110 -0
  225. package/src/inheritance-tax/japan/JapanInheritanceTaxService.ts +5 -0
  226. package/src/inheritance-tax/japan/JapanInheritanceTaxServiceImpl.ts +67 -0
  227. package/src/inheritance-tax/japan/domain/types.ts +25 -0
  228. package/src/inheritance-tax/south-africa/SouthAfricaInheritanceTaxService.ts +5 -0
  229. package/src/inheritance-tax/south-africa/SouthAfricaInheritanceTaxServiceImpl.ts +66 -0
  230. package/src/inheritance-tax/south-africa/domain/types.ts +24 -0
  231. package/src/inheritance-tax/spain/SpainInheritanceTaxService.ts +5 -0
  232. package/src/inheritance-tax/spain/SpainInheritanceTaxServiceImpl.ts +65 -0
  233. package/src/inheritance-tax/spain/domain/types.ts +23 -0
  234. package/src/inheritance-tax/uk/UKInheritanceTaxService.ts +5 -0
  235. package/src/inheritance-tax/uk/UKInheritanceTaxServiceImpl.ts +46 -0
  236. package/src/inheritance-tax/uk/domain/types.ts +20 -0
  237. package/src/inheritance-tax/usa/USAInheritanceTaxService.ts +5 -0
  238. package/src/inheritance-tax/usa/USAInheritanceTaxServiceImpl.ts +65 -0
  239. package/src/inheritance-tax/usa/domain/types.ts +23 -0
  240. package/src/mortgage/brazil/BrazilMortgageService.ts +5 -0
  241. package/src/mortgage/brazil/BrazilMortgageServiceImpl.ts +101 -0
  242. package/src/mortgage/brazil/domain/types.ts +46 -0
  243. package/src/mortgage/index.ts +49 -1
  244. package/src/mortgage/india/IndiaMortgageService.ts +5 -0
  245. package/src/mortgage/india/IndiaMortgageServiceImpl.ts +101 -0
  246. package/src/mortgage/india/domain/types.ts +46 -0
  247. package/src/mortgage/japan/JapanMortgageService.ts +5 -0
  248. package/src/mortgage/japan/JapanMortgageServiceImpl.ts +101 -0
  249. package/src/mortgage/japan/domain/types.ts +46 -0
  250. package/src/mortgage/spain/SpainMortgageService.ts +5 -0
  251. package/src/mortgage/spain/SpainMortgageServiceImpl.ts +130 -0
  252. package/src/mortgage/spain/domain/types.ts +52 -0
  253. package/src/shared/domain/types.ts +1 -0
  254. package/test/australia-inheritance-tax.test.ts +35 -0
  255. package/test/brazil-capital-gains.test.ts +65 -0
  256. package/test/brazil-corporate-tax.test.ts +63 -0
  257. package/test/brazil-income-tax.test.ts +85 -0
  258. package/test/brazil-mortgage.test.ts +70 -0
  259. package/test/canada-inheritance-tax.test.ts +62 -0
  260. package/test/france-inheritance-tax.test.ts +101 -0
  261. package/test/germany-inheritance-tax.test.ts +100 -0
  262. package/test/india-capital-gains.test.ts +71 -0
  263. package/test/india-corporate-tax.test.ts +54 -0
  264. package/test/india-income-tax.test.ts +78 -0
  265. package/test/india-mortgage.test.ts +70 -0
  266. package/test/japan-capital-gains.test.ts +55 -0
  267. package/test/japan-corporate-tax.test.ts +54 -0
  268. package/test/japan-income-tax.test.ts +76 -0
  269. package/test/japan-inheritance-tax.test.ts +74 -0
  270. package/test/japan-mortgage.test.ts +69 -0
  271. package/test/south-africa-inheritance-tax.test.ts +81 -0
  272. package/test/spain-capital-gains.test.ts +66 -0
  273. package/test/spain-corporate-tax.test.ts +54 -0
  274. package/test/spain-income-tax.test.ts +84 -0
  275. package/test/spain-inheritance-tax.test.ts +78 -0
  276. package/test/spain-mortgage.test.ts +70 -0
  277. package/test/uk-inheritance-tax.test.ts +72 -0
  278. package/test/usa-inheritance-tax.test.ts +90 -0
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JapanCorporateTaxServiceImpl = void 0;
4
+ class JapanCorporateTaxServiceImpl {
5
+ constructor(input, rules) {
6
+ this._input = input;
7
+ this._rules = rules;
8
+ }
9
+ calculate() {
10
+ const income = this._input.taxableIncome;
11
+ if (income <= 0) {
12
+ return { corporateTax: 0, effectiveTaxRate: 0, breakdowns: [] };
13
+ }
14
+ const tax = income * this._rules.regime.rate;
15
+ const breakdowns = [{
16
+ from: '0',
17
+ to: 'All',
18
+ rate: this._rules.regime.rate,
19
+ amount: tax,
20
+ }];
21
+ return {
22
+ corporateTax: tax,
23
+ effectiveTaxRate: (tax / income) * 100,
24
+ breakdowns,
25
+ };
26
+ }
27
+ }
28
+ exports.JapanCorporateTaxServiceImpl = JapanCorporateTaxServiceImpl;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFwYW5Db3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3Jwb3JhdGUvamFwYW4vSmFwYW5Db3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFhLDRCQUE0QjtJQUlyQyxZQUFZLEtBQVksRUFBRSxLQUFZO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFFekMsSUFBSSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3BFLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFnQixDQUFDO2dCQUM3QixJQUFJLEVBQUUsR0FBRztnQkFDVCxFQUFFLEVBQUUsS0FBSztnQkFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDN0IsTUFBTSxFQUFFLEdBQUc7YUFDZCxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0gsWUFBWSxFQUFFLEdBQUc7WUFDakIsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRztZQUN0QyxVQUFVO1NBQ2IsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQTlCRCxvRUE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha2Rvd24gfSBmcm9tIFwiLi4vZG9tYWluL3R5cGVzXCI7XG5pbXBvcnQgeyBKYXBhbkNvcnBvcmF0ZVRheFNlcnZpY2UgfSBmcm9tIFwiLi9KYXBhbkNvcnBvcmF0ZVRheFNlcnZpY2VcIjtcbmltcG9ydCB7IElucHV0LCBSZXN1bHQsIFJ1bGVzIH0gZnJvbSBcIi4vZG9tYWluL3R5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBKYXBhbkNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsIGltcGxlbWVudHMgSmFwYW5Db3Jwb3JhdGVUYXhTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9pbnB1dDogSW5wdXQ7XG4gICAgcHJpdmF0ZSBfcnVsZXM6IFJ1bGVzO1xuXG4gICAgY29uc3RydWN0b3IoaW5wdXQ6IElucHV0LCBydWxlczogUnVsZXMpIHtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSBydWxlcztcbiAgICB9XG5cbiAgICBjYWxjdWxhdGUoKTogUmVzdWx0IHtcbiAgICAgICAgY29uc3QgaW5jb21lID0gdGhpcy5faW5wdXQudGF4YWJsZUluY29tZTtcblxuICAgICAgICBpZiAoaW5jb21lIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiB7IGNvcnBvcmF0ZVRheDogMCwgZWZmZWN0aXZlVGF4UmF0ZTogMCwgYnJlYWtkb3duczogW10gfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRheCA9IGluY29tZSAqIHRoaXMuX3J1bGVzLnJlZ2ltZS5yYXRlO1xuICAgICAgICBjb25zdCBicmVha2Rvd25zOiBCcmVha2Rvd25bXSA9IFt7XG4gICAgICAgICAgICBmcm9tOiAnMCcsXG4gICAgICAgICAgICB0bzogJ0FsbCcsXG4gICAgICAgICAgICByYXRlOiB0aGlzLl9ydWxlcy5yZWdpbWUucmF0ZSxcbiAgICAgICAgICAgIGFtb3VudDogdGF4LFxuICAgICAgICB9XTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29ycG9yYXRlVGF4OiB0YXgsXG4gICAgICAgICAgICBlZmZlY3RpdmVUYXhSYXRlOiAodGF4IC8gaW5jb21lKSAqIDEwMCxcbiAgICAgICAgICAgIGJyZWFrZG93bnMsXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29ycG9yYXRlL2phcGFuL2RvbWFpbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtkb3duIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVzIHtcbiAgICByZWdpbWU6IHsgdHlwZTogJ2ZsYXQnOyByYXRlOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dCB7XG4gICAgdGF4YWJsZUluY29tZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VsdCB7XG4gICAgY29ycG9yYXRlVGF4OiBudW1iZXI7XG4gICAgZWZmZWN0aXZlVGF4UmF0ZTogbnVtYmVyO1xuICAgIGJyZWFrZG93bnM6IEJyZWFrZG93bltdO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BhaW5Db3Jwb3JhdGVUYXhTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcnBvcmF0ZS9zcGFpbi9TcGFpbkNvcnBvcmF0ZVRheFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3VsdCB9IGZyb20gXCIuL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwYWluQ29ycG9yYXRlVGF4U2VydmljZSB7XG4gICAgY2FsY3VsYXRlKCk6IFJlc3VsdDtcbn1cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpainCorporateTaxServiceImpl = void 0;
4
+ class SpainCorporateTaxServiceImpl {
5
+ constructor(input, rules) {
6
+ this._input = input;
7
+ this._rules = rules;
8
+ }
9
+ calculate() {
10
+ const income = this._input.taxableIncome;
11
+ if (income <= 0) {
12
+ return { corporateTax: 0, effectiveTaxRate: 0, breakdowns: [] };
13
+ }
14
+ const tax = income * this._rules.regime.rate;
15
+ const breakdowns = [{
16
+ from: '0',
17
+ to: 'All',
18
+ rate: this._rules.regime.rate,
19
+ amount: tax,
20
+ }];
21
+ return {
22
+ corporateTax: tax,
23
+ effectiveTaxRate: (tax / income) * 100,
24
+ breakdowns,
25
+ };
26
+ }
27
+ }
28
+ exports.SpainCorporateTaxServiceImpl = SpainCorporateTaxServiceImpl;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BhaW5Db3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3Jwb3JhdGUvc3BhaW4vU3BhaW5Db3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFhLDRCQUE0QjtJQUlyQyxZQUFZLEtBQVksRUFBRSxLQUFZO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFFekMsSUFBSSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3BFLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFnQixDQUFDO2dCQUM3QixJQUFJLEVBQUUsR0FBRztnQkFDVCxFQUFFLEVBQUUsS0FBSztnQkFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDN0IsTUFBTSxFQUFFLEdBQUc7YUFDZCxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0gsWUFBWSxFQUFFLEdBQUc7WUFDakIsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRztZQUN0QyxVQUFVO1NBQ2IsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQTlCRCxvRUE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha2Rvd24gfSBmcm9tIFwiLi4vZG9tYWluL3R5cGVzXCI7XG5pbXBvcnQgeyBTcGFpbkNvcnBvcmF0ZVRheFNlcnZpY2UgfSBmcm9tIFwiLi9TcGFpbkNvcnBvcmF0ZVRheFNlcnZpY2VcIjtcbmltcG9ydCB7IElucHV0LCBSZXN1bHQsIFJ1bGVzIH0gZnJvbSBcIi4vZG9tYWluL3R5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBTcGFpbkNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsIGltcGxlbWVudHMgU3BhaW5Db3Jwb3JhdGVUYXhTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9pbnB1dDogSW5wdXQ7XG4gICAgcHJpdmF0ZSBfcnVsZXM6IFJ1bGVzO1xuXG4gICAgY29uc3RydWN0b3IoaW5wdXQ6IElucHV0LCBydWxlczogUnVsZXMpIHtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSBydWxlcztcbiAgICB9XG5cbiAgICBjYWxjdWxhdGUoKTogUmVzdWx0IHtcbiAgICAgICAgY29uc3QgaW5jb21lID0gdGhpcy5faW5wdXQudGF4YWJsZUluY29tZTtcblxuICAgICAgICBpZiAoaW5jb21lIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiB7IGNvcnBvcmF0ZVRheDogMCwgZWZmZWN0aXZlVGF4UmF0ZTogMCwgYnJlYWtkb3duczogW10gfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRheCA9IGluY29tZSAqIHRoaXMuX3J1bGVzLnJlZ2ltZS5yYXRlO1xuICAgICAgICBjb25zdCBicmVha2Rvd25zOiBCcmVha2Rvd25bXSA9IFt7XG4gICAgICAgICAgICBmcm9tOiAnMCcsXG4gICAgICAgICAgICB0bzogJ0FsbCcsXG4gICAgICAgICAgICByYXRlOiB0aGlzLl9ydWxlcy5yZWdpbWUucmF0ZSxcbiAgICAgICAgICAgIGFtb3VudDogdGF4LFxuICAgICAgICB9XTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29ycG9yYXRlVGF4OiB0YXgsXG4gICAgICAgICAgICBlZmZlY3RpdmVUYXhSYXRlOiAodGF4IC8gaW5jb21lKSAqIDEwMCxcbiAgICAgICAgICAgIGJyZWFrZG93bnMsXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29ycG9yYXRlL3NwYWluL2RvbWFpbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtkb3duIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVzIHtcbiAgICByZWdpbWU6IHsgdHlwZTogJ2ZsYXQnOyByYXRlOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dCB7XG4gICAgdGF4YWJsZUluY29tZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VsdCB7XG4gICAgY29ycG9yYXRlVGF4OiBudW1iZXI7XG4gICAgZWZmZWN0aXZlVGF4UmF0ZTogbnVtYmVyO1xuICAgIGJyZWFrZG93bnM6IEJyZWFrZG93bltdO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhemlsSW5jb21lVGF4U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmNvbWUtdGF4L2JyYXppbC9CcmF6aWxJbmNvbWVUYXhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wdXRlZEluY29tZVRheFZhbHVlcyB9IGZyb20gXCIuL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJyYXppbEluY29tZVRheFNlcnZpY2Uge1xuICAgIGNhbGN1bGF0ZU5ldEluY29tZSgpOiBDb21wdXRlZEluY29tZVRheFZhbHVlcztcbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrazilIncomeTaxServiceImpl = void 0;
4
+ class BrazilIncomeTaxServiceImpl {
5
+ constructor(income, rules) {
6
+ this._income = income;
7
+ this._rules = rules;
8
+ }
9
+ calculateNetIncome() {
10
+ const { grossTax, bracketBreakdown } = this.computeTaxBrackets(this._income);
11
+ const inss = this.computeINSS(this._income, this._rules.inss);
12
+ const totalDeductions = grossTax + inss;
13
+ const netIncome = this._income - totalDeductions;
14
+ return {
15
+ grossIncome: this._income,
16
+ incomeTax: this.round(grossTax),
17
+ inss: this.round(inss),
18
+ totalDeductions: this.round(totalDeductions),
19
+ netIncome: this.round(netIncome),
20
+ effectiveTaxRate: this._income > 0 ? this.round(grossTax / this._income, 4) : 0,
21
+ taxBracketBreakdown: bracketBreakdown,
22
+ };
23
+ }
24
+ computeTaxBrackets(income) {
25
+ let tax = 0;
26
+ const bracketBreakdown = [];
27
+ for (let index = 0; index < this._rules.taxBrackets.length; index++) {
28
+ const bracket = this._rules.taxBrackets[index];
29
+ if (income <= bracket.from) {
30
+ bracketBreakdown.push({
31
+ bracketIndex: index,
32
+ bracketName: `Bracket ${index + 1}`,
33
+ from: bracket.from,
34
+ to: bracket.to ?? null,
35
+ rate: bracket.rate,
36
+ amountInBracket: 0,
37
+ taxOnAmount: 0,
38
+ });
39
+ break;
40
+ }
41
+ const upper = bracket.to ?? income;
42
+ const taxableAmount = Math.min(upper, income) - bracket.from;
43
+ if (taxableAmount > 0) {
44
+ const taxOnAmount = taxableAmount * bracket.rate;
45
+ tax += taxOnAmount;
46
+ bracketBreakdown.push({
47
+ bracketIndex: index,
48
+ bracketName: `Bracket ${index + 1}`,
49
+ from: bracket.from,
50
+ to: bracket.to ?? null,
51
+ rate: bracket.rate,
52
+ amountInBracket: taxableAmount,
53
+ taxOnAmount,
54
+ });
55
+ }
56
+ else {
57
+ bracketBreakdown.push({
58
+ bracketIndex: index,
59
+ bracketName: `Bracket ${index + 1}`,
60
+ from: bracket.from,
61
+ to: bracket.to ?? null,
62
+ rate: bracket.rate,
63
+ amountInBracket: 0,
64
+ taxOnAmount: 0,
65
+ });
66
+ }
67
+ }
68
+ return { grossTax: tax, bracketBreakdown };
69
+ }
70
+ computeINSS(income, rules) {
71
+ return Math.min(income, rules.cap) * rules.rate;
72
+ }
73
+ round(value, decimals = 2) {
74
+ return Number(value.toFixed(decimals));
75
+ }
76
+ }
77
+ exports.BrazilIncomeTaxServiceImpl = BrazilIncomeTaxServiceImpl;
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhemlsSW5jb21lVGF4U2VydmljZUltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5jb21lLXRheC9icmF6aWwvQnJhemlsSW5jb21lVGF4U2VydmljZUltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSwwQkFBMEI7SUFJbkMsWUFBWSxNQUFjLEVBQUUsS0FBcUI7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxNQUFNLGVBQWUsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDO1FBRWpELE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQy9CLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUN0QixlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7WUFDNUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ2hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9FLG1CQUFtQixFQUFFLGdCQUFnQjtTQUN4QyxDQUFDO0lBQ04sQ0FBQztJQUVPLGtCQUFrQixDQUN0QixNQUFjO1FBRWQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osTUFBTSxnQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO1FBRWpELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvQyxJQUFJLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3pCLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDbEIsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLFdBQVcsRUFBRSxXQUFXLEtBQUssR0FBRyxDQUFDLEVBQUU7b0JBQ25DLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtvQkFDbEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSTtvQkFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixlQUFlLEVBQUUsQ0FBQztvQkFDbEIsV0FBVyxFQUFFLENBQUM7aUJBQ2pCLENBQUMsQ0FBQztnQkFDSCxNQUFNO1lBQ1YsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDO1lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFFN0QsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sV0FBVyxHQUFHLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNqRCxHQUFHLElBQUksV0FBVyxDQUFDO2dCQUNuQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLFlBQVksRUFBRSxLQUFLO29CQUNuQixXQUFXLEVBQUUsV0FBVyxLQUFLLEdBQUcsQ0FBQyxFQUFFO29CQUNuQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLElBQUk7b0JBQ3RCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtvQkFDbEIsZUFBZSxFQUFFLGFBQWE7b0JBQzlCLFdBQVc7aUJBQ2QsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDbEIsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLFdBQVcsRUFBRSxXQUFXLEtBQUssR0FBRyxDQUFDLEVBQUU7b0JBQ25DLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtvQkFDbEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSTtvQkFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixlQUFlLEVBQUUsQ0FBQztvQkFDbEIsV0FBVyxFQUFFLENBQUM7aUJBQ2pCLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQWMsRUFBRSxLQUFnQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7SUFFTyxLQUFLLENBQUMsS0FBYSxFQUFFLFFBQVEsR0FBRyxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0o7QUF0RkQsZ0VBc0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJhY2tldEFsbG9jYXRpb24gfSBmcm9tIFwiLi4vZG9tYWluL3R5cGVzXCI7XG5pbXBvcnQgeyBCcmF6aWxJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSBcIi4vQnJhemlsSW5jb21lVGF4U2VydmljZVwiO1xuaW1wb3J0IHsgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsIElOU1NSdWxlcywgSW5jb21lVGF4UnVsZXMgfSBmcm9tIFwiLi9kb21haW4vdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIEJyYXppbEluY29tZVRheFNlcnZpY2VJbXBsIGltcGxlbWVudHMgQnJhemlsSW5jb21lVGF4U2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaW5jb21lOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfcnVsZXM6IEluY29tZVRheFJ1bGVzO1xuXG4gICAgY29uc3RydWN0b3IoaW5jb21lOiBudW1iZXIsIHJ1bGVzOiBJbmNvbWVUYXhSdWxlcykge1xuICAgICAgICB0aGlzLl9pbmNvbWUgPSBpbmNvbWU7XG4gICAgICAgIHRoaXMuX3J1bGVzID0gcnVsZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbGN1bGF0ZU5ldEluY29tZSgpOiBDb21wdXRlZEluY29tZVRheFZhbHVlcyB7XG4gICAgICAgIGNvbnN0IHsgZ3Jvc3NUYXgsIGJyYWNrZXRCcmVha2Rvd24gfSA9IHRoaXMuY29tcHV0ZVRheEJyYWNrZXRzKHRoaXMuX2luY29tZSk7XG4gICAgICAgIGNvbnN0IGluc3MgPSB0aGlzLmNvbXB1dGVJTlNTKHRoaXMuX2luY29tZSwgdGhpcy5fcnVsZXMuaW5zcyk7XG4gICAgICAgIGNvbnN0IHRvdGFsRGVkdWN0aW9ucyA9IGdyb3NzVGF4ICsgaW5zcztcbiAgICAgICAgY29uc3QgbmV0SW5jb21lID0gdGhpcy5faW5jb21lIC0gdG90YWxEZWR1Y3Rpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBncm9zc0luY29tZTogdGhpcy5faW5jb21lLFxuICAgICAgICAgICAgaW5jb21lVGF4OiB0aGlzLnJvdW5kKGdyb3NzVGF4KSxcbiAgICAgICAgICAgIGluc3M6IHRoaXMucm91bmQoaW5zcyksXG4gICAgICAgICAgICB0b3RhbERlZHVjdGlvbnM6IHRoaXMucm91bmQodG90YWxEZWR1Y3Rpb25zKSxcbiAgICAgICAgICAgIG5ldEluY29tZTogdGhpcy5yb3VuZChuZXRJbmNvbWUpLFxuICAgICAgICAgICAgZWZmZWN0aXZlVGF4UmF0ZTogdGhpcy5faW5jb21lID4gMCA/IHRoaXMucm91bmQoZ3Jvc3NUYXggLyB0aGlzLl9pbmNvbWUsIDQpIDogMCxcbiAgICAgICAgICAgIHRheEJyYWNrZXRCcmVha2Rvd246IGJyYWNrZXRCcmVha2Rvd24sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlVGF4QnJhY2tldHMoXG4gICAgICAgIGluY29tZTogbnVtYmVyLFxuICAgICk6IHsgZ3Jvc3NUYXg6IG51bWJlcjsgYnJhY2tldEJyZWFrZG93bjogQnJhY2tldEFsbG9jYXRpb25bXSB9IHtcbiAgICAgICAgbGV0IHRheCA9IDA7XG4gICAgICAgIGNvbnN0IGJyYWNrZXRCcmVha2Rvd246IEJyYWNrZXRBbGxvY2F0aW9uW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fcnVsZXMudGF4QnJhY2tldHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBicmFja2V0ID0gdGhpcy5fcnVsZXMudGF4QnJhY2tldHNbaW5kZXhdO1xuXG4gICAgICAgICAgICBpZiAoaW5jb21lIDw9IGJyYWNrZXQuZnJvbSkge1xuICAgICAgICAgICAgICAgIGJyYWNrZXRCcmVha2Rvd24ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXRJbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXROYW1lOiBgQnJhY2tldCAke2luZGV4ICsgMX1gLFxuICAgICAgICAgICAgICAgICAgICBmcm9tOiBicmFja2V0LmZyb20sXG4gICAgICAgICAgICAgICAgICAgIHRvOiBicmFja2V0LnRvID8/IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHJhdGU6IGJyYWNrZXQucmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgYW1vdW50SW5CcmFja2V0OiAwLFxuICAgICAgICAgICAgICAgICAgICB0YXhPbkFtb3VudDogMCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdXBwZXIgPSBicmFja2V0LnRvID8/IGluY29tZTtcbiAgICAgICAgICAgIGNvbnN0IHRheGFibGVBbW91bnQgPSBNYXRoLm1pbih1cHBlciwgaW5jb21lKSAtIGJyYWNrZXQuZnJvbTtcblxuICAgICAgICAgICAgaWYgKHRheGFibGVBbW91bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGF4T25BbW91bnQgPSB0YXhhYmxlQW1vdW50ICogYnJhY2tldC5yYXRlO1xuICAgICAgICAgICAgICAgIHRheCArPSB0YXhPbkFtb3VudDtcbiAgICAgICAgICAgICAgICBicmFja2V0QnJlYWtkb3duLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBicmFja2V0SW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICBicmFja2V0TmFtZTogYEJyYWNrZXQgJHtpbmRleCArIDF9YCxcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYnJhY2tldC5mcm9tLFxuICAgICAgICAgICAgICAgICAgICB0bzogYnJhY2tldC50byA/PyBudWxsLFxuICAgICAgICAgICAgICAgICAgICByYXRlOiBicmFja2V0LnJhdGUsXG4gICAgICAgICAgICAgICAgICAgIGFtb3VudEluQnJhY2tldDogdGF4YWJsZUFtb3VudCxcbiAgICAgICAgICAgICAgICAgICAgdGF4T25BbW91bnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyYWNrZXRCcmVha2Rvd24ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXRJbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXROYW1lOiBgQnJhY2tldCAke2luZGV4ICsgMX1gLFxuICAgICAgICAgICAgICAgICAgICBmcm9tOiBicmFja2V0LmZyb20sXG4gICAgICAgICAgICAgICAgICAgIHRvOiBicmFja2V0LnRvID8/IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHJhdGU6IGJyYWNrZXQucmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgYW1vdW50SW5CcmFja2V0OiAwLFxuICAgICAgICAgICAgICAgICAgICB0YXhPbkFtb3VudDogMCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGdyb3NzVGF4OiB0YXgsIGJyYWNrZXRCcmVha2Rvd24gfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVJTlNTKGluY29tZTogbnVtYmVyLCBydWxlczogSU5TU1J1bGVzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGgubWluKGluY29tZSwgcnVsZXMuY2FwKSAqIHJ1bGVzLnJhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByb3VuZCh2YWx1ZTogbnVtYmVyLCBkZWNpbWFscyA9IDIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlLnRvRml4ZWQoZGVjaW1hbHMpKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW5jb21lLXRheC9icmF6aWwvZG9tYWluL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmFja2V0QWxsb2NhdGlvbiwgVGF4QnJhY2tldCB9IGZyb20gXCIuLi8uLi9kb21haW4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJbmNvbWVUYXhSdWxlcyB7XG4gICAgdGF4QnJhY2tldHM6IFRheEJyYWNrZXRbXTtcbiAgICBpbnNzOiBJTlNTUnVsZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5TU1J1bGVzIHtcbiAgICByYXRlOiBudW1iZXI7XG4gICAgY2FwOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMge1xuICAgIGdyb3NzSW5jb21lOiBudW1iZXI7XG4gICAgaW5jb21lVGF4OiBudW1iZXI7XG4gICAgaW5zczogbnVtYmVyO1xuICAgIHRvdGFsRGVkdWN0aW9uczogbnVtYmVyO1xuICAgIG5ldEluY29tZTogbnVtYmVyO1xuICAgIGVmZmVjdGl2ZVRheFJhdGU6IG51bWJlcjtcbiAgICB0YXhCcmFja2V0QnJlYWtkb3duOiBCcmFja2V0QWxsb2NhdGlvbltdO1xufVxuIl19
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GermanyIncomeTaxService = exports.USAIncomeTaxService = exports.UKIncomeTaxService = exports.AustraliaIncomeTaxService = exports.SouthAfricaIncomeTaxService = exports.FranceIncomeTaxService = exports.CanadaIncomeTaxService = void 0;
3
+ exports.JapanIncomeTaxService = exports.IndiaIncomeTaxService = exports.SpainIncomeTaxService = exports.BrazilIncomeTaxService = exports.GermanyIncomeTaxService = exports.USAIncomeTaxService = exports.UKIncomeTaxService = exports.AustraliaIncomeTaxService = exports.SouthAfricaIncomeTaxService = exports.FranceIncomeTaxService = exports.CanadaIncomeTaxService = void 0;
4
4
  // Canada
5
5
  const CanadaIncomeTaxServiceImpl_1 = require("./canada/CanadaIncomeTaxServiceImpl");
6
6
  Object.defineProperty(exports, "CanadaIncomeTaxService", { enumerable: true, get: function () { return CanadaIncomeTaxServiceImpl_1.CanadaIncomeTaxServiceImpl; } });
@@ -21,4 +21,16 @@ Object.defineProperty(exports, "USAIncomeTaxService", { enumerable: true, get: f
21
21
  // Germany
22
22
  const GermanyIncomeTaxServiceImpl_1 = require("./germany/GermanyIncomeTaxServiceImpl");
23
23
  Object.defineProperty(exports, "GermanyIncomeTaxService", { enumerable: true, get: function () { return GermanyIncomeTaxServiceImpl_1.GermanyIncomeTaxServiceImpl; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5jb21lLXRheC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTO0FBQ1Qsb0ZBQTJHO0FBaUR2Ryx1R0FqRG1DLHVEQUFzQixPQWlEbkM7QUE1QzFCLG9GQUEyRztBQStDdkcsdUdBL0NtQyx1REFBc0IsT0ErQ25DO0FBdkMxQixlQUFlO0FBQ2Ysb0dBQWdJO0FBeUM1SCw0R0F6Q3dDLGlFQUEyQixPQXlDeEM7QUFuQy9CLFlBQVk7QUFDWiw2RkFBdUg7QUFxQ25ILDBHQXJDc0MsNkRBQXlCLE9BcUN0QztBQS9CN0IsS0FBSztBQUNMLHdFQUEyRjtBQWlDdkYsbUdBakMrQiwrQ0FBa0IsT0FpQy9CO0FBM0J0QixNQUFNO0FBQ04sMkVBQStGO0FBNkIzRixvR0E3QmdDLGlEQUFtQixPQTZCaEM7QUF2QnZCLFVBQVU7QUFDVix1RkFBK0c7QUF5QjNHLHdHQXpCb0MseURBQXVCLE9BeUJwQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENhbmFkYVxuaW1wb3J0IHsgQ2FuYWRhSW5jb21lVGF4U2VydmljZUltcGwgYXMgQ2FuYWRhSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vY2FuYWRhL0NhbmFkYUluY29tZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgQ2FuYWRhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgQ2FuYWRhSW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vY2FuYWRhL2RvbWFpbi90eXBlcyc7XG5pbXBvcnQgeyBGcmFuY2VJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBGcmFuY2VJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9mcmFuY2UvRnJhbmNlSW5jb21lVGF4U2VydmljZUltcGwnO1xuXG4vLyBGcmFuY2VcbmltcG9ydCB7IFxuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIEZyYW5jZUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEluY29tZVRheFJ1bGVzIGFzIEZyYW5jZUluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2ZyYW5jZS9kb21haW4vdHlwZXMnO1xuXG4vLyBTb3V0aCBBZnJpY2FcbmltcG9ydCB7IFNvdXRoQWZyaWNhSW5jb21lVGF4U2VydmljZUltcGwgYXMgU291dGhBZnJpY2FJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9zb3V0aC1hZnJpY2EvU291dGhBZnJpY2FJbmNvbWVUYXhTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIFNvdXRoQWZyaWNhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgU291dGhBZnJpY2FJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9zb3V0aC1hZnJpY2EvZG9tYWluL3R5cGVzJztcblxuLy8gQXVzdHJhbGlhXG5pbXBvcnQgeyBBdXN0cmFsaWFJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBBdXN0cmFsaWFJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9hdXN0cmFsaWEvQXVzdHJhbGlhSW5jb21lVGF4U2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBBdXN0cmFsaWFDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBBdXN0cmFsaWFJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9hdXN0cmFsaWEvZG9tYWluL3R5cGVzJztcblxuLy8gVUtcbmltcG9ydCB7IFVLSW5jb21lVGF4U2VydmljZUltcGwgYXMgVUtJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi91ay9VS0luY29tZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgVUtDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBVS0luY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL3VrL2RvbWFpbi90eXBlcyc7XG5cbi8vIFVTQVxuaW1wb3J0IHsgVVNBSW5jb21lVGF4U2VydmljZUltcGwgYXMgVVNBSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vdXNhL1VTQUluY29tZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgVVNBQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgVVNBSW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vdXNhL2RvbWFpbi90eXBlcyc7XG5cbi8vIEdlcm1hbnlcbmltcG9ydCB7IEdlcm1hbnlJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBHZXJtYW55SW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vZ2VybWFueS9HZXJtYW55SW5jb21lVGF4U2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBHZXJtYW55Q29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgR2VybWFueUluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2dlcm1hbnkvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0IHtcbiAgICBDYW5hZGFJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIENhbmFkYUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIENhbmFkYUluY29tZVRheFJ1bGVzLFxuICAgIEZyYW5jZUluY29tZVRheFNlcnZpY2UsXG4gICAgRnJhbmNlQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgRnJhbmNlSW5jb21lVGF4UnVsZXMsXG4gICAgU291dGhBZnJpY2FJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIFNvdXRoQWZyaWNhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgU291dGhBZnJpY2FJbmNvbWVUYXhSdWxlcyxcbiAgICBBdXN0cmFsaWFJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIEF1c3RyYWxpYUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEF1c3RyYWxpYUluY29tZVRheFJ1bGVzLFxuICAgIFVLSW5jb21lVGF4U2VydmljZSxcbiAgICBVS0NvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIFVLSW5jb21lVGF4UnVsZXMsXG4gICAgVVNBSW5jb21lVGF4U2VydmljZSxcbiAgICBVU0FDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBVU0FJbmNvbWVUYXhSdWxlcyxcbiAgICBHZXJtYW55SW5jb21lVGF4U2VydmljZSxcbiAgICBHZXJtYW55Q29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgR2VybWFueUluY29tZVRheFJ1bGVzLFxufTsiXX0=
24
+ // Brazil
25
+ const BrazilIncomeTaxServiceImpl_1 = require("./brazil/BrazilIncomeTaxServiceImpl");
26
+ Object.defineProperty(exports, "BrazilIncomeTaxService", { enumerable: true, get: function () { return BrazilIncomeTaxServiceImpl_1.BrazilIncomeTaxServiceImpl; } });
27
+ // Spain
28
+ const SpainIncomeTaxServiceImpl_1 = require("./spain/SpainIncomeTaxServiceImpl");
29
+ Object.defineProperty(exports, "SpainIncomeTaxService", { enumerable: true, get: function () { return SpainIncomeTaxServiceImpl_1.SpainIncomeTaxServiceImpl; } });
30
+ // India
31
+ const IndiaIncomeTaxServiceImpl_1 = require("./india/IndiaIncomeTaxServiceImpl");
32
+ Object.defineProperty(exports, "IndiaIncomeTaxService", { enumerable: true, get: function () { return IndiaIncomeTaxServiceImpl_1.IndiaIncomeTaxServiceImpl; } });
33
+ // Japan
34
+ const JapanIncomeTaxServiceImpl_1 = require("./japan/JapanIncomeTaxServiceImpl");
35
+ Object.defineProperty(exports, "JapanIncomeTaxService", { enumerable: true, get: function () { return JapanIncomeTaxServiceImpl_1.JapanIncomeTaxServiceImpl; } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5jb21lLXRheC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTO0FBQ1Qsb0ZBQTJHO0FBNkV2Ryx1R0E3RW1DLHVEQUFzQixPQTZFbkM7QUF4RTFCLG9GQUEyRztBQTJFdkcsdUdBM0VtQyx1REFBc0IsT0EyRW5DO0FBbkUxQixlQUFlO0FBQ2Ysb0dBQWdJO0FBcUU1SCw0R0FyRXdDLGlFQUEyQixPQXFFeEM7QUEvRC9CLFlBQVk7QUFDWiw2RkFBdUg7QUFpRW5ILDBHQWpFc0MsNkRBQXlCLE9BaUV0QztBQTNEN0IsS0FBSztBQUNMLHdFQUEyRjtBQTZEdkYsbUdBN0QrQiwrQ0FBa0IsT0E2RC9CO0FBdkR0QixNQUFNO0FBQ04sMkVBQStGO0FBeUQzRixvR0F6RGdDLGlEQUFtQixPQXlEaEM7QUFuRHZCLFVBQVU7QUFDVix1RkFBK0c7QUFxRDNHLHdHQXJEb0MseURBQXVCLE9BcURwQztBQS9DM0IsU0FBUztBQUNULG9GQUEyRztBQWlEdkcsdUdBakRtQyx1REFBc0IsT0FpRG5DO0FBM0MxQixRQUFRO0FBQ1IsaUZBQXVHO0FBNkNuRyxzR0E3Q2tDLHFEQUFxQixPQTZDbEM7QUF2Q3pCLFFBQVE7QUFDUixpRkFBdUc7QUF5Q25HLHNHQXpDa0MscURBQXFCLE9BeUNsQztBQW5DekIsUUFBUTtBQUNSLGlGQUF1RztBQXFDbkcsc0dBckNrQyxxREFBcUIsT0FxQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ2FuYWRhXG5pbXBvcnQgeyBDYW5hZGFJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBDYW5hZGFJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9jYW5hZGEvQ2FuYWRhSW5jb21lVGF4U2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBDYW5hZGFDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBDYW5hZGFJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9jYW5hZGEvZG9tYWluL3R5cGVzJztcbmltcG9ydCB7IEZyYW5jZUluY29tZVRheFNlcnZpY2VJbXBsIGFzIEZyYW5jZUluY29tZVRheFNlcnZpY2UgfSBmcm9tICcuL2ZyYW5jZS9GcmFuY2VJbmNvbWVUYXhTZXJ2aWNlSW1wbCc7XG5cbi8vIEZyYW5jZVxuaW1wb3J0IHsgXG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgRnJhbmNlQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgRnJhbmNlSW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vZnJhbmNlL2RvbWFpbi90eXBlcyc7XG5cbi8vIFNvdXRoIEFmcmljYVxuaW1wb3J0IHsgU291dGhBZnJpY2FJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBTb3V0aEFmcmljYUluY29tZVRheFNlcnZpY2UgfSBmcm9tICcuL3NvdXRoLWFmcmljYS9Tb3V0aEFmcmljYUluY29tZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgU291dGhBZnJpY2FDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBTb3V0aEFmcmljYUluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL3NvdXRoLWFmcmljYS9kb21haW4vdHlwZXMnO1xuXG4vLyBBdXN0cmFsaWFcbmltcG9ydCB7IEF1c3RyYWxpYUluY29tZVRheFNlcnZpY2VJbXBsIGFzIEF1c3RyYWxpYUluY29tZVRheFNlcnZpY2UgfSBmcm9tICcuL2F1c3RyYWxpYS9BdXN0cmFsaWFJbmNvbWVUYXhTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIEF1c3RyYWxpYUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEluY29tZVRheFJ1bGVzIGFzIEF1c3RyYWxpYUluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2F1c3RyYWxpYS9kb21haW4vdHlwZXMnO1xuXG4vLyBVS1xuaW1wb3J0IHsgVUtJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBVS0luY29tZVRheFNlcnZpY2UgfSBmcm9tICcuL3VrL1VLSW5jb21lVGF4U2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBVS0NvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEluY29tZVRheFJ1bGVzIGFzIFVLSW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vdWsvZG9tYWluL3R5cGVzJztcblxuLy8gVVNBXG5pbXBvcnQgeyBVU0FJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBVU0FJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi91c2EvVVNBSW5jb21lVGF4U2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBVU0FDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBVU0FJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi91c2EvZG9tYWluL3R5cGVzJztcblxuLy8gR2VybWFueVxuaW1wb3J0IHsgR2VybWFueUluY29tZVRheFNlcnZpY2VJbXBsIGFzIEdlcm1hbnlJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9nZXJtYW55L0dlcm1hbnlJbmNvbWVUYXhTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIEdlcm1hbnlDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBHZXJtYW55SW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vZ2VybWFueS9kb21haW4vdHlwZXMnO1xuXG4vLyBCcmF6aWxcbmltcG9ydCB7IEJyYXppbEluY29tZVRheFNlcnZpY2VJbXBsIGFzIEJyYXppbEluY29tZVRheFNlcnZpY2UgfSBmcm9tICcuL2JyYXppbC9CcmF6aWxJbmNvbWVUYXhTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIEJyYXppbENvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEluY29tZVRheFJ1bGVzIGFzIEJyYXppbEluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2JyYXppbC9kb21haW4vdHlwZXMnO1xuXG4vLyBTcGFpblxuaW1wb3J0IHsgU3BhaW5JbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBTcGFpbkluY29tZVRheFNlcnZpY2UgfSBmcm9tICcuL3NwYWluL1NwYWluSW5jb21lVGF4U2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBTcGFpbkNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEluY29tZVRheFJ1bGVzIGFzIFNwYWluSW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vc3BhaW4vZG9tYWluL3R5cGVzJztcblxuLy8gSW5kaWFcbmltcG9ydCB7IEluZGlhSW5jb21lVGF4U2VydmljZUltcGwgYXMgSW5kaWFJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9pbmRpYS9JbmRpYUluY29tZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgSW5kaWFDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBJbmRpYUluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2luZGlhL2RvbWFpbi90eXBlcyc7XG5cbi8vIEphcGFuXG5pbXBvcnQgeyBKYXBhbkluY29tZVRheFNlcnZpY2VJbXBsIGFzIEphcGFuSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vamFwYW4vSmFwYW5JbmNvbWVUYXhTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIEphcGFuQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgSmFwYW5JbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9qYXBhbi9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQge1xuICAgIENhbmFkYUluY29tZVRheFNlcnZpY2UsXG4gICAgQ2FuYWRhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgQ2FuYWRhSW5jb21lVGF4UnVsZXMsXG4gICAgRnJhbmNlSW5jb21lVGF4U2VydmljZSxcbiAgICBGcmFuY2VDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBGcmFuY2VJbmNvbWVUYXhSdWxlcyxcbiAgICBTb3V0aEFmcmljYUluY29tZVRheFNlcnZpY2UsXG4gICAgU291dGhBZnJpY2FDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBTb3V0aEFmcmljYUluY29tZVRheFJ1bGVzLFxuICAgIEF1c3RyYWxpYUluY29tZVRheFNlcnZpY2UsXG4gICAgQXVzdHJhbGlhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgQXVzdHJhbGlhSW5jb21lVGF4UnVsZXMsXG4gICAgVUtJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIFVLQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgVUtJbmNvbWVUYXhSdWxlcyxcbiAgICBVU0FJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIFVTQUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIFVTQUluY29tZVRheFJ1bGVzLFxuICAgIEdlcm1hbnlJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIEdlcm1hbnlDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBHZXJtYW55SW5jb21lVGF4UnVsZXMsXG4gICAgQnJhemlsSW5jb21lVGF4U2VydmljZSxcbiAgICBCcmF6aWxDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBCcmF6aWxJbmNvbWVUYXhSdWxlcyxcbiAgICBTcGFpbkluY29tZVRheFNlcnZpY2UsXG4gICAgU3BhaW5Db21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBTcGFpbkluY29tZVRheFJ1bGVzLFxuICAgIEluZGlhSW5jb21lVGF4U2VydmljZSxcbiAgICBJbmRpYUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEluZGlhSW5jb21lVGF4UnVsZXMsXG4gICAgSmFwYW5JbmNvbWVUYXhTZXJ2aWNlLFxuICAgIEphcGFuQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSmFwYW5JbmNvbWVUYXhSdWxlcyxcbn07Il19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kaWFJbmNvbWVUYXhTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luY29tZS10YXgvaW5kaWEvSW5kaWFJbmNvbWVUYXhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wdXRlZEluY29tZVRheFZhbHVlcyB9IGZyb20gXCIuL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGlhSW5jb21lVGF4U2VydmljZSB7XG4gICAgY2FsY3VsYXRlTmV0SW5jb21lKCk6IENvbXB1dGVkSW5jb21lVGF4VmFsdWVzO1xufVxuIl19
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IndiaIncomeTaxServiceImpl = void 0;
4
+ class IndiaIncomeTaxServiceImpl {
5
+ constructor(income, rules) {
6
+ this._income = income;
7
+ this._rules = rules;
8
+ }
9
+ calculateNetIncome() {
10
+ const { grossTax, bracketBreakdown } = this.computeTaxBrackets(this._income);
11
+ const cess = grossTax * this._rules.cess.rate;
12
+ const totalDeductions = grossTax + cess;
13
+ const netIncome = this._income - totalDeductions;
14
+ return {
15
+ grossIncome: this._income,
16
+ incomeTax: this.round(grossTax),
17
+ cess: this.round(cess),
18
+ totalDeductions: this.round(totalDeductions),
19
+ netIncome: this.round(netIncome),
20
+ effectiveTaxRate: this._income > 0 ? this.round(grossTax / this._income, 4) : 0,
21
+ taxBracketBreakdown: bracketBreakdown,
22
+ };
23
+ }
24
+ computeTaxBrackets(income) {
25
+ let tax = 0;
26
+ const bracketBreakdown = [];
27
+ for (let index = 0; index < this._rules.taxBrackets.length; index++) {
28
+ const bracket = this._rules.taxBrackets[index];
29
+ if (income <= bracket.from) {
30
+ bracketBreakdown.push({
31
+ bracketIndex: index,
32
+ bracketName: `Bracket ${index + 1}`,
33
+ from: bracket.from,
34
+ to: bracket.to ?? null,
35
+ rate: bracket.rate,
36
+ amountInBracket: 0,
37
+ taxOnAmount: 0,
38
+ });
39
+ break;
40
+ }
41
+ const upper = bracket.to ?? income;
42
+ const taxableAmount = Math.min(upper, income) - bracket.from;
43
+ if (taxableAmount > 0) {
44
+ const taxOnAmount = taxableAmount * bracket.rate;
45
+ tax += taxOnAmount;
46
+ bracketBreakdown.push({
47
+ bracketIndex: index,
48
+ bracketName: `Bracket ${index + 1}`,
49
+ from: bracket.from,
50
+ to: bracket.to ?? null,
51
+ rate: bracket.rate,
52
+ amountInBracket: taxableAmount,
53
+ taxOnAmount,
54
+ });
55
+ }
56
+ else {
57
+ bracketBreakdown.push({
58
+ bracketIndex: index,
59
+ bracketName: `Bracket ${index + 1}`,
60
+ from: bracket.from,
61
+ to: bracket.to ?? null,
62
+ rate: bracket.rate,
63
+ amountInBracket: 0,
64
+ taxOnAmount: 0,
65
+ });
66
+ }
67
+ }
68
+ return { grossTax: tax, bracketBreakdown };
69
+ }
70
+ round(value, decimals = 2) {
71
+ return Number(value.toFixed(decimals));
72
+ }
73
+ }
74
+ exports.IndiaIncomeTaxServiceImpl = IndiaIncomeTaxServiceImpl;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kaWFJbmNvbWVUYXhTZXJ2aWNlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmNvbWUtdGF4L2luZGlhL0luZGlhSW5jb21lVGF4U2VydmljZUltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSx5QkFBeUI7SUFJbEMsWUFBWSxNQUFjLEVBQUUsS0FBcUI7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzlDLE1BQU0sZUFBZSxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUM7UUFFakQsT0FBTztZQUNILFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTztZQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3RCLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUM1QyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDaEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0UsbUJBQW1CLEVBQUUsZ0JBQWdCO1NBQ3hDLENBQUM7SUFDTixDQUFDO0lBRU8sa0JBQWtCLENBQ3RCLE1BQWM7UUFFZCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixNQUFNLGdCQUFnQixHQUF3QixFQUFFLENBQUM7UUFFakQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9DLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUNsQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsV0FBVyxFQUFFLFdBQVcsS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJO29CQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLGVBQWUsRUFBRSxDQUFDO29CQUNsQixXQUFXLEVBQUUsQ0FBQztpQkFDakIsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDVixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUM7WUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUU3RCxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxXQUFXLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2pELEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQ25CLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDbEIsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLFdBQVcsRUFBRSxXQUFXLEtBQUssR0FBRyxDQUFDLEVBQUU7b0JBQ25DLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtvQkFDbEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSTtvQkFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixlQUFlLEVBQUUsYUFBYTtvQkFDOUIsV0FBVztpQkFDZCxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUNsQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsV0FBVyxFQUFFLFdBQVcsS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJO29CQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLGVBQWUsRUFBRSxDQUFDO29CQUNsQixXQUFXLEVBQUUsQ0FBQztpQkFDakIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBYSxFQUFFLFFBQVEsR0FBRyxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0o7QUFsRkQsOERBa0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJhY2tldEFsbG9jYXRpb24gfSBmcm9tIFwiLi4vZG9tYWluL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmRpYUluY29tZVRheFNlcnZpY2UgfSBmcm9tIFwiLi9JbmRpYUluY29tZVRheFNlcnZpY2VcIjtcbmltcG9ydCB7IENvbXB1dGVkSW5jb21lVGF4VmFsdWVzLCBJbmNvbWVUYXhSdWxlcyB9IGZyb20gXCIuL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgY2xhc3MgSW5kaWFJbmNvbWVUYXhTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEluZGlhSW5jb21lVGF4U2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaW5jb21lOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfcnVsZXM6IEluY29tZVRheFJ1bGVzO1xuXG4gICAgY29uc3RydWN0b3IoaW5jb21lOiBudW1iZXIsIHJ1bGVzOiBJbmNvbWVUYXhSdWxlcykge1xuICAgICAgICB0aGlzLl9pbmNvbWUgPSBpbmNvbWU7XG4gICAgICAgIHRoaXMuX3J1bGVzID0gcnVsZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbGN1bGF0ZU5ldEluY29tZSgpOiBDb21wdXRlZEluY29tZVRheFZhbHVlcyB7XG4gICAgICAgIGNvbnN0IHsgZ3Jvc3NUYXgsIGJyYWNrZXRCcmVha2Rvd24gfSA9IHRoaXMuY29tcHV0ZVRheEJyYWNrZXRzKHRoaXMuX2luY29tZSk7XG4gICAgICAgIGNvbnN0IGNlc3MgPSBncm9zc1RheCAqIHRoaXMuX3J1bGVzLmNlc3MucmF0ZTtcbiAgICAgICAgY29uc3QgdG90YWxEZWR1Y3Rpb25zID0gZ3Jvc3NUYXggKyBjZXNzO1xuICAgICAgICBjb25zdCBuZXRJbmNvbWUgPSB0aGlzLl9pbmNvbWUgLSB0b3RhbERlZHVjdGlvbnM7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdyb3NzSW5jb21lOiB0aGlzLl9pbmNvbWUsXG4gICAgICAgICAgICBpbmNvbWVUYXg6IHRoaXMucm91bmQoZ3Jvc3NUYXgpLFxuICAgICAgICAgICAgY2VzczogdGhpcy5yb3VuZChjZXNzKSxcbiAgICAgICAgICAgIHRvdGFsRGVkdWN0aW9uczogdGhpcy5yb3VuZCh0b3RhbERlZHVjdGlvbnMpLFxuICAgICAgICAgICAgbmV0SW5jb21lOiB0aGlzLnJvdW5kKG5ldEluY29tZSksXG4gICAgICAgICAgICBlZmZlY3RpdmVUYXhSYXRlOiB0aGlzLl9pbmNvbWUgPiAwID8gdGhpcy5yb3VuZChncm9zc1RheCAvIHRoaXMuX2luY29tZSwgNCkgOiAwLFxuICAgICAgICAgICAgdGF4QnJhY2tldEJyZWFrZG93bjogYnJhY2tldEJyZWFrZG93bixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVUYXhCcmFja2V0cyhcbiAgICAgICAgaW5jb21lOiBudW1iZXIsXG4gICAgKTogeyBncm9zc1RheDogbnVtYmVyOyBicmFja2V0QnJlYWtkb3duOiBCcmFja2V0QWxsb2NhdGlvbltdIH0ge1xuICAgICAgICBsZXQgdGF4ID0gMDtcbiAgICAgICAgY29uc3QgYnJhY2tldEJyZWFrZG93bjogQnJhY2tldEFsbG9jYXRpb25bXSA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9ydWxlcy50YXhCcmFja2V0cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGJyYWNrZXQgPSB0aGlzLl9ydWxlcy50YXhCcmFja2V0c1tpbmRleF07XG5cbiAgICAgICAgICAgIGlmIChpbmNvbWUgPD0gYnJhY2tldC5mcm9tKSB7XG4gICAgICAgICAgICAgICAgYnJhY2tldEJyZWFrZG93bi5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldEluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldE5hbWU6IGBCcmFja2V0ICR7aW5kZXggKyAxfWAsXG4gICAgICAgICAgICAgICAgICAgIGZyb206IGJyYWNrZXQuZnJvbSxcbiAgICAgICAgICAgICAgICAgICAgdG86IGJyYWNrZXQudG8gPz8gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcmF0ZTogYnJhY2tldC5yYXRlLFxuICAgICAgICAgICAgICAgICAgICBhbW91bnRJbkJyYWNrZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRheE9uQW1vdW50OiAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1cHBlciA9IGJyYWNrZXQudG8gPz8gaW5jb21lO1xuICAgICAgICAgICAgY29uc3QgdGF4YWJsZUFtb3VudCA9IE1hdGgubWluKHVwcGVyLCBpbmNvbWUpIC0gYnJhY2tldC5mcm9tO1xuXG4gICAgICAgICAgICBpZiAodGF4YWJsZUFtb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXhPbkFtb3VudCA9IHRheGFibGVBbW91bnQgKiBicmFja2V0LnJhdGU7XG4gICAgICAgICAgICAgICAgdGF4ICs9IHRheE9uQW1vdW50O1xuICAgICAgICAgICAgICAgIGJyYWNrZXRCcmVha2Rvd24ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXRJbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXROYW1lOiBgQnJhY2tldCAke2luZGV4ICsgMX1gLFxuICAgICAgICAgICAgICAgICAgICBmcm9tOiBicmFja2V0LmZyb20sXG4gICAgICAgICAgICAgICAgICAgIHRvOiBicmFja2V0LnRvID8/IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHJhdGU6IGJyYWNrZXQucmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgYW1vdW50SW5CcmFja2V0OiB0YXhhYmxlQW1vdW50LFxuICAgICAgICAgICAgICAgICAgICB0YXhPbkFtb3VudCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJhY2tldEJyZWFrZG93bi5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldEluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldE5hbWU6IGBCcmFja2V0ICR7aW5kZXggKyAxfWAsXG4gICAgICAgICAgICAgICAgICAgIGZyb206IGJyYWNrZXQuZnJvbSxcbiAgICAgICAgICAgICAgICAgICAgdG86IGJyYWNrZXQudG8gPz8gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcmF0ZTogYnJhY2tldC5yYXRlLFxuICAgICAgICAgICAgICAgICAgICBhbW91bnRJbkJyYWNrZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRheE9uQW1vdW50OiAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgZ3Jvc3NUYXg6IHRheCwgYnJhY2tldEJyZWFrZG93biB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcm91bmQodmFsdWU6IG51bWJlciwgZGVjaW1hbHMgPSAyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZS50b0ZpeGVkKGRlY2ltYWxzKSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW5jb21lLXRheC9pbmRpYS9kb21haW4vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyYWNrZXRBbGxvY2F0aW9uLCBUYXhCcmFja2V0IH0gZnJvbSBcIi4uLy4uL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluY29tZVRheFJ1bGVzIHtcbiAgICB0YXhCcmFja2V0czogVGF4QnJhY2tldFtdO1xuICAgIGNlc3M6IHsgcmF0ZTogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMge1xuICAgIGdyb3NzSW5jb21lOiBudW1iZXI7XG4gICAgaW5jb21lVGF4OiBudW1iZXI7XG4gICAgY2VzczogbnVtYmVyO1xuICAgIHRvdGFsRGVkdWN0aW9uczogbnVtYmVyO1xuICAgIG5ldEluY29tZTogbnVtYmVyO1xuICAgIGVmZmVjdGl2ZVRheFJhdGU6IG51bWJlcjtcbiAgICB0YXhCcmFja2V0QnJlYWtkb3duOiBCcmFja2V0QWxsb2NhdGlvbltdO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFwYW5JbmNvbWVUYXhTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luY29tZS10YXgvamFwYW4vSmFwYW5JbmNvbWVUYXhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wdXRlZEluY29tZVRheFZhbHVlcyB9IGZyb20gXCIuL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEphcGFuSW5jb21lVGF4U2VydmljZSB7XG4gICAgY2FsY3VsYXRlTmV0SW5jb21lKCk6IENvbXB1dGVkSW5jb21lVGF4VmFsdWVzO1xufVxuIl19
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JapanIncomeTaxServiceImpl = void 0;
4
+ class JapanIncomeTaxServiceImpl {
5
+ constructor(income, rules) {
6
+ this._income = income;
7
+ this._rules = rules;
8
+ }
9
+ calculateNetIncome() {
10
+ const { grossTax, bracketBreakdown } = this.computeTaxBrackets(this._income);
11
+ const inhabitantTax = this._income * this._rules.inhabitantTax.rate;
12
+ const totalDeductions = grossTax + inhabitantTax;
13
+ const netIncome = this._income - totalDeductions;
14
+ return {
15
+ grossIncome: this._income,
16
+ nationalIncomeTax: this.round(grossTax),
17
+ inhabitantTax: this.round(inhabitantTax),
18
+ totalDeductions: this.round(totalDeductions),
19
+ netIncome: this.round(netIncome),
20
+ effectiveTaxRate: this._income > 0 ? this.round(grossTax / this._income, 4) : 0,
21
+ taxBracketBreakdown: bracketBreakdown,
22
+ };
23
+ }
24
+ computeTaxBrackets(income) {
25
+ let tax = 0;
26
+ const bracketBreakdown = [];
27
+ for (let index = 0; index < this._rules.taxBrackets.length; index++) {
28
+ const bracket = this._rules.taxBrackets[index];
29
+ if (income <= bracket.from) {
30
+ bracketBreakdown.push({
31
+ bracketIndex: index,
32
+ bracketName: `Bracket ${index + 1}`,
33
+ from: bracket.from,
34
+ to: bracket.to ?? null,
35
+ rate: bracket.rate,
36
+ amountInBracket: 0,
37
+ taxOnAmount: 0,
38
+ });
39
+ break;
40
+ }
41
+ const upper = bracket.to ?? income;
42
+ const taxableAmount = Math.min(upper, income) - bracket.from;
43
+ if (taxableAmount > 0) {
44
+ const taxOnAmount = taxableAmount * bracket.rate;
45
+ tax += taxOnAmount;
46
+ bracketBreakdown.push({
47
+ bracketIndex: index,
48
+ bracketName: `Bracket ${index + 1}`,
49
+ from: bracket.from,
50
+ to: bracket.to ?? null,
51
+ rate: bracket.rate,
52
+ amountInBracket: taxableAmount,
53
+ taxOnAmount,
54
+ });
55
+ }
56
+ else {
57
+ bracketBreakdown.push({
58
+ bracketIndex: index,
59
+ bracketName: `Bracket ${index + 1}`,
60
+ from: bracket.from,
61
+ to: bracket.to ?? null,
62
+ rate: bracket.rate,
63
+ amountInBracket: 0,
64
+ taxOnAmount: 0,
65
+ });
66
+ }
67
+ }
68
+ return { grossTax: tax, bracketBreakdown };
69
+ }
70
+ round(value, decimals = 2) {
71
+ return Number(value.toFixed(decimals));
72
+ }
73
+ }
74
+ exports.JapanIncomeTaxServiceImpl = JapanIncomeTaxServiceImpl;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFwYW5JbmNvbWVUYXhTZXJ2aWNlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmNvbWUtdGF4L2phcGFuL0phcGFuSW5jb21lVGF4U2VydmljZUltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSx5QkFBeUI7SUFJbEMsWUFBWSxNQUFjLEVBQUUsS0FBcUI7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztRQUNwRSxNQUFNLGVBQWUsR0FBRyxRQUFRLEdBQUcsYUFBYSxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDO1FBRWpELE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDekIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDdkMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQ3hDLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUM1QyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDaEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0UsbUJBQW1CLEVBQUUsZ0JBQWdCO1NBQ3hDLENBQUM7SUFDTixDQUFDO0lBRU8sa0JBQWtCLENBQ3RCLE1BQWM7UUFFZCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixNQUFNLGdCQUFnQixHQUF3QixFQUFFLENBQUM7UUFFakQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9DLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUNsQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsV0FBVyxFQUFFLFdBQVcsS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJO29CQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLGVBQWUsRUFBRSxDQUFDO29CQUNsQixXQUFXLEVBQUUsQ0FBQztpQkFDakIsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDVixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUM7WUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUU3RCxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxXQUFXLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2pELEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQ25CLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDbEIsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLFdBQVcsRUFBRSxXQUFXLEtBQUssR0FBRyxDQUFDLEVBQUU7b0JBQ25DLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtvQkFDbEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSTtvQkFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixlQUFlLEVBQUUsYUFBYTtvQkFDOUIsV0FBVztpQkFDZCxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUNsQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsV0FBVyxFQUFFLFdBQVcsS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJO29CQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLGVBQWUsRUFBRSxDQUFDO29CQUNsQixXQUFXLEVBQUUsQ0FBQztpQkFDakIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBYSxFQUFFLFFBQVEsR0FBRyxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0o7QUFsRkQsOERBa0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJhY2tldEFsbG9jYXRpb24gfSBmcm9tIFwiLi4vZG9tYWluL3R5cGVzXCI7XG5pbXBvcnQgeyBKYXBhbkluY29tZVRheFNlcnZpY2UgfSBmcm9tIFwiLi9KYXBhbkluY29tZVRheFNlcnZpY2VcIjtcbmltcG9ydCB7IENvbXB1dGVkSW5jb21lVGF4VmFsdWVzLCBJbmNvbWVUYXhSdWxlcyB9IGZyb20gXCIuL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgY2xhc3MgSmFwYW5JbmNvbWVUYXhTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEphcGFuSW5jb21lVGF4U2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaW5jb21lOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfcnVsZXM6IEluY29tZVRheFJ1bGVzO1xuXG4gICAgY29uc3RydWN0b3IoaW5jb21lOiBudW1iZXIsIHJ1bGVzOiBJbmNvbWVUYXhSdWxlcykge1xuICAgICAgICB0aGlzLl9pbmNvbWUgPSBpbmNvbWU7XG4gICAgICAgIHRoaXMuX3J1bGVzID0gcnVsZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbGN1bGF0ZU5ldEluY29tZSgpOiBDb21wdXRlZEluY29tZVRheFZhbHVlcyB7XG4gICAgICAgIGNvbnN0IHsgZ3Jvc3NUYXgsIGJyYWNrZXRCcmVha2Rvd24gfSA9IHRoaXMuY29tcHV0ZVRheEJyYWNrZXRzKHRoaXMuX2luY29tZSk7XG4gICAgICAgIGNvbnN0IGluaGFiaXRhbnRUYXggPSB0aGlzLl9pbmNvbWUgKiB0aGlzLl9ydWxlcy5pbmhhYml0YW50VGF4LnJhdGU7XG4gICAgICAgIGNvbnN0IHRvdGFsRGVkdWN0aW9ucyA9IGdyb3NzVGF4ICsgaW5oYWJpdGFudFRheDtcbiAgICAgICAgY29uc3QgbmV0SW5jb21lID0gdGhpcy5faW5jb21lIC0gdG90YWxEZWR1Y3Rpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBncm9zc0luY29tZTogdGhpcy5faW5jb21lLFxuICAgICAgICAgICAgbmF0aW9uYWxJbmNvbWVUYXg6IHRoaXMucm91bmQoZ3Jvc3NUYXgpLFxuICAgICAgICAgICAgaW5oYWJpdGFudFRheDogdGhpcy5yb3VuZChpbmhhYml0YW50VGF4KSxcbiAgICAgICAgICAgIHRvdGFsRGVkdWN0aW9uczogdGhpcy5yb3VuZCh0b3RhbERlZHVjdGlvbnMpLFxuICAgICAgICAgICAgbmV0SW5jb21lOiB0aGlzLnJvdW5kKG5ldEluY29tZSksXG4gICAgICAgICAgICBlZmZlY3RpdmVUYXhSYXRlOiB0aGlzLl9pbmNvbWUgPiAwID8gdGhpcy5yb3VuZChncm9zc1RheCAvIHRoaXMuX2luY29tZSwgNCkgOiAwLFxuICAgICAgICAgICAgdGF4QnJhY2tldEJyZWFrZG93bjogYnJhY2tldEJyZWFrZG93bixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVUYXhCcmFja2V0cyhcbiAgICAgICAgaW5jb21lOiBudW1iZXIsXG4gICAgKTogeyBncm9zc1RheDogbnVtYmVyOyBicmFja2V0QnJlYWtkb3duOiBCcmFja2V0QWxsb2NhdGlvbltdIH0ge1xuICAgICAgICBsZXQgdGF4ID0gMDtcbiAgICAgICAgY29uc3QgYnJhY2tldEJyZWFrZG93bjogQnJhY2tldEFsbG9jYXRpb25bXSA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9ydWxlcy50YXhCcmFja2V0cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGJyYWNrZXQgPSB0aGlzLl9ydWxlcy50YXhCcmFja2V0c1tpbmRleF07XG5cbiAgICAgICAgICAgIGlmIChpbmNvbWUgPD0gYnJhY2tldC5mcm9tKSB7XG4gICAgICAgICAgICAgICAgYnJhY2tldEJyZWFrZG93bi5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldEluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldE5hbWU6IGBCcmFja2V0ICR7aW5kZXggKyAxfWAsXG4gICAgICAgICAgICAgICAgICAgIGZyb206IGJyYWNrZXQuZnJvbSxcbiAgICAgICAgICAgICAgICAgICAgdG86IGJyYWNrZXQudG8gPz8gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcmF0ZTogYnJhY2tldC5yYXRlLFxuICAgICAgICAgICAgICAgICAgICBhbW91bnRJbkJyYWNrZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRheE9uQW1vdW50OiAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1cHBlciA9IGJyYWNrZXQudG8gPz8gaW5jb21lO1xuICAgICAgICAgICAgY29uc3QgdGF4YWJsZUFtb3VudCA9IE1hdGgubWluKHVwcGVyLCBpbmNvbWUpIC0gYnJhY2tldC5mcm9tO1xuXG4gICAgICAgICAgICBpZiAodGF4YWJsZUFtb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXhPbkFtb3VudCA9IHRheGFibGVBbW91bnQgKiBicmFja2V0LnJhdGU7XG4gICAgICAgICAgICAgICAgdGF4ICs9IHRheE9uQW1vdW50O1xuICAgICAgICAgICAgICAgIGJyYWNrZXRCcmVha2Rvd24ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXRJbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXROYW1lOiBgQnJhY2tldCAke2luZGV4ICsgMX1gLFxuICAgICAgICAgICAgICAgICAgICBmcm9tOiBicmFja2V0LmZyb20sXG4gICAgICAgICAgICAgICAgICAgIHRvOiBicmFja2V0LnRvID8/IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHJhdGU6IGJyYWNrZXQucmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgYW1vdW50SW5CcmFja2V0OiB0YXhhYmxlQW1vdW50LFxuICAgICAgICAgICAgICAgICAgICB0YXhPbkFtb3VudCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJhY2tldEJyZWFrZG93bi5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldEluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldE5hbWU6IGBCcmFja2V0ICR7aW5kZXggKyAxfWAsXG4gICAgICAgICAgICAgICAgICAgIGZyb206IGJyYWNrZXQuZnJvbSxcbiAgICAgICAgICAgICAgICAgICAgdG86IGJyYWNrZXQudG8gPz8gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcmF0ZTogYnJhY2tldC5yYXRlLFxuICAgICAgICAgICAgICAgICAgICBhbW91bnRJbkJyYWNrZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRheE9uQW1vdW50OiAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgZ3Jvc3NUYXg6IHRheCwgYnJhY2tldEJyZWFrZG93biB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcm91bmQodmFsdWU6IG51bWJlciwgZGVjaW1hbHMgPSAyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZS50b0ZpeGVkKGRlY2ltYWxzKSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW5jb21lLXRheC9qYXBhbi9kb21haW4vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyYWNrZXRBbGxvY2F0aW9uLCBUYXhCcmFja2V0IH0gZnJvbSBcIi4uLy4uL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluY29tZVRheFJ1bGVzIHtcbiAgICB0YXhCcmFja2V0czogVGF4QnJhY2tldFtdO1xuICAgIGluaGFiaXRhbnRUYXg6IHsgcmF0ZTogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMge1xuICAgIGdyb3NzSW5jb21lOiBudW1iZXI7XG4gICAgbmF0aW9uYWxJbmNvbWVUYXg6IG51bWJlcjtcbiAgICBpbmhhYml0YW50VGF4OiBudW1iZXI7XG4gICAgdG90YWxEZWR1Y3Rpb25zOiBudW1iZXI7XG4gICAgbmV0SW5jb21lOiBudW1iZXI7XG4gICAgZWZmZWN0aXZlVGF4UmF0ZTogbnVtYmVyO1xuICAgIHRheEJyYWNrZXRCcmVha2Rvd246IEJyYWNrZXRBbGxvY2F0aW9uW107XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BhaW5JbmNvbWVUYXhTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luY29tZS10YXgvc3BhaW4vU3BhaW5JbmNvbWVUYXhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wdXRlZEluY29tZVRheFZhbHVlcyB9IGZyb20gXCIuL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwYWluSW5jb21lVGF4U2VydmljZSB7XG4gICAgY2FsY3VsYXRlTmV0SW5jb21lKCk6IENvbXB1dGVkSW5jb21lVGF4VmFsdWVzO1xufVxuIl19
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpainIncomeTaxServiceImpl = void 0;
4
+ class SpainIncomeTaxServiceImpl {
5
+ constructor(income, rules) {
6
+ this._income = income;
7
+ this._rules = rules;
8
+ }
9
+ calculateNetIncome() {
10
+ const { grossTax, bracketBreakdown } = this.computeTaxBrackets(this._income);
11
+ const socialContributions = this._income * this._rules.socialContributions.rate;
12
+ const totalDeductions = grossTax + socialContributions;
13
+ const netIncome = this._income - totalDeductions;
14
+ return {
15
+ grossIncome: this._income,
16
+ incomeTax: this.round(grossTax),
17
+ socialContributions: this.round(socialContributions),
18
+ totalDeductions: this.round(totalDeductions),
19
+ netIncome: this.round(netIncome),
20
+ effectiveTaxRate: this._income > 0 ? this.round(grossTax / this._income, 4) : 0,
21
+ taxBracketBreakdown: bracketBreakdown,
22
+ };
23
+ }
24
+ computeTaxBrackets(income) {
25
+ let tax = 0;
26
+ const bracketBreakdown = [];
27
+ for (let index = 0; index < this._rules.taxBrackets.length; index++) {
28
+ const bracket = this._rules.taxBrackets[index];
29
+ if (income <= bracket.from) {
30
+ bracketBreakdown.push({
31
+ bracketIndex: index,
32
+ bracketName: `Bracket ${index + 1}`,
33
+ from: bracket.from,
34
+ to: bracket.to ?? null,
35
+ rate: bracket.rate,
36
+ amountInBracket: 0,
37
+ taxOnAmount: 0,
38
+ });
39
+ break;
40
+ }
41
+ const upper = bracket.to ?? income;
42
+ const taxableAmount = Math.min(upper, income) - bracket.from;
43
+ const taxOnAmount = taxableAmount * bracket.rate;
44
+ tax += taxOnAmount;
45
+ bracketBreakdown.push({
46
+ bracketIndex: index,
47
+ bracketName: `Bracket ${index + 1}`,
48
+ from: bracket.from,
49
+ to: bracket.to ?? null,
50
+ rate: bracket.rate,
51
+ amountInBracket: taxableAmount,
52
+ taxOnAmount,
53
+ });
54
+ }
55
+ return { grossTax: tax, bracketBreakdown };
56
+ }
57
+ round(value, decimals = 2) {
58
+ return Number(value.toFixed(decimals));
59
+ }
60
+ }
61
+ exports.SpainIncomeTaxServiceImpl = SpainIncomeTaxServiceImpl;
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BhaW5JbmNvbWVUYXhTZXJ2aWNlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmNvbWUtdGF4L3NwYWluL1NwYWluSW5jb21lVGF4U2VydmljZUltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSx5QkFBeUI7SUFJbEMsWUFBWSxNQUFjLEVBQUUsS0FBcUI7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RSxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7UUFDaEYsTUFBTSxlQUFlLEdBQUcsUUFBUSxHQUFHLG1CQUFtQixDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDO1FBRWpELE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQy9CLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUM7WUFDcEQsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1lBQzVDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNoQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRSxtQkFBbUIsRUFBRSxnQkFBZ0I7U0FDeEMsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FDdEIsTUFBYztRQUVkLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLE1BQU0sZ0JBQWdCLEdBQXdCLEVBQUUsQ0FBQztRQUVqRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFL0MsSUFBSSxNQUFNLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN6QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLFlBQVksRUFBRSxLQUFLO29CQUNuQixXQUFXLEVBQUUsV0FBVyxLQUFLLEdBQUcsQ0FBQyxFQUFFO29CQUNuQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLElBQUk7b0JBQ3RCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtvQkFDbEIsZUFBZSxFQUFFLENBQUM7b0JBQ2xCLFdBQVcsRUFBRSxDQUFDO2lCQUNqQixDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNWLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQztZQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBRTdELE1BQU0sV0FBVyxHQUFHLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2pELEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDbkIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUNsQixZQUFZLEVBQUUsS0FBSztnQkFDbkIsV0FBVyxFQUFFLFdBQVcsS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUNsQixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJO2dCQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7Z0JBQ2xCLGVBQWUsRUFBRSxhQUFhO2dCQUM5QixXQUFXO2FBQ2QsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVPLEtBQUssQ0FBQyxLQUFhLEVBQUUsUUFBUSxHQUFHLENBQUM7UUFDckMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDSjtBQXRFRCw4REFzRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmFja2V0QWxsb2NhdGlvbiB9IGZyb20gXCIuLi9kb21haW4vdHlwZXNcIjtcbmltcG9ydCB7IFNwYWluSW5jb21lVGF4U2VydmljZSB9IGZyb20gXCIuL1NwYWluSW5jb21lVGF4U2VydmljZVwiO1xuaW1wb3J0IHsgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsIEluY29tZVRheFJ1bGVzIH0gZnJvbSBcIi4vZG9tYWluL3R5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBTcGFpbkluY29tZVRheFNlcnZpY2VJbXBsIGltcGxlbWVudHMgU3BhaW5JbmNvbWVUYXhTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9pbmNvbWU6IG51bWJlcjtcbiAgICBwcml2YXRlIF9ydWxlczogSW5jb21lVGF4UnVsZXM7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmNvbWU6IG51bWJlciwgcnVsZXM6IEluY29tZVRheFJ1bGVzKSB7XG4gICAgICAgIHRoaXMuX2luY29tZSA9IGluY29tZTtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSBydWxlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FsY3VsYXRlTmV0SW5jb21lKCk6IENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIHtcbiAgICAgICAgY29uc3QgeyBncm9zc1RheCwgYnJhY2tldEJyZWFrZG93biB9ID0gdGhpcy5jb21wdXRlVGF4QnJhY2tldHModGhpcy5faW5jb21lKTtcbiAgICAgICAgY29uc3Qgc29jaWFsQ29udHJpYnV0aW9ucyA9IHRoaXMuX2luY29tZSAqIHRoaXMuX3J1bGVzLnNvY2lhbENvbnRyaWJ1dGlvbnMucmF0ZTtcbiAgICAgICAgY29uc3QgdG90YWxEZWR1Y3Rpb25zID0gZ3Jvc3NUYXggKyBzb2NpYWxDb250cmlidXRpb25zO1xuICAgICAgICBjb25zdCBuZXRJbmNvbWUgPSB0aGlzLl9pbmNvbWUgLSB0b3RhbERlZHVjdGlvbnM7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdyb3NzSW5jb21lOiB0aGlzLl9pbmNvbWUsXG4gICAgICAgICAgICBpbmNvbWVUYXg6IHRoaXMucm91bmQoZ3Jvc3NUYXgpLFxuICAgICAgICAgICAgc29jaWFsQ29udHJpYnV0aW9uczogdGhpcy5yb3VuZChzb2NpYWxDb250cmlidXRpb25zKSxcbiAgICAgICAgICAgIHRvdGFsRGVkdWN0aW9uczogdGhpcy5yb3VuZCh0b3RhbERlZHVjdGlvbnMpLFxuICAgICAgICAgICAgbmV0SW5jb21lOiB0aGlzLnJvdW5kKG5ldEluY29tZSksXG4gICAgICAgICAgICBlZmZlY3RpdmVUYXhSYXRlOiB0aGlzLl9pbmNvbWUgPiAwID8gdGhpcy5yb3VuZChncm9zc1RheCAvIHRoaXMuX2luY29tZSwgNCkgOiAwLFxuICAgICAgICAgICAgdGF4QnJhY2tldEJyZWFrZG93bjogYnJhY2tldEJyZWFrZG93bixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVUYXhCcmFja2V0cyhcbiAgICAgICAgaW5jb21lOiBudW1iZXIsXG4gICAgKTogeyBncm9zc1RheDogbnVtYmVyOyBicmFja2V0QnJlYWtkb3duOiBCcmFja2V0QWxsb2NhdGlvbltdIH0ge1xuICAgICAgICBsZXQgdGF4ID0gMDtcbiAgICAgICAgY29uc3QgYnJhY2tldEJyZWFrZG93bjogQnJhY2tldEFsbG9jYXRpb25bXSA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9ydWxlcy50YXhCcmFja2V0cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGJyYWNrZXQgPSB0aGlzLl9ydWxlcy50YXhCcmFja2V0c1tpbmRleF07XG5cbiAgICAgICAgICAgIGlmIChpbmNvbWUgPD0gYnJhY2tldC5mcm9tKSB7XG4gICAgICAgICAgICAgICAgYnJhY2tldEJyZWFrZG93bi5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldEluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldE5hbWU6IGBCcmFja2V0ICR7aW5kZXggKyAxfWAsXG4gICAgICAgICAgICAgICAgICAgIGZyb206IGJyYWNrZXQuZnJvbSxcbiAgICAgICAgICAgICAgICAgICAgdG86IGJyYWNrZXQudG8gPz8gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcmF0ZTogYnJhY2tldC5yYXRlLFxuICAgICAgICAgICAgICAgICAgICBhbW91bnRJbkJyYWNrZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRheE9uQW1vdW50OiAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1cHBlciA9IGJyYWNrZXQudG8gPz8gaW5jb21lO1xuICAgICAgICAgICAgY29uc3QgdGF4YWJsZUFtb3VudCA9IE1hdGgubWluKHVwcGVyLCBpbmNvbWUpIC0gYnJhY2tldC5mcm9tO1xuXG4gICAgICAgICAgICBjb25zdCB0YXhPbkFtb3VudCA9IHRheGFibGVBbW91bnQgKiBicmFja2V0LnJhdGU7XG4gICAgICAgICAgICB0YXggKz0gdGF4T25BbW91bnQ7XG4gICAgICAgICAgICBicmFja2V0QnJlYWtkb3duLnB1c2goe1xuICAgICAgICAgICAgICAgIGJyYWNrZXRJbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgYnJhY2tldE5hbWU6IGBCcmFja2V0ICR7aW5kZXggKyAxfWAsXG4gICAgICAgICAgICAgICAgZnJvbTogYnJhY2tldC5mcm9tLFxuICAgICAgICAgICAgICAgIHRvOiBicmFja2V0LnRvID8/IG51bGwsXG4gICAgICAgICAgICAgICAgcmF0ZTogYnJhY2tldC5yYXRlLFxuICAgICAgICAgICAgICAgIGFtb3VudEluQnJhY2tldDogdGF4YWJsZUFtb3VudCxcbiAgICAgICAgICAgICAgICB0YXhPbkFtb3VudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgZ3Jvc3NUYXg6IHRheCwgYnJhY2tldEJyZWFrZG93biB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcm91bmQodmFsdWU6IG51bWJlciwgZGVjaW1hbHMgPSAyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZS50b0ZpeGVkKGRlY2ltYWxzKSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW5jb21lLXRheC9zcGFpbi9kb21haW4vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyYWNrZXRBbGxvY2F0aW9uLCBUYXhCcmFja2V0IH0gZnJvbSBcIi4uLy4uL2RvbWFpbi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluY29tZVRheFJ1bGVzIHtcbiAgICB0YXhCcmFja2V0czogVGF4QnJhY2tldFtdO1xuICAgIHNvY2lhbENvbnRyaWJ1dGlvbnM6IHsgcmF0ZTogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMge1xuICAgIGdyb3NzSW5jb21lOiBudW1iZXI7XG4gICAgaW5jb21lVGF4OiBudW1iZXI7XG4gICAgc29jaWFsQ29udHJpYnV0aW9uczogbnVtYmVyO1xuICAgIHRvdGFsRGVkdWN0aW9uczogbnVtYmVyO1xuICAgIG5ldEluY29tZTogbnVtYmVyO1xuICAgIGVmZmVjdGl2ZVRheFJhdGU6IG51bWJlcjtcbiAgICB0YXhCcmFja2V0QnJlYWtkb3duOiBCcmFja2V0QWxsb2NhdGlvbltdO1xufVxuIl19
package/dist/index.js CHANGED
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.Mortgage = exports.CapitalGain = exports.CorporateTax = exports.IncomeTax = exports.CalculatorType = void 0;
29
+ exports.InheritanceTax = exports.Mortgage = exports.CapitalGain = exports.CorporateTax = exports.IncomeTax = exports.CalculatorType = void 0;
30
30
  var types_1 = require("./shared/domain/types");
31
31
  Object.defineProperty(exports, "CalculatorType", { enumerable: true, get: function () { return types_1.CalculatorType; } });
32
32
  __exportStar(require("./income-tax/domain/types"), exports);
@@ -34,4 +34,5 @@ exports.IncomeTax = __importStar(require("./income-tax"));
34
34
  exports.CorporateTax = __importStar(require("./corporate"));
35
35
  exports.CapitalGain = __importStar(require("./capital-gains"));
36
36
  exports.Mortgage = __importStar(require("./mortgage"));
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBdUQ7QUFBOUMsdUdBQUEsY0FBYyxPQUFBO0FBRXZCLDREQUEwQztBQUUxQywwREFBMEM7QUFDMUMsNERBQTRDO0FBQzVDLCtEQUErQztBQUMvQyx1REFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDYWxjdWxhdG9yVHlwZSB9IGZyb20gJy4vc2hhcmVkL2RvbWFpbi90eXBlcyc7XG5leHBvcnQgeyBJbmNvbWVUYXhDYWxjdWxhdG9yU2NoZW1hIH0gZnJvbSAnLi9pbmNvbWUtdGF4L2RvbWFpbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2luY29tZS10YXgvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0ICogYXMgSW5jb21lVGF4IGZyb20gJy4vaW5jb21lLXRheCc7XG5leHBvcnQgKiBhcyBDb3Jwb3JhdGVUYXggZnJvbSAnLi9jb3Jwb3JhdGUnO1xuZXhwb3J0ICogYXMgQ2FwaXRhbEdhaW4gZnJvbSAnLi9jYXBpdGFsLWdhaW5zJztcbmV4cG9ydCAqIGFzIE1vcnRnYWdlIGZyb20gJy4vbW9ydGdhZ2UnO1xuIl19
37
+ exports.InheritanceTax = __importStar(require("./inheritance-tax"));
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBdUQ7QUFBOUMsdUdBQUEsY0FBYyxPQUFBO0FBRXZCLDREQUEwQztBQUUxQywwREFBMEM7QUFDMUMsNERBQTRDO0FBQzVDLCtEQUErQztBQUMvQyx1REFBdUM7QUFDdkMsb0VBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2FsY3VsYXRvclR5cGUgfSBmcm9tICcuL3NoYXJlZC9kb21haW4vdHlwZXMnO1xuZXhwb3J0IHsgSW5jb21lVGF4Q2FsY3VsYXRvclNjaGVtYSB9IGZyb20gJy4vaW5jb21lLXRheC9kb21haW4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmNvbWUtdGF4L2RvbWFpbi90eXBlcyc7XG5cbmV4cG9ydCAqIGFzIEluY29tZVRheCBmcm9tICcuL2luY29tZS10YXgnO1xuZXhwb3J0ICogYXMgQ29ycG9yYXRlVGF4IGZyb20gJy4vY29ycG9yYXRlJztcbmV4cG9ydCAqIGFzIENhcGl0YWxHYWluIGZyb20gJy4vY2FwaXRhbC1nYWlucyc7XG5leHBvcnQgKiBhcyBNb3J0Z2FnZSBmcm9tICcuL21vcnRnYWdlJztcbmV4cG9ydCAqIGFzIEluaGVyaXRhbmNlVGF4IGZyb20gJy4vaW5oZXJpdGFuY2UtdGF4JztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXVzdHJhbGlhSW5oZXJpdGFuY2VUYXhTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luaGVyaXRhbmNlLXRheC9hdXN0cmFsaWEvQXVzdHJhbGlhSW5oZXJpdGFuY2VUYXhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiLi9kb21haW4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdXN0cmFsaWFJbmhlcml0YW5jZVRheFNlcnZpY2Uge1xuICAgIGNhbGN1bGF0ZSgpOiBSZXN1bHQ7XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AustraliaInheritanceTaxServiceImpl = void 0;
4
+ class AustraliaInheritanceTaxServiceImpl {
5
+ constructor(input, rules) {
6
+ this._input = input;
7
+ this._rules = rules;
8
+ }
9
+ calculate() {
10
+ return {
11
+ taxableEstate: 0,
12
+ inheritanceTax: 0,
13
+ effectiveRate: 0,
14
+ breakdowns: [],
15
+ };
16
+ }
17
+ }
18
+ exports.AustraliaInheritanceTaxServiceImpl = AustraliaInheritanceTaxServiceImpl;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXVzdHJhbGlhSW5oZXJpdGFuY2VUYXhTZXJ2aWNlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmhlcml0YW5jZS10YXgvYXVzdHJhbGlhL0F1c3RyYWxpYUluaGVyaXRhbmNlVGF4U2VydmljZUltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBYSxrQ0FBa0M7SUFJM0MsWUFBWSxLQUFZLEVBQUUsS0FBWTtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU87WUFDSCxhQUFhLEVBQUUsQ0FBQztZQUNoQixjQUFjLEVBQUUsQ0FBQztZQUNqQixhQUFhLEVBQUUsQ0FBQztZQUNoQixVQUFVLEVBQUUsRUFBRTtTQUNqQixDQUFDO0lBQ04sQ0FBQztDQUNKO0FBakJELGdGQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1c3RyYWxpYUluaGVyaXRhbmNlVGF4U2VydmljZSB9IGZyb20gXCIuL0F1c3RyYWxpYUluaGVyaXRhbmNlVGF4U2VydmljZVwiO1xuaW1wb3J0IHsgSW5wdXQsIFJlc3VsdCwgUnVsZXMgfSBmcm9tIFwiLi9kb21haW4vdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIEF1c3RyYWxpYUluaGVyaXRhbmNlVGF4U2VydmljZUltcGwgaW1wbGVtZW50cyBBdXN0cmFsaWFJbmhlcml0YW5jZVRheFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2lucHV0OiBJbnB1dDtcbiAgICBwcml2YXRlIF9ydWxlczogUnVsZXM7XG5cbiAgICBjb25zdHJ1Y3RvcihpbnB1dDogSW5wdXQsIHJ1bGVzOiBSdWxlcykge1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLl9ydWxlcyA9IHJ1bGVzO1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZSgpOiBSZXN1bHQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGF4YWJsZUVzdGF0ZTogMCxcbiAgICAgICAgICAgIGluaGVyaXRhbmNlVGF4OiAwLFxuICAgICAgICAgICAgZWZmZWN0aXZlUmF0ZTogMCxcbiAgICAgICAgICAgIGJyZWFrZG93bnM6IFtdLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW5oZXJpdGFuY2UtdGF4L2F1c3RyYWxpYS9kb21haW4vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrZG93biB9IGZyb20gXCIuLi8uLi9kb21haW4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBSdWxlcyB7XG4gICAgYXBwbGljYWJsZTogZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXQge1xuICAgIGVzdGF0ZVZhbHVlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdWx0IHtcbiAgICB0YXhhYmxlRXN0YXRlOiBudW1iZXI7XG4gICAgaW5oZXJpdGFuY2VUYXg6IG51bWJlcjtcbiAgICBlZmZlY3RpdmVSYXRlOiBudW1iZXI7XG4gICAgYnJlYWtkb3duczogQnJlYWtkb3duW107XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYWRhSW5oZXJpdGFuY2VUYXhTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luaGVyaXRhbmNlLXRheC9jYW5hZGEvQ2FuYWRhSW5oZXJpdGFuY2VUYXhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiLi9kb21haW4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDYW5hZGFJbmhlcml0YW5jZVRheFNlcnZpY2Uge1xuICAgIGNhbGN1bGF0ZSgpOiBSZXN1bHQ7XG59XG4iXX0=