preset: 'ts-jest',
testEnvironment: 'node',
collectCoverage: true,
- collectCoverageFrom: ['src/**/*.ts'],
+ collectCoverageFrom: [
+ '**/*.ts',
+ '!dist/**/*'
+ ],
testPathIgnorePatterns: [
'/node_modules/',
'/dist/'
"name": "ustaxlib",
"version": "0.1.0",
"description": "A library for modeling individual US tax returns.",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
"scripts": {
"dev": "jest --watch",
"test": "jest",
--- /dev/null
+export { Line } from './Line';
+export { default as Form } from './Form';
+export { default as Person } from './Person';
+export { default as TaxReturn } from './TaxReturn';
-import Person from '../Person';
-import TaxReturn from '../TaxReturn';
-import { NotFoundError } from '../Errors';
+import { Person } from '../core';
+import { TaxReturn } from '../core';
+import { NotFoundError } from '../core/Errors';
import Form1040, { FilingStatus } from './Form1040';
import Form1099DIV from './Form1099DIV';
-import Form, { FormClass } from '../Form';
-import TaxReturn from '../TaxReturn';
-import { Line, AccumulatorLine, ComputedLine, ReferenceLine, sumLineOfForms } from '../Line';
-import { UnsupportedFeatureError } from '../Errors';
-import { reduceBySum } from '../Math';
+import Form, { FormClass } from '../core/Form';
+import { TaxReturn } from '../core';
+import { Line, AccumulatorLine, ComputedLine, ReferenceLine, sumLineOfForms } from '../core/Line';
+import { UnsupportedFeatureError } from '../core/Errors';
+import { reduceBySum } from '../core/Math';
import Form8606 from './Form8606';
import Form8959 from './Form8959';
-import Form from '../Form';
-import Person from '../Person';
-import TaxReturn from '../TaxReturn';
-import { InputLine } from '../Line';
+import { Form } from '../core';
+import { Person } from '../core';
+import { TaxReturn } from '../core';
+import { InputLine } from '../core/Line';
export enum GainType {
ShortTerm = 'ST',
-import Form from '../Form';
-import { InputLine } from '../Line';
-import Person from '../Person';
+import { Form } from '../core';
+import { InputLine } from '../core/Line';
+import { Person } from '../core';
export interface Form1099DIVInput {
payer: string;
-import Form from '../Form';
-import { InputLine } from '../Line';
-import Person from '../Person';
+import { Form } from '../core';
+import { InputLine } from '../core/Line';
+import { Person } from '../core';
export interface Form1099INTInput {
payer: string;
-import Form from '../Form';
-import Person from '../Person';
-import TaxReturn from '../TaxReturn';
-import { InputLine } from '../Line';
+import { Form } from '../core';
+import { Person } from '../core';
+import { TaxReturn } from '../core';
+import { InputLine } from '../core/Line';
export enum Box7Code {
_1 = '1', // Early distribution, no known exception
-import TaxReturn from '../TaxReturn';
-import Person from '../Person';
-import { UnsupportedFeatureError } from '../Errors';
+import { TaxReturn } from '../core';
+import { Person } from '../core';
+import { UnsupportedFeatureError } from '../core/Errors';
import Form1040, { FilingStatus } from './Form1040';
import Form1116, { ForeignIncomeCategory } from './Form1116';
-import Form from '../Form';
-import TaxReturn from '../TaxReturn';
-import Person from '../Person';
-import { ComputedLine, InputLine, ReferenceLine } from '../Line';
-import { UnsupportedFeatureError } from '../Errors';
-import { reduceBySum } from '../Math';
+import { Form } from '../core';
+import { TaxReturn } from '../core';
+import { Person } from '../core';
+import { ComputedLine, InputLine, ReferenceLine } from '../core/Line';
+import { UnsupportedFeatureError } from '../core/Errors';
+import { reduceBySum } from '../core/Math';
import Form1040 from './Form1040';
import Form8949 from './Form8949';
-import TaxReturn from '../TaxReturn';
-import Person from '../Person';
+import { TaxReturn } from '../core';
+import { Person } from '../core';
import Form1040, { FilingStatus } from './Form1040';
import Form8606 from './Form8606';
-import Form from '../Form';
-import TaxReturn from '../TaxReturn';
-import Person from '../Person';
-import { Line, AccumulatorLine, ComputedLine, InputLine, ReferenceLine } from '../Line';
-import { clampToZero } from '../Math';
+import { Form } from '../core';
+import { TaxReturn } from '../core';
+import { Person } from '../core';
+import { Line, AccumulatorLine, ComputedLine, InputLine, ReferenceLine } from '../core/Line';
+import { clampToZero } from '../core/Math';
export interface Form8606Input {
person: Person;
-import TaxReturn from '../TaxReturn';
-import Person from '../Person';
+import { TaxReturn } from '../core';
+import { Person } from '../core';
import Form1040, { FilingStatus } from './Form1040';
import Form1099B, { GainType } from './Form1099B';
-import Form from '../Form';
-import Person from '../Person';
-import TaxReturn from '../TaxReturn';
-import { Line, InputLine, ComputedLine, sumLineOfForms } from '../Line';
+import { Form } from '../core';
+import { Person } from '../core';
+import { TaxReturn } from '../core';
+import { Line, InputLine, ComputedLine, sumLineOfForms } from '../core/Line';
import Form1099B, { GainType } from './Form1099B';
-import Person from '../Person';
-import TaxReturn from '../TaxReturn';
+import { Person } from '../core';
+import { TaxReturn } from '../core';
import FormW2 from './FormW2';
import Form8959 from './Form8959';
-import Form from '../Form';
-import TaxReturn from '../TaxReturn';
-import { Line, AccumulatorLine, ComputedLine, ReferenceLine } from '../Line';
-import { clampToZero } from '../Math';
+import { Form } from '../core';
+import { TaxReturn } from '../core';
+import { Line, AccumulatorLine, ComputedLine, ReferenceLine } from '../core/Line';
+import { clampToZero } from '../core/Math';
import Form1040, { FilingStatus } from './Form1040';
import FormW2 from './FormW2';
-import Person from '../Person';
-import TaxReturn from '../TaxReturn';
+import { Person } from '../core';
+import { TaxReturn } from '../core';
import FormW2 from './FormW2';
import Form1040, { FilingStatus } from './Form1040';
-import Form from '../Form';
-import TaxReturn from '../TaxReturn';
-import { ComputedLine, ReferenceLine } from '../Line';
-import { clampToZero } from '../Math';
+import { Form } from '../core';
+import { TaxReturn } from '../core';
+import { ComputedLine, ReferenceLine } from '../core/Line';
+import { clampToZero } from '../core/Math';
import Form1040, { FilingStatus } from './Form1040';
import Schedule1 from './Schedule1';
import W2 from './FormW2';
-import Person from '../Person';
-import TaxReturn from '../TaxReturn';
+import { Person } from '../core';
+import { TaxReturn } from '../core';
test('input', () => {
const p = Person.self('Bob');
-import Form from '../Form';
-import { Line, InputLine } from '../Line';
-import Person from '../Person';
+import { Form } from '../core';
+import { Line, InputLine } from '../core/Line';
+import { Person } from '../core';
export enum Box13 {
StatutoryEmployee,
-import TaxReturn from '../TaxReturn';
-import Person from '../Person';
-import { UnsupportedFeatureError } from '../Errors';
+import { TaxReturn } from '../core';
+import { Person } from '../core';
+import { UnsupportedFeatureError } from '../core/Errors';
import Form1040, { FilingStatus } from './Form1040';
import Schedule1, { Schedule1Input } from './Schedule1';
-import Form from '../Form';
-import TaxReturn from '../TaxReturn';
-import { ComputedLine, InputLine } from '../Line';
-import { NotFoundError, UnsupportedFeatureError } from '../Errors';
-import { undefinedToZero } from '../Math';
+import { Form } from '../core';
+import { TaxReturn } from '../core';
+import { ComputedLine, InputLine } from '../core/Line';
+import { NotFoundError, UnsupportedFeatureError } from '../core/Errors';
+import { undefinedToZero } from '../core/Math';
import Form1040 from './Form1040';
-import Form from '../Form';
-import TaxReturn from '../TaxReturn';
-import { ComputedLine } from '../Line';
-import { UnsupportedFeatureError } from '../Errors';
+import { Form } from '../core';
+import { TaxReturn } from '../core';
+import { ComputedLine } from '../core/Line';
+import { UnsupportedFeatureError } from '../core/Errors';
import Form1040, { FilingStatus } from './Form1040';
import Form1099DIV from './Form1099DIV';
-import TaxReturn from '../TaxReturn';
-import Person from '../Person';
-import { NotFoundError } from '../Errors';
+import { TaxReturn } from '../core';
+import { Person } from '../core';
+import { NotFoundError } from '../core/Errors';
import Form1040, { FilingStatus } from './Form1040';
import Form1099DIV from './Form1099DIV';
-import Form from '../Form';
-import TaxReturn from '../TaxReturn';
-import { AccumulatorLine, ComputedLine, InputLine, ReferenceLine } from '../Line';
-import { NotFoundError, UnsupportedFeatureError } from '../Errors';
+import { Form } from '../core';
+import { TaxReturn } from '../core';
+import { AccumulatorLine, ComputedLine, InputLine, ReferenceLine } from '../core/Line';
+import { NotFoundError, UnsupportedFeatureError } from '../core/Errors';
import Form1040, { FilingStatus } from './Form1040';
import Form1099DIV from './Form1099DIV';
-import Form from '../Form';
-import Person from '../Person';
-import TaxReturn from '../TaxReturn';
-import { Line, AccumulatorLine, ComputedLine, ReferenceLine, sumLineOfForms } from '../Line';
-import { clampToZero } from '../Math';
-import { UnsupportedFeatureError } from '../Errors';
+import { Form } from '../core';
+import { Person } from '../core';
+import { TaxReturn } from '../core';
+import { Line, AccumulatorLine, ComputedLine, ReferenceLine, sumLineOfForms } from '../core/Line';
+import { clampToZero } from '../core/Math';
+import { UnsupportedFeatureError } from '../core/Errors';
import Form8949, { Form8949Box } from './Form8949';
import Form1099DIV from './Form1099DIV';
--- /dev/null
+export { default as Form1040 } from './Form1040';
+export { default as Form1099B } from './Form1099B';
+export { default as Form1099DIV } from './Form1099DIV';
+export { default as Form1099INT } from './Form1099INT';
+export { default as Form1099R } from './Form1099R';
+export { default as Form1116 } from './Form1116';
+export { default as Form8606 } from './Form8606';
+export { default as Form8949 } from './Form8949';
+export { default as Form8959 } from './Form8959';
+export { default as Form8960 } from './Form8960';
+export { default as Schedule1 } from './Schedule1';
+export { default as Schedule2 } from './Schedule2';
+export { default as Schedule3 } from './Schedule3';
+export { default as ScheduleD } from './ScheduleD';
+export { default as W2 } from './FormW2';
+
+export * from './Form1040';
+export * from './Form1099B';
+export * from './Form1099R';
+export * from './Form1116';
+export * from './Form8949';
+export * from './FormW2';
-import Person from './Person';
-import TaxReturn from './TaxReturn';
-
-export { Person, TaxReturn };
+import './core';
+import './fed2019';