packages feed

taiwan-id-0.1.0.0: taiwan-id.cabal

cabal-version:  3.0
name:           taiwan-id
version:        0.1.0.0
synopsis:       Implementation of Taiwan's uniform ID number format.
category:       Identification
homepage:       https://github.com/jonathanknowles/taiwan-id#readme
bug-reports:    https://github.com/jonathanknowles/taiwan-id/issues
author:         Jonathan Knowles
maintainer:     mail@jonathanknowles.net
copyright:      Jonathan Knowles
license:        BSD-3-Clause
license-file:   LICENSE
build-type:     Custom

description:

  This package provides a Haskell implementation of Taiwan's uniform
  identification number format.

  This number format is used by both National Identification Cards (國民身分證)
  and Resident Certificates (居留證) issued by the Republic of China (ROC)
  government to individuals, with numbers assigned under each system occupying
  disjoint parts of the same identifier space.

  Each identification number consists of a single uppercase letter followed by
  nine decimal digits, with the final digit serving as a checksum calculated
  according to a standard algorithm.

  Example: `A123456789`

  This package offers functions for validating, decoding, and encoding these
  numbers.

  See the "Taiwan.ID" module to get started.

  For more details, see:

  * https://zh.wikipedia.org/wiki/中華民國國民身分證
  * https://en.wikipedia.org/wiki/National_identification_card_(Taiwan)
  * https://en.wikipedia.org/wiki/Resident_certificate

extra-doc-files:
  CHANGELOG.md
  README.md

common dependency-base
    build-depends:base                      >= 4.17.2.1     && < 4.22
common dependency-doctest
    build-depends:doctest                   >= 0.24.2       && < 0.25
common dependency-finitary
    build-depends:finitary                  >= 2.2.0.0      && < 2.3
common dependency-finite-typelits
    build-depends:finite-typelits           >= 0.2.1.0      && < 0.3
common dependency-hspec
    build-depends:hspec                     >= 2.5.5        && < 2.12
common dependency-microlens
    build-depends:microlens                 >= 0.5.0.0      && < 0.6
common dependency-MonadRandom
    build-depends:MonadRandom               >= 0.5.1.1      && < 0.7
common dependency-nonempty-containers
    build-depends:nonempty-containers       >= 0.3.5.0      && < 0.4
common dependency-QuickCheck
    build-depends:QuickCheck                >= 2.13.2       && < 2.18
common dependency-quickcheck-classes
    build-depends:quickcheck-classes        >= 0.6.5.0      && < 0.7
common dependency-text
    build-depends:text                      >= 1.2.3.1      && < 2.2

custom-setup
  setup-depends:
    , base                                  >= 4.17.2.1     && < 4.22
    , cabal-doctest                         >= 1.0.12       && < 1.1

source-repository head
  type: git
  location: https://github.com/jonathanknowles/taiwan-id

library
  import:
    , dependency-base
    , dependency-finitary
    , dependency-finite-typelits
    , dependency-MonadRandom
    , dependency-nonempty-containers
    , dependency-text
  exposed-modules:
      Taiwan.ID
      Taiwan.ID.CharIndex
      Taiwan.ID.CharSet
      Taiwan.ID.Digit
      Taiwan.ID.Digit1289
      Taiwan.ID.Gender
      Taiwan.ID.Issuer
      Taiwan.ID.Language
      Taiwan.ID.Letter
      Taiwan.ID.Region
  other-modules:
      Taiwan.ID.Unchecked
      Taiwan.ID.Utilities
  hs-source-dirs:
      components/taiwan-id
  ghc-options: -Wall
  default-language: Haskell2010

test-suite taiwan-id-test
  import:
    , dependency-base
    , dependency-finitary
    , dependency-hspec
    , dependency-MonadRandom
    , dependency-microlens
    , dependency-nonempty-containers
    , dependency-QuickCheck
    , dependency-quickcheck-classes
    , dependency-text
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Test.QuickCheck.Classes.Hspec
  hs-source-dirs:
      components/taiwan-id-test
  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
  build-depends:
    , taiwan-id
  default-language: Haskell2010

test-suite taiwan-id-test-docs
  import:
    , dependency-base
    , dependency-doctest
  build-depends:
    , taiwan-id
  x-doctest-options: --verbose
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs:
    components/taiwan-id-test-docs
  ghc-options: -threaded
  default-language: Haskell2010