cabal-version:      1.18
name:               jsonpatch
version:            0.1.0.0
license:            AGPL-3
license-file:       COPYING
maintainer:         Patrick Brisbin
homepage:           https://github.com/pbrisbin/jsonpatch#readme
bug-reports:        https://github.com/pbrisbin/jsonpatch/issues
synopsis:           JSON Patch parsing and application
description:
    This is a Haskell library for parsing and applying JSON Patches
    .
    From <https://www.json.org/>:
    .
    JSON Patch is a format for describing changes to a
    [JSON](https://www.json.org/) document. It can be used to avoid sending a
    whole document when only a part has changed. When used in combination with the
    [HTTP PATCH method](https://datatracker.ietf.org/doc/html/rfc5789/), it allows
    partial updates for HTTP APIs in a standards compliant way.
    .
    The patch documents are themselves JSON documents.
    .
    JSON Patch is specified in [RFC 6902](https://datatracker.ietf.org/doc/html/rfc6902/) from the IETF.

category:           JSON
build-type:         Simple
extra-source-files: tests.json
extra-doc-files:
    README.md
    CHANGELOG.md

source-repository head
    type:     git
    location: https://github.com/pbrisbin/jsonpatch

library
    exposed-modules:
        Data.Aeson.Optics.Ext
        Data.JSON.Patch
        Data.JSON.Patch.Apply
        Data.JSON.Patch.Error
        Data.JSON.Patch.Type
        Data.JSON.Pointer
        Data.JSON.Pointer.Token
        Data.Vector.Ext

    hs-source-dirs:     src
    other-modules:      Paths_jsonpatch
    default-language:   GHC2021
    default-extensions:
        DataKinds DeriveAnyClass DerivingStrategies DerivingVia
        DuplicateRecordFields GADTs LambdaCase NoFieldSelectors
        NoImplicitPrelude NoMonomorphismRestriction NoPostfixOperators
        OverloadedRecordDot OverloadedStrings QuasiQuotes TypeFamilies

    ghc-options:
        -Weverything -Wno-all-missed-specialisations
        -Wno-missed-specialisations -Wno-missing-exported-signatures
        -Wno-missing-import-lists -Wno-missing-local-signatures
        -Wno-monomorphism-restriction -Wno-safe -Wno-unsafe

    build-depends:
        aeson >=2.0.3.0,
        aeson-optics >=1.2.0.1,
        attoparsec >=0.14.4,
        base >=4.16.4.0 && <5,
        mtl >=2.2.2,
        optics >=0.4.2,
        text >=1.2.5.0,
        vector >=0.12.3.1

    if impl(ghc >=9.8)
        ghc-options:
            -Wno-missing-role-annotations -Wno-missing-poly-kind-signatures

    if impl(ghc >=9.2)
        ghc-options: -Wno-missing-kind-signatures

    if impl(ghc >=8.10)
        ghc-options:
            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module

    if impl(ghc >=8.8)
        ghc-options: -fwrite-ide-info

test-suite readme
    type:               exitcode-stdio-1.0
    main-is:            README.lhs
    other-modules:      Paths_jsonpatch
    default-language:   GHC2021
    default-extensions:
        DataKinds DeriveAnyClass DerivingStrategies DerivingVia
        DuplicateRecordFields GADTs LambdaCase NoFieldSelectors
        NoImplicitPrelude NoMonomorphismRestriction NoPostfixOperators
        OverloadedRecordDot OverloadedStrings QuasiQuotes TypeFamilies

    ghc-options:
        -Weverything -Wno-all-missed-specialisations
        -Wno-missed-specialisations -Wno-missing-exported-signatures
        -Wno-missing-import-lists -Wno-missing-local-signatures
        -Wno-monomorphism-restriction -Wno-safe -Wno-unsafe -pgmL
        markdown-unlit

    build-depends:
        aeson >=2.0.3.0,
        aeson-pretty >=0.8.9,
        aeson-qq >=0.8.4,
        base >=4.16.4.0 && <5,
        bytestring >=0.11.4.0,
        jsonpatch,
        markdown-unlit >=0.5.1

    if impl(ghc >=9.8)
        ghc-options:
            -Wno-missing-role-annotations -Wno-missing-poly-kind-signatures

    if impl(ghc >=9.2)
        ghc-options: -Wno-missing-kind-signatures

    if impl(ghc >=8.10)
        ghc-options:
            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module

    if impl(ghc >=8.8)
        ghc-options: -fwrite-ide-info

test-suite spec
    type:               exitcode-stdio-1.0
    main-is:            Spec.hs
    hs-source-dirs:     test
    other-modules:
        Data.Aeson.Optics.ExtSpec
        Data.JSON.Patch.PointerSpec
        Data.JSON.PatchSpec
        Data.Vector.ExtSpec
        Paths_jsonpatch

    default-language:   GHC2021
    default-extensions:
        DataKinds DeriveAnyClass DerivingStrategies DerivingVia
        DuplicateRecordFields GADTs LambdaCase NoFieldSelectors
        NoImplicitPrelude NoMonomorphismRestriction NoPostfixOperators
        OverloadedRecordDot OverloadedStrings QuasiQuotes TypeFamilies

    ghc-options:
        -Weverything -Wno-all-missed-specialisations
        -Wno-missed-specialisations -Wno-missing-exported-signatures
        -Wno-missing-import-lists -Wno-missing-local-signatures
        -Wno-monomorphism-restriction -Wno-safe -Wno-unsafe -threaded
        -rtsopts -with-rtsopts=-N

    build-depends:
        aeson >=2.0.3.0,
        aeson-optics >=1.2.0.1,
        aeson-pretty >=0.8.9,
        aeson-qq >=0.8.4,
        base >=4.16.4.0 && <5,
        bytestring >=0.11.4.0,
        hspec >=2.9.7,
        hspec-expectations-json >=1.0.0.7,
        jsonpatch,
        optics >=0.4.2,
        path >=0.9.2,
        vector >=0.12.3.1

    if impl(ghc >=9.8)
        ghc-options:
            -Wno-missing-role-annotations -Wno-missing-poly-kind-signatures

    if impl(ghc >=9.2)
        ghc-options: -Wno-missing-kind-signatures

    if impl(ghc >=8.10)
        ghc-options:
            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module

    if impl(ghc >=8.8)
        ghc-options: -fwrite-ide-info