moneyfunx 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/payments.d.ts +2 -2
- package/build/lib/payments.js +6 -6
- package/coverage/clover.xml +52 -52
- package/coverage/coverage-final.json +2 -2
- package/coverage/index.html +1 -1
- package/coverage/src/index.html +1 -1
- package/coverage/src/index.ts.html +1 -1
- package/coverage/src/lib/constants.ts.html +1 -1
- package/coverage/src/lib/errors.ts.html +1 -1
- package/coverage/src/lib/helperFunctions.ts.html +1 -1
- package/coverage/src/lib/index.html +1 -1
- package/coverage/src/lib/loan.ts.html +3 -3
- package/coverage/src/lib/paymentTypes.ts.html +1 -1
- package/coverage/src/lib/payments.ts.html +35 -38
- package/coverage/src/lib/sorting.ts.html +1 -1
- package/package.json +1 -1
- package/src/lib/payments.ts +7 -8
package/build/lib/payments.d.ts
CHANGED
|
@@ -21,11 +21,11 @@ export declare function determineExtraPayment(loans: ILoan[], payment: number):
|
|
|
21
21
|
*
|
|
22
22
|
* @param {Loan} loan The loan serving as the base for carryover
|
|
23
23
|
* @param {number} loanPayment The payment applied to the loan
|
|
24
|
-
* @param {number}
|
|
24
|
+
* @param {number} loanFinalPayment The (partial) amount of the final payment to the loan
|
|
25
25
|
* @param {boolean} reduceMinimum Flag to reduce the total payment amount by a loan's minimum when that loan is paid off
|
|
26
26
|
* @returns {number} The carryover to apply to the last payment on loan N+1
|
|
27
27
|
*/
|
|
28
|
-
export declare function determineCarryover(loan: Loan, loanPayment: number,
|
|
28
|
+
export declare function determineCarryover(loan: Loan, loanPayment: number, loanFinalPayment: number, reduceMinimum: boolean): number;
|
|
29
29
|
/**
|
|
30
30
|
*
|
|
31
31
|
* Calculates the amortization schedule for a loan paid with a payment
|
package/build/lib/payments.js
CHANGED
|
@@ -27,16 +27,16 @@ export function determineExtraPayment(loans, payment) {
|
|
|
27
27
|
*
|
|
28
28
|
* @param {Loan} loan The loan serving as the base for carryover
|
|
29
29
|
* @param {number} loanPayment The payment applied to the loan
|
|
30
|
-
* @param {number}
|
|
30
|
+
* @param {number} loanFinalPayment The (partial) amount of the final payment to the loan
|
|
31
31
|
* @param {boolean} reduceMinimum Flag to reduce the total payment amount by a loan's minimum when that loan is paid off
|
|
32
32
|
* @returns {number} The carryover to apply to the last payment on loan N+1
|
|
33
33
|
*/
|
|
34
|
-
export function determineCarryover(loan, loanPayment,
|
|
34
|
+
export function determineCarryover(loan, loanPayment, loanFinalPayment, reduceMinimum) {
|
|
35
35
|
switch (true) {
|
|
36
36
|
case reduceMinimum:
|
|
37
|
-
return Math.max(loanPayment -
|
|
37
|
+
return Math.max(loanPayment - loan.minPayment - loanFinalPayment, 0);
|
|
38
38
|
default:
|
|
39
|
-
return Math.max(loanPayment -
|
|
39
|
+
return Math.max(loanPayment - loanFinalPayment, 0);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
@@ -110,7 +110,7 @@ export function payLoans(loans, payment, reduceMinimum = false) {
|
|
|
110
110
|
const firstLoanPrincipalRemaining = loanPrincipalsRemaining[firstLoan.id];
|
|
111
111
|
const periodsToPay = firstLoan.numPaymentsToZero(firstLoanPayment, firstLoanPrincipalRemaining);
|
|
112
112
|
const firstLoanAmortizedPayments = amortizePayments(firstLoan, firstLoanPrincipalRemaining, firstLoanPayment, periodsToPay, periodsElapsed);
|
|
113
|
-
const
|
|
113
|
+
const firstLoanFinalPayment = firstLoan.principalRemaining(periodsToPay - 1, firstLoanPayment, firstLoanPrincipalRemaining) + firstLoan.accrueInterest(firstLoan.principalRemaining(periodsToPay - 1, firstLoanPayment, firstLoanPrincipalRemaining));
|
|
114
114
|
paymentSchedule[firstLoan.id].amortizationSchedule = [
|
|
115
115
|
...paymentSchedule[firstLoan.id].amortizationSchedule,
|
|
116
116
|
...firstLoanAmortizedPayments
|
|
@@ -127,7 +127,7 @@ export function payLoans(loans, payment, reduceMinimum = false) {
|
|
|
127
127
|
// handle calculating information for the rest of the loans
|
|
128
128
|
loans.slice(paidLoans).forEach((loan, index) => {
|
|
129
129
|
const loanPrincipalRemaining = loanPrincipalsRemaining[loan.id];
|
|
130
|
-
const loanAmortizedPayments = amortizePayments(loan, loanPrincipalRemaining, loan.minPayment, Math.min(periodsToPay, loan.numPaymentsToZero(loan.minPayment, loanPrincipalRemaining)), periodsElapsed, (index === 0 ? determineCarryover(firstLoan, firstLoanPayment,
|
|
130
|
+
const loanAmortizedPayments = amortizePayments(loan, loanPrincipalRemaining, loan.minPayment, Math.min(periodsToPay, loan.numPaymentsToZero(loan.minPayment, loanPrincipalRemaining)), periodsElapsed, (index === 0 ? determineCarryover(firstLoan, firstLoanPayment, firstLoanFinalPayment, reduceMinimum) : 0));
|
|
131
131
|
paymentSchedule[loan.id].amortizationSchedule = [
|
|
132
132
|
...paymentSchedule[loan.id].amortizationSchedule,
|
|
133
133
|
...loanAmortizedPayments,
|
package/coverage/clover.xml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<coverage generated="
|
|
3
|
-
<project timestamp="
|
|
2
|
+
<coverage generated="1740425839159" clover="3.2.0">
|
|
3
|
+
<project timestamp="1740425839159" name="All files">
|
|
4
4
|
<metrics statements="343" coveredstatements="343" conditionals="51" coveredconditionals="51" methods="19" coveredmethods="19" elements="413" coveredelements="413" complexity="0" loc="343" ncloc="343" packages="2" files="8" classes="8"/>
|
|
5
5
|
<package name="src">
|
|
6
6
|
<metrics statements="7" coveredstatements="7" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
|
|
@@ -119,8 +119,8 @@
|
|
|
119
119
|
<line num="103" count="9" type="stmt"/>
|
|
120
120
|
<line num="104" count="9" type="stmt"/>
|
|
121
121
|
<line num="111" count="1" type="cond" truecount="1" falsecount="0"/>
|
|
122
|
-
<line num="112" count="
|
|
123
|
-
<line num="113" count="
|
|
122
|
+
<line num="112" count="546" type="stmt"/>
|
|
123
|
+
<line num="113" count="546" type="stmt"/>
|
|
124
124
|
<line num="121" count="1" type="cond" truecount="1" falsecount="0"/>
|
|
125
125
|
<line num="122" count="51" type="stmt"/>
|
|
126
126
|
<line num="123" count="51" type="stmt"/>
|
|
@@ -216,21 +216,21 @@
|
|
|
216
216
|
<line num="94" count="13" type="stmt"/>
|
|
217
217
|
<line num="96" count="13" type="stmt"/>
|
|
218
218
|
<line num="97" count="13" type="cond" truecount="1" falsecount="0"/>
|
|
219
|
-
<line num="98" count="
|
|
220
|
-
<line num="99" count="
|
|
221
|
-
<line num="100" count="
|
|
219
|
+
<line num="98" count="539" type="stmt"/>
|
|
220
|
+
<line num="99" count="539" type="stmt"/>
|
|
221
|
+
<line num="100" count="539" type="cond" truecount="1" falsecount="0"/>
|
|
222
222
|
<line num="101" count="13" type="cond" truecount="1" falsecount="0"/>
|
|
223
|
-
<line num="102" count="
|
|
224
|
-
<line num="103" count="
|
|
225
|
-
<line num="104" count="
|
|
226
|
-
<line num="105" count="
|
|
227
|
-
<line num="106" count="
|
|
228
|
-
<line num="107" count="
|
|
229
|
-
<line num="108" count="
|
|
230
|
-
<line num="109" count="
|
|
231
|
-
<line num="110" count="
|
|
232
|
-
<line num="111" count="
|
|
233
|
-
<line num="112" count="
|
|
223
|
+
<line num="102" count="539" type="stmt"/>
|
|
224
|
+
<line num="103" count="539" type="stmt"/>
|
|
225
|
+
<line num="104" count="539" type="stmt"/>
|
|
226
|
+
<line num="105" count="539" type="stmt"/>
|
|
227
|
+
<line num="106" count="539" type="stmt"/>
|
|
228
|
+
<line num="107" count="539" type="stmt"/>
|
|
229
|
+
<line num="108" count="539" type="stmt"/>
|
|
230
|
+
<line num="109" count="539" type="stmt"/>
|
|
231
|
+
<line num="110" count="539" type="stmt"/>
|
|
232
|
+
<line num="111" count="539" type="stmt"/>
|
|
233
|
+
<line num="112" count="539" type="stmt"/>
|
|
234
234
|
<line num="113" count="13" type="stmt"/>
|
|
235
235
|
<line num="114" count="13" type="stmt"/>
|
|
236
236
|
<line num="126" count="1" type="cond" truecount="1" falsecount="0"/>
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
<line num="175" count="6" type="stmt"/>
|
|
284
284
|
<line num="176" count="6" type="stmt"/>
|
|
285
285
|
<line num="177" count="6" type="stmt"/>
|
|
286
|
+
<line num="178" count="6" type="stmt"/>
|
|
286
287
|
<line num="179" count="6" type="stmt"/>
|
|
287
288
|
<line num="180" count="6" type="stmt"/>
|
|
288
289
|
<line num="181" count="6" type="stmt"/>
|
|
@@ -291,11 +292,11 @@
|
|
|
291
292
|
<line num="184" count="6" type="stmt"/>
|
|
292
293
|
<line num="185" count="6" type="stmt"/>
|
|
293
294
|
<line num="186" count="6" type="stmt"/>
|
|
294
|
-
<line num="187" count="6" type="
|
|
295
|
-
<line num="188" count="
|
|
296
|
-
<line num="189" count="
|
|
297
|
-
<line num="
|
|
298
|
-
<line num="192" count="6" type="
|
|
295
|
+
<line num="187" count="6" type="cond" truecount="1" falsecount="0"/>
|
|
296
|
+
<line num="188" count="3" type="stmt"/>
|
|
297
|
+
<line num="189" count="6" type="stmt"/>
|
|
298
|
+
<line num="191" count="6" type="cond" truecount="1" falsecount="0"/>
|
|
299
|
+
<line num="192" count="6" type="stmt"/>
|
|
299
300
|
<line num="193" count="6" type="stmt"/>
|
|
300
301
|
<line num="194" count="6" type="stmt"/>
|
|
301
302
|
<line num="195" count="6" type="stmt"/>
|
|
@@ -308,59 +309,58 @@
|
|
|
308
309
|
<line num="202" count="6" type="stmt"/>
|
|
309
310
|
<line num="203" count="6" type="stmt"/>
|
|
310
311
|
<line num="204" count="6" type="stmt"/>
|
|
311
|
-
<line num="205" count="6" type="
|
|
312
|
-
<line num="206" count="
|
|
312
|
+
<line num="205" count="6" type="cond" truecount="1" falsecount="0"/>
|
|
313
|
+
<line num="206" count="4" type="stmt"/>
|
|
313
314
|
<line num="207" count="4" type="stmt"/>
|
|
314
315
|
<line num="208" count="4" type="stmt"/>
|
|
315
316
|
<line num="209" count="4" type="stmt"/>
|
|
316
|
-
<line num="210" count="
|
|
317
|
-
<line num="211" count="6" type="
|
|
317
|
+
<line num="210" count="6" type="cond" truecount="1" falsecount="0"/>
|
|
318
|
+
<line num="211" count="6" type="stmt"/>
|
|
318
319
|
<line num="212" count="6" type="stmt"/>
|
|
319
320
|
<line num="213" count="6" type="stmt"/>
|
|
320
321
|
<line num="214" count="6" type="stmt"/>
|
|
321
322
|
<line num="215" count="6" type="stmt"/>
|
|
322
|
-
<line num="
|
|
323
|
-
<line num="218" count="
|
|
324
|
-
<line num="219" count="
|
|
325
|
-
<line num="220" count="
|
|
326
|
-
<line num="221" count="
|
|
327
|
-
<line num="222" count="
|
|
328
|
-
<line num="223" count="
|
|
329
|
-
<line num="224" count="
|
|
330
|
-
<line num="225" count="
|
|
331
|
-
<line num="226" count="
|
|
332
|
-
<line num="227" count="
|
|
333
|
-
<line num="228" count="
|
|
334
|
-
<line num="229" count="
|
|
335
|
-
<line num="230" count="
|
|
336
|
-
<line num="231" count="
|
|
337
|
-
<line num="
|
|
323
|
+
<line num="217" count="6" type="cond" truecount="1" falsecount="0"/>
|
|
324
|
+
<line num="218" count="145" type="stmt"/>
|
|
325
|
+
<line num="219" count="145" type="cond" truecount="1" falsecount="0"/>
|
|
326
|
+
<line num="220" count="145" type="stmt"/>
|
|
327
|
+
<line num="221" count="145" type="cond" truecount="1" falsecount="0"/>
|
|
328
|
+
<line num="222" count="99" type="stmt"/>
|
|
329
|
+
<line num="223" count="99" type="stmt"/>
|
|
330
|
+
<line num="224" count="99" type="stmt"/>
|
|
331
|
+
<line num="225" count="99" type="stmt"/>
|
|
332
|
+
<line num="226" count="99" type="stmt"/>
|
|
333
|
+
<line num="227" count="99" type="stmt"/>
|
|
334
|
+
<line num="228" count="99" type="stmt"/>
|
|
335
|
+
<line num="229" count="99" type="cond" truecount="1" falsecount="0"/>
|
|
336
|
+
<line num="230" count="46" type="stmt"/>
|
|
337
|
+
<line num="231" count="6" type="stmt"/>
|
|
338
|
+
<line num="233" count="6" type="stmt"/>
|
|
338
339
|
<line num="234" count="6" type="stmt"/>
|
|
339
340
|
<line num="235" count="6" type="stmt"/>
|
|
340
341
|
<line num="236" count="6" type="stmt"/>
|
|
341
342
|
<line num="237" count="6" type="stmt"/>
|
|
342
343
|
<line num="238" count="6" type="stmt"/>
|
|
343
|
-
<line num="
|
|
344
|
+
<line num="240" count="6" type="stmt"/>
|
|
344
345
|
<line num="241" count="6" type="stmt"/>
|
|
345
|
-
<line num="
|
|
346
|
-
<line num="244" count="
|
|
346
|
+
<line num="243" count="2" type="cond" truecount="1" falsecount="0"/>
|
|
347
|
+
<line num="244" count="6" type="stmt"/>
|
|
347
348
|
<line num="245" count="6" type="stmt"/>
|
|
348
|
-
<line num="246" count="6" type="
|
|
349
|
-
<line num="247" count="6" type="
|
|
349
|
+
<line num="246" count="6" type="cond" truecount="1" falsecount="0"/>
|
|
350
|
+
<line num="247" count="6" type="stmt"/>
|
|
350
351
|
<line num="248" count="6" type="stmt"/>
|
|
351
|
-
<line num="
|
|
352
|
+
<line num="250" count="6" type="stmt"/>
|
|
352
353
|
<line num="251" count="6" type="stmt"/>
|
|
353
354
|
<line num="252" count="6" type="stmt"/>
|
|
354
355
|
<line num="253" count="6" type="stmt"/>
|
|
355
356
|
<line num="254" count="6" type="stmt"/>
|
|
356
|
-
<line num="
|
|
357
|
+
<line num="256" count="2" type="stmt"/>
|
|
357
358
|
<line num="257" count="2" type="stmt"/>
|
|
358
359
|
<line num="258" count="2" type="stmt"/>
|
|
359
360
|
<line num="259" count="2" type="stmt"/>
|
|
360
361
|
<line num="260" count="2" type="stmt"/>
|
|
361
|
-
<line num="
|
|
362
|
+
<line num="262" count="2" type="stmt"/>
|
|
362
363
|
<line num="263" count="2" type="stmt"/>
|
|
363
|
-
<line num="264" count="2" type="stmt"/>
|
|
364
364
|
</file>
|
|
365
365
|
<file name="sorting.ts" path="/home/runner/work/moneyfunx/moneyfunx/src/lib/sorting.ts">
|
|
366
366
|
<metrics statements="9" coveredstatements="9" conditionals="3" coveredconditionals="3" methods="3" coveredmethods="3"/>
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/constants.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/constants.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}}},"s":{"0":1},"branchMap":{},"b":{},"fnMap":{},"f":{}}
|
|
3
3
|
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/errors.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/errors.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":47}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":32}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":19}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":37}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":3}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":1}}},"s":{"0":1,"1":1,"2":11,"3":11,"4":11,"5":11,"6":1},"branchMap":{"0":{"type":"branch","line":2,"loc":{"start":{"line":2,"column":2},"end":{"line":6,"column":3}},"locations":[{"start":{"line":2,"column":2},"end":{"line":6,"column":3}}]}},"b":{"0":[11]},"fnMap":{"0":{"name":"PaymentTooLowError","decl":{"start":{"line":2,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":2,"column":2},"end":{"line":6,"column":3}},"line":2}},"f":{"0":11}}
|
|
4
4
|
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/helperFunctions.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/helperFunctions.ts","all":false,"statementMap":{"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":36}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":20}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":23}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":17}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":11}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":25}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":17}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":53}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":42}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":26}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":1}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":35}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":20}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":18}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":23}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":17}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":11}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":18}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":49}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":67}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":5}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":4}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":1}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":29}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":20}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":18}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":23}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":17}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":11}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":10}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":23}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":79}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":1}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":34}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":20}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":18}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":22}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":11}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":19}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":62}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":30}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":4}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":1}}},"s":{"14":1,"15":9,"16":9,"17":9,"18":9,"19":9,"20":8,"21":8,"22":8,"23":1,"24":9,"35":1,"36":30,"37":30,"38":30,"39":30,"40":30,"41":30,"42":30,"43":30,"44":30,"45":30,"46":30,"57":1,"58":9,"59":9,"60":9,"61":9,"62":9,"63":9,"64":9,"65":9,"67":9,"77":1,"78":49,"79":49,"80":49,"81":49,"82":49,"83":49,"84":49,"85":49,"86":49},"branchMap":{"0":{"type":"branch","line":15,"loc":{"start":{"line":15,"column":7},"end":{"line":25,"column":1}},"locations":[{"start":{"line":15,"column":7},"end":{"line":25,"column":1}}]},"1":{"type":"branch","line":20,"loc":{"start":{"line":20,"column":24},"end":{"line":23,"column":42}},"locations":[{"start":{"line":20,"column":24},"end":{"line":23,"column":42}}]},"2":{"type":"branch","line":23,"loc":{"start":{"line":23,"column":39},"end":{"line":24,"column":26}},"locations":[{"start":{"line":23,"column":39},"end":{"line":24,"column":26}}]},"3":{"type":"branch","line":36,"loc":{"start":{"line":36,"column":7},"end":{"line":47,"column":1}},"locations":[{"start":{"line":36,"column":7},"end":{"line":47,"column":1}}]},"4":{"type":"branch","line":58,"loc":{"start":{"line":58,"column":7},"end":{"line":68,"column":1}},"locations":[{"start":{"line":58,"column":7},"end":{"line":68,"column":1}}]},"5":{"type":"branch","line":78,"loc":{"start":{"line":78,"column":7},"end":{"line":87,"column":1}},"locations":[{"start":{"line":78,"column":7},"end":{"line":87,"column":1}}]}},"b":{"0":[9],"1":[8],"2":[1],"3":[30],"4":[9],"5":[49]},"fnMap":{"0":{"name":"calculateMinPayment","decl":{"start":{"line":15,"column":7},"end":{"line":25,"column":1}},"loc":{"start":{"line":15,"column":7},"end":{"line":25,"column":1}},"line":15},"1":{"name":"principalRemaining","decl":{"start":{"line":36,"column":7},"end":{"line":47,"column":1}},"loc":{"start":{"line":36,"column":7},"end":{"line":47,"column":1}},"line":36},"2":{"name":"interestPaid","decl":{"start":{"line":58,"column":7},"end":{"line":68,"column":1}},"loc":{"start":{"line":58,"column":7},"end":{"line":68,"column":1}},"line":58},"3":{"name":"numPaymentsToZero","decl":{"start":{"line":78,"column":7},"end":{"line":87,"column":1}},"loc":{"start":{"line":78,"column":7},"end":{"line":87,"column":1}},"line":78}},"f":{"0":9,"1":30,"2":9,"3":49}}
|
|
5
|
-
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/loan.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/loan.ts","all":false,"statementMap":{"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":35}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":45}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":36}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":14}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":22}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":23}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":27}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":24}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":17}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":28}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":18}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":5}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":61}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":21}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":31}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":33}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":41}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":35}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":62}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":58}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":49}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":54}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":26}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":3}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":62}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":92}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":42}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":70}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":8}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":5}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":19}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":3}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":33}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":39}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":21}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":24}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":18}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":6}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":3}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":67}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":41}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":3}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":20}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":38}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":44}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":13}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":34}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":76}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":3}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":21}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":20}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":38}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":43}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":13}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":34}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":63}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":35}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":18}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":16}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":26}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":15}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":7}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":10}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":3}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":15}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":20}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":38}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":43}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":13}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":34}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":70}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":35}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":76}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":29}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":18}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":16}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":26}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":26}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":9}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":26}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":71}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":8}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":3}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":1}}},"s":{"12":1,"13":1,"32":1,"55":1,"56":9,"57":9,"58":9,"59":9,"60":9,"61":9,"62":9,"63":9,"64":9,"65":9,"66":9,"67":9,"68":9,"69":9,"70":9,"71":9,"72":9,"73":9,"74":9,"75":9,"84":1,"85":108,"86":10,"87":10,"88":10,"89":10,"90":98,"91":108,"97":1,"98":9,"99":9,"100":9,"101":9,"102":9,"103":9,"110":1,"111":547,"112":547,"120":1,"121":51,"122":51,"123":51,"124":51,"125":51,"126":51,"135":1,"136":25,"137":25,"138":25,"139":25,"140":25,"141":25,"142":21,"143":21,"144":21,"145":21,"146":21,"147":21,"148":2,"149":25,"158":1,"159":11,"160":11,"161":11,"162":11,"163":11,"164":11,"165":11,"166":8,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":11,"177":1},"branchMap":{"0":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":2},"end":{"line":76,"column":3}},"locations":[{"start":{"line":56,"column":2},"end":{"line":76,"column":3}}]},"1":{"type":"branch","line":74,"loc":{"start":{"line":74,"column":26},"end":{"line":74,"column":54}},"locations":[{"start":{"line":74,"column":26},"end":{"line":74,"column":54}}]},"2":{"type":"branch","line":75,"loc":{"start":{"line":75,"column":16},"end":{"line":75,"column":26}},"locations":[{"start":{"line":75,"column":16},"end":{"line":75,"column":26}}]},"3":{"type":"branch","line":85,"loc":{"start":{"line":85,"column":2},"end":{"line":92,"column":3}},"locations":[{"start":{"line":85,"column":2},"end":{"line":92,"column":3}}]},"4":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":91},"end":{"line":90,"column":5}},"locations":[{"start":{"line":86,"column":91},"end":{"line":90,"column":5}}]},"5":{"type":"branch","line":90,"loc":{"start":{"line":90,"column":4},"end":{"line":91,"column":19}},"locations":[{"start":{"line":90,"column":4},"end":{"line":91,"column":19}}]},"6":{"type":"branch","line":98,"loc":{"start":{"line":98,"column":2},"end":{"line":104,"column":3}},"locations":[{"start":{"line":98,"column":2},"end":{"line":104,"column":3}}]},"7":{"type":"branch","line":111,"loc":{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},"locations":[{"start":{"line":111,"column":2},"end":{"line":113,"column":3}}]},"8":{"type":"branch","line":121,"loc":{"start":{"line":121,"column":2},"end":{"line":127,"column":3}},"locations":[{"start":{"line":121,"column":2},"end":{"line":127,"column":3}}]},"9":{"type":"branch","line":136,"loc":{"start":{"line":136,"column":2},"end":{"line":150,"column":3}},"locations":[{"start":{"line":136,"column":2},"end":{"line":150,"column":3}}]},"10":{"type":"branch","line":142,"loc":{"start":{"line":142,"column":62},"end":{"line":148,"column":7}},"locations":[{"start":{"line":142,"column":62},"end":{"line":148,"column":7}}]},"11":{"type":"branch","line":148,"loc":{"start":{"line":148,"column":6},"end":{"line":149,"column":10}},"locations":[{"start":{"line":148,"column":6},"end":{"line":149,"column":10}}]},"12":{"type":"branch","line":159,"loc":{"start":{"line":159,"column":2},"end":{"line":177,"column":3}},"locations":[{"start":{"line":159,"column":2},"end":{"line":177,"column":3}}]},"13":{"type":"branch","line":166,"loc":{"start":{"line":166,"column":21},"end":{"line":167,"column":76}},"locations":[{"start":{"line":166,"column":21},"end":{"line":167,"column":76}}]},"14":{"type":"branch","line":167,"loc":{"start":{"line":167,"column":75},"end":{"line":176,"column":8}},"locations":[{"start":{"line":167,"column":75},"end":{"line":176,"column":8}}]}},"b":{"0":[9],"1":[7],"2":[7],"3":[108],"4":[10],"5":[98],"6":[9],"7":[547],"8":[51],"9":[25],"10":[21],"11":[2],"12":[11],"13":[8],"14":[1]},"fnMap":{"0":{"name":"Loan","decl":{"start":{"line":56,"column":2},"end":{"line":76,"column":3}},"loc":{"start":{"line":56,"column":2},"end":{"line":76,"column":3}},"line":56},"1":{"name":"validatePayment","decl":{"start":{"line":85,"column":2},"end":{"line":92,"column":3}},"loc":{"start":{"line":85,"column":2},"end":{"line":92,"column":3}},"line":85},"2":{"name":"calculateMinPayment","decl":{"start":{"line":98,"column":2},"end":{"line":104,"column":3}},"loc":{"start":{"line":98,"column":2},"end":{"line":104,"column":3}},"line":98},"3":{"name":"accrueInterest","decl":{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},"loc":{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},"line":111},"4":{"name":"numPaymentsToZero","decl":{"start":{"line":121,"column":2},"end":{"line":127,"column":3}},"loc":{"start":{"line":121,"column":2},"end":{"line":127,"column":3}},"line":121},"5":{"name":"principalRemaining","decl":{"start":{"line":136,"column":2},"end":{"line":150,"column":3}},"loc":{"start":{"line":136,"column":2},"end":{"line":150,"column":3}},"line":136},"6":{"name":"interestPaid","decl":{"start":{"line":159,"column":2},"end":{"line":177,"column":3}},"loc":{"start":{"line":159,"column":2},"end":{"line":177,"column":3}},"line":159}},"f":{"0":9,"1":108,"2":9,"3":547,"4":51,"5":25,"6":11}}
|
|
5
|
+
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/loan.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/loan.ts","all":false,"statementMap":{"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":35}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":45}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":36}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":14}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":22}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":23}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":27}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":24}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":17}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":28}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":18}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":5}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":61}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":21}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":31}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":33}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":41}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":35}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":62}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":58}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":49}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":54}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":26}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":3}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":62}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":92}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":42}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":70}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":8}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":5}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":19}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":3}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":33}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":39}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":21}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":24}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":18}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":6}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":3}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":67}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":41}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":3}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":20}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":38}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":44}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":13}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":34}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":76}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":3}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":21}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":20}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":38}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":43}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":13}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":34}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":63}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":35}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":18}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":16}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":26}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":15}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":7}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":10}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":3}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":15}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":20}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":38}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":43}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":13}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":34}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":70}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":35}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":76}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":29}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":18}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":16}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":26}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":26}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":9}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":26}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":71}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":8}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":3}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":1}}},"s":{"12":1,"13":1,"32":1,"55":1,"56":9,"57":9,"58":9,"59":9,"60":9,"61":9,"62":9,"63":9,"64":9,"65":9,"66":9,"67":9,"68":9,"69":9,"70":9,"71":9,"72":9,"73":9,"74":9,"75":9,"84":1,"85":108,"86":10,"87":10,"88":10,"89":10,"90":98,"91":108,"97":1,"98":9,"99":9,"100":9,"101":9,"102":9,"103":9,"110":1,"111":546,"112":546,"120":1,"121":51,"122":51,"123":51,"124":51,"125":51,"126":51,"135":1,"136":25,"137":25,"138":25,"139":25,"140":25,"141":25,"142":21,"143":21,"144":21,"145":21,"146":21,"147":21,"148":2,"149":25,"158":1,"159":11,"160":11,"161":11,"162":11,"163":11,"164":11,"165":11,"166":8,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":11,"177":1},"branchMap":{"0":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":2},"end":{"line":76,"column":3}},"locations":[{"start":{"line":56,"column":2},"end":{"line":76,"column":3}}]},"1":{"type":"branch","line":74,"loc":{"start":{"line":74,"column":26},"end":{"line":74,"column":54}},"locations":[{"start":{"line":74,"column":26},"end":{"line":74,"column":54}}]},"2":{"type":"branch","line":75,"loc":{"start":{"line":75,"column":16},"end":{"line":75,"column":26}},"locations":[{"start":{"line":75,"column":16},"end":{"line":75,"column":26}}]},"3":{"type":"branch","line":85,"loc":{"start":{"line":85,"column":2},"end":{"line":92,"column":3}},"locations":[{"start":{"line":85,"column":2},"end":{"line":92,"column":3}}]},"4":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":91},"end":{"line":90,"column":5}},"locations":[{"start":{"line":86,"column":91},"end":{"line":90,"column":5}}]},"5":{"type":"branch","line":90,"loc":{"start":{"line":90,"column":4},"end":{"line":91,"column":19}},"locations":[{"start":{"line":90,"column":4},"end":{"line":91,"column":19}}]},"6":{"type":"branch","line":98,"loc":{"start":{"line":98,"column":2},"end":{"line":104,"column":3}},"locations":[{"start":{"line":98,"column":2},"end":{"line":104,"column":3}}]},"7":{"type":"branch","line":111,"loc":{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},"locations":[{"start":{"line":111,"column":2},"end":{"line":113,"column":3}}]},"8":{"type":"branch","line":121,"loc":{"start":{"line":121,"column":2},"end":{"line":127,"column":3}},"locations":[{"start":{"line":121,"column":2},"end":{"line":127,"column":3}}]},"9":{"type":"branch","line":136,"loc":{"start":{"line":136,"column":2},"end":{"line":150,"column":3}},"locations":[{"start":{"line":136,"column":2},"end":{"line":150,"column":3}}]},"10":{"type":"branch","line":142,"loc":{"start":{"line":142,"column":62},"end":{"line":148,"column":7}},"locations":[{"start":{"line":142,"column":62},"end":{"line":148,"column":7}}]},"11":{"type":"branch","line":148,"loc":{"start":{"line":148,"column":6},"end":{"line":149,"column":10}},"locations":[{"start":{"line":148,"column":6},"end":{"line":149,"column":10}}]},"12":{"type":"branch","line":159,"loc":{"start":{"line":159,"column":2},"end":{"line":177,"column":3}},"locations":[{"start":{"line":159,"column":2},"end":{"line":177,"column":3}}]},"13":{"type":"branch","line":166,"loc":{"start":{"line":166,"column":21},"end":{"line":167,"column":76}},"locations":[{"start":{"line":166,"column":21},"end":{"line":167,"column":76}}]},"14":{"type":"branch","line":167,"loc":{"start":{"line":167,"column":75},"end":{"line":176,"column":8}},"locations":[{"start":{"line":167,"column":75},"end":{"line":176,"column":8}}]}},"b":{"0":[9],"1":[7],"2":[7],"3":[108],"4":[10],"5":[98],"6":[9],"7":[546],"8":[51],"9":[25],"10":[21],"11":[2],"12":[11],"13":[8],"14":[1]},"fnMap":{"0":{"name":"Loan","decl":{"start":{"line":56,"column":2},"end":{"line":76,"column":3}},"loc":{"start":{"line":56,"column":2},"end":{"line":76,"column":3}},"line":56},"1":{"name":"validatePayment","decl":{"start":{"line":85,"column":2},"end":{"line":92,"column":3}},"loc":{"start":{"line":85,"column":2},"end":{"line":92,"column":3}},"line":85},"2":{"name":"calculateMinPayment","decl":{"start":{"line":98,"column":2},"end":{"line":104,"column":3}},"loc":{"start":{"line":98,"column":2},"end":{"line":104,"column":3}},"line":98},"3":{"name":"accrueInterest","decl":{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},"loc":{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},"line":111},"4":{"name":"numPaymentsToZero","decl":{"start":{"line":121,"column":2},"end":{"line":127,"column":3}},"loc":{"start":{"line":121,"column":2},"end":{"line":127,"column":3}},"line":121},"5":{"name":"principalRemaining","decl":{"start":{"line":136,"column":2},"end":{"line":150,"column":3}},"loc":{"start":{"line":136,"column":2},"end":{"line":150,"column":3}},"line":136},"6":{"name":"interestPaid","decl":{"start":{"line":159,"column":2},"end":{"line":177,"column":3}},"loc":{"start":{"line":159,"column":2},"end":{"line":177,"column":3}},"line":159}},"f":{"0":9,"1":108,"2":9,"3":546,"4":51,"5":25,"6":11}}
|
|
6
6
|
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/paymentTypes.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/paymentTypes.ts","all":false,"statementMap":{},"s":{},"branchMap":{},"b":{},"fnMap":{},"f":{}}
|
|
7
|
-
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/payments.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/payments.ts","all":false,"statementMap":{"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":35}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":38}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":17}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":17}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":11}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":39}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":77}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":5}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":4}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":90}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":40}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":76}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":6}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":3}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":35}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":1}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":35}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":13}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":22}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":24}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":25}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":11}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":17}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":23}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":72}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":14}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":54}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":3}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":1}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":33}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":13}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":20}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":18}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":22}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":26}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":23}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":25}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":25}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":30}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":3}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":42}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":29}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":50}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":3}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":37}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":56}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":56}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":71}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":41}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":33}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":29}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":40}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":24}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":6}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":46}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":31}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":39}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":37}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":35}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":25}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":7}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":3}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":30}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":1}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":25}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":16}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":18}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":32}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":25}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":31}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":51}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":53}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":27}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":32}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":26}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":45}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":30}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":6}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":59}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":5}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":25}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":20}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":32}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":33}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":59}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":36}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":48}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":28}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":28}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":68}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":78}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":53}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":23}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":34}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":6}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":56}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":16}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":34}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":23}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":19}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":20}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":6}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":56}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":35}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":25}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":25}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":35}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":35}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":37}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":27}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":27}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":37}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":9}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":7}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":58}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":60}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":35}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":6}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":33}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":35}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":35}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":6}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":19}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":24}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":45}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":6}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":53}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":70}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":53}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":13}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":31}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":24}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":17}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":23}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":33}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":28}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":35}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":12}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":10}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":23}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":42}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":20}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":27}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":34}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":24}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":14}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":8}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":55}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":57}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":33}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":8}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":78}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":63}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":66}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":10}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":44}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":13}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":35}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":73}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":70}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":31}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":42}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":52}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":11}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":20}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":9}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":57}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":15}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":29}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":64}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":27}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":7}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":35}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":3}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":29}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":34}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":59}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":73}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":9}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":7}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":69}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":64}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":50}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":50}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":3}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":28}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":44}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":46}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":51}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":4}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":25}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":1}}},"s":{"6":1,"23":1,"24":8,"25":8,"26":8,"27":8,"28":8,"29":8,"30":8,"32":8,"33":1,"34":1,"35":1,"36":1,"37":7,"38":7,"50":1,"51":6,"52":6,"53":6,"54":6,"55":6,"56":6,"57":6,"58":3,"59":6,"60":3,"61":6,"62":6,"76":1,"77":13,"78":13,"79":13,"80":13,"81":13,"82":13,"83":13,"84":13,"85":1,"86":1,"87":13,"89":13,"90":1,"91":1,"93":13,"95":13,"96":13,"97":540,"98":540,"99":540,"100":13,"101":540,"102":540,"103":540,"104":540,"105":540,"106":540,"107":540,"108":540,"109":540,"110":540,"111":540,"112":13,"113":13,"125":1,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":2,"134":6,"135":6,"136":6,"137":6,"138":6,"139":6,"140":2,"142":2,"143":2,"144":2,"145":2,"146":2,"148":2,"149":6,"150":6,"151":6,"152":6,"153":6,"154":6,"155":6,"156":6,"157":6,"158":6,"159":6,"160":6,"161":6,"162":6,"163":6,"164":6,"165":6,"166":6,"167":6,"168":6,"169":6,"170":6,"171":6,"172":6,"173":6,"174":6,"175":6,"176":6,"178":6,"179":6,"180":6,"181":6,"182":6,"183":6,"184":6,"185":6,"186":6,"187":6,"188":3,"189":6,"191":6,"192":6,"193":6,"194":6,"195":6,"196":6,"197":6,"198":6,"199":6,"200":6,"201":6,"202":6,"203":6,"204":6,"205":6,"206":4,"207":4,"208":4,"209":4,"210":6,"211":6,"212":6,"213":6,"214":6,"215":6,"217":6,"218":146,"219":146,"220":146,"221":146,"222":100,"223":100,"224":100,"225":100,"226":100,"227":100,"228":100,"229":100,"230":46,"231":6,"233":6,"234":6,"235":6,"236":6,"237":6,"238":6,"240":6,"241":6,"243":2,"244":6,"245":6,"246":6,"247":6,"248":6,"250":6,"251":6,"252":6,"253":6,"254":6,"256":2,"257":2,"258":2,"259":2,"260":2,"262":2,"263":2},"branchMap":{"0":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":7},"end":{"line":39,"column":1}},"locations":[{"start":{"line":24,"column":7},"end":{"line":39,"column":1}}]},"1":{"type":"branch","line":33,"loc":{"start":{"line":33,"column":89},"end":{"line":37,"column":3}},"locations":[{"start":{"line":33,"column":89},"end":{"line":37,"column":3}}]},"2":{"type":"branch","line":37,"loc":{"start":{"line":37,"column":2},"end":{"line":39,"column":1}},"locations":[{"start":{"line":37,"column":2},"end":{"line":39,"column":1}}]},"3":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":4},"end":{"line":29,"column":77}},"locations":[{"start":{"line":29,"column":4},"end":{"line":29,"column":77}}]},"4":{"type":"branch","line":51,"loc":{"start":{"line":51,"column":7},"end":{"line":63,"column":1}},"locations":[{"start":{"line":51,"column":7},"end":{"line":63,"column":1}}]},"5":{"type":"branch","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":59,"column":72}},"locations":[{"start":{"line":58,"column":4},"end":{"line":59,"column":72}}]},"6":{"type":"branch","line":60,"loc":{"start":{"line":60,"column":6},"end":{"line":61,"column":54}},"locations":[{"start":{"line":60,"column":6},"end":{"line":61,"column":54}}]},"7":{"type":"branch","line":77,"loc":{"start":{"line":77,"column":7},"end":{"line":114,"column":1}},"locations":[{"start":{"line":77,"column":7},"end":{"line":114,"column":1}}]},"8":{"type":"branch","line":85,"loc":{"start":{"line":85,"column":24},"end":{"line":87,"column":3}},"locations":[{"start":{"line":85,"column":24},"end":{"line":87,"column":3}}]},"9":{"type":"branch","line":90,"loc":{"start":{"line":90,"column":28},"end":{"line":92,"column":3}},"locations":[{"start":{"line":90,"column":28},"end":{"line":92,"column":3}}]},"10":{"type":"branch","line":97,"loc":{"start":{"line":97,"column":55},"end":{"line":112,"column":3}},"locations":[{"start":{"line":97,"column":55},"end":{"line":112,"column":3}}]},"11":{"type":"branch","line":100,"loc":{"start":{"line":100,"column":32},"end":{"line":101,"column":29}},"locations":[{"start":{"line":100,"column":32},"end":{"line":101,"column":29}}]},"12":{"type":"branch","line":101,"loc":{"start":{"line":101,"column":20},"end":{"line":102,"column":21}},"locations":[{"start":{"line":101,"column":20},"end":{"line":102,"column":21}}]},"13":{"type":"branch","line":126,"loc":{"start":{"line":126,"column":7},"end":{"line":264,"column":1}},"locations":[{"start":{"line":126,"column":7},"end":{"line":264,"column":1}}]},"14":{"type":"branch","line":149,"loc":{"start":{"line":149,"column":35},"end":{"line":242,"column":3}},"locations":[{"start":{"line":149,"column":35},"end":{"line":242,"column":3}}]},"15":{"type":"branch","line":188,"loc":{"start":{"line":188,"column":23},"end":{"line":190,"column":5}},"locations":[{"start":{"line":188,"column":23},"end":{"line":190,"column":5}}]},"16":{"type":"branch","line":244,"loc":{"start":{"line":244,"column":28},"end":{"line":255,"column":3}},"locations":[{"start":{"line":244,"column":28},"end":{"line":255,"column":3}}]},"17":{"type":"branch","line":134,"loc":{"start":{"line":134,"column":16},"end":{"line":141,"column":3}},"locations":[{"start":{"line":134,"column":16},"end":{"line":141,"column":3}}]},"18":{"type":"branch","line":192,"loc":{"start":{"line":192,"column":35},"end":{"line":239,"column":5}},"locations":[{"start":{"line":192,"column":35},"end":{"line":239,"column":5}}]},"19":{"type":"branch","line":206,"loc":{"start":{"line":206,"column":19},"end":{"line":211,"column":12}},"locations":[{"start":{"line":206,"column":19},"end":{"line":211,"column":12}}]},"20":{"type":"branch","line":211,"loc":{"start":{"line":211,"column":8},"end":{"line":211,"column":14}},"locations":[{"start":{"line":211,"column":8},"end":{"line":211,"column":14}}]},"21":{"type":"branch","line":218,"loc":{"start":{"line":218,"column":64},"end":{"line":232,"column":7}},"locations":[{"start":{"line":218,"column":64},"end":{"line":232,"column":7}}]},"22":{"type":"branch","line":222,"loc":{"start":{"line":222,"column":39},"end":{"line":230,"column":11}},"locations":[{"start":{"line":222,"column":39},"end":{"line":230,"column":11}}]},"23":{"type":"branch","line":230,"loc":{"start":{"line":230,"column":10},"end":{"line":231,"column":20}},"locations":[{"start":{"line":230,"column":10},"end":{"line":231,"column":20}}]},"24":{"type":"branch","line":220,"loc":{"start":{"line":220,"column":10},"end":{"line":220,"column":66}},"locations":[{"start":{"line":220,"column":10},"end":{"line":220,"column":66}}]},"25":{"type":"branch","line":247,"loc":{"start":{"line":247,"column":8},"end":{"line":247,"column":73}},"locations":[{"start":{"line":247,"column":8},"end":{"line":247,"column":73}}]}},"b":{"0":[8],"1":[1],"2":[7],"3":[18],"4":[6],"5":[3],"6":[3],"7":[13],"8":[1],"9":[1],"10":[540],"11":[13],"12":[527],"13":[2],"14":[6],"15":[3],"16":[6],"17":[6],"18":[6],"19":[4],"20":[2],"21":[146],"22":[100],"23":[46],"24":[1309],"25":[359]},"fnMap":{"0":{"name":"determineExtraPayment","decl":{"start":{"line":24,"column":7},"end":{"line":39,"column":1}},"loc":{"start":{"line":24,"column":7},"end":{"line":39,"column":1}},"line":24},"1":{"name":"determineCarryover","decl":{"start":{"line":51,"column":7},"end":{"line":63,"column":1}},"loc":{"start":{"line":51,"column":7},"end":{"line":63,"column":1}},"line":51},"2":{"name":"amortizePayments","decl":{"start":{"line":77,"column":7},"end":{"line":114,"column":1}},"loc":{"start":{"line":77,"column":7},"end":{"line":114,"column":1}},"line":77},"3":{"name":"payLoans","decl":{"start":{"line":126,"column":7},"end":{"line":264,"column":1}},"loc":{"start":{"line":126,"column":7},"end":{"line":264,"column":1}},"line":126}},"f":{"0":8,"1":6,"2":13,"3":2}}
|
|
7
|
+
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/payments.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/payments.ts","all":false,"statementMap":{"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":35}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":38}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":17}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":17}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":11}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":39}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":77}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":5}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":4}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":90}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":40}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":76}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":6}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":3}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":35}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":1}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":35}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":13}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":22}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":27}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":25}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":11}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":17}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":23}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":75}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":12}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":57}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":3}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":1}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":33}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":13}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":20}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":18}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":22}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":26}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":23}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":25}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":25}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":30}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":3}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":42}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":29}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":50}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":3}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":37}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":56}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":56}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":71}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":41}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":33}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":29}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":40}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":24}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":6}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":46}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":31}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":39}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":37}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":35}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":25}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":7}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":3}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":30}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":1}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":25}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":16}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":18}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":32}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":25}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":31}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":51}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":53}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":27}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":32}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":26}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":45}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":30}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":6}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":59}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":5}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":25}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":20}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":32}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":33}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":59}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":36}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":48}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":28}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":28}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":68}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":78}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":53}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":23}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":34}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":6}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":56}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":16}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":34}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":23}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":19}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":20}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":6}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":34}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":35}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":25}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":25}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":35}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":35}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":37}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":27}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":27}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":37}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":9}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":6}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":58}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":60}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":35}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":6}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":33}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":35}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":35}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":6}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":19}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":24}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":45}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":6}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":53}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":70}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":53}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":13}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":31}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":24}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":17}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":23}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":33}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":28}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":35}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":12}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":10}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":23}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":42}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":20}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":27}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":32}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":24}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":14}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":8}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":55}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":57}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":33}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":8}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":78}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":63}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":66}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":10}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":44}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":13}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":35}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":73}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":70}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":31}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":42}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":52}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":11}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":20}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":9}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":57}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":15}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":29}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":64}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":27}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":7}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":35}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":3}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":29}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":34}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":59}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":73}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":9}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":7}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":69}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":64}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":50}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":50}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":3}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":28}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":44}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":46}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":51}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":4}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":25}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":1}}},"s":{"6":1,"23":1,"24":8,"25":8,"26":8,"27":8,"28":8,"29":8,"30":8,"32":8,"33":1,"34":1,"35":1,"36":1,"37":7,"38":7,"50":1,"51":6,"52":6,"53":6,"54":6,"55":6,"56":6,"57":6,"58":3,"59":6,"60":3,"61":6,"62":6,"76":1,"77":13,"78":13,"79":13,"80":13,"81":13,"82":13,"83":13,"84":13,"85":1,"86":1,"87":13,"89":13,"90":1,"91":1,"93":13,"95":13,"96":13,"97":539,"98":539,"99":539,"100":13,"101":539,"102":539,"103":539,"104":539,"105":539,"106":539,"107":539,"108":539,"109":539,"110":539,"111":539,"112":13,"113":13,"125":1,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":2,"134":6,"135":6,"136":6,"137":6,"138":6,"139":6,"140":2,"142":2,"143":2,"144":2,"145":2,"146":2,"148":2,"149":6,"150":6,"151":6,"152":6,"153":6,"154":6,"155":6,"156":6,"157":6,"158":6,"159":6,"160":6,"161":6,"162":6,"163":6,"164":6,"165":6,"166":6,"167":6,"168":6,"169":6,"170":6,"171":6,"172":6,"173":6,"174":6,"175":6,"176":6,"177":6,"178":6,"179":6,"180":6,"181":6,"182":6,"183":6,"184":6,"185":6,"186":6,"187":3,"188":6,"190":6,"191":6,"192":6,"193":6,"194":6,"195":6,"196":6,"197":6,"198":6,"199":6,"200":6,"201":6,"202":6,"203":6,"204":6,"205":4,"206":4,"207":4,"208":4,"209":6,"210":6,"211":6,"212":6,"213":6,"214":6,"216":6,"217":145,"218":145,"219":145,"220":145,"221":99,"222":99,"223":99,"224":99,"225":99,"226":99,"227":99,"228":99,"229":46,"230":6,"232":6,"233":6,"234":6,"235":6,"236":6,"237":6,"239":6,"240":6,"242":2,"243":6,"244":6,"245":6,"246":6,"247":6,"249":6,"250":6,"251":6,"252":6,"253":6,"255":2,"256":2,"257":2,"258":2,"259":2,"261":2,"262":2},"branchMap":{"0":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":7},"end":{"line":39,"column":1}},"locations":[{"start":{"line":24,"column":7},"end":{"line":39,"column":1}}]},"1":{"type":"branch","line":33,"loc":{"start":{"line":33,"column":89},"end":{"line":37,"column":3}},"locations":[{"start":{"line":33,"column":89},"end":{"line":37,"column":3}}]},"2":{"type":"branch","line":37,"loc":{"start":{"line":37,"column":2},"end":{"line":39,"column":1}},"locations":[{"start":{"line":37,"column":2},"end":{"line":39,"column":1}}]},"3":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":4},"end":{"line":29,"column":77}},"locations":[{"start":{"line":29,"column":4},"end":{"line":29,"column":77}}]},"4":{"type":"branch","line":51,"loc":{"start":{"line":51,"column":7},"end":{"line":63,"column":1}},"locations":[{"start":{"line":51,"column":7},"end":{"line":63,"column":1}}]},"5":{"type":"branch","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":59,"column":75}},"locations":[{"start":{"line":58,"column":4},"end":{"line":59,"column":75}}]},"6":{"type":"branch","line":60,"loc":{"start":{"line":60,"column":4},"end":{"line":61,"column":57}},"locations":[{"start":{"line":60,"column":4},"end":{"line":61,"column":57}}]},"7":{"type":"branch","line":77,"loc":{"start":{"line":77,"column":7},"end":{"line":114,"column":1}},"locations":[{"start":{"line":77,"column":7},"end":{"line":114,"column":1}}]},"8":{"type":"branch","line":85,"loc":{"start":{"line":85,"column":24},"end":{"line":87,"column":3}},"locations":[{"start":{"line":85,"column":24},"end":{"line":87,"column":3}}]},"9":{"type":"branch","line":90,"loc":{"start":{"line":90,"column":28},"end":{"line":92,"column":3}},"locations":[{"start":{"line":90,"column":28},"end":{"line":92,"column":3}}]},"10":{"type":"branch","line":97,"loc":{"start":{"line":97,"column":55},"end":{"line":112,"column":3}},"locations":[{"start":{"line":97,"column":55},"end":{"line":112,"column":3}}]},"11":{"type":"branch","line":100,"loc":{"start":{"line":100,"column":32},"end":{"line":101,"column":29}},"locations":[{"start":{"line":100,"column":32},"end":{"line":101,"column":29}}]},"12":{"type":"branch","line":101,"loc":{"start":{"line":101,"column":20},"end":{"line":102,"column":21}},"locations":[{"start":{"line":101,"column":20},"end":{"line":102,"column":21}}]},"13":{"type":"branch","line":126,"loc":{"start":{"line":126,"column":7},"end":{"line":263,"column":1}},"locations":[{"start":{"line":126,"column":7},"end":{"line":263,"column":1}}]},"14":{"type":"branch","line":149,"loc":{"start":{"line":149,"column":35},"end":{"line":241,"column":3}},"locations":[{"start":{"line":149,"column":35},"end":{"line":241,"column":3}}]},"15":{"type":"branch","line":187,"loc":{"start":{"line":187,"column":23},"end":{"line":189,"column":5}},"locations":[{"start":{"line":187,"column":23},"end":{"line":189,"column":5}}]},"16":{"type":"branch","line":243,"loc":{"start":{"line":243,"column":28},"end":{"line":254,"column":3}},"locations":[{"start":{"line":243,"column":28},"end":{"line":254,"column":3}}]},"17":{"type":"branch","line":134,"loc":{"start":{"line":134,"column":16},"end":{"line":141,"column":3}},"locations":[{"start":{"line":134,"column":16},"end":{"line":141,"column":3}}]},"18":{"type":"branch","line":191,"loc":{"start":{"line":191,"column":35},"end":{"line":238,"column":5}},"locations":[{"start":{"line":191,"column":35},"end":{"line":238,"column":5}}]},"19":{"type":"branch","line":205,"loc":{"start":{"line":205,"column":19},"end":{"line":210,"column":12}},"locations":[{"start":{"line":205,"column":19},"end":{"line":210,"column":12}}]},"20":{"type":"branch","line":210,"loc":{"start":{"line":210,"column":8},"end":{"line":210,"column":14}},"locations":[{"start":{"line":210,"column":8},"end":{"line":210,"column":14}}]},"21":{"type":"branch","line":217,"loc":{"start":{"line":217,"column":64},"end":{"line":231,"column":7}},"locations":[{"start":{"line":217,"column":64},"end":{"line":231,"column":7}}]},"22":{"type":"branch","line":221,"loc":{"start":{"line":221,"column":39},"end":{"line":229,"column":11}},"locations":[{"start":{"line":221,"column":39},"end":{"line":229,"column":11}}]},"23":{"type":"branch","line":229,"loc":{"start":{"line":229,"column":10},"end":{"line":230,"column":20}},"locations":[{"start":{"line":229,"column":10},"end":{"line":230,"column":20}}]},"24":{"type":"branch","line":219,"loc":{"start":{"line":219,"column":10},"end":{"line":219,"column":66}},"locations":[{"start":{"line":219,"column":10},"end":{"line":219,"column":66}}]},"25":{"type":"branch","line":246,"loc":{"start":{"line":246,"column":8},"end":{"line":246,"column":73}},"locations":[{"start":{"line":246,"column":8},"end":{"line":246,"column":73}}]}},"b":{"0":[8],"1":[1],"2":[7],"3":[18],"4":[6],"5":[3],"6":[3],"7":[13],"8":[1],"9":[1],"10":[539],"11":[13],"12":[526],"13":[2],"14":[6],"15":[3],"16":[6],"17":[6],"18":[6],"19":[4],"20":[2],"21":[145],"22":[99],"23":[46],"24":[1283],"25":[358]},"fnMap":{"0":{"name":"determineExtraPayment","decl":{"start":{"line":24,"column":7},"end":{"line":39,"column":1}},"loc":{"start":{"line":24,"column":7},"end":{"line":39,"column":1}},"line":24},"1":{"name":"determineCarryover","decl":{"start":{"line":51,"column":7},"end":{"line":63,"column":1}},"loc":{"start":{"line":51,"column":7},"end":{"line":63,"column":1}},"line":51},"2":{"name":"amortizePayments","decl":{"start":{"line":77,"column":7},"end":{"line":114,"column":1}},"loc":{"start":{"line":77,"column":7},"end":{"line":114,"column":1}},"line":77},"3":{"name":"payLoans","decl":{"start":{"line":126,"column":7},"end":{"line":263,"column":1}},"loc":{"start":{"line":126,"column":7},"end":{"line":263,"column":1}},"line":126}},"f":{"0":8,"1":6,"2":13,"3":2}}
|
|
8
8
|
,"/home/runner/work/moneyfunx/moneyfunx/src/lib/sorting.ts": {"path":"/home/runner/work/moneyfunx/moneyfunx/src/lib/sorting.ts","all":false,"statementMap":{"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":63}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":45}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":1}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":62}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":53}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":1}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":80}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":34}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":1}}},"s":{"18":1,"19":8,"20":8,"28":1,"29":5,"30":5,"38":1,"39":3,"40":3},"branchMap":{"0":{"type":"branch","line":19,"loc":{"start":{"line":19,"column":7},"end":{"line":21,"column":1}},"locations":[{"start":{"line":19,"column":7},"end":{"line":21,"column":1}}]},"1":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":7},"end":{"line":31,"column":1}},"locations":[{"start":{"line":29,"column":7},"end":{"line":31,"column":1}}]},"2":{"type":"branch","line":39,"loc":{"start":{"line":39,"column":7},"end":{"line":41,"column":1}},"locations":[{"start":{"line":39,"column":7},"end":{"line":41,"column":1}}]}},"b":{"0":[8],"1":[5],"2":[3]},"fnMap":{"0":{"name":"avalanche","decl":{"start":{"line":19,"column":7},"end":{"line":21,"column":1}},"loc":{"start":{"line":19,"column":7},"end":{"line":21,"column":1}},"line":19},"1":{"name":"snowball","decl":{"start":{"line":29,"column":7},"end":{"line":31,"column":1}},"loc":{"start":{"line":29,"column":7},"end":{"line":31,"column":1}},"line":29},"2":{"name":"sortLoans","decl":{"start":{"line":39,"column":7},"end":{"line":41,"column":1}},"loc":{"start":{"line":39,"column":7},"end":{"line":41,"column":1}},"line":39}},"f":{"0":8,"1":5,"2":3}}
|
|
9
9
|
}
|
package/coverage/index.html
CHANGED
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2025-02-24T19:
|
|
119
|
+
at 2025-02-24T19:37:19.149Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="prettify.js"></script>
|
|
122
122
|
<script>
|
package/coverage/src/index.html
CHANGED
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2025-02-24T19:
|
|
104
|
+
at 2025-02-24T19:37:19.149Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -136,7 +136,7 @@ export { snowball, avalanche, sortLoans } from './lib/sorting';
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at 2025-02-24T19:
|
|
139
|
+
at 2025-02-24T19:37:19.149Z
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../prettify.js"></script>
|
|
142
142
|
<script>
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
71
71
|
Code coverage generated by
|
|
72
72
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
73
|
-
at 2025-02-24T19:
|
|
73
|
+
at 2025-02-24T19:37:19.149Z
|
|
74
74
|
</div>
|
|
75
75
|
<script src="../../prettify.js"></script>
|
|
76
76
|
<script>
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
94
|
-
at 2025-02-24T19:
|
|
94
|
+
at 2025-02-24T19:37:19.149Z
|
|
95
95
|
</div>
|
|
96
96
|
<script src="../../prettify.js"></script>
|
|
97
97
|
<script>
|
|
@@ -331,7 +331,7 @@ export function numPaymentsToZero(
|
|
|
331
331
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
332
332
|
Code coverage generated by
|
|
333
333
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
334
|
-
at 2025-02-24T19:
|
|
334
|
+
at 2025-02-24T19:37:19.149Z
|
|
335
335
|
</div>
|
|
336
336
|
<script src="../../prettify.js"></script>
|
|
337
337
|
<script>
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
192
192
|
Code coverage generated by
|
|
193
193
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
194
|
-
at 2025-02-24T19:
|
|
194
|
+
at 2025-02-24T19:37:19.149Z
|
|
195
195
|
</div>
|
|
196
196
|
<script src="../../prettify.js"></script>
|
|
197
197
|
<script>
|
|
@@ -352,8 +352,8 @@
|
|
|
352
352
|
<span class="cline-any cline-neutral"> </span>
|
|
353
353
|
<span class="cline-any cline-neutral"> </span>
|
|
354
354
|
<span class="cline-any cline-yes">1x</span>
|
|
355
|
-
<span class="cline-any cline-yes">
|
|
356
|
-
<span class="cline-any cline-yes">
|
|
355
|
+
<span class="cline-any cline-yes">546x</span>
|
|
356
|
+
<span class="cline-any cline-yes">546x</span>
|
|
357
357
|
<span class="cline-any cline-neutral"> </span>
|
|
358
358
|
<span class="cline-any cline-neutral"> </span>
|
|
359
359
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -604,7 +604,7 @@ export class Loan implements ILoan {
|
|
|
604
604
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
605
605
|
Code coverage generated by
|
|
606
606
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
607
|
-
at 2025-02-24T19:
|
|
607
|
+
at 2025-02-24T19:37:19.149Z
|
|
608
608
|
</div>
|
|
609
609
|
<script src="../../prettify.js"></script>
|
|
610
610
|
<script>
|
|
@@ -118,7 +118,7 @@ export type LoanPrincipals = Record<string, number>;
|
|
|
118
118
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
119
|
Code coverage generated by
|
|
120
120
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
121
|
-
at 2025-02-24T19:
|
|
121
|
+
at 2025-02-24T19:37:19.149Z
|
|
122
122
|
</div>
|
|
123
123
|
<script src="../../prettify.js"></script>
|
|
124
124
|
<script>
|
|
@@ -326,8 +326,7 @@
|
|
|
326
326
|
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
327
|
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
328
|
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
331
330
|
<span class="cline-any cline-neutral"> </span>
|
|
332
331
|
<span class="cline-any cline-neutral"> </span>
|
|
333
332
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -424,21 +423,21 @@
|
|
|
424
423
|
<span class="cline-any cline-neutral"> </span>
|
|
425
424
|
<span class="cline-any cline-yes">13x</span>
|
|
426
425
|
<span class="cline-any cline-yes">13x</span>
|
|
427
|
-
<span class="cline-any cline-yes">
|
|
428
|
-
<span class="cline-any cline-yes">
|
|
429
|
-
<span class="cline-any cline-yes">
|
|
426
|
+
<span class="cline-any cline-yes">539x</span>
|
|
427
|
+
<span class="cline-any cline-yes">539x</span>
|
|
428
|
+
<span class="cline-any cline-yes">539x</span>
|
|
430
429
|
<span class="cline-any cline-yes">13x</span>
|
|
431
|
-
<span class="cline-any cline-yes">
|
|
432
|
-
<span class="cline-any cline-yes">
|
|
433
|
-
<span class="cline-any cline-yes">
|
|
434
|
-
<span class="cline-any cline-yes">
|
|
435
|
-
<span class="cline-any cline-yes">
|
|
436
|
-
<span class="cline-any cline-yes">
|
|
437
|
-
<span class="cline-any cline-yes">
|
|
438
|
-
<span class="cline-any cline-yes">
|
|
439
|
-
<span class="cline-any cline-yes">
|
|
440
|
-
<span class="cline-any cline-yes">
|
|
441
|
-
<span class="cline-any cline-yes">
|
|
430
|
+
<span class="cline-any cline-yes">539x</span>
|
|
431
|
+
<span class="cline-any cline-yes">539x</span>
|
|
432
|
+
<span class="cline-any cline-yes">539x</span>
|
|
433
|
+
<span class="cline-any cline-yes">539x</span>
|
|
434
|
+
<span class="cline-any cline-yes">539x</span>
|
|
435
|
+
<span class="cline-any cline-yes">539x</span>
|
|
436
|
+
<span class="cline-any cline-yes">539x</span>
|
|
437
|
+
<span class="cline-any cline-yes">539x</span>
|
|
438
|
+
<span class="cline-any cline-yes">539x</span>
|
|
439
|
+
<span class="cline-any cline-yes">539x</span>
|
|
440
|
+
<span class="cline-any cline-yes">539x</span>
|
|
442
441
|
<span class="cline-any cline-yes">13x</span>
|
|
443
442
|
<span class="cline-any cline-yes">13x</span>
|
|
444
443
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -504,7 +503,6 @@
|
|
|
504
503
|
<span class="cline-any cline-yes">6x</span>
|
|
505
504
|
<span class="cline-any cline-yes">6x</span>
|
|
506
505
|
<span class="cline-any cline-yes">6x</span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
506
|
<span class="cline-any cline-yes">6x</span>
|
|
509
507
|
<span class="cline-any cline-yes">6x</span>
|
|
510
508
|
<span class="cline-any cline-yes">6x</span>
|
|
@@ -545,18 +543,18 @@
|
|
|
545
543
|
<span class="cline-any cline-yes">6x</span>
|
|
546
544
|
<span class="cline-any cline-neutral"> </span>
|
|
547
545
|
<span class="cline-any cline-yes">6x</span>
|
|
548
|
-
<span class="cline-any cline-yes">
|
|
549
|
-
<span class="cline-any cline-yes">
|
|
550
|
-
<span class="cline-any cline-yes">
|
|
551
|
-
<span class="cline-any cline-yes">
|
|
552
|
-
<span class="cline-any cline-yes">
|
|
553
|
-
<span class="cline-any cline-yes">
|
|
554
|
-
<span class="cline-any cline-yes">
|
|
555
|
-
<span class="cline-any cline-yes">
|
|
556
|
-
<span class="cline-any cline-yes">
|
|
557
|
-
<span class="cline-any cline-yes">
|
|
558
|
-
<span class="cline-any cline-yes">
|
|
559
|
-
<span class="cline-any cline-yes">
|
|
546
|
+
<span class="cline-any cline-yes">145x</span>
|
|
547
|
+
<span class="cline-any cline-yes">145x</span>
|
|
548
|
+
<span class="cline-any cline-yes">145x</span>
|
|
549
|
+
<span class="cline-any cline-yes">145x</span>
|
|
550
|
+
<span class="cline-any cline-yes">99x</span>
|
|
551
|
+
<span class="cline-any cline-yes">99x</span>
|
|
552
|
+
<span class="cline-any cline-yes">99x</span>
|
|
553
|
+
<span class="cline-any cline-yes">99x</span>
|
|
554
|
+
<span class="cline-any cline-yes">99x</span>
|
|
555
|
+
<span class="cline-any cline-yes">99x</span>
|
|
556
|
+
<span class="cline-any cline-yes">99x</span>
|
|
557
|
+
<span class="cline-any cline-yes">99x</span>
|
|
560
558
|
<span class="cline-any cline-yes">46x</span>
|
|
561
559
|
<span class="cline-any cline-yes">6x</span>
|
|
562
560
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -637,21 +635,21 @@ export function determineExtraPayment(
|
|
|
637
635
|
*
|
|
638
636
|
* @param {Loan} loan The loan serving as the base for carryover
|
|
639
637
|
* @param {number} loanPayment The payment applied to the loan
|
|
640
|
-
* @param {number}
|
|
638
|
+
* @param {number} loanFinalPayment The (partial) amount of the final payment to the loan
|
|
641
639
|
* @param {boolean} reduceMinimum Flag to reduce the total payment amount by a loan's minimum when that loan is paid off
|
|
642
640
|
* @returns {number} The carryover to apply to the last payment on loan N+1
|
|
643
641
|
*/
|
|
644
642
|
export function determineCarryover(
|
|
645
643
|
loan: Loan,
|
|
646
644
|
loanPayment: number,
|
|
647
|
-
|
|
645
|
+
loanFinalPayment: number,
|
|
648
646
|
reduceMinimum: boolean,
|
|
649
647
|
): number {
|
|
650
648
|
switch (true) {
|
|
651
649
|
case reduceMinimum:
|
|
652
|
-
return Math.max(loanPayment -
|
|
653
|
-
|
|
654
|
-
return Math.max(loanPayment -
|
|
650
|
+
return Math.max(loanPayment - loan.minPayment - loanFinalPayment, 0);
|
|
651
|
+
default:
|
|
652
|
+
return Math.max(loanPayment - loanFinalPayment, 0);
|
|
655
653
|
}
|
|
656
654
|
}
|
|
657
655
|
|
|
@@ -756,7 +754,7 @@ export function payLoans(
|
|
|
756
754
|
periodsToPay,
|
|
757
755
|
periodsElapsed
|
|
758
756
|
);
|
|
759
|
-
const
|
|
757
|
+
const firstLoanFinalPayment =
|
|
760
758
|
firstLoan.principalRemaining(
|
|
761
759
|
periodsToPay - 1,
|
|
762
760
|
firstLoanPayment,
|
|
@@ -767,7 +765,6 @@ export function payLoans(
|
|
|
767
765
|
firstLoanPayment,
|
|
768
766
|
firstLoanPrincipalRemaining
|
|
769
767
|
)
|
|
770
|
-
)
|
|
771
768
|
);
|
|
772
769
|
paymentSchedule[firstLoan.id].amortizationSchedule = [
|
|
773
770
|
...paymentSchedule[firstLoan.id].amortizationSchedule,
|
|
@@ -799,7 +796,7 @@ export function payLoans(
|
|
|
799
796
|
(index === 0 ? determineCarryover(
|
|
800
797
|
firstLoan,
|
|
801
798
|
firstLoanPayment,
|
|
802
|
-
|
|
799
|
+
firstLoanFinalPayment,
|
|
803
800
|
reduceMinimum,
|
|
804
801
|
) : 0)
|
|
805
802
|
);
|
|
@@ -862,7 +859,7 @@ export function payLoans(
|
|
|
862
859
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
863
860
|
Code coverage generated by
|
|
864
861
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
865
|
-
at 2025-02-24T19:
|
|
862
|
+
at 2025-02-24T19:37:19.149Z
|
|
866
863
|
</div>
|
|
867
864
|
<script src="../../prettify.js"></script>
|
|
868
865
|
<script>
|
|
@@ -193,7 +193,7 @@ export function sortLoans(loans: ILoan[], sortFunction: sortFunction): ILoan[] {
|
|
|
193
193
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
194
194
|
Code coverage generated by
|
|
195
195
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
196
|
-
at 2025-02-24T19:
|
|
196
|
+
at 2025-02-24T19:37:19.149Z
|
|
197
197
|
</div>
|
|
198
198
|
<script src="../../prettify.js"></script>
|
|
199
199
|
<script>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "moneyfunx",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.2",
|
|
5
5
|
"description": "MoneyFunx is a small library of functions for financial computations, with a focus on personal finance",
|
|
6
6
|
"main": "build/index.js",
|
|
7
7
|
"types": "build/index.d.ts",
|
package/src/lib/payments.ts
CHANGED
|
@@ -44,21 +44,21 @@ export function determineExtraPayment(
|
|
|
44
44
|
*
|
|
45
45
|
* @param {Loan} loan The loan serving as the base for carryover
|
|
46
46
|
* @param {number} loanPayment The payment applied to the loan
|
|
47
|
-
* @param {number}
|
|
47
|
+
* @param {number} loanFinalPayment The (partial) amount of the final payment to the loan
|
|
48
48
|
* @param {boolean} reduceMinimum Flag to reduce the total payment amount by a loan's minimum when that loan is paid off
|
|
49
49
|
* @returns {number} The carryover to apply to the last payment on loan N+1
|
|
50
50
|
*/
|
|
51
51
|
export function determineCarryover(
|
|
52
52
|
loan: Loan,
|
|
53
53
|
loanPayment: number,
|
|
54
|
-
|
|
54
|
+
loanFinalPayment: number,
|
|
55
55
|
reduceMinimum: boolean,
|
|
56
56
|
): number {
|
|
57
57
|
switch (true) {
|
|
58
58
|
case reduceMinimum:
|
|
59
|
-
return Math.max(loanPayment -
|
|
60
|
-
|
|
61
|
-
return Math.max(loanPayment -
|
|
59
|
+
return Math.max(loanPayment - loan.minPayment - loanFinalPayment, 0);
|
|
60
|
+
default:
|
|
61
|
+
return Math.max(loanPayment - loanFinalPayment, 0);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -163,7 +163,7 @@ export function payLoans(
|
|
|
163
163
|
periodsToPay,
|
|
164
164
|
periodsElapsed
|
|
165
165
|
);
|
|
166
|
-
const
|
|
166
|
+
const firstLoanFinalPayment =
|
|
167
167
|
firstLoan.principalRemaining(
|
|
168
168
|
periodsToPay - 1,
|
|
169
169
|
firstLoanPayment,
|
|
@@ -174,7 +174,6 @@ export function payLoans(
|
|
|
174
174
|
firstLoanPayment,
|
|
175
175
|
firstLoanPrincipalRemaining
|
|
176
176
|
)
|
|
177
|
-
)
|
|
178
177
|
);
|
|
179
178
|
paymentSchedule[firstLoan.id].amortizationSchedule = [
|
|
180
179
|
...paymentSchedule[firstLoan.id].amortizationSchedule,
|
|
@@ -206,7 +205,7 @@ export function payLoans(
|
|
|
206
205
|
(index === 0 ? determineCarryover(
|
|
207
206
|
firstLoan,
|
|
208
207
|
firstLoanPayment,
|
|
209
|
-
|
|
208
|
+
firstLoanFinalPayment,
|
|
210
209
|
reduceMinimum,
|
|
211
210
|
) : 0)
|
|
212
211
|
);
|