ustaxlib.git
4 years agoOnly publish the dist/ folder. 1.0.2
Robert Sesek [Mon, 23 Mar 2020 12:51:04 +0000 (08:51 -0400)]
Only publish the dist/ folder.

4 years agoVersion 1.0.1 was fast... 1.0.1
Robert Sesek [Mon, 23 Mar 2020 12:21:33 +0000 (08:21 -0400)]
Version 1.0.1 was fast...

4 years agoInclude examples/ in the package.
Robert Sesek [Mon, 23 Mar 2020 12:18:57 +0000 (08:18 -0400)]
Include examples/ in the package.

4 years agoAdd UnsupportedLine, to formalize a comment convention that exists in fed2019. 1.0.0
Robert Sesek [Mon, 23 Mar 2020 05:36:29 +0000 (01:36 -0400)]
Add UnsupportedLine, to formalize a comment convention that exists in fed2019.

Also adds sumFormLines() to simplify a common operation.

4 years agoMake Form._lines public and remove the accessor.
Robert Sesek [Mon, 23 Mar 2020 04:24:02 +0000 (00:24 -0400)]
Make Form._lines public and remove the accessor.

4 years agoAdd a build script to help create the package.
Robert Sesek [Mon, 23 Mar 2020 04:10:55 +0000 (00:10 -0400)]
Add a build script to help create the package.

NPM "helpfully" uses .gitignore, which excludes dist/, but dist/ needs
to make it into the NPM tarball. Rewrite a line in the copied
package.json to explicitly include the dist/ files.

4 years agoAdd an examples/ directory.
Robert Sesek [Mon, 23 Mar 2020 00:26:18 +0000 (20:26 -0400)]
Add an examples/ directory.

4 years agoAdd READMEs.
Robert Sesek [Mon, 23 Mar 2020 00:23:30 +0000 (20:23 -0400)]
Add READMEs.

4 years agoShorten some worksheet names.
Robert Sesek [Sun, 22 Mar 2020 22:31:43 +0000 (18:31 -0400)]
Shorten some worksheet names.

4 years agoRedo 1099-B to be simplerf for recording adjustments.
Robert Sesek [Sun, 22 Mar 2020 21:46:37 +0000 (17:46 -0400)]
Redo 1099-B to be simplerf for recording adjustments.

This no longer puts adjustments ont Form8949, since doing so required
keeping a reference to the Form1099B. Instead, organize Form1099B as
most brokerages report it, as a composite statement.

4 years agoAdd SALT worksheet for determining taxable amount of refunds.
Robert Sesek [Sun, 22 Mar 2020 20:40:56 +0000 (16:40 -0400)]
Add SALT worksheet for determining taxable amount of refunds.

4 years agoUse '@' to separate form@line references.
Robert Sesek [Sat, 21 Mar 2020 00:15:12 +0000 (20:15 -0400)]
Use '@' to separate form@line references.

4 years agoAdd Form8995 to compute REIT QBI deduction.
Robert Sesek [Thu, 19 Mar 2020 00:22:40 +0000 (20:22 -0400)]
Add Form8995 to compute REIT QBI deduction.

4 years agoFix some remaining bugs in tax computation.
Robert Sesek [Wed, 18 Mar 2020 05:32:03 +0000 (01:32 -0400)]
Fix some remaining bugs in tax computation.

4 years agoFix some bugs in tracing, and add a reset() function.
Robert Sesek [Wed, 18 Mar 2020 04:38:27 +0000 (00:38 -0400)]
Fix some bugs in tracing, and add a reset() function.

4 years agofix
Robert Sesek [Wed, 18 Mar 2020 03:54:29 +0000 (23:54 -0400)]
fix

4 years agoInclude US debt instrument interest as 1040/2b.
Robert Sesek [Tue, 17 Mar 2020 23:30:46 +0000 (19:30 -0400)]
Include US debt instrument interest as 1040/2b.

4 years agoImplement W2.person().
Robert Sesek [Tue, 17 Mar 2020 22:40:42 +0000 (18:40 -0400)]
Implement W2.person().

4 years agoFix bugs in Schedule D and implement the QDCG Tax Worksheet.
Robert Sesek [Tue, 17 Mar 2020 05:47:52 +0000 (01:47 -0400)]
Fix bugs in Schedule D and implement the QDCG Tax Worksheet.

4 years agoInclude exempt interest dividends in 1040-2a.
Robert Sesek [Tue, 17 Mar 2020 03:22:02 +0000 (23:22 -0400)]
Include exempt interest dividends in 1040-2a.

4 years agoSimplify the Trace API further.
Robert Sesek [Tue, 17 Mar 2020 02:52:38 +0000 (22:52 -0400)]
Simplify the Trace API further.

4 years agoRefine Trace to be able to output graphviz-compatible data.
Robert Sesek [Tue, 17 Mar 2020 02:35:21 +0000 (22:35 -0400)]
Refine Trace to be able to output graphviz-compatible data.

4 years agoFirst cut at a Trace system.
Robert Sesek [Sun, 15 Mar 2020 19:19:47 +0000 (15:19 -0400)]
First cut at a Trace system.

4 years agoAdd default 0 for many 1099-* entries.
Robert Sesek [Sun, 15 Mar 2020 01:00:56 +0000 (21:00 -0400)]
Add default 0 for many 1099-* entries.

4 years agoEnsure ScheduleDTaxWorksheet is exported.
Robert Sesek [Sun, 15 Mar 2020 01:00:35 +0000 (21:00 -0400)]
Ensure ScheduleDTaxWorksheet is exported.

4 years agoExport TaxReturn from fed2019.
Robert Sesek [Sat, 14 Mar 2020 12:51:56 +0000 (08:51 -0400)]
Export TaxReturn from fed2019.

4 years agoAdd license information.
Robert Sesek [Sat, 14 Mar 2020 12:50:15 +0000 (08:50 -0400)]
Add license information.

4 years agoAdd a Form1040.filingStatus accessor.
Robert Sesek [Sat, 14 Mar 2020 12:14:59 +0000 (08:14 -0400)]
Add a Form1040.filingStatus accessor.

4 years agoImplement Form.person() on fed2019 forms.
Robert Sesek [Fri, 13 Mar 2020 04:43:28 +0000 (00:43 -0400)]
Implement Form.person() on fed2019 forms.

4 years agoAdd the ability to filter forms by Person.
Robert Sesek [Fri, 13 Mar 2020 04:34:09 +0000 (00:34 -0400)]
Add the ability to filter forms by Person.

4 years agoMake core/TaxReturn an abstract class.
Robert Sesek [Fri, 13 Mar 2020 04:32:37 +0000 (00:32 -0400)]
Make core/TaxReturn an abstract class.

A tax year model will provide the concrete implementation.

4 years agoRemove type test code for TaxReturn.
Robert Sesek [Fri, 13 Mar 2020 04:15:52 +0000 (00:15 -0400)]
Remove type test code for TaxReturn.

4 years agoUse Math helpers in more forms.
Robert Sesek [Tue, 10 Mar 2020 05:17:44 +0000 (01:17 -0400)]
Use Math helpers in more forms.

4 years agoRewrite Form1040.computeTax based off of Revenue Procedure 2018-57.
Robert Sesek [Tue, 10 Mar 2020 04:54:13 +0000 (00:54 -0400)]
Rewrite Form1040.computeTax based off of Revenue Procedure 2018-57.

4 years agoRename FormW2 to just W2.
Robert Sesek [Tue, 10 Mar 2020 04:07:41 +0000 (00:07 -0400)]
Rename FormW2 to just W2.

This matches Schedules.

4 years agoSimplify core imports.
Robert Sesek [Tue, 10 Mar 2020 04:02:54 +0000 (00:02 -0400)]
Simplify core imports.

4 years agoCreate a cheap "build" script.
Robert Sesek [Tue, 10 Mar 2020 03:42:47 +0000 (23:42 -0400)]
Create a cheap "build" script.

4 years agoRestructuring in prep for being a usable package.
Robert Sesek [Mon, 9 Mar 2020 21:55:46 +0000 (17:55 -0400)]
Restructuring in prep for being a usable package.

Moves file modules out of src/*.ts and into src/core, which is now peer
to src/fed2019.

This also adds index.ts re-exports for the modules.

4 years agoAdd a forms accessor to TaxReturn.
Robert Sesek [Sun, 8 Mar 2020 23:07:13 +0000 (19:07 -0400)]
Add a forms accessor to TaxReturn.

4 years agoDo not use the whole Form to describe a ReferenceLine.
Robert Sesek [Sun, 8 Mar 2020 22:27:34 +0000 (18:27 -0400)]
Do not use the whole Form to describe a ReferenceLine.

4 years agoPrepare build as module.
Robert Sesek [Sun, 8 Mar 2020 18:27:01 +0000 (14:27 -0400)]
Prepare build as module.

4 years agoFix bad import for Schedule 2.
Robert Sesek [Sun, 8 Mar 2020 18:26:39 +0000 (14:26 -0400)]
Fix bad import for Schedule 2.

4 years agoAdd Form 8960.
Robert Sesek [Sun, 8 Mar 2020 17:20:18 +0000 (13:20 -0400)]
Add Form 8960.

4 years agoAdd Schedule 3.
Robert Sesek [Sun, 8 Mar 2020 16:07:50 +0000 (12:07 -0400)]
Add Schedule 3.

4 years agoAdd Schedule 1.
Robert Sesek [Sun, 8 Mar 2020 14:25:50 +0000 (10:25 -0400)]
Add Schedule 1.

4 years agoSplit Schedule2 into its own file.
Robert Sesek [Sun, 8 Mar 2020 06:17:52 +0000 (01:17 -0500)]
Split Schedule2 into its own file.

4 years agoAdd Form 1116.
Robert Sesek [Sun, 8 Mar 2020 06:08:29 +0000 (01:08 -0500)]
Add Form 1116.

4 years agoAllow InputLine to specify a fallback value.
Robert Sesek [Sun, 8 Mar 2020 06:02:52 +0000 (01:02 -0500)]
Allow InputLine to specify a fallback value.

4 years agoRemove reduceBySum() to Math.
Robert Sesek [Sun, 8 Mar 2020 02:00:44 +0000 (21:00 -0500)]
Remove reduceBySum() to Math.

4 years agoAdd Form1099R and 8606.
Robert Sesek [Sat, 7 Mar 2020 22:59:52 +0000 (17:59 -0500)]
Add Form1099R and 8606.

4 years agoAdd a test for Form8959.
Robert Sesek [Fri, 28 Feb 2020 04:28:05 +0000 (23:28 -0500)]
Add a test for Form8959.

4 years agoDelete experimental Form2 that was adopted.
Robert Sesek [Sun, 23 Feb 2020 07:31:09 +0000 (02:31 -0500)]
Delete experimental Form2 that was adopted.

4 years agoSimplify uses of ComputedLine to not type the |tr| argument.
Robert Sesek [Sun, 23 Feb 2020 07:29:54 +0000 (02:29 -0500)]
Simplify uses of ComputedLine to not type the |tr| argument.

4 years agoImplement the Schedule D Tax Worksheet.
Robert Sesek [Sun, 23 Feb 2020 07:21:12 +0000 (02:21 -0500)]
Implement the Schedule D Tax Worksheet.

4 years agoUse the original idea for Form8949, which is simpler.
Robert Sesek [Sun, 23 Feb 2020 05:50:23 +0000 (00:50 -0500)]
Use the original idea for Form8949, which is simpler.

4 years agoInitial work on Schedule D, Form 8949, and 1099-B.
Robert Sesek [Sun, 23 Feb 2020 05:02:26 +0000 (00:02 -0500)]
Initial work on Schedule D, Form 8949, and 1099-B.

4 years agoAdd command to run the Node debugger and interactive tests.
Robert Sesek [Sun, 23 Feb 2020 04:43:48 +0000 (23:43 -0500)]
Add command to run the Node debugger and interactive tests.

4 years agoUpgrade Typescript and compiler targets.
Robert Sesek [Sat, 22 Feb 2020 19:36:01 +0000 (14:36 -0500)]
Upgrade Typescript and compiler targets.

4 years agoStrongly type Forms on TaxReturn.
Robert Sesek [Sat, 22 Feb 2020 19:34:12 +0000 (14:34 -0500)]
Strongly type Forms on TaxReturn.

This lets type information be propagated for checking using
ReferenceLine and AccumulatorLine.

Two side effects of this change:

- The lines type is now exposed on Form, so that Line subclasses can use
  the type information.
- ReferenceLines to the same form have to erase the FormClass type.

4 years agoUse the computations from Form 8959 on Schedule 2.
Robert Sesek [Sat, 22 Feb 2020 16:23:08 +0000 (11:23 -0500)]
Use the computations from Form 8959 on Schedule 2.

4 years agoAdd Form 8959.
Robert Sesek [Sat, 22 Feb 2020 06:11:28 +0000 (01:11 -0500)]
Add Form 8959.

4 years agoAdd Form 1040 Schedule 2.
Robert Sesek [Sat, 22 Feb 2020 05:40:11 +0000 (00:40 -0500)]
Add Form 1040 Schedule 2.

4 years agoDrop explicit type parameter in ComputedLine, since it can be inferred.
Robert Sesek [Sat, 22 Feb 2020 05:08:42 +0000 (00:08 -0500)]
Drop explicit type parameter in ComputedLine, since it can be inferred.

4 years agoAdd Form 1099-DIV.
Robert Sesek [Sat, 22 Feb 2020 04:12:34 +0000 (23:12 -0500)]
Add Form 1099-DIV.

4 years agoStart implementing Form 1040 tax calculation.
Robert Sesek [Sat, 22 Feb 2020 03:58:50 +0000 (22:58 -0500)]
Start implementing Form 1040 tax calculation.

4 years agoAdd Form 1099-INT.
Robert Sesek [Fri, 21 Feb 2020 19:23:39 +0000 (14:23 -0500)]
Add Form 1099-INT.

4 years agoRemove id from Line constructor.
Robert Sesek [Fri, 21 Feb 2020 18:28:07 +0000 (13:28 -0500)]
Remove id from Line constructor.

Instead, have the Form set it via its key in _lines.

4 years agoStrongly type Form lines.
Robert Sesek [Fri, 21 Feb 2020 18:15:48 +0000 (13:15 -0500)]
Strongly type Form lines.

This completely rewrites Form so that getLine and getValue are fully
type-checked.

4 years agoAdd more computations for form 1040.
Robert Sesek [Fri, 21 Feb 2020 15:59:16 +0000 (10:59 -0500)]
Add more computations for form 1040.

4 years agoAdd TaxReturn.maybeGetForm<T>()
Robert Sesek [Fri, 21 Feb 2020 15:51:12 +0000 (10:51 -0500)]
Add TaxReturn.maybeGetForm<T>()

4 years agoRevert "Make SupportsMultipleCopies an interface."
Robert Sesek [Fri, 21 Feb 2020 13:34:08 +0000 (08:34 -0500)]
Revert "Make SupportsMultipleCopies an interface."

This reverts commit 26177f7e25370d27e6e2f04857269129a74d1f44.

4 years agoModel most of the first page of 1040.
Robert Sesek [Fri, 21 Feb 2020 13:28:09 +0000 (08:28 -0500)]
Model most of the first page of 1040.

4 years agoAllow ReferenceLine to take a custom description.
Robert Sesek [Fri, 21 Feb 2020 13:27:48 +0000 (08:27 -0500)]
Allow ReferenceLine to take a custom description.

4 years agoFurther improve the typing of InputLine to not require the `as any` cast.
Robert Sesek [Thu, 20 Feb 2020 23:49:58 +0000 (18:49 -0500)]
Further improve the typing of InputLine to not require the `as any` cast.

4 years agoComplete Form W-2 and first few lines of 1040.
Robert Sesek [Thu, 20 Feb 2020 06:23:39 +0000 (01:23 -0500)]
Complete Form W-2 and first few lines of 1040.

4 years agoAdd AccumulatorLine class.
Robert Sesek [Thu, 20 Feb 2020 06:18:51 +0000 (01:18 -0500)]
Add AccumulatorLine class.

4 years agoInputLine needs to take the Form's generic.
Robert Sesek [Thu, 20 Feb 2020 06:08:19 +0000 (01:08 -0500)]
InputLine needs to take the Form's generic.

The refactor in b51c88b40714d3b7183fd593c9e4496ff5dc7162 had failing
tests that was hidden by Jest's cache.

4 years agoStrongly type TaxReturn.getForm{,s}()
Robert Sesek [Thu, 20 Feb 2020 05:08:57 +0000 (00:08 -0500)]
Strongly type TaxReturn.getForm{,s}()

4 years agoAdd Form.getValue()
Robert Sesek [Thu, 20 Feb 2020 04:53:02 +0000 (23:53 -0500)]
Add Form.getValue()

4 years agoMake Person the default export.
Robert Sesek [Thu, 20 Feb 2020 04:52:09 +0000 (23:52 -0500)]
Make Person the default export.

4 years agoMake SupportsMultipleCopies an interface.
Robert Sesek [Thu, 20 Feb 2020 02:29:09 +0000 (21:29 -0500)]
Make SupportsMultipleCopies an interface.

4 years agoMake Form input strongly typed with generics.
Robert Sesek [Wed, 19 Feb 2020 01:32:53 +0000 (20:32 -0500)]
Make Form input strongly typed with generics.

4 years agoMove input from a TaxReturn to a Form.
Robert Sesek [Tue, 18 Feb 2020 05:18:16 +0000 (00:18 -0500)]
Move input from a TaxReturn to a Form.

This also associates every Line to a Form.

4 years agoIntroduce InputLine and the ability to acquire inputs from a TaxReturn.
Robert Sesek [Tue, 18 Feb 2020 05:03:18 +0000 (00:03 -0500)]
Introduce InputLine and the ability to acquire inputs from a TaxReturn.

4 years agoAdd Line.test.ts.
Robert Sesek [Tue, 18 Feb 2020 04:28:34 +0000 (23:28 -0500)]
Add Line.test.ts.

4 years agoRestructure adding Lines to Forms.
Robert Sesek [Tue, 18 Feb 2020 04:05:38 +0000 (23:05 -0500)]
Restructure adding Lines to Forms.

4 years agoStart modeling Line, Form and their relation to TaxReturn.
Robert Sesek [Tue, 18 Feb 2020 03:57:49 +0000 (22:57 -0500)]
Start modeling Line, Form and their relation to TaxReturn.

4 years agoEnable Jest code coverage and use ES7 compiler.
Robert Sesek [Tue, 18 Feb 2020 03:57:20 +0000 (22:57 -0500)]
Enable Jest code coverage and use ES7 compiler.

4 years agoBegin defining a TaxReturn and Person model.
Robert Sesek [Mon, 17 Feb 2020 22:17:10 +0000 (17:17 -0500)]
Begin defining a TaxReturn and Person model.

4 years agoSkeleton project with Jest and TypeScript.
Robert Sesek [Mon, 17 Feb 2020 20:56:12 +0000 (15:56 -0500)]
Skeleton project with Jest and TypeScript.