packages feed

hstratus-auth-0.1.0.1: hstratus-auth.cabal

cabal-version:      3.0
name:               hstratus-auth
version:            0.1.0.1
synopsis:           Authenticate with iCloud
description:
  Authenticate with iCloud using Apple ID credentials stored on disk.

  The full sign-in flow — SRP credential exchange followed by any required
  two-factor (2FA) or legacy two-step (2SA) challenge — is handled by a
  single login call. On success the library caches a session token for use
  with other iCloud services.

  This library is unofficial and not supported by Apple. It may break
  without warning if Apple changes their authentication protocol.
license:            BSD-3-Clause
license-file:       LICENSE
author:             Tim Emiola
maintainer:         Tim Emiola <adetokunbo@emio.la>
copyright:          (c) 2026 Tim Emiola
category:           Network
build-type:         Simple
tested-with:
    GHC == 9.2.8
  , GHC == 9.4.8
  , GHC == 9.6.7
  , GHC == 9.8.4
  , GHC == 9.10.2
  , GHC == 9.12.1
extra-doc-files:
  ChangeLog.md
  README.md
data-files:         testdata/*.json

source-repository head
  type:     git
  location: https://github.com/adetokunbo/hstratus.git
  subdir:   hstratus-auth

library hstratus-auth-cli
  visibility:       public
  exposed-modules:  Network.HStratus.Http.Cli
  hs-source-dirs:   src-cli
  build-depends:
    , base                 >=4.12 && <5
    , directory            >=1.3 && <1.4
    , filepath             >=1.4 && <1.6
    , http-client-tls      >=0.3 && <0.4
    , hstratus-auth
    , optparse-applicative >=0.18 && <0.19
    , xdg-basedir          >=0.2 && <0.3
  default-language: Haskell2010
  ghc-options:      -Wall -Wincomplete-uni-patterns -Wpartial-fields -fwarn-tabs

library
  exposed-modules:  Network.HStratus.Http
                    Network.HStratus.Http.Endpoints
                    Network.HStratus.Http.Common
                    Network.HStratus.Session
                    Network.HStratus.Trust
  other-modules:    Network.HStratus.Internal.Http.Api
                    Network.HStratus.Internal.Http.Login
                    Network.HStratus.Internal.Http.Signin
  hs-source-dirs:   src
  build-depends:
    , aeson                >=2.0 && <2.3
    , aeson-casing         >=0.1 && <0.3
    , base                 >=4.12 && <5
    , base16-bytestring    >=1.0 && <1.1
    , base64-bytestring    >=1.0 && <2.1
    , bytestring           >=0.10.8 && <0.11 || >=0.11.3 && <0.13
    , case-insensitive     >=1.2 && <1.3
    , containers           >=0.6 && <0.8
    , crypto-srp           >=0.1 && <0.2
    , cryptohash-sha256    >=0.11 && <0.12
    , directory            >=1.3 && <1.4
    , filepath             >=1.4 && <1.6
    , http-client          >=0.5 && <0.8
    , http-client-tls      >=0.3 && <0.4
    , http-types           >=0.12.1 && <0.13
    , random               >=1.1 && <1.4
    , simple-prompt        >=0.2 && <0.3
    , string-conv          >=0.1 && <0.3
    , text                 >=1.2.3 && <2.2
    , time                 >=1.8 && <1.15
    , transformers         >=0.5 && <0.7
    , unix                 >=2.7 && <2.9
    , uuid                 >=1.3 && <1.4
    , web-cookiejar        >=0.1.3 && <0.2
    , xdg-basedir          >=0.2 && <0.3
    , hstratus-auth:hstratus-auth-internal
  default-language: Haskell2010
  ghc-options:      -Wall -Wincomplete-uni-patterns -Wpartial-fields -fwarn-tabs


library hstratus-auth-internal
  exposed-modules:  Network.HStratus.Internal.Endpoints
                    Network.HStratus.Internal.Http
                    Network.HStratus.Internal.HttpErrors
                    Network.HStratus.Internal.LoginFSM
                    Network.HStratus.Internal.PBKDF2
                    Network.HStratus.Internal.Session
                    Network.HStratus.Internal.Trust
  hs-source-dirs:   src-internal
  build-depends:
    , aeson                >=2.0   && <2.3
    , aeson-casing         >=0.1 && <0.3
    , base                 >=4.12 && <5
    , base16-bytestring    >=1.0 && <1.1
    , bytestring           >=0.10.8 && <0.11 || >=0.11.3 && <0.13
    , case-insensitive     >=1.2 && <1.3
    , containers           >=0.6 && <0.8
    , crypto-srp           >=0.1 && <0.2
    , directory            >=1.3 && <1.4
    , filepath             >=1.4 && <1.6
    , http-client          >=0.5 && <0.8
    , http-types           >=0.12.1 && <0.13
    , simple-prompt        >=0.2 && <0.3
    , string-conv          >=0.1 && <0.3
    , text                 >=1.2.3 && <2.2
    , unix                 >=2.7 && <2.9
    , uuid                 >=1.3 && <1.4
    , xdg-basedir          >=0.2 && <0.3
  default-language: Haskell2010
  ghc-options:      -Wall -Wincomplete-uni-patterns -Wpartial-fields -fwarn-tabs


test-suite test
  type:             exitcode-stdio-1.0
  main-is:          Spec.hs
  hs-source-dirs:   test
  autogen-modules:  Paths_hstratus_auth
  other-modules:    HStratus.ApiLoggerSpec
                    HStratus.Examples
                    HStratus.Http.CliSpec
                    HStratus.HttpMockSpec
                    HStratus.HttpSpec
                    HStratus.Http.EndpointsSpec
                    HStratus.Http.ErrorsSpec
                    HStratus.Http.HeadersSpec
                    HStratus.LoginFSMSpec
                    HStratus.Mock
                    HStratus.PBKDF2Spec
                    HStratus.SessionSpec
                    HStratus.TrustSpec
                    Paths_hstratus_auth
  default-language: Haskell2010
  ghc-options:      -threaded -rtsopts -with-rtsopts=-N -Wall -fwarn-tabs
  build-depends:
    , aeson
    , base
    , base16-bytestring
    , bytestring
    , containers
    , cryptohash-sha1      >=0.11 && <0.12
    , cryptohash-sha256    >=0.11 && <0.12
    , cryptohash-sha512    >=0.11 && <0.12
    , crypto-srp           >=0.1 && <0.2
    , directory            >=1.3.6  && <1.5
    , filepath             >=1.4 && <1.6
    , benri-hspec          >=0.1 && <0.3
    , hspec                >=2.1 && < 3.0
    , http-client          >=0.5 && <0.8
    , http-types
    , QuickCheck           >= 2.13 && < 2.16
    , temporary            >= 1.2 && < 1.4
    , hstratus-auth
    , hstratus-auth:hstratus-auth-cli
    , optparse-applicative >=0.18 && <0.19
    , silently             >= 1.2 && < 1.3
    , string-conv
    , text
    , wai                  >=3.2 && <3.3
    , warp                 >=3.2 && <3.5
    , main-tester          >= 0.2 && < 0.3
    , unix                 >=2.7 && <2.9
    , hstratus-auth:hstratus-auth-internal