@novha/calc-engines 4.0.0 → 6.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 (98) hide show
  1. package/dist/capital-gains/australia/AustraliaCapitalGainsService.js +3 -0
  2. package/dist/capital-gains/australia/AustraliaCapitalGainsServiceImpl.js +67 -0
  3. package/dist/capital-gains/australia/domain/types.js +3 -0
  4. package/dist/capital-gains/canada/CanadaCapitalGainsService.js +3 -0
  5. package/dist/capital-gains/canada/CanadaCapitalGainsServiceImpl.js +66 -0
  6. package/dist/capital-gains/canada/domain/types.js +3 -0
  7. package/dist/capital-gains/domain/types.js +3 -0
  8. package/dist/capital-gains/france/FranceCapitalGainsService.js +3 -0
  9. package/dist/capital-gains/france/FranceCapitalGainsServiceImpl.js +51 -0
  10. package/dist/capital-gains/france/domain/types.js +3 -0
  11. package/dist/capital-gains/germany/GermanyCapitalGainsService.js +3 -0
  12. package/dist/capital-gains/germany/GermanyCapitalGainsServiceImpl.js +68 -0
  13. package/dist/capital-gains/germany/domain/types.js +3 -0
  14. package/dist/capital-gains/index.js +25 -0
  15. package/dist/capital-gains/south-africa/SouthAfricaCapitalGainsService.js +3 -0
  16. package/dist/capital-gains/south-africa/SouthAfricaCapitalGainsServiceImpl.js +83 -0
  17. package/dist/capital-gains/south-africa/domain/types.js +3 -0
  18. package/dist/capital-gains/uk/UKCapitalGainsService.js +3 -0
  19. package/dist/capital-gains/uk/UKCapitalGainsServiceImpl.js +86 -0
  20. package/dist/capital-gains/uk/domain/types.js +3 -0
  21. package/dist/capital-gains/usa/USACapitalGainsService.js +3 -0
  22. package/dist/capital-gains/usa/USACapitalGainsServiceImpl.js +77 -0
  23. package/dist/capital-gains/usa/domain/types.js +3 -0
  24. package/dist/corporate/index.js +18 -0
  25. package/dist/income-tax/index.js +24 -0
  26. package/dist/index.js +18 -51
  27. package/dist/mortgage/france/FranceMortgageService.js +1 -1
  28. package/dist/mortgage/france/FranceMortgageServiceImpl.js +1 -1
  29. package/dist/mortgage/index.js +25 -0
  30. package/dist/shared/domain/types.js +2 -1
  31. package/dist/types/capital-gains/australia/AustraliaCapitalGainsService.d.ts +4 -0
  32. package/dist/types/capital-gains/australia/AustraliaCapitalGainsServiceImpl.d.ts +10 -0
  33. package/dist/types/capital-gains/australia/domain/types.d.ts +15 -0
  34. package/dist/types/capital-gains/canada/CanadaCapitalGainsService.d.ts +4 -0
  35. package/dist/types/capital-gains/canada/CanadaCapitalGainsServiceImpl.d.ts +10 -0
  36. package/dist/types/capital-gains/canada/domain/types.d.ts +13 -0
  37. package/dist/types/capital-gains/domain/types.d.ts +15 -0
  38. package/dist/types/capital-gains/france/FranceCapitalGainsService.d.ts +4 -0
  39. package/dist/types/capital-gains/france/FranceCapitalGainsServiceImpl.d.ts +9 -0
  40. package/dist/types/capital-gains/france/domain/types.d.ts +7 -0
  41. package/dist/types/capital-gains/germany/GermanyCapitalGainsService.d.ts +4 -0
  42. package/dist/types/capital-gains/germany/GermanyCapitalGainsServiceImpl.d.ts +9 -0
  43. package/dist/types/capital-gains/germany/domain/types.d.ts +8 -0
  44. package/dist/types/capital-gains/index.d.ts +15 -0
  45. package/dist/types/capital-gains/south-africa/SouthAfricaCapitalGainsService.d.ts +4 -0
  46. package/dist/types/capital-gains/south-africa/SouthAfricaCapitalGainsServiceImpl.d.ts +10 -0
  47. package/dist/types/capital-gains/south-africa/domain/types.d.ts +14 -0
  48. package/dist/types/capital-gains/uk/UKCapitalGainsService.d.ts +4 -0
  49. package/dist/types/capital-gains/uk/UKCapitalGainsServiceImpl.d.ts +9 -0
  50. package/dist/types/capital-gains/uk/domain/types.d.ts +10 -0
  51. package/dist/types/capital-gains/usa/USACapitalGainsService.d.ts +4 -0
  52. package/dist/types/capital-gains/usa/USACapitalGainsServiceImpl.d.ts +10 -0
  53. package/dist/types/capital-gains/usa/domain/types.d.ts +26 -0
  54. package/dist/types/corporate/index.d.ts +15 -0
  55. package/dist/types/income-tax/index.d.ts +15 -0
  56. package/dist/types/index.d.ts +4 -42
  57. package/dist/types/mortgage/france/FranceMortgageService.d.ts +1 -1
  58. package/dist/types/mortgage/france/FranceMortgageServiceImpl.d.ts +1 -1
  59. package/dist/types/mortgage/index.d.ts +15 -0
  60. package/dist/types/shared/domain/types.d.ts +2 -1
  61. package/package.json +1 -1
  62. package/src/capital-gains/australia/AustraliaCapitalGainsService.ts +5 -0
  63. package/src/capital-gains/australia/AustraliaCapitalGainsServiceImpl.ts +84 -0
  64. package/src/capital-gains/australia/domain/types.ts +17 -0
  65. package/src/capital-gains/canada/CanadaCapitalGainsService.ts +5 -0
  66. package/src/capital-gains/canada/CanadaCapitalGainsServiceImpl.ts +82 -0
  67. package/src/capital-gains/canada/domain/types.ts +15 -0
  68. package/src/capital-gains/domain/types.ts +15 -0
  69. package/src/capital-gains/france/FranceCapitalGainsService.ts +5 -0
  70. package/src/capital-gains/france/FranceCapitalGainsServiceImpl.ts +58 -0
  71. package/src/capital-gains/france/domain/types.ts +8 -0
  72. package/src/capital-gains/germany/GermanyCapitalGainsService.ts +5 -0
  73. package/src/capital-gains/germany/GermanyCapitalGainsServiceImpl.ts +77 -0
  74. package/src/capital-gains/germany/domain/types.ts +10 -0
  75. package/src/capital-gains/index.ts +72 -0
  76. package/src/capital-gains/south-africa/SouthAfricaCapitalGainsService.ts +5 -0
  77. package/src/capital-gains/south-africa/SouthAfricaCapitalGainsServiceImpl.ts +101 -0
  78. package/src/capital-gains/south-africa/domain/types.ts +16 -0
  79. package/src/capital-gains/uk/UKCapitalGainsService.ts +5 -0
  80. package/src/capital-gains/uk/UKCapitalGainsServiceImpl.ts +98 -0
  81. package/src/capital-gains/uk/domain/types.ts +11 -0
  82. package/src/capital-gains/usa/USACapitalGainsService.ts +5 -0
  83. package/src/capital-gains/usa/USACapitalGainsServiceImpl.ts +96 -0
  84. package/src/capital-gains/usa/domain/types.ts +27 -0
  85. package/src/corporate/index.ts +79 -0
  86. package/src/income-tax/index.ts +72 -0
  87. package/src/index.ts +6 -146
  88. package/src/mortgage/france/FranceMortgageService.ts +1 -1
  89. package/src/mortgage/france/FranceMortgageServiceImpl.ts +1 -1
  90. package/src/mortgage/index.ts +87 -0
  91. package/src/shared/domain/types.ts +1 -0
  92. package/test/australia-capital-gains.test.ts +80 -0
  93. package/test/canada-capital-gains.test.ts +71 -0
  94. package/test/france-capital-gains.test.ts +66 -0
  95. package/test/germany-capital-gains.test.ts +85 -0
  96. package/test/south-africa-capital-gains.test.ts +84 -0
  97. package/test/uk-capital-gains.test.ts +79 -0
  98. package/test/usa-capital-gains.test.ts +88 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.USACapitalGainsServiceImpl = void 0;
4
+ class USACapitalGainsServiceImpl {
5
+ constructor(input, rules) {
6
+ this._input = input;
7
+ this._rules = rules;
8
+ }
9
+ calculate() {
10
+ const gain = this._input.capitalGain;
11
+ if (gain <= 0) {
12
+ return {
13
+ taxableGain: 0,
14
+ capitalGainTax: 0,
15
+ socialContributions: 0,
16
+ netInvestmentIncomeTax: 0,
17
+ totalTax: 0,
18
+ effectiveRate: 0,
19
+ breakdowns: []
20
+ };
21
+ }
22
+ const isLongTerm = this._input.holdingPeriodMonths > 12;
23
+ const brackets = isLongTerm ? this._rules.longTermBrackets : this._rules.shortTermBrackets;
24
+ const { tax, breakdowns } = this.applyBrackets(gain, this._input.totalTaxableIncome, brackets);
25
+ let niit = 0;
26
+ if (this._input.totalTaxableIncome > this._rules.netInvestmentIncomeTax.threshold) {
27
+ niit = gain * this._rules.netInvestmentIncomeTax.rate;
28
+ breakdowns.push({
29
+ from: 'NIIT',
30
+ to: 'All Gain',
31
+ rate: this._rules.netInvestmentIncomeTax.rate,
32
+ amount: niit,
33
+ });
34
+ }
35
+ const totalTax = tax + niit;
36
+ return {
37
+ taxableGain: gain,
38
+ capitalGainTax: tax,
39
+ socialContributions: 0,
40
+ netInvestmentIncomeTax: niit,
41
+ totalTax,
42
+ effectiveRate: gain > 0 ? (totalTax / gain) * 100 : 0,
43
+ breakdowns,
44
+ };
45
+ }
46
+ applyBrackets(gain, totalIncome, brackets) {
47
+ let tax = 0;
48
+ const breakdowns = [];
49
+ let remaining = gain;
50
+ let incomeUsed = totalIncome - gain;
51
+ for (const bracket of brackets) {
52
+ if (remaining <= 0)
53
+ break;
54
+ const upper = bracket.to ?? Infinity;
55
+ if (incomeUsed >= upper)
56
+ continue;
57
+ const bracketStart = Math.max(bracket.from, incomeUsed);
58
+ const bracketSpace = upper - bracketStart;
59
+ const taxable = Math.min(bracketSpace, remaining);
60
+ if (taxable > 0) {
61
+ const bracketTax = taxable * bracket.rate;
62
+ tax += bracketTax;
63
+ remaining -= taxable;
64
+ incomeUsed += taxable;
65
+ breakdowns.push({
66
+ from: `${bracket.from}`,
67
+ to: `${bracket.to ?? 'Above'}`,
68
+ rate: bracket.rate,
69
+ amount: bracketTax,
70
+ });
71
+ }
72
+ }
73
+ return { tax, breakdowns };
74
+ }
75
+ }
76
+ exports.USACapitalGainsServiceImpl = USACapitalGainsServiceImpl;
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVVNBQ2FwaXRhbEdhaW5zU2VydmljZUltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2FwaXRhbC1nYWlucy91c2EvVVNBQ2FwaXRhbEdhaW5zU2VydmljZUltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSwwQkFBMEI7SUFJbkMsWUFBWSxLQUFZLEVBQUUsS0FBWTtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBRXJDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTztnQkFDSCxXQUFXLEVBQUUsQ0FBQztnQkFDZCxjQUFjLEVBQUUsQ0FBQztnQkFDakIsbUJBQW1CLEVBQUUsQ0FBQztnQkFDdEIsc0JBQXNCLEVBQUUsQ0FBQztnQkFDekIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLFVBQVUsRUFBRSxFQUFFO2FBQ2pCLENBQUM7UUFDTixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBRTNGLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUvRixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRixJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDO1lBQ3RELFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ1osSUFBSSxFQUFFLE1BQU07Z0JBQ1osRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsSUFBSTtnQkFDN0MsTUFBTSxFQUFFLElBQUk7YUFDZixDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUU1QixPQUFPO1lBQ0gsV0FBVyxFQUFFLElBQUk7WUFDakIsY0FBYyxFQUFFLEdBQUc7WUFDbkIsbUJBQW1CLEVBQUUsQ0FBQztZQUN0QixzQkFBc0IsRUFBRSxJQUFJO1lBQzVCLFFBQVE7WUFDUixhQUFhLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELFVBQVU7U0FDYixDQUFDO0lBQ04sQ0FBQztJQUVPLGFBQWEsQ0FDakIsSUFBWSxFQUNaLFdBQW1CLEVBQ25CLFFBQTJCO1FBRTNCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLE1BQU0sVUFBVSxHQUFnQixFQUFFLENBQUM7UUFDbkMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksVUFBVSxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFcEMsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLFNBQVMsSUFBSSxDQUFDO2dCQUFFLE1BQU07WUFFMUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUM7WUFFckMsSUFBSSxVQUFVLElBQUksS0FBSztnQkFBRSxTQUFTO1lBRWxDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN4RCxNQUFNLFlBQVksR0FBRyxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRWxELElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNkLE1BQU0sVUFBVSxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUMxQyxHQUFHLElBQUksVUFBVSxDQUFDO2dCQUNsQixTQUFTLElBQUksT0FBTyxDQUFDO2dCQUNyQixVQUFVLElBQUksT0FBTyxDQUFDO2dCQUV0QixVQUFVLENBQUMsSUFBSSxDQUFDO29CQUNaLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUU7b0JBQ3ZCLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksT0FBTyxFQUFFO29CQUM5QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLE1BQU0sRUFBRSxVQUFVO2lCQUNyQixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBM0ZELGdFQTJGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrZG93biwgUmVzdWx0IH0gZnJvbSBcIi4uL2RvbWFpbi90eXBlc1wiO1xuaW1wb3J0IHsgVVNBQ2FwaXRhbEdhaW5zU2VydmljZSB9IGZyb20gXCIuL1VTQUNhcGl0YWxHYWluc1NlcnZpY2VcIjtcbmltcG9ydCB7IElucHV0LCBMb25nVGVybUJyYWNrZXQsIFJ1bGVzIH0gZnJvbSBcIi4vZG9tYWluL3R5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBVU0FDYXBpdGFsR2FpbnNTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFVTQUNhcGl0YWxHYWluc1NlcnZpY2Uge1xuICAgIHByaXZhdGUgX2lucHV0OiBJbnB1dDtcbiAgICBwcml2YXRlIF9ydWxlczogUnVsZXM7XG5cbiAgICBjb25zdHJ1Y3RvcihpbnB1dDogSW5wdXQsIHJ1bGVzOiBSdWxlcykge1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLl9ydWxlcyA9IHJ1bGVzO1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZSgpOiBSZXN1bHQge1xuICAgICAgICBjb25zdCBnYWluID0gdGhpcy5faW5wdXQuY2FwaXRhbEdhaW47XG5cbiAgICAgICAgaWYgKGdhaW4gPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgXG4gICAgICAgICAgICAgICAgdGF4YWJsZUdhaW46IDAsXG4gICAgICAgICAgICAgICAgY2FwaXRhbEdhaW5UYXg6IDAsXG4gICAgICAgICAgICAgICAgc29jaWFsQ29udHJpYnV0aW9uczogMCxcbiAgICAgICAgICAgICAgICBuZXRJbnZlc3RtZW50SW5jb21lVGF4OiAwLFxuICAgICAgICAgICAgICAgIHRvdGFsVGF4OiAwLFxuICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVJhdGU6IDAsXG4gICAgICAgICAgICAgICAgYnJlYWtkb3duczogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0xvbmdUZXJtID0gdGhpcy5faW5wdXQuaG9sZGluZ1BlcmlvZE1vbnRocyA+IDEyO1xuICAgICAgICBjb25zdCBicmFja2V0cyA9IGlzTG9uZ1Rlcm0gPyB0aGlzLl9ydWxlcy5sb25nVGVybUJyYWNrZXRzIDogdGhpcy5fcnVsZXMuc2hvcnRUZXJtQnJhY2tldHM7XG5cbiAgICAgICAgY29uc3QgeyB0YXgsIGJyZWFrZG93bnMgfSA9IHRoaXMuYXBwbHlCcmFja2V0cyhnYWluLCB0aGlzLl9pbnB1dC50b3RhbFRheGFibGVJbmNvbWUsIGJyYWNrZXRzKTtcblxuICAgICAgICBsZXQgbmlpdCA9IDA7XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dC50b3RhbFRheGFibGVJbmNvbWUgPiB0aGlzLl9ydWxlcy5uZXRJbnZlc3RtZW50SW5jb21lVGF4LnRocmVzaG9sZCkge1xuICAgICAgICAgICAgbmlpdCA9IGdhaW4gKiB0aGlzLl9ydWxlcy5uZXRJbnZlc3RtZW50SW5jb21lVGF4LnJhdGU7XG4gICAgICAgICAgICBicmVha2Rvd25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGZyb206ICdOSUlUJyxcbiAgICAgICAgICAgICAgICB0bzogJ0FsbCBHYWluJyxcbiAgICAgICAgICAgICAgICByYXRlOiB0aGlzLl9ydWxlcy5uZXRJbnZlc3RtZW50SW5jb21lVGF4LnJhdGUsXG4gICAgICAgICAgICAgICAgYW1vdW50OiBuaWl0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b3RhbFRheCA9IHRheCArIG5paXQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRheGFibGVHYWluOiBnYWluLFxuICAgICAgICAgICAgY2FwaXRhbEdhaW5UYXg6IHRheCxcbiAgICAgICAgICAgIHNvY2lhbENvbnRyaWJ1dGlvbnM6IDAsXG4gICAgICAgICAgICBuZXRJbnZlc3RtZW50SW5jb21lVGF4OiBuaWl0LFxuICAgICAgICAgICAgdG90YWxUYXgsXG4gICAgICAgICAgICBlZmZlY3RpdmVSYXRlOiBnYWluID4gMCA/ICh0b3RhbFRheCAvIGdhaW4pICogMTAwIDogMCxcbiAgICAgICAgICAgIGJyZWFrZG93bnMsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseUJyYWNrZXRzKFxuICAgICAgICBnYWluOiBudW1iZXIsXG4gICAgICAgIHRvdGFsSW5jb21lOiBudW1iZXIsXG4gICAgICAgIGJyYWNrZXRzOiBMb25nVGVybUJyYWNrZXRbXSxcbiAgICApOiB7IHRheDogbnVtYmVyOyBicmVha2Rvd25zOiBCcmVha2Rvd25bXSB9IHtcbiAgICAgICAgbGV0IHRheCA9IDA7XG4gICAgICAgIGNvbnN0IGJyZWFrZG93bnM6IEJyZWFrZG93bltdID0gW107XG4gICAgICAgIGxldCByZW1haW5pbmcgPSBnYWluO1xuICAgICAgICBsZXQgaW5jb21lVXNlZCA9IHRvdGFsSW5jb21lIC0gZ2FpbjtcblxuICAgICAgICBmb3IgKGNvbnN0IGJyYWNrZXQgb2YgYnJhY2tldHMpIHtcbiAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPD0gMCkgYnJlYWs7XG5cbiAgICAgICAgICAgIGNvbnN0IHVwcGVyID0gYnJhY2tldC50byA/PyBJbmZpbml0eTtcblxuICAgICAgICAgICAgaWYgKGluY29tZVVzZWQgPj0gdXBwZXIpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBjb25zdCBicmFja2V0U3RhcnQgPSBNYXRoLm1heChicmFja2V0LmZyb20sIGluY29tZVVzZWQpO1xuICAgICAgICAgICAgY29uc3QgYnJhY2tldFNwYWNlID0gdXBwZXIgLSBicmFja2V0U3RhcnQ7XG4gICAgICAgICAgICBjb25zdCB0YXhhYmxlID0gTWF0aC5taW4oYnJhY2tldFNwYWNlLCByZW1haW5pbmcpO1xuXG4gICAgICAgICAgICBpZiAodGF4YWJsZSA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBicmFja2V0VGF4ID0gdGF4YWJsZSAqIGJyYWNrZXQucmF0ZTtcbiAgICAgICAgICAgICAgICB0YXggKz0gYnJhY2tldFRheDtcbiAgICAgICAgICAgICAgICByZW1haW5pbmcgLT0gdGF4YWJsZTtcbiAgICAgICAgICAgICAgICBpbmNvbWVVc2VkICs9IHRheGFibGU7XG5cbiAgICAgICAgICAgICAgICBicmVha2Rvd25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHticmFja2V0LmZyb219YCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke2JyYWNrZXQudG8gPz8gJ0Fib3ZlJ31gLFxuICAgICAgICAgICAgICAgICAgICByYXRlOiBicmFja2V0LnJhdGUsXG4gICAgICAgICAgICAgICAgICAgIGFtb3VudDogYnJhY2tldFRheCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IHRheCwgYnJlYWtkb3ducyB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2FwaXRhbC1nYWlucy91c2EvZG9tYWluL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha2Rvd24gfSBmcm9tIFwiLi4vLi4vZG9tYWluL3R5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9uZ1Rlcm1CcmFja2V0IHtcbiAgICBmcm9tOiBudW1iZXI7XG4gICAgdG86IG51bWJlciB8IG51bGw7XG4gICAgcmF0ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVzIHtcbiAgICBsb25nVGVybUJyYWNrZXRzOiBMb25nVGVybUJyYWNrZXRbXTtcbiAgICBzaG9ydFRlcm1CcmFja2V0czogTG9uZ1Rlcm1CcmFja2V0W107XG4gICAgbmV0SW52ZXN0bWVudEluY29tZVRheDogeyByYXRlOiBudW1iZXI7IHRocmVzaG9sZDogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXQge1xuICAgIGNhcGl0YWxHYWluOiBudW1iZXI7XG4gICAgdG90YWxUYXhhYmxlSW5jb21lOiBudW1iZXI7XG4gICAgaG9sZGluZ1BlcmlvZE1vbnRoczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VsdCB7XG4gICAgY2FwaXRhbEdhaW5zVGF4OiBudW1iZXI7XG4gICAgbmV0SW52ZXN0bWVudEluY29tZVRheDogbnVtYmVyO1xuICAgIHRvdGFsVGF4OiBudW1iZXI7XG4gICAgZWZmZWN0aXZlUmF0ZTogbnVtYmVyO1xuICAgIGJyZWFrZG93bnM6IEJyZWFrZG93bltdO1xufVxuIl19
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CanadaCorporateTaxService = exports.FranceCorporateTaxService = exports.SouthAfricaCorporateTaxService = exports.AustraliaCorporateTaxService = exports.UKCorporateTaxService = exports.GermanyCorporateTaxService = exports.USACorporateTaxService = void 0;
4
+ const USACorporateTaxServiceImpl_1 = require("./usa/USACorporateTaxServiceImpl");
5
+ Object.defineProperty(exports, "USACorporateTaxService", { enumerable: true, get: function () { return USACorporateTaxServiceImpl_1.USACorporateTaxServiceImpl; } });
6
+ const GermanyCorporateTaxServiceImpl_1 = require("./germany/GermanyCorporateTaxServiceImpl");
7
+ Object.defineProperty(exports, "GermanyCorporateTaxService", { enumerable: true, get: function () { return GermanyCorporateTaxServiceImpl_1.GermanyCorporateTaxServiceImpl; } });
8
+ const UKCorporateTaxServiceImpl_1 = require("./uk/UKCorporateTaxServiceImpl");
9
+ Object.defineProperty(exports, "UKCorporateTaxService", { enumerable: true, get: function () { return UKCorporateTaxServiceImpl_1.UKCorporateTaxServiceImpl; } });
10
+ const AustraliaCorporateTaxServiceImpl_1 = require("./australia/AustraliaCorporateTaxServiceImpl");
11
+ Object.defineProperty(exports, "AustraliaCorporateTaxService", { enumerable: true, get: function () { return AustraliaCorporateTaxServiceImpl_1.AustraliaCorporateTaxServiceImpl; } });
12
+ const SouthAfricaCorporateTaxServiceImpl_1 = require("./south-africa/SouthAfricaCorporateTaxServiceImpl");
13
+ Object.defineProperty(exports, "SouthAfricaCorporateTaxService", { enumerable: true, get: function () { return SouthAfricaCorporateTaxServiceImpl_1.SouthAfricaCorporateTaxServiceImpl; } });
14
+ const FranceCorporateTaxServiceImpl_1 = require("./france/FranceCorporateTaxServiceImpl");
15
+ Object.defineProperty(exports, "FranceCorporateTaxService", { enumerable: true, get: function () { return FranceCorporateTaxServiceImpl_1.FranceCorporateTaxServiceImpl; } });
16
+ const CanadaCorporateTaxServiceImpl_1 = require("./canada/CanadaCorporateTaxServiceImpl");
17
+ Object.defineProperty(exports, "CanadaCorporateTaxService", { enumerable: true, get: function () { return CanadaCorporateTaxServiceImpl_1.CanadaCorporateTaxServiceImpl; } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29ycG9yYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlGQUF3RztBQWtEcEcsdUdBbERtQyx1REFBc0IsT0FrRG5DO0FBM0MxQiw2RkFBd0g7QUErQ3BILDJHQS9DdUMsK0RBQTBCLE9BK0N2QztBQXhDOUIsOEVBQW9HO0FBNENoRyxzR0E1Q2tDLHFEQUFxQixPQTRDbEM7QUFyQ3pCLG1HQUFnSTtBQXlDNUgsNkdBekN5QyxtRUFBNEIsT0F5Q3pDO0FBbENoQywwR0FBeUk7QUFzQ3JJLCtHQXRDMkMsdUVBQThCLE9Bc0MzQztBQS9CbEMsMEZBQW9IO0FBbUNoSCwwR0FuQ3NDLDZEQUF5QixPQW1DdEM7QUE1QjdCLDBGQUFvSDtBQWdDaEgsMEdBaENzQyw2REFBeUIsT0FnQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVVNBQ29ycG9yYXRlVGF4U2VydmljZUltcGwgYXMgVVNBQ29ycG9yYXRlVGF4U2VydmljZSB9IGZyb20gJy4vdXNhL1VTQUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgSW5wdXQgYXMgVVNBQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgVVNBQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgUmVzdWx0IGFzIFVTQUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi91c2EvZG9tYWluL3R5cGVzJztcblxuaW1wb3J0IHsgR2VybWFueUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsIGFzIEdlcm1hbnlDb3Jwb3JhdGVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9nZXJtYW55L0dlcm1hbnlDb3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIElucHV0IGFzIEdlcm1hbnlDb3Jwb3JhdGVUYXhJbnB1dCxcbiAgICBSdWxlcyBhcyBHZXJtYW55Q29ycG9yYXRlVGF4UnVsZXMsXG4gICAgUmVzdWx0IGFzIEdlcm1hbnlDb3Jwb3JhdGVUYXhSZXN1bHQsXG59IGZyb20gJy4vZ2VybWFueS9kb21haW4vdHlwZXMnO1xuXG5pbXBvcnQgeyBVS0NvcnBvcmF0ZVRheFNlcnZpY2VJbXBsIGFzIFVLQ29ycG9yYXRlVGF4U2VydmljZSB9IGZyb20gJy4vdWsvVUtDb3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIElucHV0IGFzIFVLQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgVUtDb3Jwb3JhdGVUYXhSdWxlcyxcbiAgICBSZXN1bHQgYXMgVUtDb3Jwb3JhdGVUYXhSZXN1bHQsXG59IGZyb20gJy4vdWsvZG9tYWluL3R5cGVzJztcblxuaW1wb3J0IHsgQXVzdHJhbGlhQ29ycG9yYXRlVGF4U2VydmljZUltcGwgYXMgQXVzdHJhbGlhQ29ycG9yYXRlVGF4U2VydmljZSB9IGZyb20gJy4vYXVzdHJhbGlhL0F1c3RyYWxpYUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgSW5wdXQgYXMgQXVzdHJhbGlhQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgQXVzdHJhbGlhQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgUmVzdWx0IGFzIEF1c3RyYWxpYUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9hdXN0cmFsaWEvZG9tYWluL3R5cGVzJztcblxuaW1wb3J0IHsgU291dGhBZnJpY2FDb3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbCBhcyBTb3V0aEFmcmljYUNvcnBvcmF0ZVRheFNlcnZpY2UgfSBmcm9tICcuL3NvdXRoLWFmcmljYS9Tb3V0aEFmcmljYUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgUnVsZXMgYXMgU291dGhBZnJpY2FDb3Jwb3JhdGVUYXhSdWxlcyxcbiAgICBJbnB1dCBhcyBTb3V0aEFmcmljYUNvcnBvcmF0ZVRheElucHV0LFxuICAgIFJlc3VsdCBhcyBTb3V0aEFmcmljYUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9zb3V0aC1hZnJpY2EvZG9tYWluL3R5cGVzJztcblxuaW1wb3J0IHsgRnJhbmNlQ29ycG9yYXRlVGF4U2VydmljZUltcGwgYXMgRnJhbmNlQ29ycG9yYXRlVGF4U2VydmljZSB9IGZyb20gJy4vZnJhbmNlL0ZyYW5jZUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgSW5wdXQgYXMgRnJhbmNlQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgRnJhbmNlQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgUmVzdWx0IGFzIEZyYW5jZUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9mcmFuY2UvZG9tYWluL3R5cGVzJztcblxuaW1wb3J0IHsgQ2FuYWRhQ29ycG9yYXRlVGF4U2VydmljZUltcGwgYXMgQ2FuYWRhQ29ycG9yYXRlVGF4U2VydmljZSB9IGZyb20gJy4vY2FuYWRhL0NhbmFkYUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgSW5wdXQgYXMgQ2FuYWRhQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgQ2FuYWRhQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgUmVzdWx0IGFzIENhbmFkYUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9jYW5hZGEvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0IHtcbiAgICBVU0FDb3Jwb3JhdGVUYXhTZXJ2aWNlLFxuICAgIFVTQUNvcnBvcmF0ZVRheElucHV0LFxuICAgIFVTQUNvcnBvcmF0ZVRheFJ1bGVzLFxuICAgIFVTQUNvcnBvcmF0ZVRheFJlc3VsdCxcbiAgICBHZXJtYW55Q29ycG9yYXRlVGF4U2VydmljZSxcbiAgICBHZXJtYW55Q29ycG9yYXRlVGF4SW5wdXQsXG4gICAgR2VybWFueUNvcnBvcmF0ZVRheFJ1bGVzLFxuICAgIEdlcm1hbnlDb3Jwb3JhdGVUYXhSZXN1bHQsXG4gICAgVUtDb3Jwb3JhdGVUYXhTZXJ2aWNlLFxuICAgIFVLQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgVUtDb3Jwb3JhdGVUYXhSdWxlcyxcbiAgICBVS0NvcnBvcmF0ZVRheFJlc3VsdCxcbiAgICBBdXN0cmFsaWFDb3Jwb3JhdGVUYXhTZXJ2aWNlLFxuICAgIEF1c3RyYWxpYUNvcnBvcmF0ZVRheElucHV0LFxuICAgIEF1c3RyYWxpYUNvcnBvcmF0ZVRheFJ1bGVzLFxuICAgIEF1c3RyYWxpYUNvcnBvcmF0ZVRheFJlc3VsdCxcbiAgICBTb3V0aEFmcmljYUNvcnBvcmF0ZVRheFNlcnZpY2UsXG4gICAgU291dGhBZnJpY2FDb3Jwb3JhdGVUYXhJbnB1dCxcbiAgICBTb3V0aEFmcmljYUNvcnBvcmF0ZVRheFJ1bGVzLFxuICAgIFNvdXRoQWZyaWNhQ29ycG9yYXRlVGF4UmVzdWx0LFxuICAgIEZyYW5jZUNvcnBvcmF0ZVRheFNlcnZpY2UsXG4gICAgRnJhbmNlQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgRnJhbmNlQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgRnJhbmNlQ29ycG9yYXRlVGF4UmVzdWx0LFxuICAgIENhbmFkYUNvcnBvcmF0ZVRheFNlcnZpY2UsXG4gICAgQ2FuYWRhQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgQ2FuYWRhQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgQ2FuYWRhQ29ycG9yYXRlVGF4UmVzdWx0XG59O1xuIl19
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GermanyIncomeTaxService = exports.USAIncomeTaxService = exports.UKIncomeTaxService = exports.AustraliaIncomeTaxService = exports.SouthAfricaIncomeTaxService = exports.FranceIncomeTaxService = exports.CanadaIncomeTaxService = void 0;
4
+ // Canada
5
+ const CanadaIncomeTaxServiceImpl_1 = require("./canada/CanadaIncomeTaxServiceImpl");
6
+ Object.defineProperty(exports, "CanadaIncomeTaxService", { enumerable: true, get: function () { return CanadaIncomeTaxServiceImpl_1.CanadaIncomeTaxServiceImpl; } });
7
+ const FranceIncomeTaxServiceImpl_1 = require("./france/FranceIncomeTaxServiceImpl");
8
+ Object.defineProperty(exports, "FranceIncomeTaxService", { enumerable: true, get: function () { return FranceIncomeTaxServiceImpl_1.FranceIncomeTaxServiceImpl; } });
9
+ // South Africa
10
+ const SouthAfricaIncomeTaxServiceImpl_1 = require("./south-africa/SouthAfricaIncomeTaxServiceImpl");
11
+ Object.defineProperty(exports, "SouthAfricaIncomeTaxService", { enumerable: true, get: function () { return SouthAfricaIncomeTaxServiceImpl_1.SouthAfricaIncomeTaxServiceImpl; } });
12
+ // Australia
13
+ const AustraliaIncomeTaxServiceImpl_1 = require("./australia/AustraliaIncomeTaxServiceImpl");
14
+ Object.defineProperty(exports, "AustraliaIncomeTaxService", { enumerable: true, get: function () { return AustraliaIncomeTaxServiceImpl_1.AustraliaIncomeTaxServiceImpl; } });
15
+ // UK
16
+ const UKIncomeTaxServiceImpl_1 = require("./uk/UKIncomeTaxServiceImpl");
17
+ Object.defineProperty(exports, "UKIncomeTaxService", { enumerable: true, get: function () { return UKIncomeTaxServiceImpl_1.UKIncomeTaxServiceImpl; } });
18
+ // USA
19
+ const USAIncomeTaxServiceImpl_1 = require("./usa/USAIncomeTaxServiceImpl");
20
+ Object.defineProperty(exports, "USAIncomeTaxService", { enumerable: true, get: function () { return USAIncomeTaxServiceImpl_1.USAIncomeTaxServiceImpl; } });
21
+ // Germany
22
+ const GermanyIncomeTaxServiceImpl_1 = require("./germany/GermanyIncomeTaxServiceImpl");
23
+ Object.defineProperty(exports, "GermanyIncomeTaxService", { enumerable: true, get: function () { return GermanyIncomeTaxServiceImpl_1.GermanyIncomeTaxServiceImpl; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5jb21lLXRheC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTO0FBQ1Qsb0ZBQTJHO0FBaUR2Ryx1R0FqRG1DLHVEQUFzQixPQWlEbkM7QUE1QzFCLG9GQUEyRztBQStDdkcsdUdBL0NtQyx1REFBc0IsT0ErQ25DO0FBdkMxQixlQUFlO0FBQ2Ysb0dBQWdJO0FBeUM1SCw0R0F6Q3dDLGlFQUEyQixPQXlDeEM7QUFuQy9CLFlBQVk7QUFDWiw2RkFBdUg7QUFxQ25ILDBHQXJDc0MsNkRBQXlCLE9BcUN0QztBQS9CN0IsS0FBSztBQUNMLHdFQUEyRjtBQWlDdkYsbUdBakMrQiwrQ0FBa0IsT0FpQy9CO0FBM0J0QixNQUFNO0FBQ04sMkVBQStGO0FBNkIzRixvR0E3QmdDLGlEQUFtQixPQTZCaEM7QUF2QnZCLFVBQVU7QUFDVix1RkFBK0c7QUF5QjNHLHdHQXpCb0MseURBQXVCLE9BeUJwQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENhbmFkYVxuaW1wb3J0IHsgQ2FuYWRhSW5jb21lVGF4U2VydmljZUltcGwgYXMgQ2FuYWRhSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vY2FuYWRhL0NhbmFkYUluY29tZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgQ2FuYWRhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgQ2FuYWRhSW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vY2FuYWRhL2RvbWFpbi90eXBlcyc7XG5pbXBvcnQgeyBGcmFuY2VJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBGcmFuY2VJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9mcmFuY2UvRnJhbmNlSW5jb21lVGF4U2VydmljZUltcGwnO1xuXG4vLyBGcmFuY2VcbmltcG9ydCB7IFxuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIEZyYW5jZUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEluY29tZVRheFJ1bGVzIGFzIEZyYW5jZUluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2ZyYW5jZS9kb21haW4vdHlwZXMnO1xuXG4vLyBTb3V0aCBBZnJpY2FcbmltcG9ydCB7IFNvdXRoQWZyaWNhSW5jb21lVGF4U2VydmljZUltcGwgYXMgU291dGhBZnJpY2FJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9zb3V0aC1hZnJpY2EvU291dGhBZnJpY2FJbmNvbWVUYXhTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIFNvdXRoQWZyaWNhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgU291dGhBZnJpY2FJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9zb3V0aC1hZnJpY2EvZG9tYWluL3R5cGVzJztcblxuLy8gQXVzdHJhbGlhXG5pbXBvcnQgeyBBdXN0cmFsaWFJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBBdXN0cmFsaWFJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9hdXN0cmFsaWEvQXVzdHJhbGlhSW5jb21lVGF4U2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBBdXN0cmFsaWFDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBBdXN0cmFsaWFJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9hdXN0cmFsaWEvZG9tYWluL3R5cGVzJztcblxuLy8gVUtcbmltcG9ydCB7IFVLSW5jb21lVGF4U2VydmljZUltcGwgYXMgVUtJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi91ay9VS0luY29tZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgVUtDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBVS0luY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL3VrL2RvbWFpbi90eXBlcyc7XG5cbi8vIFVTQVxuaW1wb3J0IHsgVVNBSW5jb21lVGF4U2VydmljZUltcGwgYXMgVVNBSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vdXNhL1VTQUluY29tZVRheFNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgVVNBQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgVVNBSW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vdXNhL2RvbWFpbi90eXBlcyc7XG5cbi8vIEdlcm1hbnlcbmltcG9ydCB7IEdlcm1hbnlJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBHZXJtYW55SW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vZ2VybWFueS9HZXJtYW55SW5jb21lVGF4U2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBHZXJtYW55Q29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgR2VybWFueUluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2dlcm1hbnkvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0IHtcbiAgICBDYW5hZGFJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIENhbmFkYUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIENhbmFkYUluY29tZVRheFJ1bGVzLFxuICAgIEZyYW5jZUluY29tZVRheFNlcnZpY2UsXG4gICAgRnJhbmNlQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgRnJhbmNlSW5jb21lVGF4UnVsZXMsXG4gICAgU291dGhBZnJpY2FJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIFNvdXRoQWZyaWNhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgU291dGhBZnJpY2FJbmNvbWVUYXhSdWxlcyxcbiAgICBBdXN0cmFsaWFJbmNvbWVUYXhTZXJ2aWNlLFxuICAgIEF1c3RyYWxpYUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEF1c3RyYWxpYUluY29tZVRheFJ1bGVzLFxuICAgIFVLSW5jb21lVGF4U2VydmljZSxcbiAgICBVS0NvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIFVLSW5jb21lVGF4UnVsZXMsXG4gICAgVVNBSW5jb21lVGF4U2VydmljZSxcbiAgICBVU0FDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBVU0FJbmNvbWVUYXhSdWxlcyxcbiAgICBHZXJtYW55SW5jb21lVGF4U2VydmljZSxcbiAgICBHZXJtYW55Q29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgR2VybWFueUluY29tZVRheFJ1bGVzLFxufTsiXX0=
package/dist/index.js CHANGED
@@ -10,61 +10,28 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
13
18
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
20
  };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
16
28
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.GermanyCorporateTaxService = exports.GermanyMortgageService = exports.GermanyIncomeTaxService = exports.USACorporateTaxService = exports.USAMortgageService = exports.USAIncomeTaxService = exports.UKMortgageService = exports.UKCorporateTaxService = exports.UKIncomeTaxService = exports.AustraliaCorporateTaxService = exports.AustraliaMortgageService = exports.AustraliaIncomeTaxService = exports.SouthAfricaCorporateTaxService = exports.SouthAfricaMortgageService = exports.SouthAfricaIncomeTaxService = exports.FranceCorporateTaxService = exports.FranceMortgageService = exports.FranceIncomeTaxService = exports.CanadaCorporateTaxService = exports.CanadaMortgageService = exports.CanadaIncomeTaxService = exports.CalculatorType = void 0;
29
+ exports.Mortgage = exports.CapitalGain = exports.CorporateTax = exports.IncomeTax = exports.CalculatorType = void 0;
18
30
  var types_1 = require("./shared/domain/types");
19
31
  Object.defineProperty(exports, "CalculatorType", { enumerable: true, get: function () { return types_1.CalculatorType; } });
20
- // Canada
21
- var CanadaIncomeTaxServiceImpl_1 = require("./income-tax/canada/CanadaIncomeTaxServiceImpl");
22
- Object.defineProperty(exports, "CanadaIncomeTaxService", { enumerable: true, get: function () { return CanadaIncomeTaxServiceImpl_1.CanadaIncomeTaxServiceImpl; } });
23
- var CanadaMortgageServiceImpl_1 = require("./mortgage/canada/CanadaMortgageServiceImpl");
24
- Object.defineProperty(exports, "CanadaMortgageService", { enumerable: true, get: function () { return CanadaMortgageServiceImpl_1.CanadaMortgageServiceImpl; } });
25
- var CanadaCorporateTaxServiceImpl_1 = require("./corporate/canada/CanadaCorporateTaxServiceImpl");
26
- Object.defineProperty(exports, "CanadaCorporateTaxService", { enumerable: true, get: function () { return CanadaCorporateTaxServiceImpl_1.CanadaCorporateTaxServiceImpl; } });
27
- // France
28
- var FranceIncomeTaxServiceImpl_1 = require("./income-tax/france/FranceIncomeTaxServiceImpl");
29
- Object.defineProperty(exports, "FranceIncomeTaxService", { enumerable: true, get: function () { return FranceIncomeTaxServiceImpl_1.FranceIncomeTaxServiceImpl; } });
30
- var FranceMortgageServiceImpl_1 = require("./mortgage/france/FranceMortgageServiceImpl");
31
- Object.defineProperty(exports, "FranceMortgageService", { enumerable: true, get: function () { return FranceMortgageServiceImpl_1.FranceMortgageServiceImpl; } });
32
- var FranceCorporateTaxServiceImpl_1 = require("./corporate/france/FranceCorporateTaxServiceImpl");
33
- Object.defineProperty(exports, "FranceCorporateTaxService", { enumerable: true, get: function () { return FranceCorporateTaxServiceImpl_1.FranceCorporateTaxServiceImpl; } });
34
- // South Africa
35
- var SouthAfricaIncomeTaxServiceImpl_1 = require("./income-tax/south-africa/SouthAfricaIncomeTaxServiceImpl");
36
- Object.defineProperty(exports, "SouthAfricaIncomeTaxService", { enumerable: true, get: function () { return SouthAfricaIncomeTaxServiceImpl_1.SouthAfricaIncomeTaxServiceImpl; } });
37
- var SouthAfricaMortgageServiceImpl_1 = require("./mortgage/south-africa/SouthAfricaMortgageServiceImpl");
38
- Object.defineProperty(exports, "SouthAfricaMortgageService", { enumerable: true, get: function () { return SouthAfricaMortgageServiceImpl_1.SouthAfricaMortgageServiceImpl; } });
39
- var SouthAfricaCorporateTaxServiceImpl_1 = require("./corporate/south-africa/SouthAfricaCorporateTaxServiceImpl");
40
- Object.defineProperty(exports, "SouthAfricaCorporateTaxService", { enumerable: true, get: function () { return SouthAfricaCorporateTaxServiceImpl_1.SouthAfricaCorporateTaxServiceImpl; } });
41
- // Australia
42
- var AustraliaIncomeTaxServiceImpl_1 = require("./income-tax/australia/AustraliaIncomeTaxServiceImpl");
43
- Object.defineProperty(exports, "AustraliaIncomeTaxService", { enumerable: true, get: function () { return AustraliaIncomeTaxServiceImpl_1.AustraliaIncomeTaxServiceImpl; } });
44
- var AustraliaMortgageServiceImpl_1 = require("./mortgage/australia/AustraliaMortgageServiceImpl");
45
- Object.defineProperty(exports, "AustraliaMortgageService", { enumerable: true, get: function () { return AustraliaMortgageServiceImpl_1.AustraliaMortgageServiceImpl; } });
46
- var AustraliaCorporateTaxServiceImpl_1 = require("./corporate/australia/AustraliaCorporateTaxServiceImpl");
47
- Object.defineProperty(exports, "AustraliaCorporateTaxService", { enumerable: true, get: function () { return AustraliaCorporateTaxServiceImpl_1.AustraliaCorporateTaxServiceImpl; } });
48
- // United Kingdom
49
- var UKIncomeTaxServiceImpl_1 = require("./income-tax/uk/UKIncomeTaxServiceImpl");
50
- Object.defineProperty(exports, "UKIncomeTaxService", { enumerable: true, get: function () { return UKIncomeTaxServiceImpl_1.UKIncomeTaxServiceImpl; } });
51
- var UKCorporateTaxServiceImpl_1 = require("./corporate/uk/UKCorporateTaxServiceImpl");
52
- Object.defineProperty(exports, "UKCorporateTaxService", { enumerable: true, get: function () { return UKCorporateTaxServiceImpl_1.UKCorporateTaxServiceImpl; } });
53
- var UKMortgageServiceImpl_1 = require("./mortgage/uk/UKMortgageServiceImpl");
54
- Object.defineProperty(exports, "UKMortgageService", { enumerable: true, get: function () { return UKMortgageServiceImpl_1.UKMortgageServiceImpl; } });
55
- // USA
56
- var USAIncomeTaxServiceImpl_1 = require("./income-tax/usa/USAIncomeTaxServiceImpl");
57
- Object.defineProperty(exports, "USAIncomeTaxService", { enumerable: true, get: function () { return USAIncomeTaxServiceImpl_1.USAIncomeTaxServiceImpl; } });
58
- var USAMortgageServiceImpl_1 = require("./mortgage/usa/USAMortgageServiceImpl");
59
- Object.defineProperty(exports, "USAMortgageService", { enumerable: true, get: function () { return USAMortgageServiceImpl_1.USAMortgageServiceImpl; } });
60
- var USACorporateTaxServiceImpl_1 = require("./corporate/usa/USACorporateTaxServiceImpl");
61
- Object.defineProperty(exports, "USACorporateTaxService", { enumerable: true, get: function () { return USACorporateTaxServiceImpl_1.USACorporateTaxServiceImpl; } });
62
- // Germany
63
- var GermanyIncomeTaxServiceImpl_1 = require("./income-tax/germany/GermanyIncomeTaxServiceImpl");
64
- Object.defineProperty(exports, "GermanyIncomeTaxService", { enumerable: true, get: function () { return GermanyIncomeTaxServiceImpl_1.GermanyIncomeTaxServiceImpl; } });
65
- var GermanyMortgageServiceImpl_1 = require("./mortgage/germany/GermanyMortgageServiceImpl");
66
- Object.defineProperty(exports, "GermanyMortgageService", { enumerable: true, get: function () { return GermanyMortgageServiceImpl_1.GermanyMortgageServiceImpl; } });
67
- var GermanyCorporateTaxServiceImpl_1 = require("./corporate/germany/GermanyCorporateTaxServiceImpl");
68
- Object.defineProperty(exports, "GermanyCorporateTaxService", { enumerable: true, get: function () { return GermanyCorporateTaxServiceImpl_1.GermanyCorporateTaxServiceImpl; } });
69
32
  __exportStar(require("./income-tax/domain/types"), exports);
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBdUQ7QUFBOUMsdUdBQUEsY0FBYyxPQUFBO0FBRXZCLFNBQVM7QUFDVCw2RkFBc0g7QUFBN0csb0lBQUEsMEJBQTBCLE9BQTBCO0FBQzdELHlGQUFpSDtBQUF4RyxrSUFBQSx5QkFBeUIsT0FBeUI7QUFXM0Qsa0dBQThIO0FBQXJILDBJQUFBLDZCQUE2QixPQUE2QjtBQU9uRSxTQUFTO0FBQ1QsNkZBQXNIO0FBQTdHLG9JQUFBLDBCQUEwQixPQUEwQjtBQUM3RCx5RkFBaUg7QUFBeEcsa0lBQUEseUJBQXlCLE9BQXlCO0FBVzNELGtHQUE4SDtBQUFySCwwSUFBQSw2QkFBNkIsT0FBNkI7QUFPbkUsZUFBZTtBQUNmLDZHQUEySTtBQUFsSSw4SUFBQSwrQkFBK0IsT0FBK0I7QUFDdkUseUdBQXNJO0FBQTdILDRJQUFBLDhCQUE4QixPQUE4QjtBQVdyRSxrSEFBbUo7QUFBMUksb0pBQUEsa0NBQWtDLE9BQWtDO0FBTzdFLFlBQVk7QUFDWixzR0FBa0k7QUFBekgsMElBQUEsNkJBQTZCLE9BQTZCO0FBTW5FLGtHQUE2SDtBQUFwSCx3SUFBQSw0QkFBNEIsT0FBNEI7QUFPakUsMkdBQTBJO0FBQWpJLGdKQUFBLGdDQUFnQyxPQUFnQztBQU96RSxpQkFBaUI7QUFDakIsaUZBQXNHO0FBQTdGLDRIQUFBLHNCQUFzQixPQUFzQjtBQU1yRCxzRkFBOEc7QUFBckcsa0lBQUEseUJBQXlCLE9BQXlCO0FBTzNELDZFQUFpRztBQUF4RiwwSEFBQSxxQkFBcUIsT0FBcUI7QUFPbkQsTUFBTTtBQUNOLG9GQUEwRztBQUFqRyw4SEFBQSx1QkFBdUIsT0FBdUI7QUFNdkQsZ0ZBQXFHO0FBQTVGLDRIQUFBLHNCQUFzQixPQUFzQjtBQU9yRCx5RkFBa0g7QUFBekcsb0lBQUEsMEJBQTBCLE9BQTBCO0FBTzdELFVBQVU7QUFDVixnR0FBMEg7QUFBakgsc0lBQUEsMkJBQTJCLE9BQTJCO0FBTS9ELDRGQUFxSDtBQUE1RyxvSUFBQSwwQkFBMEIsT0FBMEI7QUFPN0QscUdBQWtJO0FBQXpILDRJQUFBLDhCQUE4QixPQUE4QjtBQVFyRSw0REFBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDYWxjdWxhdG9yVHlwZSB9IGZyb20gJy4vc2hhcmVkL2RvbWFpbi90eXBlcyc7XG5cbi8vIENhbmFkYVxuZXhwb3J0IHsgQ2FuYWRhSW5jb21lVGF4U2VydmljZUltcGwgYXMgQ2FuYWRhSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vaW5jb21lLXRheC9jYW5hZGEvQ2FuYWRhSW5jb21lVGF4U2VydmljZUltcGwnO1xuZXhwb3J0IHsgQ2FuYWRhTW9ydGdhZ2VTZXJ2aWNlSW1wbCBhcyBDYW5hZGFNb3J0Z2FnZVNlcnZpY2UgfSBmcm9tICcuL21vcnRnYWdlL2NhbmFkYS9DYW5hZGFNb3J0Z2FnZVNlcnZpY2VJbXBsJztcbmV4cG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgQ2FuYWRhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgQ2FuYWRhSW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vaW5jb21lLXRheC9jYW5hZGEvZG9tYWluL3R5cGVzJztcbmV4cG9ydCB7XG4gICAgTW9ydGdhZ2VSdWxlcyBhcyBDYW5hZGFNb3J0Z2FnZVJ1bGVzLFxuICAgIE1vcnRnYWdlQ2FsY3VsYXRpb25JbnB1dCBhcyBDYW5hZGFNb3J0Z2FnZUNhbGN1bGF0aW9uSW5wdXQsXG4gICAgTW9ydGdhZ2VDYWxjdWxhdGlvblJlc3VsdCBhcyBDYW5hZGFNb3J0Z2FnZUNhbGN1bGF0aW9uUmVzdWx0LFxufSBmcm9tICcuL21vcnRnYWdlL2NhbmFkYS9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgeyBDYW5hZGFDb3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbCBhcyBDYW5hZGFDb3Jwb3JhdGVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9jb3Jwb3JhdGUvY2FuYWRhL0NhbmFkYUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmV4cG9ydCB7XG4gICAgSW5wdXQgYXMgQ2FuYWRhQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgQ2FuYWRhQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgUmVzdWx0IGFzIENhbmFkYUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9jb3Jwb3JhdGUvY2FuYWRhL2RvbWFpbi90eXBlcyc7XG5cbi8vIEZyYW5jZVxuZXhwb3J0IHsgRnJhbmNlSW5jb21lVGF4U2VydmljZUltcGwgYXMgRnJhbmNlSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vaW5jb21lLXRheC9mcmFuY2UvRnJhbmNlSW5jb21lVGF4U2VydmljZUltcGwnO1xuZXhwb3J0IHsgRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlSW1wbCBhcyBGcmFuY2VNb3J0Z2FnZVNlcnZpY2UgfSBmcm9tICcuL21vcnRnYWdlL2ZyYW5jZS9GcmFuY2VNb3J0Z2FnZVNlcnZpY2VJbXBsJztcbmV4cG9ydCB7IFxuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIEZyYW5jZUNvbXB1dGVkSW5jb21lVGF4VmFsdWVzLFxuICAgIEluY29tZVRheFJ1bGVzIGFzIEZyYW5jZUluY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2luY29tZS10YXgvZnJhbmNlL2RvbWFpbi90eXBlcyc7XG5leHBvcnQge1xuICAgIE1vcnRnYWdlUnVsZXMgYXMgRnJhbmNlTW9ydGdhZ2VSdWxlcyxcbiAgICBNb3J0Z2FnZUlucHV0IGFzIEZyYW5jZU1vcnRnYWdlSW5wdXQsXG4gICAgTW9ydGdhZ2VPdXRwdXQgYXMgRnJhbmNlTW9ydGdhZ2VDYWxjdWxhdGlvblJlc3VsdCxcbn0gZnJvbSAnLi9tb3J0Z2FnZS9mcmFuY2UvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0IHsgRnJhbmNlQ29ycG9yYXRlVGF4U2VydmljZUltcGwgYXMgRnJhbmNlQ29ycG9yYXRlVGF4U2VydmljZSB9IGZyb20gJy4vY29ycG9yYXRlL2ZyYW5jZS9GcmFuY2VDb3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbCc7XG5leHBvcnQge1xuICAgIElucHV0IGFzIEZyYW5jZUNvcnBvcmF0ZVRheElucHV0LFxuICAgIFJ1bGVzIGFzIEZyYW5jZUNvcnBvcmF0ZVRheFJ1bGVzLFxuICAgIFJlc3VsdCBhcyBGcmFuY2VDb3Jwb3JhdGVUYXhSZXN1bHQsXG59IGZyb20gJy4vY29ycG9yYXRlL2ZyYW5jZS9kb21haW4vdHlwZXMnO1xuXG4vLyBTb3V0aCBBZnJpY2FcbmV4cG9ydCB7IFNvdXRoQWZyaWNhSW5jb21lVGF4U2VydmljZUltcGwgYXMgU291dGhBZnJpY2FJbmNvbWVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9pbmNvbWUtdGF4L3NvdXRoLWFmcmljYS9Tb3V0aEFmcmljYUluY29tZVRheFNlcnZpY2VJbXBsJztcbmV4cG9ydCB7IFNvdXRoQWZyaWNhTW9ydGdhZ2VTZXJ2aWNlSW1wbCBhcyBTb3V0aEFmcmljYU1vcnRnYWdlU2VydmljZSB9IGZyb20gJy4vbW9ydGdhZ2Uvc291dGgtYWZyaWNhL1NvdXRoQWZyaWNhTW9ydGdhZ2VTZXJ2aWNlSW1wbCc7XG5leHBvcnQge1xuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIFNvdXRoQWZyaWNhQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMsXG4gICAgSW5jb21lVGF4UnVsZXMgYXMgU291dGhBZnJpY2FJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9pbmNvbWUtdGF4L3NvdXRoLWFmcmljYS9kb21haW4vdHlwZXMnO1xuZXhwb3J0IHtcbiAgICBNb3J0Z2FnZVJ1bGVzIGFzIFNvdXRoQWZyaWNhTW9ydGdhZ2VSdWxlcyxcbiAgICBNb3J0Z2FnZUlucHV0IGFzIFNvdXRoQWZyaWNhTW9ydGdhZ2VJbnB1dCxcbiAgICBNb3J0Z2FnZU91dHB1dCBhcyBTb3V0aEFmcmljYU1vcnRnYWdlT3V0cHV0LFxufSBmcm9tICcuL21vcnRnYWdlL3NvdXRoLWFmcmljYS9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgeyBTb3V0aEFmcmljYUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsIGFzIFNvdXRoQWZyaWNhQ29ycG9yYXRlVGF4U2VydmljZSB9IGZyb20gJy4vY29ycG9yYXRlL3NvdXRoLWFmcmljYS9Tb3V0aEFmcmljYUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmV4cG9ydCB7XG4gICAgUnVsZXMgYXMgU291dGhBZnJpY2FDb3Jwb3JhdGVUYXhSdWxlcyxcbiAgICBJbnB1dCBhcyBTb3V0aEFmcmljYUNvcnBvcmF0ZVRheElucHV0LFxuICAgIFJlc3VsdCBhcyBTb3V0aEFmcmljYUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9jb3Jwb3JhdGUvc291dGgtYWZyaWNhL2RvbWFpbi90eXBlcyc7XG5cbi8vIEF1c3RyYWxpYVxuZXhwb3J0IHsgQXVzdHJhbGlhSW5jb21lVGF4U2VydmljZUltcGwgYXMgQXVzdHJhbGlhSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vaW5jb21lLXRheC9hdXN0cmFsaWEvQXVzdHJhbGlhSW5jb21lVGF4U2VydmljZUltcGwnO1xuZXhwb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBBdXN0cmFsaWFDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBBdXN0cmFsaWFJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9pbmNvbWUtdGF4L2F1c3RyYWxpYS9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgeyBBdXN0cmFsaWFNb3J0Z2FnZVNlcnZpY2VJbXBsIGFzIEF1c3RyYWxpYU1vcnRnYWdlU2VydmljZSB9IGZyb20gJy4vbW9ydGdhZ2UvYXVzdHJhbGlhL0F1c3RyYWxpYU1vcnRnYWdlU2VydmljZUltcGwnO1xuZXhwb3J0IHtcbiAgICBNb3J0Z2FnZVJ1bGVzIGFzIEF1c3RyYWxpYU1vcnRnYWdlUnVsZXMsXG4gICAgTW9ydGdhZ2VJbnB1dCBhcyBBdXN0cmFsaWFNb3J0Z2FnZUlucHV0LFxuICAgIE1vcnRnYWdlT3V0cHV0IGFzIEF1c3RyYWxpYU1vcnRnYWdlT3V0cHV0LFxufSBmcm9tICcuL21vcnRnYWdlL2F1c3RyYWxpYS9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgeyBBdXN0cmFsaWFDb3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbCBhcyBBdXN0cmFsaWFDb3Jwb3JhdGVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9jb3Jwb3JhdGUvYXVzdHJhbGlhL0F1c3RyYWxpYUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmV4cG9ydCB7XG4gICAgSW5wdXQgYXMgQXVzdHJhbGlhQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgQXVzdHJhbGlhQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgUmVzdWx0IGFzIEF1c3RyYWxpYUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9jb3Jwb3JhdGUvYXVzdHJhbGlhL2RvbWFpbi90eXBlcyc7XG5cbi8vIFVuaXRlZCBLaW5nZG9tXG5leHBvcnQgeyBVS0luY29tZVRheFNlcnZpY2VJbXBsIGFzIFVLSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vaW5jb21lLXRheC91ay9VS0luY29tZVRheFNlcnZpY2VJbXBsJztcbmV4cG9ydCB7XG4gICAgQ29tcHV0ZWRJbmNvbWVUYXhWYWx1ZXMgYXMgVUtDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBVS0luY29tZVRheFJ1bGVzLFxufSBmcm9tICcuL2luY29tZS10YXgvdWsvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0IHsgVUtDb3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbCBhcyBVS0NvcnBvcmF0ZVRheFNlcnZpY2UgfSBmcm9tICcuL2NvcnBvcmF0ZS91ay9VS0NvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmV4cG9ydCB7XG4gICAgSW5wdXQgYXMgVUtDb3Jwb3JhdGVUYXhJbnB1dCxcbiAgICBSdWxlcyBhcyBVS0NvcnBvcmF0ZVRheFJ1bGVzLFxuICAgIFJlc3VsdCBhcyBVS0NvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9jb3Jwb3JhdGUvdWsvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0IHsgVUtNb3J0Z2FnZVNlcnZpY2VJbXBsIGFzIFVLTW9ydGdhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tb3J0Z2FnZS91ay9VS01vcnRnYWdlU2VydmljZUltcGwnO1xuZXhwb3J0IHtcbiAgICBNb3J0Z2FnZVJ1bGVzIGFzIFVLTW9ydGdhZ2VSdWxlcyxcbiAgICBNb3J0Z2FnZUlucHV0IGFzIFVLTW9ydGdhZ2VJbnB1dCxcbiAgICBNb3J0Z2FnZU91dHB1dCBhcyBVS01vcnRnYWdlT3V0cHV0LFxufSBmcm9tICcuL21vcnRnYWdlL3VrL2RvbWFpbi90eXBlcyc7XG5cbi8vIFVTQVxuZXhwb3J0IHsgVVNBSW5jb21lVGF4U2VydmljZUltcGwgYXMgVVNBSW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vaW5jb21lLXRheC91c2EvVVNBSW5jb21lVGF4U2VydmljZUltcGwnO1xuZXhwb3J0IHtcbiAgICBDb21wdXRlZEluY29tZVRheFZhbHVlcyBhcyBVU0FDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBVU0FJbmNvbWVUYXhSdWxlcyxcbn0gZnJvbSAnLi9pbmNvbWUtdGF4L3VzYS9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgeyBVU0FNb3J0Z2FnZVNlcnZpY2VJbXBsIGFzIFVTQU1vcnRnYWdlU2VydmljZSB9IGZyb20gJy4vbW9ydGdhZ2UvdXNhL1VTQU1vcnRnYWdlU2VydmljZUltcGwnO1xuZXhwb3J0IHtcbiAgICBNb3J0Z2FnZVJ1bGVzIGFzIFVTQU1vcnRnYWdlUnVsZXMsXG4gICAgTW9ydGdhZ2VJbnB1dCBhcyBVU0FNb3J0Z2FnZUlucHV0LFxuICAgIE1vcnRnYWdlT3V0cHV0IGFzIFVTQU1vcnRnYWdlT3V0cHV0LFxufSBmcm9tICcuL21vcnRnYWdlL3VzYS9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgeyBVU0FDb3Jwb3JhdGVUYXhTZXJ2aWNlSW1wbCBhcyBVU0FDb3Jwb3JhdGVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9jb3Jwb3JhdGUvdXNhL1VTQUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsJztcbmV4cG9ydCB7XG4gICAgSW5wdXQgYXMgVVNBQ29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgVVNBQ29ycG9yYXRlVGF4UnVsZXMsXG4gICAgUmVzdWx0IGFzIFVTQUNvcnBvcmF0ZVRheFJlc3VsdCxcbn0gZnJvbSAnLi9jb3Jwb3JhdGUvdXNhL2RvbWFpbi90eXBlcyc7XG5cbi8vIEdlcm1hbnlcbmV4cG9ydCB7IEdlcm1hbnlJbmNvbWVUYXhTZXJ2aWNlSW1wbCBhcyBHZXJtYW55SW5jb21lVGF4U2VydmljZSB9IGZyb20gJy4vaW5jb21lLXRheC9nZXJtYW55L0dlcm1hbnlJbmNvbWVUYXhTZXJ2aWNlSW1wbCc7XG5leHBvcnQge1xuICAgIENvbXB1dGVkSW5jb21lVGF4VmFsdWVzIGFzIEdlcm1hbnlDb21wdXRlZEluY29tZVRheFZhbHVlcyxcbiAgICBJbmNvbWVUYXhSdWxlcyBhcyBHZXJtYW55SW5jb21lVGF4UnVsZXMsXG59IGZyb20gJy4vaW5jb21lLXRheC9nZXJtYW55L2RvbWFpbi90eXBlcyc7XG5cbmV4cG9ydCB7IEdlcm1hbnlNb3J0Z2FnZVNlcnZpY2VJbXBsIGFzIEdlcm1hbnlNb3J0Z2FnZVNlcnZpY2UgfSBmcm9tICcuL21vcnRnYWdlL2dlcm1hbnkvR2VybWFueU1vcnRnYWdlU2VydmljZUltcGwnO1xuZXhwb3J0IHtcbiAgICBNb3J0Z2FnZVJ1bGVzIGFzIEdlcm1hbnlNb3J0Z2FnZVJ1bGVzLFxuICAgIE1vcnRnYWdlSW5wdXQgYXMgR2VybWFueU1vcnRnYWdlSW5wdXQsXG4gICAgTW9ydGdhZ2VPdXRwdXQgYXMgR2VybWFueU1vcnRnYWdlT3V0cHV0LFxufSBmcm9tICcuL21vcnRnYWdlL2dlcm1hbnkvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0IHsgR2VybWFueUNvcnBvcmF0ZVRheFNlcnZpY2VJbXBsIGFzIEdlcm1hbnlDb3Jwb3JhdGVUYXhTZXJ2aWNlIH0gZnJvbSAnLi9jb3Jwb3JhdGUvZ2VybWFueS9HZXJtYW55Q29ycG9yYXRlVGF4U2VydmljZUltcGwnO1xuZXhwb3J0IHtcbiAgICBJbnB1dCBhcyBHZXJtYW55Q29ycG9yYXRlVGF4SW5wdXQsXG4gICAgUnVsZXMgYXMgR2VybWFueUNvcnBvcmF0ZVRheFJ1bGVzLFxuICAgIFJlc3VsdCBhcyBHZXJtYW55Q29ycG9yYXRlVGF4UmVzdWx0LFxufSBmcm9tICcuL2NvcnBvcmF0ZS9nZXJtYW55L2RvbWFpbi90eXBlcyc7XG5cbmV4cG9ydCB7IEluY29tZVRheENhbGN1bGF0b3JTY2hlbWEgfSBmcm9tICcuL2luY29tZS10YXgvZG9tYWluL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vaW5jb21lLXRheC9kb21haW4vdHlwZXMnOyJdfQ==
33
+ exports.IncomeTax = __importStar(require("./income-tax"));
34
+ exports.CorporateTax = __importStar(require("./corporate"));
35
+ exports.CapitalGain = __importStar(require("./capital-gains"));
36
+ exports.Mortgage = __importStar(require("./mortgage"));
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBdUQ7QUFBOUMsdUdBQUEsY0FBYyxPQUFBO0FBRXZCLDREQUEwQztBQUUxQywwREFBMEM7QUFDMUMsNERBQTRDO0FBQzVDLCtEQUErQztBQUMvQyx1REFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDYWxjdWxhdG9yVHlwZSB9IGZyb20gJy4vc2hhcmVkL2RvbWFpbi90eXBlcyc7XG5leHBvcnQgeyBJbmNvbWVUYXhDYWxjdWxhdG9yU2NoZW1hIH0gZnJvbSAnLi9pbmNvbWUtdGF4L2RvbWFpbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2luY29tZS10YXgvZG9tYWluL3R5cGVzJztcblxuZXhwb3J0ICogYXMgSW5jb21lVGF4IGZyb20gJy4vaW5jb21lLXRheCc7XG5leHBvcnQgKiBhcyBDb3Jwb3JhdGVUYXggZnJvbSAnLi9jb3Jwb3JhdGUnO1xuZXhwb3J0ICogYXMgQ2FwaXRhbEdhaW4gZnJvbSAnLi9jYXBpdGFsLWdhaW5zJztcbmV4cG9ydCAqIGFzIE1vcnRnYWdlIGZyb20gJy4vbW9ydGdhZ2UnO1xuIl19
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vcnRnYWdlL2ZyYW5jZS9GcmFuY2VNb3J0Z2FnZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vcnRnYWdlUnVsZXMsIE1vcnRnYWdlSW5wdXQsIE1vcnRnYWdlT3V0cHV0IH0gZnJvbSAnLi9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXRoQWZyaWNhTW9ydGdhZ2VTZXJ2aWNlIHtcbiAgICBjYWxjdWxhdGUoXG4gICAgICAgIGlucHV0OiBNb3J0Z2FnZUlucHV0LFxuICAgICAgICBydWxlczogTW9ydGdhZ2VSdWxlc1xuICAgICk6IE1vcnRnYWdlT3V0cHV0O1xufSJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vcnRnYWdlL2ZyYW5jZS9GcmFuY2VNb3J0Z2FnZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vcnRnYWdlUnVsZXMsIE1vcnRnYWdlSW5wdXQsIE1vcnRnYWdlT3V0cHV0IH0gZnJvbSAnLi9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZyYW5jZU1vcnRnYWdlU2VydmljZSB7XG4gICAgY2FsY3VsYXRlKFxuICAgICAgICBpbnB1dDogTW9ydGdhZ2VJbnB1dCxcbiAgICAgICAgcnVsZXM6IE1vcnRnYWdlUnVsZXNcbiAgICApOiBNb3J0Z2FnZU91dHB1dDtcbn0iXX0=
@@ -154,4 +154,4 @@ class FranceMortgageServiceImpl {
154
154
  }
155
155
  }
156
156
  exports.FranceMortgageServiceImpl = FranceMortgageServiceImpl;
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb3J0Z2FnZS9mcmFuY2UvRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxNQUFhLHlCQUF5QjtJQUlsQyxZQUFZLEtBQW9CLEVBQUUsS0FBb0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVM7UUFFTCxJQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0I7WUFDbkQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUNqQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FDWCxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU87WUFDM0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVk7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBRW5DLE1BQU0saUJBQWlCLEdBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTztZQUM1RixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FB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fSBmcm9tICcuLi8uLic7XG5pbXBvcnQgeyBNb3J0Z2FnZVJ1bGVzLCBNb3J0Z2FnZUlucHV0LCBNb3J0Z2FnZU91dHB1dCwgQW1vcnRpemF0aW9uU2NoZWR1bGVJdGVtIH0gZnJvbSAnLi9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEZyYW5jZU1vcnRnYWdlU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaW5wdXQ6IE1vcnRnYWdlSW5wdXQ7XG4gICAgcHJpdmF0ZSBfcnVsZXM6IE1vcnRnYWdlUnVsZXM7XG5cbiAgICBjb25zdHJ1Y3RvcihpbnB1dDogTW9ydGdhZ2VJbnB1dCwgcnVsZXM6IE1vcnRnYWdlUnVsZXMpIHtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSBydWxlcztcbiAgICB9XG5cbiAgICBjYWxjdWxhdGUoKTogTW9ydGdhZ2VPdXRwdXQge1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX2lucHV0LmlzRmlyc3RUaW1lQnV5ZXIgJiZcbiAgICAgICAgICAgIHRoaXMuX3J1bGVzLmZpcnN0VGltZUJ1eWVyICYmXG4gICAgICAgICAgICB0aGlzLl9ydWxlcy5maXJzdFRpbWVCdXllci5yZXF1aXJlc1ByaW1hcnlSZXNpZGVuY2UgJiZcbiAgICAgICAgICAgICF0aGlzLl9pbnB1dC5pc1ByaW1hcnlSZXNpZGVuY2VcbiAgICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZWxpZ2libGVSZXN1bHQodGhpcy5faW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVidFJhdGlvID1cbiAgICAgICAgICAgIHRoaXMuX2lucHV0LmlzRmlyc3RUaW1lQnV5ZXIgJiYgdGhpcy5fcnVsZXMuZmlyc3RUaW1lQnV5ZXIgJiZ0aGlzLl9ydWxlcy5maXJzdFRpbWVCdXllci5lbmFibGVkXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9ydWxlcy5maXJzdFRpbWVCdXllci5tYXhEZWJ0UmF0aW9cbiAgICAgICAgICAgICAgICA6IHRoaXMuX3J1bGVzLm1heERlYnRSYXRpbztcblxuICAgICAgICBjb25zdCBsb2FuRHVyYXRpb25ZZWFycyA9XG4gICAgICAgICAgICB0aGlzLl9pbnB1dC5pc0ZpcnN0VGltZUJ1eWVyICYmIHRoaXMuX3J1bGVzLmZpcnN0VGltZUJ1eWVyICYmIHRoaXMuX3J1bGVzLmZpcnN0VGltZUJ1eWVyLmVuYWJsZWRcbiAgICAgICAgICAgICAgICA/IHRoaXMuX3J1bGVzLmZpcnN0VGltZUJ1eWVyLm1heExvYW5EdXJhdGlvblllYXJzXG4gICAgICAgICAgICAgICAgOiB0aGlzLl9pbnB1dC5pc05ld0J1aWxkXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9ydWxlcy5tYXhMb2FuRHVyYXRpb25OZXdCdWlsZFllYXJzXG4gICAgICAgICAgICAgICAgOiB0aGlzLl9ydWxlcy5tYXhMb2FuRHVyYXRpb25ZZWFycztcblxuICAgICAgICBjb25zdCBtaW5Eb3duUGF5bWVudCA9IHRoaXMuX2lucHV0LnByb3BlcnR5UHJpY2UgKiB0aGlzLl9ydWxlcy5taW5Eb3duUGF5bWVudFJhdGU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0LmRvd25QYXltZW50IDwgbWluRG93blBheW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluZWxpZ2libGVSZXN1bHQodGhpcy5faW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm90YXJ5UmF0ZSA9IHRoaXMuX2lucHV0LmlzTmV3QnVpbGRcbiAgICAgICAgPyB0aGlzLl9ydWxlcy5mZWVzLm5vdGFyeVJhdGVOZXdQcm9wZXJ0eVxuICAgICAgICA6IHRoaXMuX3J1bGVzLmZlZXMubm90YXJ5UmF0ZU9sZFByb3BlcnR5O1xuXG4gICAgICAgIGNvbnN0IG5vdGFyeUZlZXMgPSB0aGlzLl9pbnB1dC5wcm9wZXJ0eVByaWNlICogbm90YXJ5UmF0ZTtcbiAgICAgICAgY29uc3QgYmFua0ZlZXMgPSB0aGlzLl9pbnB1dC5wcm9wZXJ0eVByaWNlICogdGhpcy5fcnVsZXMuZmVlcy5iYW5rRmVlc1JhdGU7XG4gICAgICAgIGNvbnN0IHRvdGFsUHJvamVjdENvc3QgPSB0aGlzLl9pbnB1dC5wcm9wZXJ0eVByaWNlICsgbm90YXJ5RmVlcyArIGJhbmtGZWVzO1xuICAgICAgICBjb25zdCByZXF1aXJlZExvYW5BbW91bnQgPSB0b3RhbFByb2plY3RDb3N0IC0gdGhpcy5faW5wdXQuZG93blBheW1lbnQ7XG4gICAgICAgIGNvbnN0IHN0cmVzc2VkUmF0ZSA9IHRoaXMuX2lucHV0LmFubnVhbEludGVyZXN0UmF0ZSArIHRoaXMuX3J1bGVzLnN0cmVzc1Rlc3QuaW50ZXJlc3RSYXRlQnVmZmVyO1xuXG4gICAgICAgIGNvbnN0IG1vbnRobHlJbnN1cmFuY2VDb3N0ID0gKHJlcXVpcmVkTG9hbkFtb3VudCAqIHRoaXMuX3J1bGVzLmluc3VyYW5jZS5hdmVyYWdlUmF0ZSkgLyAxMjtcblxuICAgICAgICBsZXQgbWF4TW9udGhseVBheW1lbnQgPSB0aGlzLl9pbnB1dC5uZXRNb250aGx5SW5jb21lICogZGVidFJhdGlvO1xuXG4gICAgICAgIGlmICh0aGlzLl9ydWxlcy5pbnN1cmFuY2UuaW5jbHVkZWRJbkRlYnRSYXRpbykge1xuICAgICAgICAgICAgbWF4TW9udGhseVBheW1lbnQgLT0gbW9udGhseUluc3VyYW5jZUNvc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXhMb2FuQW1vdW50ID0gdGhpcy5jYWxjdWxhdGVMb2FuQW1vdW50KFxuICAgICAgICAgICAgbWF4TW9udGhseVBheW1lbnQsXG4gICAgICAgICAgICBzdHJlc3NlZFJhdGUsXG4gICAgICAgICAgICBsb2FuRHVyYXRpb25ZZWFyc1xuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG1vbnRobHlQYXltZW50ID0gdGhpcy5jYWxjdWxhdGVNb250aGx5UGF5bWVudChcbiAgICAgICAgICAgIHJlcXVpcmVkTG9hbkFtb3VudCxcbiAgICAgICAgICAgIHRoaXMuX2lucHV0LmFubnVhbEludGVyZXN0UmF0ZSxcbiAgICAgICAgICAgIGxvYW5EdXJhdGlvblllYXJzXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgdG90YWxQYWlkID0gbW9udGhseVBheW1lbnQgKiBsb2FuRHVyYXRpb25ZZWFycyAqIDEyO1xuICAgICAgICBjb25zdCB0b3RhbEludGVyZXN0UGFpZCA9IHRvdGFsUGFpZCAtIHJlcXVpcmVkTG9hbkFtb3VudDtcblxuICAgICAgICBjb25zdCBhbW9ydGl6YXRpb25TY2hlZHVsZSA9IHRoaXMuY2FsY3VsYXRlQW1vcnRpemF0aW9uU2NoZWR1bGUoXG4gICAgICAgICAgICByZXF1aXJlZExvYW5BbW91bnQsXG4gICAgICAgICAgICB0aGlzLl9pbnB1dC5hbm51YWxJbnRlcmVzdFJhdGUsXG4gICAgICAgICAgICBsb2FuRHVyYXRpb25ZZWFycyxcbiAgICAgICAgICAgIG1vbnRobHlQYXltZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxvYW5BbW91bnQ6IHJlcXVpcmVkTG9hbkFtb3VudCxcbiAgICAgICAgICAgIHRvdGFsUGFpZCxcbiAgICAgICAgICAgIHRvdGFsSW50ZXJlc3RQYWlkLFxuICAgICAgICAgICAgbW9udGhseVBheW1lbnQsXG4gICAgICAgICAgICByZXF1aXJlZExvYW5BbW91bnQsXG4gICAgICAgICAgICBtYXhNb250aGx5UGF5bWVudCxcbiAgICAgICAgICAgIG1heExvYW5BbW91bnQsXG4gICAgICAgICAgICB0b3RhbFByb2plY3RDb3N0LFxuICAgICAgICAgICAgbG9hbkR1cmF0aW9uWWVhcnMsXG4gICAgICAgICAgICBkZWJ0UmF0aW86IGRlYnRSYXRpbyxcbiAgICAgICAgICAgIG1vbnRobHlJbnN1cmFuY2VDb3N0LFxuICAgICAgICAgICAgaXNFbGlnaWJsZTogbWF4TG9hbkFtb3VudCA+PSByZXF1aXJlZExvYW5BbW91bnQsXG4gICAgICAgICAgICBhbW9ydGl6YXRpb25TY2hlZHVsZSxcbiAgICAgICAgICAgIG90aGVyRmVlczoge1xuICAgICAgICAgICAgICAgIG5vdGFyeUZlZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5vdGFyeUZlZXMsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTk9UQVJZX0ZFRVMnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBiYW5rRmVlczoge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmFua0ZlZXMsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQkFOS19GRUVTJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbW9udGhseUluc3VyYW5jZUZlZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG1vbnRobHlJbnN1cmFuY2VDb3N0LFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ01PTlRITFlfSU5TVVJBTkNFX0ZFRVMnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlTW9udGhseVBheW1lbnQocHJpbmNpcGFsOiBudW1iZXIsIGFubnVhbFJhdGU6IG51bWJlciwgeWVhcnM6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG1vbnRobHlSYXRlID0gYW5udWFsUmF0ZSAvIDEwMCAvIDEyO1xuICAgICAgICBjb25zdCBwYXltZW50cyA9IHllYXJzICogMTI7XG5cbiAgICAgICAgaWYgKG1vbnRobHlSYXRlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF5bWVudHMgPT09IDAgPyAwIDogcHJpbmNpcGFsIC8gcGF5bWVudHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcHJpbmNpcGFsICpcbiAgICAgICAgICAgIChtb250aGx5UmF0ZSAvICgxIC0gTWF0aC5wb3coMSArIG1vbnRobHlSYXRlLCAtcGF5bWVudHMpKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUFtb3J0aXphdGlvblNjaGVkdWxlKFxuICAgICAgICBsb2FuQW1vdW50OiBudW1iZXIsXG4gICAgICAgIGFubnVhbFJhdGU6IG51bWJlcixcbiAgICAgICAgeWVhcnM6IG51bWJlcixcbiAgICAgICAgbW9udGhseVBheW1lbnQ6IG51bWJlclxuICAgICk6IEFtb3J0aXphdGlvblNjaGVkdWxlSXRlbVtdIHtcbiAgICAgICAgY29uc3QgbW9udGhseVJhdGUgPSBhbm51YWxSYXRlIC8gMTAwIC8gMTI7XG4gICAgICAgIGNvbnN0IHRvdGFsUGF5bWVudHMgPSB5ZWFycyAqIDEyO1xuXG4gICAgICAgIGlmIChtb250aGx5UmF0ZSA9PT0gMCB8fCBsb2FuQW1vdW50IDw9IDAgfHwgbW9udGhseVBheW1lbnQgPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2NoZWR1bGU6IEFtb3J0aXphdGlvblNjaGVkdWxlSXRlbVtdID0gW107XG4gICAgICAgIGxldCBiYWxhbmNlID0gbG9hbkFtb3VudDtcblxuICAgICAgICBmb3IgKGxldCB5ZWFyID0gMTsgeWVhciA8PSB5ZWFyczsgeWVhcisrKSB7XG4gICAgICAgICAgICBsZXQgeWVhcmx5UHJpbmNpcGFsID0gMDtcbiAgICAgICAgICAgIGxldCB5ZWFybHlJbnRlcmVzdCA9IDA7XG5cbiAgICAgICAgICAgIGNvbnN0IHBheW1lbnRzSW5ZZWFyID0gTWF0aC5taW4oMTIsIHRvdGFsUGF5bWVudHMgLSAoeWVhciAtIDEpICogMTIpO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBtb250aCA9IDE7IG1vbnRoIDw9IHBheW1lbnRzSW5ZZWFyOyBtb250aCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW50ZXJlc3RQYXltZW50ID0gYmFsYW5jZSAqIG1vbnRobHlSYXRlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByaW5jaXBhbFBheW1lbnQgPSBtb250aGx5UGF5bWVudCAtIGludGVyZXN0UGF5bWVudDtcblxuICAgICAgICAgICAgICAgIHllYXJseUludGVyZXN0ICs9IGludGVyZXN0UGF5bWVudDtcbiAgICAgICAgICAgICAgICB5ZWFybHlQcmluY2lwYWwgKz0gcHJpbmNpcGFsUGF5bWVudDtcbiAgICAgICAgICAgICAgICBiYWxhbmNlIC09IHByaW5jaXBhbFBheW1lbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjaGVkdWxlLnB1c2goe1xuICAgICAgICAgICAgICAgIHllYXIsXG4gICAgICAgICAgICAgICAgcHJpbmNpcGFsOiB5ZWFybHlQcmluY2lwYWwsXG4gICAgICAgICAgICAgICAgaW50ZXJlc3Q6IHllYXJseUludGVyZXN0LFxuICAgICAgICAgICAgICAgIGJhbGFuY2U6IE1hdGgubWF4KDAsIGJhbGFuY2UpXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGJhbGFuY2UgPD0gMCkgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2NoZWR1bGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVMb2FuQW1vdW50KG1vbnRobHlQYXltZW50OiBudW1iZXIsIGFubnVhbFJhdGU6IG51bWJlciwgeWVhcnM6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG1vbnRobHlSYXRlID0gYW5udWFsUmF0ZSAvIDEwMCAvIDEyO1xuICAgICAgICBjb25zdCBwYXltZW50cyA9IHllYXJzICogMTI7XG5cbiAgICAgICAgaWYgKG1vbnRobHlSYXRlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbW9udGhseVBheW1lbnQgKiBwYXltZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBtb250aGx5UGF5bWVudCAqXG4gICAgICAgICAgICAoKDEgLSBNYXRoLnBvdygxICsgbW9udGhseVJhdGUsIC1wYXltZW50cykpIC8gbW9udGhseVJhdGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbmVsaWdpYmxlUmVzdWx0KGlucHV0OiBNb3J0Z2FnZUlucHV0KTogTW9ydGdhZ2VPdXRwdXQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWF4TW9udGhseVBheW1lbnQ6IDAsXG4gICAgICAgICAgICBtYXhMb2FuQW1vdW50OiAwLFxuICAgICAgICAgICAgdG90YWxQcm9qZWN0Q29zdDogaW5wdXQucHJvcGVydHlQcmljZSxcbiAgICAgICAgICAgIHJlcXVpcmVkTG9hbkFtb3VudDogaW5wdXQucHJvcGVydHlQcmljZSAtIGlucHV0LmRvd25QYXltZW50LFxuICAgICAgICAgICAgbG9hbkR1cmF0aW9uWWVhcnM6IDAsXG4gICAgICAgICAgICBkZWJ0UmF0aW86IDAsXG4gICAgICAgICAgICBtb250aGx5SW5zdXJhbmNlQ29zdDogMCxcbiAgICAgICAgICAgIGxvYW5BbW91bnQ6IDAsXG4gICAgICAgICAgICBtb250aGx5UGF5bWVudDogMCxcbiAgICAgICAgICAgIHRvdGFsSW50ZXJlc3RQYWlkOiAwLFxuICAgICAgICAgICAgdG90YWxQYWlkOiAwLFxuICAgICAgICAgICAgaXNFbGlnaWJsZTogZmFsc2UsXG4gICAgICAgICAgICBhbW9ydGl6YXRpb25TY2hlZHVsZTogW10sXG4gICAgICAgICAgICBvdGhlckZlZXM6IHtcbiAgICAgICAgICAgICAgICBub3RhcnlGZWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ05PVEFSWV9GRUVTJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYmFua0ZlZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQkFOS19GRUVTJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbW9udGhseUluc3VyYW5jZUZlZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTU9OVEhMWV9JTlNVUkFOQ0VfRkVFUydcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufSJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb3J0Z2FnZS9mcmFuY2UvRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxNQUFhLHlCQUF5QjtJQUlsQyxZQUFZLEtBQW9CLEVBQUUsS0FBb0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVM7UUFFTCxJQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0I7WUFDbkQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUNqQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FDWCxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU87WUFDM0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVk7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBRW5DLE1BQU0saUJBQWlCLEdBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTztZQUM1RixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FB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fSBmcm9tICcuL0ZyYW5jZU1vcnRnYWdlU2VydmljZSc7XG5pbXBvcnQgeyBNb3J0Z2FnZVJ1bGVzLCBNb3J0Z2FnZUlucHV0LCBNb3J0Z2FnZU91dHB1dCwgQW1vcnRpemF0aW9uU2NoZWR1bGVJdGVtIH0gZnJvbSAnLi9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEZyYW5jZU1vcnRnYWdlU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaW5wdXQ6IE1vcnRnYWdlSW5wdXQ7XG4gICAgcHJpdmF0ZSBfcnVsZXM6IE1vcnRnYWdlUnVsZXM7XG5cbiAgICBjb25zdHJ1Y3RvcihpbnB1dDogTW9ydGdhZ2VJbnB1dCwgcnVsZXM6IE1vcnRnYWdlUnVsZXMpIHtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSBydWxlcztcbiAgICB9XG5cbiAgICBjYWxjdWxhdGUoKTogTW9ydGdhZ2VPdXRwdXQge1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX2lucHV0LmlzRmlyc3RUaW1lQnV5ZXIgJiZcbiAgICAgICAgICAgIHRoaXMuX3J1bGVzLmZpcnN0VGltZUJ1eWVyICYmXG4gICAgICAgICAgICB0aGlzLl9ydWxlcy5maXJzdFRpbWVCdXllci5yZXF1aXJlc1ByaW1hcnlSZXNpZGVuY2UgJiZcbiAgICAgICAgICAgICF0aGlzLl9pbnB1dC5pc1ByaW1hcnlSZXNpZGVuY2VcbiAgICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZWxpZ2libGVSZXN1bHQodGhpcy5faW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVidFJhdGlvID1cbiAgICAgICAgICAgIHRoaXMuX2lucHV0LmlzRmlyc3RUaW1lQnV5ZXIgJiYgdGhpcy5fcnVsZXMuZmlyc3RUaW1lQnV5ZXIgJiZ0aGlzLl9ydWxlcy5maXJzdFRpbWVCdXllci5lbmFibGVkXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9ydWxlcy5maXJzdFRpbWVCdXllci5tYXhEZWJ0UmF0aW9cbiAgICAgICAgICAgICAgICA6IHRoaXMuX3J1bGVzLm1heERlYnRSYXRpbztcblxuICAgICAgICBjb25zdCBsb2FuRHVyYXRpb25ZZWFycyA9XG4gICAgICAgICAgICB0aGlzLl9pbnB1dC5pc0ZpcnN0VGltZUJ1eWVyICYmIHRoaXMuX3J1bGVzLmZpcnN0VGltZUJ1eWVyICYmIHRoaXMuX3J1bGVzLmZpcnN0VGltZUJ1eWVyLmVuYWJsZWRcbiAgICAgICAgICAgICAgICA/IHRoaXMuX3J1bGVzLmZpcnN0VGltZUJ1eWVyLm1heExvYW5EdXJhdGlvblllYXJzXG4gICAgICAgICAgICAgICAgOiB0aGlzLl9pbnB1dC5pc05ld0J1aWxkXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9ydWxlcy5tYXhMb2FuRHVyYXRpb25OZXdCdWlsZFllYXJzXG4gICAgICAgICAgICAgICAgOiB0aGlzLl9ydWxlcy5tYXhMb2FuRHVyYXRpb25ZZWFycztcblxuICAgICAgICBjb25zdCBtaW5Eb3duUGF5bWVudCA9IHRoaXMuX2lucHV0LnByb3BlcnR5UHJpY2UgKiB0aGlzLl9ydWxlcy5taW5Eb3duUGF5bWVudFJhdGU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0LmRvd25QYXltZW50IDwgbWluRG93blBheW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluZWxpZ2libGVSZXN1bHQodGhpcy5faW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm90YXJ5UmF0ZSA9IHRoaXMuX2lucHV0LmlzTmV3QnVpbGRcbiAgICAgICAgPyB0aGlzLl9ydWxlcy5mZWVzLm5vdGFyeVJhdGVOZXdQcm9wZXJ0eVxuICAgICAgICA6IHRoaXMuX3J1bGVzLmZlZXMubm90YXJ5UmF0ZU9sZFByb3BlcnR5O1xuXG4gICAgICAgIGNvbnN0IG5vdGFyeUZlZXMgPSB0aGlzLl9pbnB1dC5wcm9wZXJ0eVByaWNlICogbm90YXJ5UmF0ZTtcbiAgICAgICAgY29uc3QgYmFua0ZlZXMgPSB0aGlzLl9pbnB1dC5wcm9wZXJ0eVByaWNlICogdGhpcy5fcnVsZXMuZmVlcy5iYW5rRmVlc1JhdGU7XG4gICAgICAgIGNvbnN0IHRvdGFsUHJvamVjdENvc3QgPSB0aGlzLl9pbnB1dC5wcm9wZXJ0eVByaWNlICsgbm90YXJ5RmVlcyArIGJhbmtGZWVzO1xuICAgICAgICBjb25zdCByZXF1aXJlZExvYW5BbW91bnQgPSB0b3RhbFByb2plY3RDb3N0IC0gdGhpcy5faW5wdXQuZG93blBheW1lbnQ7XG4gICAgICAgIGNvbnN0IHN0cmVzc2VkUmF0ZSA9IHRoaXMuX2lucHV0LmFubnVhbEludGVyZXN0UmF0ZSArIHRoaXMuX3J1bGVzLnN0cmVzc1Rlc3QuaW50ZXJlc3RSYXRlQnVmZmVyO1xuXG4gICAgICAgIGNvbnN0IG1vbnRobHlJbnN1cmFuY2VDb3N0ID0gKHJlcXVpcmVkTG9hbkFtb3VudCAqIHRoaXMuX3J1bGVzLmluc3VyYW5jZS5hdmVyYWdlUmF0ZSkgLyAxMjtcblxuICAgICAgICBsZXQgbWF4TW9udGhseVBheW1lbnQgPSB0aGlzLl9pbnB1dC5uZXRNb250aGx5SW5jb21lICogZGVidFJhdGlvO1xuXG4gICAgICAgIGlmICh0aGlzLl9ydWxlcy5pbnN1cmFuY2UuaW5jbHVkZWRJbkRlYnRSYXRpbykge1xuICAgICAgICAgICAgbWF4TW9udGhseVBheW1lbnQgLT0gbW9udGhseUluc3VyYW5jZUNvc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXhMb2FuQW1vdW50ID0gdGhpcy5jYWxjdWxhdGVMb2FuQW1vdW50KFxuICAgICAgICAgICAgbWF4TW9udGhseVBheW1lbnQsXG4gICAgICAgICAgICBzdHJlc3NlZFJhdGUsXG4gICAgICAgICAgICBsb2FuRHVyYXRpb25ZZWFyc1xuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG1vbnRobHlQYXltZW50ID0gdGhpcy5jYWxjdWxhdGVNb250aGx5UGF5bWVudChcbiAgICAgICAgICAgIHJlcXVpcmVkTG9hbkFtb3VudCxcbiAgICAgICAgICAgIHRoaXMuX2lucHV0LmFubnVhbEludGVyZXN0UmF0ZSxcbiAgICAgICAgICAgIGxvYW5EdXJhdGlvblllYXJzXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgdG90YWxQYWlkID0gbW9udGhseVBheW1lbnQgKiBsb2FuRHVyYXRpb25ZZWFycyAqIDEyO1xuICAgICAgICBjb25zdCB0b3RhbEludGVyZXN0UGFpZCA9IHRvdGFsUGFpZCAtIHJlcXVpcmVkTG9hbkFtb3VudDtcblxuICAgICAgICBjb25zdCBhbW9ydGl6YXRpb25TY2hlZHVsZSA9IHRoaXMuY2FsY3VsYXRlQW1vcnRpemF0aW9uU2NoZWR1bGUoXG4gICAgICAgICAgICByZXF1aXJlZExvYW5BbW91bnQsXG4gICAgICAgICAgICB0aGlzLl9pbnB1dC5hbm51YWxJbnRlcmVzdFJhdGUsXG4gICAgICAgICAgICBsb2FuRHVyYXRpb25ZZWFycyxcbiAgICAgICAgICAgIG1vbnRobHlQYXltZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxvYW5BbW91bnQ6IHJlcXVpcmVkTG9hbkFtb3VudCxcbiAgICAgICAgICAgIHRvdGFsUGFpZCxcbiAgICAgICAgICAgIHRvdGFsSW50ZXJlc3RQYWlkLFxuICAgICAgICAgICAgbW9udGhseVBheW1lbnQsXG4gICAgICAgICAgICByZXF1aXJlZExvYW5BbW91bnQsXG4gICAgICAgICAgICBtYXhNb250aGx5UGF5bWVudCxcbiAgICAgICAgICAgIG1heExvYW5BbW91bnQsXG4gICAgICAgICAgICB0b3RhbFByb2plY3RDb3N0LFxuICAgICAgICAgICAgbG9hbkR1cmF0aW9uWWVhcnMsXG4gICAgICAgICAgICBkZWJ0UmF0aW86IGRlYnRSYXRpbyxcbiAgICAgICAgICAgIG1vbnRobHlJbnN1cmFuY2VDb3N0LFxuICAgICAgICAgICAgaXNFbGlnaWJsZTogbWF4TG9hbkFtb3VudCA+PSByZXF1aXJlZExvYW5BbW91bnQsXG4gICAgICAgICAgICBhbW9ydGl6YXRpb25TY2hlZHVsZSxcbiAgICAgICAgICAgIG90aGVyRmVlczoge1xuICAgICAgICAgICAgICAgIG5vdGFyeUZlZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5vdGFyeUZlZXMsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTk9UQVJZX0ZFRVMnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBiYW5rRmVlczoge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmFua0ZlZXMsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQkFOS19GRUVTJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbW9udGhseUluc3VyYW5jZUZlZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG1vbnRobHlJbnN1cmFuY2VDb3N0LFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ01PTlRITFlfSU5TVVJBTkNFX0ZFRVMnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlTW9udGhseVBheW1lbnQocHJpbmNpcGFsOiBudW1iZXIsIGFubnVhbFJhdGU6IG51bWJlciwgeWVhcnM6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG1vbnRobHlSYXRlID0gYW5udWFsUmF0ZSAvIDEwMCAvIDEyO1xuICAgICAgICBjb25zdCBwYXltZW50cyA9IHllYXJzICogMTI7XG5cbiAgICAgICAgaWYgKG1vbnRobHlSYXRlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF5bWVudHMgPT09IDAgPyAwIDogcHJpbmNpcGFsIC8gcGF5bWVudHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcHJpbmNpcGFsICpcbiAgICAgICAgICAgIChtb250aGx5UmF0ZSAvICgxIC0gTWF0aC5wb3coMSArIG1vbnRobHlSYXRlLCAtcGF5bWVudHMpKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUFtb3J0aXphdGlvblNjaGVkdWxlKFxuICAgICAgICBsb2FuQW1vdW50OiBudW1iZXIsXG4gICAgICAgIGFubnVhbFJhdGU6IG51bWJlcixcbiAgICAgICAgeWVhcnM6IG51bWJlcixcbiAgICAgICAgbW9udGhseVBheW1lbnQ6IG51bWJlclxuICAgICk6IEFtb3J0aXphdGlvblNjaGVkdWxlSXRlbVtdIHtcbiAgICAgICAgY29uc3QgbW9udGhseVJhdGUgPSBhbm51YWxSYXRlIC8gMTAwIC8gMTI7XG4gICAgICAgIGNvbnN0IHRvdGFsUGF5bWVudHMgPSB5ZWFycyAqIDEyO1xuXG4gICAgICAgIGlmIChtb250aGx5UmF0ZSA9PT0gMCB8fCBsb2FuQW1vdW50IDw9IDAgfHwgbW9udGhseVBheW1lbnQgPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2NoZWR1bGU6IEFtb3J0aXphdGlvblNjaGVkdWxlSXRlbVtdID0gW107XG4gICAgICAgIGxldCBiYWxhbmNlID0gbG9hbkFtb3VudDtcblxuICAgICAgICBmb3IgKGxldCB5ZWFyID0gMTsgeWVhciA8PSB5ZWFyczsgeWVhcisrKSB7XG4gICAgICAgICAgICBsZXQgeWVhcmx5UHJpbmNpcGFsID0gMDtcbiAgICAgICAgICAgIGxldCB5ZWFybHlJbnRlcmVzdCA9IDA7XG5cbiAgICAgICAgICAgIGNvbnN0IHBheW1lbnRzSW5ZZWFyID0gTWF0aC5taW4oMTIsIHRvdGFsUGF5bWVudHMgLSAoeWVhciAtIDEpICogMTIpO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBtb250aCA9IDE7IG1vbnRoIDw9IHBheW1lbnRzSW5ZZWFyOyBtb250aCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW50ZXJlc3RQYXltZW50ID0gYmFsYW5jZSAqIG1vbnRobHlSYXRlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByaW5jaXBhbFBheW1lbnQgPSBtb250aGx5UGF5bWVudCAtIGludGVyZXN0UGF5bWVudDtcblxuICAgICAgICAgICAgICAgIHllYXJseUludGVyZXN0ICs9IGludGVyZXN0UGF5bWVudDtcbiAgICAgICAgICAgICAgICB5ZWFybHlQcmluY2lwYWwgKz0gcHJpbmNpcGFsUGF5bWVudDtcbiAgICAgICAgICAgICAgICBiYWxhbmNlIC09IHByaW5jaXBhbFBheW1lbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjaGVkdWxlLnB1c2goe1xuICAgICAgICAgICAgICAgIHllYXIsXG4gICAgICAgICAgICAgICAgcHJpbmNpcGFsOiB5ZWFybHlQcmluY2lwYWwsXG4gICAgICAgICAgICAgICAgaW50ZXJlc3Q6IHllYXJseUludGVyZXN0LFxuICAgICAgICAgICAgICAgIGJhbGFuY2U6IE1hdGgubWF4KDAsIGJhbGFuY2UpXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGJhbGFuY2UgPD0gMCkgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2NoZWR1bGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVMb2FuQW1vdW50KG1vbnRobHlQYXltZW50OiBudW1iZXIsIGFubnVhbFJhdGU6IG51bWJlciwgeWVhcnM6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG1vbnRobHlSYXRlID0gYW5udWFsUmF0ZSAvIDEwMCAvIDEyO1xuICAgICAgICBjb25zdCBwYXltZW50cyA9IHllYXJzICogMTI7XG5cbiAgICAgICAgaWYgKG1vbnRobHlSYXRlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbW9udGhseVBheW1lbnQgKiBwYXltZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBtb250aGx5UGF5bWVudCAqXG4gICAgICAgICAgICAoKDEgLSBNYXRoLnBvdygxICsgbW9udGhseVJhdGUsIC1wYXltZW50cykpIC8gbW9udGhseVJhdGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbmVsaWdpYmxlUmVzdWx0KGlucHV0OiBNb3J0Z2FnZUlucHV0KTogTW9ydGdhZ2VPdXRwdXQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWF4TW9udGhseVBheW1lbnQ6IDAsXG4gICAgICAgICAgICBtYXhMb2FuQW1vdW50OiAwLFxuICAgICAgICAgICAgdG90YWxQcm9qZWN0Q29zdDogaW5wdXQucHJvcGVydHlQcmljZSxcbiAgICAgICAgICAgIHJlcXVpcmVkTG9hbkFtb3VudDogaW5wdXQucHJvcGVydHlQcmljZSAtIGlucHV0LmRvd25QYXltZW50LFxuICAgICAgICAgICAgbG9hbkR1cmF0aW9uWWVhcnM6IDAsXG4gICAgICAgICAgICBkZWJ0UmF0aW86IDAsXG4gICAgICAgICAgICBtb250aGx5SW5zdXJhbmNlQ29zdDogMCxcbiAgICAgICAgICAgIGxvYW5BbW91bnQ6IDAsXG4gICAgICAgICAgICBtb250aGx5UGF5bWVudDogMCxcbiAgICAgICAgICAgIHRvdGFsSW50ZXJlc3RQYWlkOiAwLFxuICAgICAgICAgICAgdG90YWxQYWlkOiAwLFxuICAgICAgICAgICAgaXNFbGlnaWJsZTogZmFsc2UsXG4gICAgICAgICAgICBhbW9ydGl6YXRpb25TY2hlZHVsZTogW10sXG4gICAgICAgICAgICBvdGhlckZlZXM6IHtcbiAgICAgICAgICAgICAgICBub3RhcnlGZWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ05PVEFSWV9GRUVTJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYmFua0ZlZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQkFOS19GRUVTJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbW9udGhseUluc3VyYW5jZUZlZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTU9OVEhMWV9JTlNVUkFOQ0VfRkVFUydcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufSJdfQ==
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GermanyMortgageService = exports.USAMortgageService = exports.UKMortgageService = exports.AustraliaMortgageService = exports.SouthAfricaMortgageService = exports.FranceMortgageService = exports.CanadaMortgageService = void 0;
4
+ // Canada
5
+ const CanadaMortgageServiceImpl_1 = require("./canada/CanadaMortgageServiceImpl");
6
+ Object.defineProperty(exports, "CanadaMortgageService", { enumerable: true, get: function () { return CanadaMortgageServiceImpl_1.CanadaMortgageServiceImpl; } });
7
+ // France
8
+ const FranceMortgageServiceImpl_1 = require("./france/FranceMortgageServiceImpl");
9
+ Object.defineProperty(exports, "FranceMortgageService", { enumerable: true, get: function () { return FranceMortgageServiceImpl_1.FranceMortgageServiceImpl; } });
10
+ // South Africa
11
+ const SouthAfricaMortgageServiceImpl_1 = require("./south-africa/SouthAfricaMortgageServiceImpl");
12
+ Object.defineProperty(exports, "SouthAfricaMortgageService", { enumerable: true, get: function () { return SouthAfricaMortgageServiceImpl_1.SouthAfricaMortgageServiceImpl; } });
13
+ // Australia
14
+ const AustraliaMortgageServiceImpl_1 = require("./australia/AustraliaMortgageServiceImpl");
15
+ Object.defineProperty(exports, "AustraliaMortgageService", { enumerable: true, get: function () { return AustraliaMortgageServiceImpl_1.AustraliaMortgageServiceImpl; } });
16
+ // United Kingdom
17
+ const UKMortgageServiceImpl_1 = require("./uk/UKMortgageServiceImpl");
18
+ Object.defineProperty(exports, "UKMortgageService", { enumerable: true, get: function () { return UKMortgageServiceImpl_1.UKMortgageServiceImpl; } });
19
+ // USA
20
+ const USAMortgageServiceImpl_1 = require("./usa/USAMortgageServiceImpl");
21
+ Object.defineProperty(exports, "USAMortgageService", { enumerable: true, get: function () { return USAMortgageServiceImpl_1.USAMortgageServiceImpl; } });
22
+ // Germany
23
+ const GermanyMortgageServiceImpl_1 = require("./germany/GermanyMortgageServiceImpl");
24
+ Object.defineProperty(exports, "GermanyMortgageService", { enumerable: true, get: function () { return GermanyMortgageServiceImpl_1.GermanyMortgageServiceImpl; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ydGdhZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBUztBQUNULGtGQUF3RztBQXlEcEcsc0dBekRrQyxxREFBcUIsT0F5RGxDO0FBbER6QixTQUFTO0FBQ1Qsa0ZBQXdHO0FBcURwRyxzR0FyRGtDLHFEQUFxQixPQXFEbEM7QUE5Q3pCLGVBQWU7QUFDZixrR0FBNkg7QUFpRHpILDJHQWpEdUMsK0RBQTBCLE9BaUR2QztBQTFDOUIsWUFBWTtBQUNaLDJGQUFvSDtBQTZDaEgseUdBN0NxQywyREFBd0IsT0E2Q3JDO0FBckM1QixpQkFBaUI7QUFDakIsc0VBQXdGO0FBd0NwRixrR0F4QzhCLDZDQUFpQixPQXdDOUI7QUFqQ3JCLE1BQU07QUFDTix5RUFBNEY7QUFvQ3hGLG1HQXBDK0IsK0NBQWtCLE9Bb0MvQjtBQTdCdEIsVUFBVTtBQUNWLHFGQUE0RztBQWdDeEcsdUdBaENtQyx1REFBc0IsT0FnQ25DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ2FuYWRhXG5pbXBvcnQgeyBDYW5hZGFNb3J0Z2FnZVNlcnZpY2VJbXBsIGFzIENhbmFkYU1vcnRnYWdlU2VydmljZSB9IGZyb20gJy4vY2FuYWRhL0NhbmFkYU1vcnRnYWdlU2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBNb3J0Z2FnZVJ1bGVzIGFzIENhbmFkYU1vcnRnYWdlUnVsZXMsXG4gICAgTW9ydGdhZ2VDYWxjdWxhdGlvbklucHV0IGFzIENhbmFkYU1vcnRnYWdlQ2FsY3VsYXRpb25JbnB1dCxcbiAgICBNb3J0Z2FnZUNhbGN1bGF0aW9uUmVzdWx0IGFzIENhbmFkYU1vcnRnYWdlQ2FsY3VsYXRpb25SZXN1bHQsXG59IGZyb20gJy4vY2FuYWRhL2RvbWFpbi90eXBlcyc7XG5cbi8vIEZyYW5jZVxuaW1wb3J0IHsgRnJhbmNlTW9ydGdhZ2VTZXJ2aWNlSW1wbCBhcyBGcmFuY2VNb3J0Z2FnZVNlcnZpY2UgfSBmcm9tICcuL2ZyYW5jZS9GcmFuY2VNb3J0Z2FnZVNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgTW9ydGdhZ2VSdWxlcyBhcyBGcmFuY2VNb3J0Z2FnZVJ1bGVzLFxuICAgIE1vcnRnYWdlSW5wdXQgYXMgRnJhbmNlTW9ydGdhZ2VJbnB1dCxcbiAgICBNb3J0Z2FnZU91dHB1dCBhcyBGcmFuY2VNb3J0Z2FnZUNhbGN1bGF0aW9uUmVzdWx0LFxufSBmcm9tICcuL2ZyYW5jZS9kb21haW4vdHlwZXMnO1xuXG4vLyBTb3V0aCBBZnJpY2FcbmltcG9ydCB7IFNvdXRoQWZyaWNhTW9ydGdhZ2VTZXJ2aWNlSW1wbCBhcyBTb3V0aEFmcmljYU1vcnRnYWdlU2VydmljZSB9IGZyb20gJy4vc291dGgtYWZyaWNhL1NvdXRoQWZyaWNhTW9ydGdhZ2VTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIE1vcnRnYWdlUnVsZXMgYXMgU291dGhBZnJpY2FNb3J0Z2FnZVJ1bGVzLFxuICAgIE1vcnRnYWdlSW5wdXQgYXMgU291dGhBZnJpY2FNb3J0Z2FnZUlucHV0LFxuICAgIE1vcnRnYWdlT3V0cHV0IGFzIFNvdXRoQWZyaWNhTW9ydGdhZ2VPdXRwdXQsXG59IGZyb20gJy4vc291dGgtYWZyaWNhL2RvbWFpbi90eXBlcyc7XG5cbi8vIEF1c3RyYWxpYVxuaW1wb3J0IHsgQXVzdHJhbGlhTW9ydGdhZ2VTZXJ2aWNlSW1wbCBhcyBBdXN0cmFsaWFNb3J0Z2FnZVNlcnZpY2UgfSBmcm9tICcuL2F1c3RyYWxpYS9BdXN0cmFsaWFNb3J0Z2FnZVNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgTW9ydGdhZ2VSdWxlcyBhcyBBdXN0cmFsaWFNb3J0Z2FnZVJ1bGVzLFxuICAgIE1vcnRnYWdlSW5wdXQgYXMgQXVzdHJhbGlhTW9ydGdhZ2VJbnB1dCxcbiAgICBNb3J0Z2FnZU91dHB1dCBhcyBBdXN0cmFsaWFNb3J0Z2FnZU91dHB1dCxcbn0gZnJvbSAnLi9hdXN0cmFsaWEvZG9tYWluL3R5cGVzJztcblxuXG4vLyBVbml0ZWQgS2luZ2RvbVxuaW1wb3J0IHsgVUtNb3J0Z2FnZVNlcnZpY2VJbXBsIGFzIFVLTW9ydGdhZ2VTZXJ2aWNlIH0gZnJvbSAnLi91ay9VS01vcnRnYWdlU2VydmljZUltcGwnO1xuaW1wb3J0IHtcbiAgICBNb3J0Z2FnZVJ1bGVzIGFzIFVLTW9ydGdhZ2VSdWxlcyxcbiAgICBNb3J0Z2FnZUlucHV0IGFzIFVLTW9ydGdhZ2VJbnB1dCxcbiAgICBNb3J0Z2FnZU91dHB1dCBhcyBVS01vcnRnYWdlT3V0cHV0LFxufSBmcm9tICcuL3VrL2RvbWFpbi90eXBlcyc7XG5cbi8vIFVTQVxuaW1wb3J0IHsgVVNBTW9ydGdhZ2VTZXJ2aWNlSW1wbCBhcyBVU0FNb3J0Z2FnZVNlcnZpY2UgfSBmcm9tICcuL3VzYS9VU0FNb3J0Z2FnZVNlcnZpY2VJbXBsJztcbmltcG9ydCB7XG4gICAgTW9ydGdhZ2VSdWxlcyBhcyBVU0FNb3J0Z2FnZVJ1bGVzLFxuICAgIE1vcnRnYWdlSW5wdXQgYXMgVVNBTW9ydGdhZ2VJbnB1dCxcbiAgICBNb3J0Z2FnZU91dHB1dCBhcyBVU0FNb3J0Z2FnZU91dHB1dCxcbn0gZnJvbSAnLi91c2EvZG9tYWluL3R5cGVzJztcblxuLy8gR2VybWFueVxuaW1wb3J0IHsgR2VybWFueU1vcnRnYWdlU2VydmljZUltcGwgYXMgR2VybWFueU1vcnRnYWdlU2VydmljZSB9IGZyb20gJy4vZ2VybWFueS9HZXJtYW55TW9ydGdhZ2VTZXJ2aWNlSW1wbCc7XG5pbXBvcnQge1xuICAgIE1vcnRnYWdlUnVsZXMgYXMgR2VybWFueU1vcnRnYWdlUnVsZXMsXG4gICAgTW9ydGdhZ2VJbnB1dCBhcyBHZXJtYW55TW9ydGdhZ2VJbnB1dCxcbiAgICBNb3J0Z2FnZU91dHB1dCBhcyBHZXJtYW55TW9ydGdhZ2VPdXRwdXQsXG59IGZyb20gJy4vZ2VybWFueS9kb21haW4vdHlwZXMnO1xuXG5leHBvcnQge1xuICAgIENhbmFkYU1vcnRnYWdlU2VydmljZSxcbiAgICBDYW5hZGFNb3J0Z2FnZVJ1bGVzLFxuICAgIENhbmFkYU1vcnRnYWdlQ2FsY3VsYXRpb25JbnB1dCxcbiAgICBDYW5hZGFNb3J0Z2FnZUNhbGN1bGF0aW9uUmVzdWx0LFxuICAgIEZyYW5jZU1vcnRnYWdlU2VydmljZSxcbiAgICBGcmFuY2VNb3J0Z2FnZVJ1bGVzLFxuICAgIEZyYW5jZU1vcnRnYWdlSW5wdXQsXG4gICAgRnJhbmNlTW9ydGdhZ2VDYWxjdWxhdGlvblJlc3VsdCxcbiAgICBTb3V0aEFmcmljYU1vcnRnYWdlU2VydmljZSxcbiAgICBTb3V0aEFmcmljYU1vcnRnYWdlUnVsZXMsXG4gICAgU291dGhBZnJpY2FNb3J0Z2FnZUlucHV0LFxuICAgIFNvdXRoQWZyaWNhTW9ydGdhZ2VPdXRwdXQsXG4gICAgQXVzdHJhbGlhTW9ydGdhZ2VTZXJ2aWNlLFxuICAgIEF1c3RyYWxpYU1vcnRnYWdlUnVsZXMsXG4gICAgQXVzdHJhbGlhTW9ydGdhZ2VJbnB1dCxcbiAgICBBdXN0cmFsaWFNb3J0Z2FnZU91dHB1dCxcbiAgICBVS01vcnRnYWdlU2VydmljZSxcbiAgICBVS01vcnRnYWdlUnVsZXMsXG4gICAgVUtNb3J0Z2FnZUlucHV0LFxuICAgIFVLTW9ydGdhZ2VPdXRwdXQsXG4gICAgVVNBTW9ydGdhZ2VTZXJ2aWNlLFxuICAgIFVTQU1vcnRnYWdlUnVsZXMsXG4gICAgVVNBTW9ydGdhZ2VJbnB1dCxcbiAgICBVU0FNb3J0Z2FnZU91dHB1dCxcbiAgICBHZXJtYW55TW9ydGdhZ2VTZXJ2aWNlLFxuICAgIEdlcm1hbnlNb3J0Z2FnZVJ1bGVzLFxuICAgIEdlcm1hbnlNb3J0Z2FnZUlucHV0LFxuICAgIEdlcm1hbnlNb3J0Z2FnZU91dHB1dFxufTsiXX0=
@@ -7,5 +7,6 @@ var CalculatorType;
7
7
  CalculatorType["MORTGAGE"] = "MORTGAGE";
8
8
  CalculatorType["LOAN"] = "LOAN";
9
9
  CalculatorType["CORPORATE_TAX"] = "CORPORATE_TAX";
10
+ CalculatorType["CAPITAL_GAINS"] = "CAPITAL_GAINS";
10
11
  })(CalculatorType || (exports.CalculatorType = CalculatorType = {}));
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL2RvbWFpbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsMkNBQXlCLENBQUE7SUFDekIsdUNBQXFCLENBQUE7SUFDckIsK0JBQWEsQ0FBQTtJQUNiLGlEQUErQixDQUFBO0FBQ25DLENBQUMsRUFMVyxjQUFjLDhCQUFkLGNBQWMsUUFLekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDYWxjdWxhdG9yVHlwZSB7XG4gICAgSU5DT01FX1RBWCA9ICdJTkNPTUVfVEFYJyxcbiAgICBNT1JUR0FHRSA9ICdNT1JUR0FHRScsXG4gICAgTE9BTiA9ICdMT0FOJyxcbiAgICBDT1JQT1JBVEVfVEFYID0gJ0NPUlBPUkFURV9UQVgnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVNZXRhIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNvdW50cnk6IHN0cmluZztcbiAgICByZWdpb246IHN0cmluZztcbiAgICBjYWxjdWxhdG9yOiBDYWxjdWxhdG9yVHlwZTtcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgZWZmZWN0aXZlZnJvbTogc3RyaW5nO1xuICAgIGVmZmVjdGl2ZXRvOiBzdHJpbmcgfCBudWxsO1xuICAgIHNvdXJjZT86IFJ1bGVTb3VyY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdWxlU291cmNlIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG59Il19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL2RvbWFpbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLGNBTVg7QUFORCxXQUFZLGNBQWM7SUFDdEIsMkNBQXlCLENBQUE7SUFDekIsdUNBQXFCLENBQUE7SUFDckIsK0JBQWEsQ0FBQTtJQUNiLGlEQUErQixDQUFBO0lBQy9CLGlEQUErQixDQUFBO0FBQ25DLENBQUMsRUFOVyxjQUFjLDhCQUFkLGNBQWMsUUFNekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDYWxjdWxhdG9yVHlwZSB7XG4gICAgSU5DT01FX1RBWCA9ICdJTkNPTUVfVEFYJyxcbiAgICBNT1JUR0FHRSA9ICdNT1JUR0FHRScsXG4gICAgTE9BTiA9ICdMT0FOJyxcbiAgICBDT1JQT1JBVEVfVEFYID0gJ0NPUlBPUkFURV9UQVgnLFxuICAgIENBUElUQUxfR0FJTlMgPSAnQ0FQSVRBTF9HQUlOUycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZU1ldGEge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY291bnRyeTogc3RyaW5nO1xuICAgIHJlZ2lvbjogc3RyaW5nO1xuICAgIGNhbGN1bGF0b3I6IENhbGN1bGF0b3JUeXBlO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBlZmZlY3RpdmVmcm9tOiBzdHJpbmc7XG4gICAgZWZmZWN0aXZldG86IHN0cmluZyB8IG51bGw7XG4gICAgc291cmNlPzogUnVsZVNvdXJjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVTb3VyY2Uge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbn0iXX0=
@@ -0,0 +1,4 @@
1
+ import { Result } from "../domain/types";
2
+ export interface AustraliaCapitalGainsService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { Result } from "../domain/types";
2
+ import { AustraliaCapitalGainsService } from "./AustraliaCapitalGainsService";
3
+ import { Input, Rules } from "./domain/types";
4
+ export declare class AustraliaCapitalGainsServiceImpl implements AustraliaCapitalGainsService {
5
+ private _input;
6
+ private _rules;
7
+ constructor(input: Input, rules: Rules);
8
+ calculate(): Result;
9
+ private applyBrackets;
10
+ }
@@ -0,0 +1,15 @@
1
+ export interface TaxBracket {
2
+ from: number;
3
+ to: number | null;
4
+ rate: number;
5
+ }
6
+ export interface Rules {
7
+ cgtDiscount: number;
8
+ cgtDiscountMinMonths: number;
9
+ taxBrackets: TaxBracket[];
10
+ }
11
+ export interface Input {
12
+ capitalGain: number;
13
+ totalTaxableIncome: number;
14
+ holdingPeriodMonths: number;
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "../domain/types";
2
+ export interface CanadaCapitalGainsService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { Result } from "../domain/types";
2
+ import { CanadaCapitalGainsService } from "./CanadaCapitalGainsService";
3
+ import { Input, Rules } from "./domain/types";
4
+ export declare class CanadaCapitalGainsServiceImpl implements CanadaCapitalGainsService {
5
+ private _input;
6
+ private _rules;
7
+ constructor(input: Input, rules: Rules);
8
+ calculate(): Result;
9
+ private applyBrackets;
10
+ }
@@ -0,0 +1,13 @@
1
+ export interface Rules {
2
+ inclusionRate: number;
3
+ taxBrackets: TaxBracket[];
4
+ }
5
+ export interface TaxBracket {
6
+ from: number;
7
+ to: number | null;
8
+ rate: number;
9
+ }
10
+ export interface Input {
11
+ capitalGain: number;
12
+ totalTaxableIncome: number;
13
+ }
@@ -0,0 +1,15 @@
1
+ export interface Breakdown {
2
+ from: string;
3
+ to: string;
4
+ rate: number;
5
+ amount: number;
6
+ }
7
+ export interface Result {
8
+ taxableGain: number;
9
+ capitalGainTax: number;
10
+ socialContributions: number;
11
+ totalTax: number;
12
+ netInvestmentIncomeTax: number;
13
+ effectiveRate: number;
14
+ breakdowns: Breakdown[];
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "../domain/types";
2
+ export interface FranceCapitalGainsService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { Result } from "../domain/types";
2
+ import { FranceCapitalGainsService } from "./FranceCapitalGainsService";
3
+ import { Input, Rules } from "./domain/types";
4
+ export declare class FranceCapitalGainsServiceImpl implements FranceCapitalGainsService {
5
+ private _input;
6
+ private _rules;
7
+ constructor(input: Input, rules: Rules);
8
+ calculate(): Result;
9
+ }
@@ -0,0 +1,7 @@
1
+ export interface Rules {
2
+ flatTaxRate: number;
3
+ socialContributionsRate: number;
4
+ }
5
+ export interface Input {
6
+ capitalGain: number;
7
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "../domain/types";
2
+ export interface GermanyCapitalGainsService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { Result } from "../domain/types";
2
+ import { GermanyCapitalGainsService } from "./GermanyCapitalGainsService";
3
+ import { Input, Rules } from "./domain/types";
4
+ export declare class GermanyCapitalGainsServiceImpl implements GermanyCapitalGainsService {
5
+ private _input;
6
+ private _rules;
7
+ constructor(input: Input, rules: Rules);
8
+ calculate(): Result;
9
+ }
@@ -0,0 +1,8 @@
1
+ export interface Rules {
2
+ flatTaxRate: number;
3
+ solidaritySurchargeRate: number;
4
+ annualExemption: number;
5
+ }
6
+ export interface Input {
7
+ capitalGain: number;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { CanadaCapitalGainsServiceImpl as CanadaCapitalGainsService } from './canada/CanadaCapitalGainsServiceImpl';
2
+ import { Input as CanadaCapitalGainsInput, Rules as CanadaCapitalGainsRules } from './canada/domain/types';
3
+ import { FranceCapitalGainsServiceImpl as FranceCapitalGainsService } from './france/FranceCapitalGainsServiceImpl';
4
+ import { Input as FranceCapitalGainsInput, Rules as FranceCapitalGainsRules } from './france/domain/types';
5
+ import { SouthAfricaCapitalGainsServiceImpl as SouthAfricaCapitalGainsService } from './south-africa/SouthAfricaCapitalGainsServiceImpl';
6
+ import { Input as SouthAfricaCapitalGainsInput, Rules as SouthAfricaCapitalGainsRules } from './south-africa/domain/types';
7
+ import { AustraliaCapitalGainsServiceImpl as AustraliaCapitalGainsService } from './australia/AustraliaCapitalGainsServiceImpl';
8
+ import { Input as AustraliaCapitalGainsInput, Rules as AustraliaCapitalGainsRules } from './australia/domain/types';
9
+ import { UKCapitalGainsServiceImpl as UKCapitalGainsService } from './uk/UKCapitalGainsServiceImpl';
10
+ import { Input as UKCapitalGainsInput, Rules as UKCapitalGainsRules } from './uk/domain/types';
11
+ import { USACapitalGainsServiceImpl as USACapitalGainsService } from './usa/USACapitalGainsServiceImpl';
12
+ import { Input as USACapitalGainsInput, Rules as USACapitalGainsRules } from './usa/domain/types';
13
+ import { GermanyCapitalGainsServiceImpl as GermanyCapitalGainsService } from './germany/GermanyCapitalGainsServiceImpl';
14
+ import { Input as GermanyCapitalGainsInput, Rules as GermanyCapitalGainsRules } from './germany/domain/types';
15
+ export { CanadaCapitalGainsService, CanadaCapitalGainsInput, CanadaCapitalGainsRules, FranceCapitalGainsService, FranceCapitalGainsInput, FranceCapitalGainsRules, SouthAfricaCapitalGainsService, SouthAfricaCapitalGainsInput, SouthAfricaCapitalGainsRules, AustraliaCapitalGainsService, AustraliaCapitalGainsInput, AustraliaCapitalGainsRules, UKCapitalGainsService, UKCapitalGainsInput, UKCapitalGainsRules, USACapitalGainsService, USACapitalGainsInput, USACapitalGainsRules, GermanyCapitalGainsService, GermanyCapitalGainsInput, GermanyCapitalGainsRules };
@@ -0,0 +1,4 @@
1
+ import { Result } from "../domain/types";
2
+ export interface SouthAfricaCapitalGainsService {
3
+ calculate(): Result;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { Result } from "../domain/types";
2
+ import { SouthAfricaCapitalGainsService } from "./SouthAfricaCapitalGainsService";
3
+ import { Input, Rules } from "./domain/types";
4
+ export declare class SouthAfricaCapitalGainsServiceImpl implements SouthAfricaCapitalGainsService {
5
+ private _input;
6
+ private _rules;
7
+ constructor(input: Input, rules: Rules);
8
+ calculate(): Result;
9
+ private applyBrackets;
10
+ }
@@ -0,0 +1,14 @@
1
+ export interface TaxBracket {
2
+ from: number;
3
+ to: number | null;
4
+ rate: number;
5
+ }
6
+ export interface Rules {
7
+ inclusionRate: number;
8
+ annualExclusion: number;
9
+ taxBrackets: TaxBracket[];
10
+ }
11
+ export interface Input {
12
+ capitalGain: number;
13
+ totalTaxableIncome: number;
14
+ }
@@ -0,0 +1,4 @@
1
+ import { Result } from "../domain/types";
2
+ export interface UKCapitalGainsService {
3
+ calculate(): Result;
4
+ }