packages feed

jordan-0.2.0.0: jordan.cabal

cabal-version:      2.4
name:               jordan
version:            0.2.0.0
synopsis:           JSON with Structure

-- A longer description of the package.
description:
  Jordan provides an abstract interface for converting to or from JSON.
  This interface can be used to construct various parsers and serilaizers.
  Because everything is kept abstract and inspectable, documentation can be
  automatically generated as well.
  .
  Jordan's built-in parsers and serializers include variants that do not construct
  intermediate datatypes, which can avoid some collision-based denial of service
  attacks that have effected other libraries. They should also be more efficient
  due to the need to avoid early conversion of types, although I have not measured
  this.
  .
  Jordan is somewhat experimental but well-tested.

homepage:

-- A URL where users can report bugs.
-- bug-reports:
license:            MIT
license-file:       LICENSE
author:             Anthony Super
maintainer:         anthony@noided.media

-- A copyright notice.
-- copyright:
category:           Codec
extra-source-files: CHANGELOG.md

common build-deps
  build-depends:
      attoparsec >= 0.14.1 && <0.15
    , bytestring >= 0.10.8.1 && <0.12
    , containers >= 0.6.2 && <0.7
    , scientific >= 0.3.7 && <0.4
    , text >= 1.2.3.0 && <2.1
    , contravariant >= 1.5.5 && <1.6
    , parser-combinators >= 1.3.0 && < 1.4
    , deepseq >= 1.4 && <= 1.5
    , ghc-prim >= 0.6.1 && <0.9
    , base >= 4.14.1 && <4.17

library
    import: build-deps
    exposed-modules:
        Jordan.FromJSON.Class
      , Jordan.FromJSON.Attoparsec
      , Jordan.FromJSON.Internal.Attoparsec
      , Jordan.FromJSON.Internal.UnboxedParser
      , Jordan.FromJSON.Internal.Permutation
      , Jordan.FromJSON.Internal.UnboxedReporting
      , Jordan.FromJSON.UnboxedReporting
      , Jordan.Types.Internal.MergeMap
      , Jordan.Types.Internal.AccumE
      , Jordan.Types.JSONValue
      , Jordan.Types.JSONType
      , Jordan.Types.JSONError
      , Jordan.ToJSON.Class
      , Jordan.ToJSON.Builder
      , Jordan.Generic.Options
      , Jordan
    hs-source-dirs:   lib
    default-language: Haskell2010

test-suite jordan-test
    import: build-deps
    build-depends:
        hspec
      , hspec-megaparsec
      , jordan
      , raw-strings-qq
      , QuickCheck
      , quickcheck-text
    other-modules:
        Jordan.FromJSON.AttoparsecSpec
      , Jordan.FromJSON.UnboxedReportingSpec
      , Jordan.SpecDefs
      , Jordan.ToJSON.BuilderSpec
      , Jordan.RoundTripSpec
    default-language: Haskell2010
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          JordanSpec.hs
    ghc-options: -fprint-potential-instances