packages feed

hurl-workbench-core-0.1.0.0: hurl-workbench-core.cabal

cabal-version: 3.4
name: hurl-workbench-core
version: 0.1.0.0
synopsis: Core library for composing and executing reusable Hurl API workflows
description:
  A Haskell-powered Hurl workbench for composing, exploring, executing, and
  testing reusable API workflows without duplicating request templates.
  .
  This library provides the engine behind the @hurl-workbench@ command: typed,
  versioned Dhall workspaces; byte-preserving Hurl fragment composition with
  source-mapped validation; secure Hurl 8.x execution that keeps secrets out
  of child argv; read-only and mutating recipes; bounded matrices; managed
  services cleaned up as POSIX process groups; and ordered integration suites
  with executable checks and isolated JUnit, HTML, JSON, and TAP reports.

category: Web, Testing
license: BSD-3-Clause
license-file: LICENSE
author: Nadeem Bitar
maintainer: nadeem@gmail.com
copyright: (c) 2026 Nadeem Bitar
build-type: Simple
extra-doc-files:
  CHANGELOG.md
  README.md

extra-source-files:
  schema/*.dhall
  test/fixtures/processes/*.c
  test/fixtures/workspaces/**/*.dhall
  test/fixtures/workspaces/**/*.hurl
  test/fixtures/workspaces/**/*.txt

common common-options
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-uni-patterns
    -Wincomplete-record-updates
    -Wredundant-constraints
    -fhide-source-paths
    -Wmissing-export-lists
    -Wpartial-fields
    -Wmissing-deriving-strategies

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

library
  import: common-options
  hs-source-dirs: src
  exposed-modules:
    HurlWorkbench.Check.Resolve
    HurlWorkbench.Check.Run
    HurlWorkbench.Hurl.Capabilities
    HurlWorkbench.Hurl.Format
    HurlWorkbench.Hurl.Run
    HurlWorkbench.Parameter.Generate
    HurlWorkbench.Parameter.Properties
    HurlWorkbench.Parameter.Resolve
    HurlWorkbench.Prelude
    HurlWorkbench.Run.Artifact
    HurlWorkbench.Run.Batch
    HurlWorkbench.Run.FileRoot
    HurlWorkbench.Run.Prepare
    HurlWorkbench.Run.Selection
    HurlWorkbench.Service.Environment
    HurlWorkbench.Service.Group
    HurlWorkbench.Service.Resolve
    HurlWorkbench.Service.Run
    HurlWorkbench.Suite.Isolation
    HurlWorkbench.Suite.Resolve
    HurlWorkbench.Suite.Run
    HurlWorkbench.Suite.Scenario
    HurlWorkbench.Workflow.Render
    HurlWorkbench.Workflow.Resolve
    HurlWorkbench.Workspace.Context
    HurlWorkbench.Workspace.Decode
    HurlWorkbench.Workspace.Discover
    HurlWorkbench.Workspace.Error
    HurlWorkbench.Workspace.Types
    HurlWorkbench.Workspace.Validate

  other-modules:
    HurlWorkbench.Check.Template
    HurlWorkbench.Parameter.Resolve.Internal
    HurlWorkbench.Process.Run
    HurlWorkbench.Workspace.Context.Internal

  build-depends:
    aeson >=2.2.5.1 && <2.3,
    async ^>=2.2.6,
    base >=4.20 && <5,
    bytestring >=0.11 && <0.13,
    containers >=0.6 && <0.8,
    dhall ^>=1.42,
    directory ^>=1.3,
    filepath >=1.4 && <1.6,
    generic-lens ^>=2.3,
    http-client ^>=0.7.19,
    http-types >=0.12 && <0.13,
    lens ^>=5.3,
    process >=1.6.3 && <1.7,
    stm >=2.5 && <2.6,
    temporary ^>=1.3,
    text ^>=2.1,
    time >=1.14 && <1.17,
    typed-process ^>=0.2.13,
    unix >=2.8.8 && <2.9,

test-suite hurl-workbench-core-test
  import: common-options
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  other-modules:
    HurlWorkbench.Check.RunTest
    HurlWorkbench.Hurl.RunTest
    HurlWorkbench.Parameter.GenerateTest
    HurlWorkbench.Parameter.ParameterTest
    HurlWorkbench.Run.FileRootTest
    HurlWorkbench.Run.SelectionTest
    HurlWorkbench.Service.RunTest
    HurlWorkbench.Suite.LifecycleTest
    HurlWorkbench.Suite.RunTest
    HurlWorkbench.Suite.ScenarioTest
    HurlWorkbench.Workflow.WorkflowTest
    HurlWorkbench.Workspace.NameSafetyTest
    HurlWorkbench.Workspace.WorkspaceTest

  ghc-options:
    -threaded

  build-depends:
    aeson >=2.2.5.1 && <2.3,
    async,
    base >=4.20 && <5,
    bytestring,
    containers,
    directory,
    filepath,
    generic-lens,
    hurl-workbench-core,
    lens,
    stm,
    tasty ^>=1.5,
    tasty-hunit ^>=0.10,
    temporary ^>=1.3,
    text,
    time >=1.14 && <1.17,
    typed-process,
    unix,