packages feed

firebase-hs-0.3.0.0: firebase-hs.cabal

cabal-version:      3.0
name:               firebase-hs
version:            0.3.0.0
synopsis:           Firebase Auth, Firestore, and Servant integration for Haskell
description:
  Firebase Authentication (JWT verification), Firestore REST API client
  (CRUD, queries, transactions), and optional WAI middleware and Servant
  auth combinator. Verify ID tokens against Google's public keys, read and
  write Firestore documents, and protect any Haskell web server with Firebase
  auth, all from pure, composable Haskell.

license:            BSD-3-Clause
license-file:       LICENSE
copyright:          2026 Gondola Bros Entertainment
author:             Devon Tomlin
maintainer:         devon.tomlin@novavero.ai
homepage:           https://github.com/Gondola-Bros-Entertainment/firebase-hs
bug-reports:        https://github.com/Gondola-Bros-Entertainment/firebase-hs/issues
category:           Web, Authentication, Database
stability:          experimental
build-type:         Simple
tested-with:        GHC ==9.6.* || ==9.8.* || ==9.10.* || ==9.12.*
extra-doc-files:
    CHANGELOG.md
    README.md

flag wai
  description: Enable WAI auth middleware (Firebase.Auth.WAI)
  default:     False
  manual:      True

flag servant
  description: Enable Servant auth combinator (Firebase.Servant)
  default:     False
  manual:      True

common warnings
  ghc-options:
    -Wall
    -Wcompat
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wredundant-constraints

common extensions
  default-language: Haskell2010
  default-extensions:
    LambdaCase
    OverloadedStrings
    StrictData
    TupleSections

library
  import:           warnings, extensions
  exposed-modules:
    Firebase.Auth
    Firebase.Auth.Internal
    Firebase.Auth.Types
    Firebase.Firestore
    Firebase.Firestore.Internal
    Firebase.Firestore.Query
    Firebase.Firestore.Types

  build-depends:
      base              >= 4.18   && < 5
    , aeson             >= 2.0    && < 2.4
    , base64-bytestring >= 1.2    && < 1.3
    , bytestring        >= 0.11   && < 0.13
    , containers        >= 0.6    && < 0.9
    , crypton           >= 0.31   && < 2
    , http-client       >= 0.7.13 && < 0.8
    , http-client-tls   >= 0.3    && < 0.5
    , http-types        >= 0.12   && < 0.13
    , text              >= 1.2    && < 2.2
    , time              >= 1.12   && < 1.17
    , transformers      >= 0.5    && < 0.7

  if flag(wai)
    exposed-modules: Firebase.Auth.WAI
    build-depends:
        vault            >= 0.3 && < 0.4
      , wai              >= 3.2 && < 3.3

  if flag(servant)
    exposed-modules: Firebase.Servant
    build-depends:
        servant-server   >= 0.19 && < 0.21
      , wai              >= 3.2 && < 3.3

  hs-source-dirs:   src

test-suite firebase-hs-test
  import:           warnings, extensions
  type:             exitcode-stdio-1.0
  main-is:          Main.hs
  hs-source-dirs:   test
  build-depends:
      base             >= 4.18   && < 5
    , aeson            >= 2.0    && < 2.4
    , bytestring       >= 0.11   && < 0.13
    , containers       >= 0.6    && < 0.9
    , firebase-hs
    , http-client      >= 0.7.13 && < 0.8
    , http-types       >= 0.12   && < 0.13
    , text             >= 1.2    && < 2.2
    , time             >= 1.12   && < 1.17

source-repository head
  type:     git
  location: https://github.com/Gondola-Bros-Entertainment/firebase-hs
  branch:   main