packages feed

iri-0.5.1.2: iri.cabal

cabal-version: 3.0
name: iri
version: 0.5.1.2
category: URI, URL, IRI, Network
synopsis: RFC-compliant universal resource identifier library (URL, URI, IRI)
description:
  This library provides a universal data model for representation of URI, URL and IRI.
  It comes packed with parsing, rendering and serialisation functionality.
  It is implemented in conformance with the RFC-3986 and RFC-3987 specifications and
  is intended as a standard tool for all tasks related to resource identifiers.

homepage: https://github.com/nikita-volkov/iri
bug-reports: https://github.com/nikita-volkov/iri/issues
author: Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
copyright: (c) 2017 Nikita Volkov
license: MIT
license-file: LICENSE

source-repository head
  type: git
  location: https://github.com/nikita-volkov/iri

common base
  default-language: Haskell2010
  default-extensions:
    BangPatterns
    BlockArguments
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    DerivingStrategies
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    LambdaCase
    LiberalTypeSynonyms
    MagicHash
    MultiParamTypeClasses
    MultiWayIf
    NoImplicitPrelude
    NoMonomorphismRestriction
    NumericUnderscores
    OverloadedStrings
    ParallelListComp
    PatternGuards
    QuasiQuotes
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    StrictData
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    UnboxedTuples
    ViewPatterns

common executable
  import: base
  ghc-options:
    -O2
    -threaded
    -with-rtsopts=-N
    -rtsopts
    -funbox-strict-fields

common test
  import: base
  ghc-options:
    -threaded
    -with-rtsopts=-N

library
  import: base
  hs-source-dirs: library
  exposed-modules:
    Iri.Data
    Iri.Optics
    Iri.Parsing.Attoparsec.ByteString
    Iri.Parsing.Attoparsec.Text
    Iri.Parsing.ByteString
    Iri.Parsing.Text
    Iri.QuasiQuoter
    Iri.Rendering.ByteString
    Iri.Rendering.Ptr.Poking
    Iri.Rendering.Text
    Iri.Rendering.TextBuilder

  other-modules:
    Iri.CodePointPredicates.Core
    Iri.CodePointPredicates.Rfc3986
    Iri.CodePointPredicates.Rfc3987
    Iri.Data.Functions
    Iri.Data.Instances.Eq
    Iri.Data.Instances.Generic
    Iri.Data.Instances.Hashable
    Iri.Data.Instances.Lift
    Iri.Data.Instances.Ord
    Iri.Data.Instances.Show
    Iri.Data.Types
    Iri.MonadPlus
    Iri.Optics.Basics
    Iri.Optics.Defs
    Iri.PercentEncoding
    Iri.Prelude
    Iri.Rendering.Ptr.Poke
    Iri.Rendering.Text.Internal
    Iri.Rendering.TextBuilder.Internal
    Iri.Utf8CodePoint
    Iri.Vector

  build-depends:
    attoparsec >=0.13 && <0.15,
    base >=4.15 && <5,
    bytestring >=0.10 && <0.13,
    contravariant >=1.4 && <2,
    hashable >=1.2 && <2,
    ip >=1.7.8 && <2,
    iri:punycode,
    profunctors >=5.2 && <6,
    ptr >=0.16.1 && <0.17,
    template-haskell >=2.17 && <3,
    text >=2 && <3,
    text-builder ^>=1,
    th-lift >=0.8 && <0.9,
    th-lift-instances >=0.1.20 && <0.2,
    unordered-containers >=0.2 && <0.3,
    vector >=0.13 && <0.14,
    vector-builder >=0.3.4 && <0.4,
    vector-instances >=3.4 && <4,
    wide-word >=0.1.6 && <2,

library punycode
  hs-source-dirs: punycode
  default-language: Haskell2010
  build-depends:
    base >=4.13 && <5,
    bytestring >=0.10 && <0.13,
    cereal >=0.5.8.3 && <0.6,
    mtl >=2 && <3,
    text >=2 && <3,

  exposed-modules: Data.Text.Punycode
  other-modules:
    Data.Text.Punycode.Decode
    Data.Text.Punycode.Encode
    Data.Text.Punycode.Shared

test-suite test
  import: test
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  build-depends:
    iri,
    rerebase <2,
    tasty >=0.12 && <2,
    tasty-hunit >=0.9 && <0.11,