packages feed

canadian-income-tax-2024.0.0.1: canadian-income-tax.cabal

cabal-version:      2.4
name:               canadian-income-tax
version:            2024.0.0.1

synopsis: Canadian income tax calculation

description: This package provides a library and executable to fill out
             incomplete Canadian tax forms in FDF format and to populate all
             fields therein that can be automatically calculated from the rest
             of the form.

category:           tax, productivity
license:            GPL-3.0-or-later
license-files:      LICENSE
copyright:          (c) 2023 Mario Blažević
author:             Mario Blažević
maintainer:         blamario@protonmail.com
bug-reports:        https://github.com/blamario/canadian-income-tax/issues
tested-with:        ghc == 9.4.4, ghc == 9.6.3

extra-doc-files:    CHANGELOG.md, README.md
data-dir:           data/
data-files:         **/*.fdf **/*.pdf
source-repository head
  type:     git
  location: https://github.com/blamario/canadian-income-tax

common stanzas
    default-language: Haskell2010
    GHC-options: -Wall

library
    import: stanzas
    exposed-modules:
        Tax.Canada
        Tax.Canada.Federal
        Tax.Canada.Federal.Schedule6
        Tax.Canada.Federal.Schedule7
        Tax.Canada.Federal.Schedule8
        Tax.Canada.Federal.Schedule9
        Tax.Canada.Federal.Schedule11
        Tax.Canada.FormKey
        Tax.Canada.Province.AB
        Tax.Canada.Province.BC
        Tax.Canada.Province.MB
        Tax.Canada.Province.NB
        Tax.Canada.Province.NL
        Tax.Canada.Province.ON
        Tax.Canada.Province.PE
        Tax.Canada.Province.QC
        Tax.Canada.Territory.NT
        Tax.Canada.Territory.NU
        Tax.Canada.Territory.YT
        Tax.Canada.Shared
        Tax.Canada.T1
        Tax.Canada.T4
        Tax.FDF
        Tax.PDFtk
        Tax.Util

    other-modules:
        Tax.Canada.T1.Types
        Tax.Canada.T1.FieldNames.AB
        Tax.Canada.T1.FieldNames.BC
        Tax.Canada.T1.FieldNames.NB
        Tax.Canada.T1.FieldNames.NL
        Tax.Canada.T1.FieldNames.NT
        Tax.Canada.T1.FieldNames.NU
        Tax.Canada.T1.FieldNames.ON
        Tax.Canada.T1.FieldNames.PE
        Tax.Canada.T1.FieldNames.QC
        Tax.Canada.T1.FieldNames.YT
        Tax.Canada.T1.Fix
        Tax.Canada.Province.AB.AB428.Types
        Tax.Canada.Province.AB.AB428.FieldNames
        Tax.Canada.Province.AB.AB428.Fix
        Tax.Canada.Province.BC.BC428.Types
        Tax.Canada.Province.BC.BC428.FieldNames
        Tax.Canada.Province.BC.BC428.Fix
        Tax.Canada.Province.BC.BC479.Types
        Tax.Canada.Province.BC.BC479.FieldNames
        Tax.Canada.Province.BC.BC479.Fix
        Tax.Canada.Province.MB.MB428.Types
        Tax.Canada.Province.MB.MB428.FieldNames
        Tax.Canada.Province.MB.MB428.Fix
        Tax.Canada.Province.ON.ON428.Types
        Tax.Canada.Province.ON.ON428.FieldNames
        Tax.Canada.Province.ON.ON428.Fix
        Tax.Canada.Province.ON.ON479.Types
        Tax.Canada.Province.ON.ON479.FieldNames
        Tax.Canada.Province.ON.ON479.Fix

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:    base == 4.*, text >= 1.0 && < 2.2, bytestring >= 0.10.4 && < 1,
                      time == 1.*, containers >= 0.5 && < 0.9, bitwise-enum ^>= 1.0.0, bifunctors ^>= 5.6,
                      monoid-subclasses == 1.*, rank2classes ^>= 1.5.3,
                      deep-transformations ^>= 0.2.2 || ^>= 0.3 || ^>= 0.4,
                      ca-province-codes == 1.0.*, forms-data-format ^>= 0.2, typed-process >= 0.1 && ^>=0.2,
                      template-haskell == 2.*
    hs-source-dirs:   src
    GHC-options: -Wno-ambiguous-fields -Wno-simplifiable-class-constraints

executable complete-canadian-taxes
    import: stanzas
    main-is:          Main.hs

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:
        base == 4.*, text, bytestring, containers,
        monoid-subclasses, rank2classes,
        optparse-applicative >= 0.15 && < 0.19,
        filepath >= 1.3 && < 1.6, directory >= 1.2 && < 1.4, tar >= 0.4 && < 0.7,
        ca-province-codes,
        forms-data-format, canadian-income-tax
    other-modules:    Paths_canadian_income_tax
    autogen-modules:  Paths_canadian_income_tax
    hs-source-dirs:   app

executable serve-canadian-taxes
    import: stanzas
    main-is:          Main.hs
    other-modules:    Paths_canadian_income_tax
    autogen-modules:  Paths_canadian_income_tax

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:
        base == 4.*, text, bytestring, containers, monoid-subclasses,
        fast-logger ^>= 3.0 ||  ^>= 3.1 || ^>= 3.2.1,
        filepath >= 1.3 && < 1.6, unix >= 2.6 && < 2.9, directory >= 1.2 && < 1.4,
        time >= 1.9.1 && < 1.15, zip-archive ^>= 0.4, aeson ^>= 2.2,
        http-types ^>= 0.12, scotty ^>= 0.22, wai-extra ^>= 3.1.10, wai-middleware-static ^>= 0.9.1,
        forms-data-format, canadian-income-tax

    hs-source-dirs:   web
    ghc-options: -threaded

test-suite             properties
    import: stanzas
    type:                exitcode-stdio-1.0
    build-depends:       base >= 4.7 && < 5, bytestring,
                         directory ^>= 1.3, filepath,
                         forms-data-format, monoid-subclasses, rank2classes, deep-transformations,
                         text, time >= 1.9.1 && < 1.15, ca-province-codes,
                         tasty >= 0.7, tasty-hedgehog ^>= 1.4, hedgehog ^>= 1.4 || ^>= 1.5,
                         canadian-income-tax
    hs-source-dirs:      test
    main-is:             Properties.hs
    other-modules:       Test.Transformations
                         Paths_canadian_income_tax
    autogen-modules:     Paths_canadian_income_tax
    GHC-options:         -Wno-incomplete-uni-patterns

test-suite             regression
    import: stanzas
    type:                exitcode-stdio-1.0
    build-depends:       base >= 4.7 && < 5, bytestring, containers,
                         directory ^>= 1.3, filepath,
                         forms-data-format,
                         rank2classes, deep-transformations,
                         text, time >= 1.9.1 && < 1.15, ca-province-codes,
                         tasty >= 0.7, tasty-golden ^>=2.3,
                         canadian-income-tax
    hs-source-dirs:      test
    main-is:             Regression.hs
    GHC-options:         -Wno-incomplete-uni-patterns