ustaxlib.git
13 months agoUpgrade packages. master 2.1.0
Robert Sesek [Sat, 7 Aug 2021 19:55:23 +0000 (15:55 -0400)]
Upgrade packages.

13 months agoAdd support for Form 1098 and the mortgage interest deduction to Schedule A.
Robert Sesek [Fri, 6 Aug 2021 17:04:05 +0000 (13:04 -0400)]
Add support for Form 1098 and the mortgage interest deduction to Schedule A.

This includes the worksheet to calculate the deduction limitation.

18 months agoSet package version to 2.0.0. 2.0.0
Robert Sesek [Fri, 26 Mar 2021 16:16:16 +0000 (12:16 -0400)]
Set package version to 2.0.0.

18 months agoAdd README for fed2021.
Robert Sesek [Sun, 21 Mar 2021 19:29:55 +0000 (15:29 -0400)]
Add README for fed2021.

18 months agoUpdate changelog for 2.0.0.
Robert Sesek [Sun, 21 Mar 2021 19:28:23 +0000 (15:28 -0400)]
Update changelog for 2.0.0.

18 months agoAdd README for fed2020 and update main README.
Robert Sesek [Sun, 21 Mar 2021 19:12:44 +0000 (15:12 -0400)]
Add README for fed2020 and update main README.

18 months agoIntroduce the LineOptions interface and optional ctor param for Line.
Robert Sesek [Sun, 21 Mar 2021 19:05:01 +0000 (15:05 -0400)]
Introduce the LineOptions interface and optional ctor param for Line.

Currently this is used to specify a new FormatType, which can be used by
ustaxviewer to format the value appropriately.

19 months agoAdd support for ISO exercise and disposition of property to Form6251.
Robert Sesek [Sat, 6 Feb 2021 21:54:19 +0000 (16:54 -0500)]
Add support for ISO exercise and disposition of property to Form6251.

19 months agoAdd the initial fed2021 overlay.
Robert Sesek [Fri, 5 Feb 2021 23:37:09 +0000 (18:37 -0500)]
Add the initial fed2021 overlay.

This just contains the inflation-adjusted constants from
Rev. Proc. 2020-45.

19 months agoUpgrade Github CI workflow to use actions/setup-node@v2.
Robert Sesek [Mon, 1 Feb 2021 05:14:10 +0000 (00:14 -0500)]
Upgrade Github CI workflow to use actions/setup-node@v2.

19 months agoUpgrade all packages.
Robert Sesek [Mon, 1 Feb 2021 05:10:57 +0000 (00:10 -0500)]
Upgrade all packages.

19 months agoAdd overlay forms for fed2020.
Robert Sesek [Mon, 1 Feb 2021 04:42:08 +0000 (23:42 -0500)]
Add overlay forms for fed2020.

Form1040 and Schedule3 underwent revisions that required new
implementations. In order to limit the ripple effects of line number
changes, more referenced values were converted to methods for symbolic
reference.

19 months agoMove some computations for Form1040 into methods.
Robert Sesek [Sun, 31 Jan 2021 06:23:05 +0000 (01:23 -0500)]
Move some computations for Form1040 into methods.

Other forms can reference the values by symbolic name rather than line
number using the new SymbolicLine. Thus when Form 1040 changes with
minor line shifts, as it does in 2020, all the dependent forms do not
need to be updated.

20 months agoUse specific reexports from fed2019 into fed2020.
Robert Sesek [Wed, 27 Jan 2021 04:22:09 +0000 (23:22 -0500)]
Use specific reexports from fed2019 into fed2020.

Also annotate which forms will need to be updated for 2020.

23 months agoAdd the fed2020 overlay.
Robert Sesek [Sun, 20 Sep 2020 17:43:45 +0000 (13:43 -0400)]
Add the fed2020 overlay.

The 2020 tax return forms are likely to be quite similar to the 2019
versions, with inflation-adjustments to constant values. To avoid
copy-paste-tweak with the forms, use an overlay: forms with differences
from the previous year can be rewritten, but unchanged ones should just
use the prior year's form.

Constant values are now associated with an overlay TaxReturn class, so
the inflation adjustments do not require new forms.

23 months agoExtract constant values from fed2019 Forms as named definitions.
Robert Sesek [Sun, 2 Aug 2020 16:07:09 +0000 (12:07 -0400)]
Extract constant values from fed2019 Forms as named definitions.

The core/TaxReturn has a new abstract constants property that can be
used to inject values. Forms can then reference the values when
performing computations, without hard-coding them.

This also adds a Literal identify function to core/Math, to make it
easier to find constants that won't vary from year to year.

23 months agoHave isFormT match on derived form types by walking the prototype chain.
Robert Sesek [Sun, 19 Jul 2020 21:58:02 +0000 (17:58 -0400)]
Have isFormT match on derived form types by walking the prototype chain.

23 months agoUpgrade to typescript 4.0.3
Robert Sesek [Sun, 18 Oct 2020 06:20:34 +0000 (02:20 -0400)]
Upgrade to typescript 4.0.3

Also upgrade jest and ts-jest.

23 months agoRemove the need to self-reference Form['lines'] in Form subclasses.
Robert Sesek [Sun, 18 Oct 2020 06:12:59 +0000 (02:12 -0400)]
Remove the need to self-reference Form['lines'] in Form subclasses.

This self-reference is not supported in TypeSciprt 4 (see
https://github.com/microsoft/TypeScript/issues/40315), and it is
unnecessary.

2 years agoUpdate the changelog for 1.1.0.
Robert Sesek [Tue, 22 Sep 2020 15:12:41 +0000 (11:12 -0400)]
Update the changelog for 1.1.0.

2 years agoUse `npx tsc` instead of $PATH-based `tsc` in build.sh.
Robert Sesek [Sat, 19 Sep 2020 20:32:35 +0000 (16:32 -0400)]
Use `npx tsc` instead of $PATH-based `tsc` in build.sh.

2 years agoUpgrade setup-node workflow and specify node v12.
Robert Sesek [Sat, 19 Sep 2020 20:30:29 +0000 (16:30 -0400)]
Upgrade setup-node workflow and specify node v12.

2 years agoUpgrade all packages.
Robert Sesek [Sat, 19 Sep 2020 20:13:15 +0000 (16:13 -0400)]
Upgrade all packages.

2 years agoBump lodash from 4.17.15 to 4.17.19
dependabot[bot] [Mon, 20 Jul 2020 01:39:41 +0000 (01:39 +0000)]
Bump lodash from 4.17.15 to 4.17.19

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoVersion 1.1.0 1.1.0
Robert Sesek [Mon, 13 Jul 2020 20:47:22 +0000 (16:47 -0400)]
Version 1.1.0

2 years agoAdd Schedule A for itemized deductions.
Robert Sesek [Mon, 13 Jul 2020 20:28:41 +0000 (16:28 -0400)]
Add Schedule A for itemized deductions.

2 years agoAdd Form 6251.
Robert Sesek [Mon, 13 Jul 2020 14:50:04 +0000 (10:50 -0400)]
Add Form 6251.

It could probably use a test, but the AMT is super annoying.

2 years agoSed inplace is not great across GNU vs BSD...
Robert Sesek [Sat, 28 Mar 2020 17:40:30 +0000 (13:40 -0400)]
Sed inplace is not great across GNU vs BSD...

2 years agoUpgrade all dependencies.
Robert Sesek [Sat, 28 Mar 2020 17:31:09 +0000 (13:31 -0400)]
Upgrade all dependencies.

2 years agoBump acorn from 6.4.0 to 6.4.1
dependabot[bot] [Sat, 28 Mar 2020 17:19:30 +0000 (17:19 +0000)]
Bump acorn from 6.4.0 to 6.4.1

Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoAdd status badges to README.
Robert Sesek [Sat, 28 Mar 2020 17:16:57 +0000 (13:16 -0400)]
Add status badges to README.

2 years agoGet sed invocation to hopefully work with GNU sed.
Robert Sesek [Sat, 28 Mar 2020 17:13:33 +0000 (13:13 -0400)]
Get sed invocation to hopefully work with GNU sed.

2 years agoAdd ci.yml file to setup GitHub actions.
Robert Sesek [Sat, 28 Mar 2020 17:07:29 +0000 (13:07 -0400)]
Add ci.yml file to setup GitHub actions.

2 years agoAdd a helper script to publish the NPM package.
Robert Sesek [Mon, 23 Mar 2020 22:53:25 +0000 (18:53 -0400)]
Add a helper script to publish the NPM package.

2 years agoUpdate the README with working instructions.
Robert Sesek [Mon, 23 Mar 2020 22:39:13 +0000 (18:39 -0400)]
Update the README with working instructions.

2 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.

2 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...

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

2 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.

2 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.

2 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.

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

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

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

2 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.

2 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.

2 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.

2 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.

2 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.

2 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.

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

2 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.

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

2 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.

2 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.

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

2 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.

2 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.

2 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.

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

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

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

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

2 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.

2 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.

2 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.

2 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.

2 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.

2 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.

2 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.

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

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

2 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.

2 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.

2 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.

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

2 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.

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

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

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

2 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.

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

2 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.

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

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

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

2 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.

2 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.

2 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.

2 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.

2 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.

2 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.

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

2 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.

2 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.

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

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

2 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.

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

2 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.