packages feed

kansoku-api-0.2.0.0: kansoku-api.cabal

cabal-version: 3.0
name: kansoku-api
version: 0.2.0.0
synopsis: Servant API and wire DTO types for Kansoku.
description:
  Shared Servant route types, analytics event types, metric DTOs, validation,
  and the Kansoku prelude used by Kansoku packages and clients.

license: BSD-3-Clause
author: Nadeem Bitar
maintainer: nadeem@gmail.com
category: Web
build-type: Simple
extra-source-files: CHANGELOG.md

common common
  ghc-options:
    -Wall
    -Wcompat
    -Wredundant-constraints
    -Werror=missing-fields

  default-language: GHC2024
  default-extensions:
    DeriveAnyClass
    DuplicateRecordFields
    MultilineStrings
    OverloadedLabels
    OverloadedStrings

library
  import: common
  hs-source-dirs: src
  exposed-modules:
    Kansoku.Api
    Kansoku.Api.OpenApi
    Kansoku.Api.Response
    Kansoku.Auth.Api
    Kansoku.Cohort.Api
    Kansoku.Cohort.Types
    Kansoku.Event
    Kansoku.Event.Contract
    Kansoku.Event.Registry
    Kansoku.Event.Types
    Kansoku.Event.Validation
    Kansoku.Ingest.Api
    Kansoku.Metrics.Api
    Kansoku.Metrics.Definition
    Kansoku.Metrics.DefinitionApi
    Kansoku.Metrics.Filter
    Kansoku.Metrics.Limits
    Kansoku.Prelude
    Kansoku.Users.Api
    Kansoku.Users.Types

  build-depends:
    aeson >=2.2.1,
    base >=4.21 && <5,
    bytestring,
    containers,
    generic-lens >=2.2 && <2.4,
    http-api-data,
    http-media,
    http-types,
    lens ^>=5.3,
    openapi-hs,
    relay-pagination ==0.1.1.2,
    relay-pagination-servant ==0.1.1.2,
    scientific >=0.3.8 && <0.4,
    servant,
    servant-openapi-hs,
    sop-core,
    text,
    time,
    uuid,

-- Writes docs/api/openapi.json deterministically from the served route type.
executable kansoku-openapi
  import: common
  main-is: OpenApi.hs
  hs-source-dirs: app
  build-depends:
    aeson-pretty,
    base >=4.21 && <5,
    bytestring,
    directory,
    kansoku-api,

-- Writes docs/contracts/events.json deterministically from the event registry.
executable kansoku-contracts
  import: common
  main-is: Contracts.hs
  hs-source-dirs: app
  build-depends:
    aeson-pretty,
    base >=4.21 && <5,
    bytestring,
    directory,
    kansoku-api,