packages feed

mmzk-typeid-0.7.1.1: mmzk-typeid.cabal

cabal-version:      2.4
name:               mmzk-typeid
version:            0.7.1.1

synopsis:           A TypeID and UUIDv7 implementation for Haskell
description:
  'TypeID' is a type-safe, K-sortable, globally unique identifier inspired by Stripe IDs.
  .
  The specification is available at https://github.com/jetpack-io/typeid.
  .
  This library supports generating and parsing speç-conforming 'TypeID's, with the following additional features:
  .
    - Batch generating 'TypeID's with the same UUIDv7 timestamp
  .
    - Encode prefixes at type-level for better type-safety
  .
  It also serves as a (temporary) UUIDv7 implementation in Haskell, since there are no official ones yet.
  .
  Please enable the following extensions if working with 'KindID':
  .
  > {-# LANGUAGE DataKinds #-}
  > {-# LANGUAGE PolyKinds #-}
  > {-# LANGUAGE TypeApplications #-}
  > {-# LANGUAGE TypeFamilies #-}
  .
  While the following is not required, it is quite convenient to have
  .
  > {-# LANGUAGE OverloadedStrings #-}
  .

homepage:           https://github.com/MMZK1526/mmzk-typeid
bug-reports:        https://github.com/MMZK1526/mmzk-typeid/issues
license:            MIT
author:             Yitang Chen <mmzk1526@outlook.com>
maintainer:         Yitang Chen <mmzk1526@outlook.com>
category:           Data, UUID, UUIDv7, TypeID
tested-with:
    GHC == 9.4.8
    GHC == 9.6.7
    GHC == 9.8.4
    GHC == 9.12.4
    GHC == 9.14.1
extra-source-files:
    CHANGELOG.md
    LICENSE
    README.md
    test/invalid.json
    test/valid.json


library
    exposed-modules:
        Data.KindID,
        Data.KindID.Class,
        Data.KindID.Unsafe,
        Data.KindID.V1,
        Data.KindID.V1.Unsafe,
        Data.KindID.V4,
        Data.KindID.V4.Unsafe,
        Data.KindID.V5,
        Data.KindID.V5.Unsafe,
        Data.KindID.V7,
        Data.KindID.V7.Unsafe,
        Data.TypeID,
        Data.TypeID.Class,
        Data.TypeID.Error,
        Data.TypeID.Unsafe,
        Data.TypeID.V1,
        Data.TypeID.V1.Unsafe,
        Data.TypeID.V4,
        Data.TypeID.V4.Unsafe,
        Data.TypeID.V5,
        Data.TypeID.V5.Unsafe,
        Data.TypeID.V7,
        Data.TypeID.V7.Unsafe,
        Data.UUID.V7,
        Data.UUID.Versions
    other-modules:
        Data.KindID.Error,
        Data.KindID.Internal,
        Data.TypeID.Internal
    default-extensions:
        BlockArguments
        ConstraintKinds
        DataKinds
        DeriveAnyClass
        DeriveDataTypeable
        DeriveGeneric
        FlexibleContexts
        FlexibleInstances
        InstanceSigs
        MultiWayIf
        OverloadedStrings
        PolyKinds
        ScopedTypeVariables
        TupleSections
        TypeApplications
        TypeFamilies
        TypeOperators
    build-depends:
        base >=4.16 && <5,
        aeson >=2.1 && <3,
        array ^>=0.5,
        binary >=0.8.5 && <0.9,
        bytestring >=0.11 && <0.13,
        entropy ^>=0.4,
        hashable >=1.4 && <2,
        random >=1.2 && <1.4,
        text ^>=2.1,
        time >=1.11 && <2,
        uuid ^>=1.3,
        uuid-types ^>=1.0,
    ghc-options:
        -Wall
    hs-source-dirs:   src
    default-language: Haskell2010


test-suite test
    main-is:          Spec.hs
    type:             exitcode-stdio-1.0
    other-modules:
        Data.KindID,
        Data.KindID.Class,
        Data.KindID.Error,
        Data.KindID.Internal,
        Data.KindID.Unsafe,
        Data.KindID.V1,
        Data.KindID.V1.Unsafe,
        Data.KindID.V4,
        Data.KindID.V4.Unsafe,
        Data.KindID.V5,
        Data.KindID.V5.Unsafe,
        Data.KindID.V7,
        Data.KindID.V7.Unsafe,
        Data.TypeID,
        Data.TypeID.Class,
        Data.TypeID.Error,
        Data.TypeID.Internal,
        Data.TypeID.Unsafe,
        Data.TypeID.V1,
        Data.TypeID.V1.Unsafe,
        Data.TypeID.V4,
        Data.TypeID.V4.Unsafe,
        Data.TypeID.V5,
        Data.TypeID.V5.Unsafe,
        Data.TypeID.V7,
        Data.TypeID.V7.Unsafe,
        Data.UUID.V7,
        Data.UUID.Versions
    default-extensions:
        BlockArguments
        ConstraintKinds
        DataKinds
        DeriveAnyClass
        DeriveDataTypeable
        DeriveGeneric
        FlexibleContexts
        FlexibleInstances
        InstanceSigs
        MultiWayIf
        OverloadedStrings
        PolyKinds
        ScopedTypeVariables
        TupleSections
        TypeApplications
        TypeFamilies
        TypeOperators
    build-depends:
        base >=4.16 && <5,
        aeson,
        array,
        binary,
        bytestring,
        containers >=0.6 && <1,
        entropy,
        hashable,
        hint ^>=0.9,
        hspec ^>=2.11,
        random,
        text,
        time,
        uuid,
        uuid-types,
    ghc-options:
        -Wall
    hs-source-dirs:
        src
        test
    default-language: Haskell2010