ustaxlib.git
4 months agoUpdate the changelog for 1.1.0. master
Robert Sesek [Tue, 22 Sep 2020 15:12:41 +0000 (11:12 -0400)]
Update the changelog for 1.1.0.

4 months 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.

4 months 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.

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

4 months 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>
6 months agoVersion 1.1.0 1.1.0
Robert Sesek [Mon, 13 Jul 2020 20:47:22 +0000 (16:47 -0400)]
Version 1.1.0

6 months 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.

6 months 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.

9 months 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...

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

9 months 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>
9 months agoAdd status badges to README.
Robert Sesek [Sat, 28 Mar 2020 17:16:57 +0000 (13:16 -0400)]
Add status badges to README.

9 months 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.

9 months 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.

10 months 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.

10 months 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.

10 months 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.

10 months 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...

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

10 months 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.

10 months 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.

10 months 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.

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

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

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

10 months 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.

10 months 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.

10 months 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.

10 months 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.

10 months 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.

10 months 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.

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

10 months 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.

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

10 months 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.

10 months 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.

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

10 months 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.

10 months 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.

10 months 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.

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

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

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

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

10 months 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.

10 months 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.

10 months 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.

10 months 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.

10 months 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.

10 months 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.

10 months 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.

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

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

10 months 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.

10 months 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.

10 months 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.

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

10 months 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.

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

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

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

10 months 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.

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

10 months 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.

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

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

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

11 months 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.

11 months 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.

11 months 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.

11 months 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.

11 months 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.

11 months 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.

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

11 months 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.

11 months 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.

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

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

11 months 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.

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

11 months 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.

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

11 months 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.

11 months 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.

11 months 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.

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

11 months 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.

11 months 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.

11 months 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.

11 months 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.

11 months 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.

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

11 months 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.

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

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

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

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

11 months 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.

11 months 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.

11 months 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.