@invaro/opentax 0.1.0 → 0.2.0

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.
Files changed (69) hide show
  1. package/README.md +64 -0
  2. package/bundle/http.js +37595 -0
  3. package/bundle/index.js +36289 -0
  4. package/bundle/main.js +45281 -0
  5. package/package.json +16 -14
  6. package/dist/documents.d.ts +0 -177
  7. package/dist/documents.d.ts.map +0 -1
  8. package/dist/documents.js +0 -246
  9. package/dist/documents.js.map +0 -1
  10. package/dist/hosted-bundle.d.ts +0 -8
  11. package/dist/hosted-bundle.d.ts.map +0 -1
  12. package/dist/hosted-bundle.js +0 -8
  13. package/dist/hosted-bundle.js.map +0 -1
  14. package/dist/http.d.ts +0 -15
  15. package/dist/http.d.ts.map +0 -1
  16. package/dist/http.js +0 -90
  17. package/dist/http.js.map +0 -1
  18. package/dist/index.d.ts +0 -9
  19. package/dist/index.d.ts.map +0 -1
  20. package/dist/index.js +0 -13
  21. package/dist/index.js.map +0 -1
  22. package/dist/schema.d.ts +0 -60
  23. package/dist/schema.d.ts.map +0 -1
  24. package/dist/schema.js +0 -467
  25. package/dist/schema.js.map +0 -1
  26. package/dist/server.d.ts +0 -14
  27. package/dist/server.d.ts.map +0 -1
  28. package/dist/server.js +0 -509
  29. package/dist/server.js.map +0 -1
  30. package/dist/state-return/ca.d.ts +0 -3
  31. package/dist/state-return/ca.d.ts.map +0 -1
  32. package/dist/state-return/ca.js +0 -108
  33. package/dist/state-return/ca.js.map +0 -1
  34. package/dist/state-return/il.d.ts +0 -3
  35. package/dist/state-return/il.d.ts.map +0 -1
  36. package/dist/state-return/il.js +0 -64
  37. package/dist/state-return/il.js.map +0 -1
  38. package/dist/state-return/index.d.ts +0 -8
  39. package/dist/state-return/index.d.ts.map +0 -1
  40. package/dist/state-return/index.js +0 -38
  41. package/dist/state-return/index.js.map +0 -1
  42. package/dist/state-return/money.d.ts +0 -10
  43. package/dist/state-return/money.d.ts.map +0 -1
  44. package/dist/state-return/money.js +0 -18
  45. package/dist/state-return/money.js.map +0 -1
  46. package/dist/state-return/ny.d.ts +0 -3
  47. package/dist/state-return/ny.d.ts.map +0 -1
  48. package/dist/state-return/ny.js +0 -59
  49. package/dist/state-return/ny.js.map +0 -1
  50. package/dist/state-return/shape.d.ts +0 -80
  51. package/dist/state-return/shape.d.ts.map +0 -1
  52. package/dist/state-return/shape.js +0 -97
  53. package/dist/state-return/shape.js.map +0 -1
  54. package/dist/state-return/types.d.ts +0 -17
  55. package/dist/state-return/types.d.ts.map +0 -1
  56. package/dist/state-return/types.js +0 -6
  57. package/dist/state-return/types.js.map +0 -1
  58. package/dist/state-return/va-worksheets.d.ts +0 -70
  59. package/dist/state-return/va-worksheets.d.ts.map +0 -1
  60. package/dist/state-return/va-worksheets.js +0 -116
  61. package/dist/state-return/va-worksheets.js.map +0 -1
  62. package/dist/state-return/va.d.ts +0 -3
  63. package/dist/state-return/va.d.ts.map +0 -1
  64. package/dist/state-return/va.js +0 -130
  65. package/dist/state-return/va.js.map +0 -1
  66. package/dist/state-return.d.ts +0 -4
  67. package/dist/state-return.d.ts.map +0 -1
  68. package/dist/state-return.js +0 -3
  69. package/dist/state-return.js.map +0 -1
@@ -1,17 +0,0 @@
1
- import type { Cents } from "./money.js";
2
- export type StateReturnInput = {
3
- jurisdiction: "il" | "va" | "ca" | "ny";
4
- [k: string]: unknown;
5
- };
6
- /**
7
- * Evaluate a state oracle target with the given stateTaxableIncome (cents).
8
- * extraFacts (cents/bool values keyed by fact id) merge into the evaluation —
9
- * used for Schedule P AMT (caAmti/caRegularTax) and method toggles.
10
- */
11
- export type StateTaxEvaluator = (target: string, stateTaxableIncomeCents: Cents, extraFacts?: Record<string, Cents | boolean>) => Cents;
12
- /** Legacy filing-status flags derived from filingStatus by the dispatcher. */
13
- export declare const isJoint: (input: StateReturnInput) => boolean;
14
- export declare const isHoh: (input: StateReturnInput) => boolean;
15
- export declare const isHohOrQss: (input: StateReturnInput) => boolean;
16
- export declare const isMfs: (input: StateReturnInput) => boolean;
17
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state-return/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,KAAK,EAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,KACzC,KAAK,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,OAAO,GAAI,OAAO,gBAAgB,KAAG,OACS,CAAC;AAC5D,eAAO,MAAM,KAAK,GAAI,OAAO,gBAAgB,KAAG,OACO,CAAC;AACxD,eAAO,MAAM,UAAU,GAAI,OAAO,gBAAgB,KAAG,OACY,CAAC;AAClE,eAAO,MAAM,KAAK,GAAI,OAAO,gBAAgB,KAAG,OACa,CAAC"}
@@ -1,6 +0,0 @@
1
- /** Legacy filing-status flags derived from filingStatus by the dispatcher. */
2
- export const isJoint = (input) => input.filingJoint === true;
3
- export const isHoh = (input) => input.filingHoh === true;
4
- export const isHohOrQss = (input) => input.filingHohOrQss === true;
5
- export const isMfs = (input) => input.filingStatus === "mfs";
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state-return/types.ts"],"names":[],"mappings":"AAkBA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAuB,EAAW,EAAE,CACzD,KAAmC,CAAC,WAAW,KAAK,IAAI,CAAC;AAC5D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAuB,EAAW,EAAE,CACvD,KAAiC,CAAC,SAAS,KAAK,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAuB,EAAW,EAAE,CAC5D,KAAsC,CAAC,cAAc,KAAK,IAAI,CAAC;AAClE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAuB,EAAW,EAAE,CACvD,KAAmC,CAAC,YAAY,KAAK,KAAK,CAAC"}
@@ -1,70 +0,0 @@
1
- /**
2
- * Virginia Form 760 worksheets, as pure functions:
3
- * - the age deduction (Va. Code § 58.1-322.03(2), AFAGI-reduced)
4
- * - Virginia Schedule A with the overall (Pease) limitation
5
- * - the Spouse Tax Adjustment worksheet (line 17)
6
- * - the line-23 credit selection (CLI vs the TY2025 20% refundable EITC)
7
- */
8
- import { type Cents } from "./money.js";
9
- import type { StateTaxEvaluator } from "./types.js";
10
- export declare const VA_STD_DEDUCTION_JOINT = 1750000n;
11
- export declare const VA_STD_DEDUCTION_OTHER = 875000n;
12
- export declare const VA_PERSONAL_EXEMPTION = 93000n;
13
- export declare const VA_AGE_BLIND_EXEMPTION = 80000n;
14
- /**
15
- * Age deduction: $12,000 per qualifying filer; unconditional for births
16
- * on/before 1/1/1939, otherwise reduced dollar-for-dollar by AFAGI over the
17
- * threshold — AFAGI EXCLUDES federally taxable social security.
18
- */
19
- export declare function vaAgeDeduction(args: {
20
- fullCount: number;
21
- testedCount: number;
22
- fagi: Cents;
23
- taxableSS: Cents;
24
- joint: boolean;
25
- }, notes: string[]): Cents;
26
- export type VaScheduleAInput = {
27
- fagi: Cents;
28
- medical: Cents;
29
- incomeTaxes: Cents;
30
- salesTaxes: Cents;
31
- realEstateTaxes: Cents;
32
- personalPropertyTaxes: Cents;
33
- otherTaxes: Cents;
34
- mortgageInterest: Cents;
35
- investmentInterest: Cents;
36
- charitable: Cents;
37
- casualty: Cents;
38
- gambling: Cents;
39
- other: Cents;
40
- joint: boolean;
41
- mfs: boolean;
42
- hoh: boolean;
43
- };
44
- /** Virginia Schedule A → the Form 760 line 10 itemized deduction. */
45
- export declare function vaScheduleA(a: VaScheduleAInput, notes: string[]): Cents;
46
- export type VaStaInput = {
47
- yourVagi: Cents;
48
- spouseVagi: Cents;
49
- yourAgeBlindBoxes: number;
50
- spouseAgeBlindBoxes: number;
51
- taxableIncome: Cents;
52
- jointTax: Cents;
53
- };
54
- /** Spouse Tax Adjustment worksheet (Form 760 line 17, MFJ only, ≤ $259). */
55
- export declare function vaSpouseTaxAdjustment(w: VaStaInput, evalStateTax: StateTaxEvaluator, notes: string[]): Cents;
56
- export type VaCredit23Input = {
57
- fedEITC: Cents;
58
- netTax: Cents;
59
- vagi: Cents;
60
- familyVagi: Cents | undefined;
61
- exemptions: number;
62
- barred: boolean;
63
- };
64
- /**
65
- * Form 760 line 23 selection (Schedule ADJ lines 10-17): refundable 20%
66
- * Virginia EITC vs the nonrefundable Credit for Low-Income Individuals,
67
- * subject to the 2025 age/blind mutual-exclusion rule.
68
- */
69
- export declare function vaLine23Credit(a: VaCredit23Input, notes: string[]): Cents;
70
- //# sourceMappingURL=va-worksheets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"va-worksheets.d.ts","sourceRoot":"","sources":["../../src/state-return/va-worksheets.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAC/C,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAC9C,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAC5C,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAI7C;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EAC/F,KAAK,EAAE,MAAM,EAAE,GACd,KAAK,CAWP;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE,KAAK,CAAC;IACnB,UAAU,EAAE,KAAK,CAAC;IAClB,eAAe,EAAE,KAAK,CAAC;IACvB,qBAAqB,EAAE,KAAK,CAAC;IAC7B,UAAU,EAAE,KAAK,CAAC;IAClB,gBAAgB,EAAE,KAAK,CAAC;IACxB,kBAAkB,EAAE,KAAK,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CA+BvE;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,KAAK,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,UAAU,EACb,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,MAAM,EAAE,GACd,KAAK,CAsBP;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAiBzE"}
@@ -1,116 +0,0 @@
1
- /**
2
- * Virginia Form 760 worksheets, as pure functions:
3
- * - the age deduction (Va. Code § 58.1-322.03(2), AFAGI-reduced)
4
- * - Virginia Schedule A with the overall (Pease) limitation
5
- * - the Spouse Tax Adjustment worksheet (line 17)
6
- * - the line-23 credit selection (CLI vs the TY2025 20% refundable EITC)
7
- */
8
- import { rd, max0, min2, fmtD } from "./money.js";
9
- export const VA_STD_DEDUCTION_JOINT = 1750000n; // $17,500 (TY2025-26)
10
- export const VA_STD_DEDUCTION_OTHER = 875000n; // $8,750 — VA has no HOH column
11
- export const VA_PERSONAL_EXEMPTION = 93000n; // $930
12
- export const VA_AGE_BLIND_EXEMPTION = 80000n; // $800 per 65+/blind box
13
- const AGE_DEDUCTION_EACH = 1200000n; // $12,000
14
- const STA_CAP = 25900n; // $259
15
- /**
16
- * Age deduction: $12,000 per qualifying filer; unconditional for births
17
- * on/before 1/1/1939, otherwise reduced dollar-for-dollar by AFAGI over the
18
- * threshold — AFAGI EXCLUDES federally taxable social security.
19
- */
20
- export function vaAgeDeduction(args, notes) {
21
- const full = BigInt(args.fullCount) * AGE_DEDUCTION_EACH;
22
- const testedMax = BigInt(args.testedCount) * AGE_DEDUCTION_EACH;
23
- const afagi = args.fagi - args.taxableSS;
24
- const threshold = args.joint ? 7500000n : 5000000n;
25
- const reduction = max0(afagi - threshold);
26
- const deduction = rd(full + max0(testedMax - reduction));
27
- if (deduction > 0n || args.testedCount > 0) {
28
- notes.push(`VA age deduction ${fmtD(deduction)} (AFAGI ${fmtD(afagi)} = FAGI minus taxable social security; reduction ${fmtD(min2(reduction, testedMax))} against ${fmtD(testedMax)} income-tested)`);
29
- }
30
- return deduction;
31
- }
32
- /** Virginia Schedule A → the Form 760 line 10 itemized deduction. */
33
- export function vaScheduleA(a, notes) {
34
- const med = max0(a.medical - rd((a.fagi * 10n) / 100n)); // 10% floor (VA deconforms from 7.5%)
35
- const vaSaltCap = a.mfs ? 2000000n : 4000000n; // TY2025 VA SALT cap (TB 26-1)
36
- const salesElected = a.salesTaxes > 0n;
37
- const line5a = salesElected ? min2(a.salesTaxes, vaSaltCap) : a.incomeTaxes;
38
- const taxes = line5a + a.realEstateTaxes + a.personalPropertyTaxes + a.otherTaxes;
39
- const protectedDed = med + a.investmentInterest + a.casualty + a.gambling;
40
- const total = med + taxes + a.mortgageInterest + a.investmentInterest + a.charitable + a.casualty + a.gambling + a.other;
41
- // Virginia overall limitation (Pease), Limited Itemized Deduction Worksheet
42
- const peaseThreshold = a.joint ? 39920000n : a.mfs ? 19960000n : a.hoh ? 36595000n : 33270000n;
43
- let limited = total;
44
- if (a.fagi > peaseThreshold && total > protectedDed) {
45
- const threePct = rd(((a.fagi - peaseThreshold) * 3n) / 100n);
46
- const eightyPct = rd(((total - protectedDed) * 80n) / 100n);
47
- const reduction = min2(threePct, eightyPct);
48
- limited = total - reduction;
49
- notes.push(`VA overall itemized limitation: ${fmtD(total)} reduced by ${fmtD(reduction)} (lesser of 3% of FAGI over ${fmtD(peaseThreshold)} or 80% of non-protected deductions) = ${fmtD(limited)}`);
50
- }
51
- // line 18 reduction for state/local INCOME taxes claimed (0 under the sales election)
52
- let line18Reduction = 0n;
53
- if (!salesElected && line5a > 0n) {
54
- const capped5a = min2(line5a, vaSaltCap);
55
- if (limited < total) {
56
- // Part B proration when the overall limitation applied (approximation, disclosed)
57
- line18Reduction = rd((capped5a * limited) / total);
58
- notes.push("VA Sch A line 18 (income-tax reduction) prorated per the Limited Itemized Deduction Worksheet Part B — verify against the printed worksheet if this return is limited");
59
- }
60
- else {
61
- line18Reduction = capped5a;
62
- }
63
- }
64
- return max0(limited - line18Reduction);
65
- }
66
- /** Spouse Tax Adjustment worksheet (Form 760 line 17, MFJ only, ≤ $259). */
67
- export function vaSpouseTaxAdjustment(w, evalStateTax, notes) {
68
- const exFor = (boxes) => BigInt(boxes) * VA_AGE_BLIND_EXEMPTION + VA_PERSONAL_EXEMPTION;
69
- const you3 = w.yourVagi - exFor(w.yourAgeBlindBoxes);
70
- const sp3 = w.spouseVagi - exFor(w.spouseAgeBlindBoxes);
71
- if (you3 <= 0n || sp3 <= 0n) {
72
- notes.push("STA $0: one spouse's income net of personal exemptions is zero or less (worksheet Part 1 line 3 stop)");
73
- return 0n;
74
- }
75
- const line4 = w.taxableIncome;
76
- const line5 = min2(you3, sp3);
77
- if (line5 > 1700000n && line4 > 3400000n) {
78
- notes.push("STA = $259 (worksheet line 5 shortcut: smaller income > $17,000 and taxable income > $34,000)");
79
- return STA_CAP;
80
- }
81
- const line6 = max0(line4 - line5);
82
- const line7 = line4 / 2n;
83
- const t8 = rd(evalStateTax("us.va.income_tax", min2(line5, line7)));
84
- const t9 = rd(evalStateTax("us.va.income_tax", line6 > line7 ? line6 : line7));
85
- const sta = w.jointTax - (t8 + t9);
86
- const capped = sta < 0n ? 0n : sta > STA_CAP ? STA_CAP : sta;
87
- notes.push(`STA worksheet: joint tax ${fmtD(w.jointTax)} − split taxes ${fmtD(t8)}+${fmtD(t9)} = ${fmtD(capped)} (cap $259)`);
88
- return capped;
89
- }
90
- /**
91
- * Form 760 line 23 selection (Schedule ADJ lines 10-17): refundable 20%
92
- * Virginia EITC vs the nonrefundable Credit for Low-Income Individuals,
93
- * subject to the 2025 age/blind mutual-exclusion rule.
94
- */
95
- export function vaLine23Credit(a, notes) {
96
- if (a.barred) {
97
- if (a.fedEITC > 0n)
98
- notes.push("VA line 23 credit $0: the age deduction / 65+ or blind exemptions claimed on this return bar the Credit for Low-Income Individuals and Virginia EITC (2025 Form 760 instructions)");
99
- return 0n;
100
- }
101
- if (a.fedEITC <= 0n && a.familyVagi === undefined)
102
- return 0n;
103
- const refundable = rd((a.fedEITC * 20n) / 100n);
104
- const familyVagi = a.familyVagi ?? a.vagi;
105
- const povertyLine = 1565000n + BigInt(Math.max(0, a.exemptions - 1)) * 550000n;
106
- const cli = familyVagi <= povertyLine ? BigInt(a.exemptions) * 30000n : 0n;
107
- const cliUsable = min2(cli, a.netTax);
108
- if (refundable >= cliUsable) {
109
- if (refundable > 0n)
110
- notes.push(`VA line 23 = refundable Virginia EITC ${fmtD(refundable)} (20% of federal EIC ${fmtD(a.fedEITC)}, TY2025 — refundable, not capped at tax)`);
111
- return refundable;
112
- }
113
- notes.push(`VA line 23 = Credit for Low-Income Individuals ${fmtD(cliUsable)} (nonrefundable, capped at net tax)`);
114
- return cliUsable;
115
- }
116
- //# sourceMappingURL=va-worksheets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"va-worksheets.js","sourceRoot":"","sources":["../../src/state-return/va-worksheets.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { type StateReturnInput, type StateTaxEvaluator } from "./types.js";
2
- export declare function composeVA(input: StateReturnInput, evalStateTax: StateTaxEvaluator, notes: string[]): Record<string, string>;
3
- //# sourceMappingURL=va.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"va.d.ts","sourceRoot":"","sources":["../../src/state-return/va.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAYlG,wBAAgB,SAAS,CACvB,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuIxB"}
@@ -1,130 +0,0 @@
1
- /** 2025 Virginia Form 760 line composer. Worksheets live in va-worksheets.ts. */
2
- import { c, rd, max0, fmtD } from "./money.js";
3
- import { isJoint, isHoh, isMfs } from "./types.js";
4
- import { VA_STD_DEDUCTION_JOINT, VA_STD_DEDUCTION_OTHER, VA_PERSONAL_EXEMPTION, VA_AGE_BLIND_EXEMPTION, vaAgeDeduction, vaLine23Credit, vaScheduleA, vaSpouseTaxAdjustment, } from "./va-worksheets.js";
5
- export function composeVA(input, evalStateTax, notes) {
6
- const joint = isJoint(input);
7
- const fagi = c(input.federalAGI);
8
- const l1 = rd(fagi);
9
- // Automatic subtractions: taxable social security (760 line 5) and
10
- // unemployment compensation (Va. Code § 58.1-322.02(9), Schedule ADJ).
11
- const ssSub = rd(c(input.taxableSocialSecurity));
12
- const uiSub = rd(c(input.unemploymentCompensation));
13
- let age = rd(c(input.vaAgeDeduction));
14
- if (input.vaAgeDeduction === undefined && (input.vaAgeQualifyingFull !== undefined || input.vaAgeQualifyingTested !== undefined)) {
15
- age = vaAgeDeduction({
16
- fullCount: input.vaAgeQualifyingFull ?? 0,
17
- testedCount: input.vaAgeQualifyingTested ?? 0,
18
- fagi: l1,
19
- taxableSS: ssSub,
20
- joint,
21
- }, notes);
22
- }
23
- if (ssSub > 0n)
24
- notes.push(`VA subtraction: federally taxable social security ${fmtD(ssSub)} (760 line 5)`);
25
- if (uiSub > 0n)
26
- notes.push(`VA subtraction: unemployment compensation ${fmtD(uiSub)} (Va. Code § 58.1-322.02(9))`);
27
- const l9 = rd(l1 + c(input.additions) - age - ssSub - uiSub - c(input.subtractions));
28
- // Exemption count defaults from the return's own shape: filers (2 on a joint
29
- // return) plus any dependents passed — never a bare 1 for MFJ.
30
- const n = input.exemptions ??
31
- (joint ? 2 : 1) + (input.dependents ?? 0);
32
- // 2025 Form 760: L10 itemized, L11 standard, L12 exemptions, L13 Sch ADJ deductions
33
- let l10 = 0n;
34
- let l11 = joint ? VA_STD_DEDUCTION_JOINT : VA_STD_DEDUCTION_OTHER;
35
- if (input.vaItemizing === true) {
36
- l10 = vaScheduleA({
37
- fagi,
38
- medical: rd(c(input.vaItemizedMedical)),
39
- incomeTaxes: rd(c(input.vaItemizedStateLocalIncomeTaxes)),
40
- salesTaxes: rd(c(input.vaItemizedSalesTaxes)),
41
- realEstateTaxes: rd(c(input.vaItemizedRealEstateTaxes)),
42
- personalPropertyTaxes: rd(c(input.vaItemizedPersonalPropertyTaxes)),
43
- otherTaxes: rd(c(input.vaItemizedOtherTaxes)),
44
- mortgageInterest: rd(c(input.vaItemizedMortgageInterest)),
45
- investmentInterest: rd(c(input.vaItemizedInvestmentInterest)),
46
- charitable: rd(c(input.vaItemizedCharitable)),
47
- casualty: rd(c(input.vaItemizedCasualty)),
48
- gambling: rd(c(input.vaItemizedGambling)),
49
- other: rd(c(input.vaItemizedOther)),
50
- joint,
51
- mfs: isMfs(input),
52
- hoh: isHoh(input),
53
- }, notes);
54
- l11 = 0n; // itemizing: line 11 blank
55
- }
56
- else if (input.claimedAsDependent === true) {
57
- notes.push("VA standard deduction for a claimable-as-dependent filer is limited to earned income — pass vaItemizing/earned income facts if this binds");
58
- }
59
- // Age/blind boxes: derive from the per-spouse STA inputs when the flat
60
- // count wasn't passed — the same boxes drive both lines.
61
- const abBoxes = input.ageOrBlindBoxes ??
62
- (input.vaYourAgeBlindBoxes ?? 0) +
63
- (input.vaSpouseAgeBlindBoxes ?? 0);
64
- const l12 = rd(BigInt(n) * VA_PERSONAL_EXEMPTION + BigInt(abBoxes) * VA_AGE_BLIND_EXEMPTION);
65
- const l13 = rd(c(input.vaScheduleAdjDeductions));
66
- const l14 = l10 + l11 + l12 + l13;
67
- // Form 760 line 15 prints SIGNED (no zero floor on the printed form)
68
- const l15 = l9 - l14;
69
- // VA filing threshold (Va. Code § 58.1-321): below it, no tax is due
70
- const filingThreshold = joint ? 2390000n : 1195000n;
71
- let l16 = rd(evalStateTax("us.va.income_tax", max0(l15)));
72
- if (l9 < filingThreshold && l16 > 0n) {
73
- notes.push(`VA tax $0: VAGI ${fmtD(l9)} is below the § 58.1-321 filing threshold ${fmtD(filingThreshold)}`);
74
- l16 = 0n;
75
- }
76
- let l17 = rd(c(input.vaSpouseTaxAdjustment));
77
- if (input.vaSpouseTaxAdjustment === undefined && joint && input.vaYourVagi !== undefined && input.vaSpouseVagi !== undefined && l16 > 0n) {
78
- l17 = vaSpouseTaxAdjustment({
79
- yourVagi: rd(c(input.vaYourVagi)),
80
- spouseVagi: rd(c(input.vaSpouseVagi)),
81
- yourAgeBlindBoxes: input.vaYourAgeBlindBoxes ?? 0,
82
- spouseAgeBlindBoxes: input.vaSpouseAgeBlindBoxes ?? 0,
83
- taxableIncome: max0(l15),
84
- jointTax: l16,
85
- }, evalStateTax, notes);
86
- }
87
- const l18 = max0(l16 - l17);
88
- const l19a = c(input.stateWithholding);
89
- const l19b = c(input.spouseStateWithholding);
90
- const l20 = c(input.estimatedPayments);
91
- const l21 = rd(c(input.priorYearOverpaymentCredited));
92
- const l22 = rd(c(input.extensionPayment));
93
- let l23;
94
- if (input.vaRefundableEitc !== undefined || input.nonrefundableCredits !== undefined) {
95
- // explicit override path (legacy)
96
- const avail = rd(c(input.nonrefundableCredits));
97
- l23 = (avail > l18 ? l18 : avail) + rd(c(input.vaRefundableEitc));
98
- }
99
- else {
100
- l23 = vaLine23Credit({
101
- fedEITC: rd(c(input.federalEITC)),
102
- netTax: l18,
103
- vagi: l9,
104
- familyVagi: input.vaFamilyVagi !== undefined ? rd(c(input.vaFamilyVagi)) : undefined,
105
- exemptions: n,
106
- barred: age > 0n || ((input.ageOrBlindBoxes ?? 0) > 0),
107
- }, notes);
108
- }
109
- const l26 = l19a + l19b + l20 + l21 + l22 + l23 + rd(c(input.refundableCredits));
110
- const l33 = c(input.useTax);
111
- const totalDue = l18 + l33;
112
- const l36 = max0(l26 - totalDue);
113
- const l35 = max0(totalDue - l26);
114
- return {
115
- "1_federal_agi": fmtD(l1), "9_vagi": fmtD(l9),
116
- ...(l10 > 0n ? { "10_itemized_deductions": fmtD(l10) } : {}),
117
- "11_standard_deduction": fmtD(l11),
118
- "12_exemptions": fmtD(l12),
119
- ...(l13 > 0n ? { "13_sch_adj_deductions": fmtD(l13) } : {}),
120
- "14_deductions_subtotal": fmtD(l14), "15_va_taxable_income": fmtD(l15),
121
- "16_tax": fmtD(l16), "17_spouse_tax_adjustment": fmtD(l17), "18_net_tax": fmtD(l18),
122
- "19a_your_withholding": fmtD(l19a),
123
- "19b_spouse_withholding": fmtD(l19b), "20_estimated_payments": fmtD(l20),
124
- "21_prior_year_overpayment_credited": fmtD(l21),
125
- "22_extension_payment": fmtD(l22),
126
- "23_low_income_or_eitc_credit": fmtD(l23), "26_total_payments_credits": fmtD(l26),
127
- "33_sales_use_tax": fmtD(l33), "35_amount_owed": fmtD(l35), "36_refund": fmtD(l36),
128
- };
129
- }
130
- //# sourceMappingURL=va.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"va.js","sourceRoot":"","sources":["../../src/state-return/va.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- /** Compatibility shim — the composers live in @invaro/opentax-compose (per-state modules). */
2
- export { composeStateReturn, stateReturnShape } from "@invaro/opentax-compose";
3
- export type { StateReturnInput, StateTaxEvaluator } from "@invaro/opentax-compose";
4
- //# sourceMappingURL=state-return.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-return.d.ts","sourceRoot":"","sources":["../src/state-return.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,3 +0,0 @@
1
- /** Compatibility shim — the composers live in @invaro/opentax-compose (per-state modules). */
2
- export { composeStateReturn, stateReturnShape } from "@invaro/opentax-compose";
3
- //# sourceMappingURL=state-return.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-return.js","sourceRoot":"","sources":["../src/state-return.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}