pantry-0.1.1.2: Content addressable Haskell package management

Safe HaskellNone
LanguageHaskell2010

Pantry.Internal.Stackage

Description

All types and functions exported from this module are for advanced usage only. They are needed for stackage-server integration with pantry.

Synopsis

Documentation

data family EntityField record a :: Type #

Instances
data EntityField TreeEntry typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField TreeEntry typ where
data EntityField Tree typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField Tree typ where
data EntityField Version typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField Version typ where
data EntityField PackageName typ Source # 
Instance details

Defined in Pantry.Storage

data family Key record :: Type #

Instances
Eq (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key TreeEntry -> Key TreeEntry -> Bool

(/=) :: Key TreeEntry -> Key TreeEntry -> Bool

Eq (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key Tree -> Key Tree -> Bool

(/=) :: Key Tree -> Key Tree -> Bool

Eq (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key Version -> Key Version -> Bool

(/=) :: Key Version -> Key Version -> Bool

Eq (Key PackageName) 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key PackageName -> Key PackageName -> Bool

(/=) :: Key PackageName -> Key PackageName -> Bool

Ord (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Ord (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

compare :: Key Tree -> Key Tree -> Ordering

(<) :: Key Tree -> Key Tree -> Bool

(<=) :: Key Tree -> Key Tree -> Bool

(>) :: Key Tree -> Key Tree -> Bool

(>=) :: Key Tree -> Key Tree -> Bool

max :: Key Tree -> Key Tree -> Key Tree

min :: Key Tree -> Key Tree -> Key Tree

Ord (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

compare :: Key Version -> Key Version -> Ordering

(<) :: Key Version -> Key Version -> Bool

(<=) :: Key Version -> Key Version -> Bool

(>) :: Key Version -> Key Version -> Bool

(>=) :: Key Version -> Key Version -> Bool

max :: Key Version -> Key Version -> Key Version

min :: Key Version -> Key Version -> Key Version

Ord (Key PackageName) 
Instance details

Defined in Pantry.Storage

Read (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Methods

readsPrec :: Int -> ReadS (Key TreeEntry)

readList :: ReadS [Key TreeEntry]

readPrec :: ReadPrec (Key TreeEntry)

readListPrec :: ReadPrec [Key TreeEntry]

Read (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

readsPrec :: Int -> ReadS (Key Tree)

readList :: ReadS [Key Tree]

readPrec :: ReadPrec (Key Tree)

readListPrec :: ReadPrec [Key Tree]

Read (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

readsPrec :: Int -> ReadS (Key Version)

readList :: ReadS [Key Version]

readPrec :: ReadPrec (Key Version)

readListPrec :: ReadPrec [Key Version]

Read (Key PackageName) 
Instance details

Defined in Pantry.Storage

Methods

readsPrec :: Int -> ReadS (Key PackageName)

readList :: ReadS [Key PackageName]

readPrec :: ReadPrec (Key PackageName)

readListPrec :: ReadPrec [Key PackageName]

Show (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key TreeEntry -> ShowS

show :: Key TreeEntry -> String

showList :: [Key TreeEntry] -> ShowS

Show (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key Tree -> ShowS

show :: Key Tree -> String

showList :: [Key Tree] -> ShowS

Show (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key Version -> ShowS

show :: Key Version -> String

showList :: [Key Version] -> ShowS

Show (Key PackageName) 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key PackageName -> ShowS

show :: Key PackageName -> String

showList :: [Key PackageName] -> ShowS

FromJSON (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseJSON :: Value -> Parser (Key TreeEntry) #

parseJSONList :: Value -> Parser [Key TreeEntry] #

FromJSON (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseJSON :: Value -> Parser (Key Tree) #

parseJSONList :: Value -> Parser [Key Tree] #

FromJSON (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseJSON :: Value -> Parser (Key Version) #

parseJSONList :: Value -> Parser [Key Version] #

FromJSON (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseJSON :: Value -> Parser (Key PackageName) #

parseJSONList :: Value -> Parser [Key PackageName] #

ToJSON (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key Version) Source # 
Instance details

Defined in Pantry.Storage

ToJSON (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Key TreeEntry -> PersistValue

fromPersistValue :: PersistValue -> Either Text (Key TreeEntry)

PersistField (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Key Tree -> PersistValue

fromPersistValue :: PersistValue -> Either Text (Key Tree)

PersistField (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Key Version -> PersistValue

fromPersistValue :: PersistValue -> Either Text (Key Version)

PersistField (Key PackageName) 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Key PackageName -> PersistValue

fromPersistValue :: PersistValue -> Either Text (Key PackageName)

PersistFieldSql (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key TreeEntry) -> SqlType

PersistFieldSql (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key Tree) -> SqlType

PersistFieldSql (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key Version) -> SqlType

PersistFieldSql (Key PackageName) 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key PackageName) -> SqlType

(PersistEntity a, PersistEntityBackend a ~ backend, IsPersistBackend backend) => RawSql (Key a) 
Instance details

Defined in Database.Persist.Sql.Class

Methods

rawSqlCols :: (DBName -> Text) -> Key a -> (Int, [Text])

rawSqlColCountReason :: Key a -> String

rawSqlProcessRow :: [PersistValue] -> Either Text (Key a)

FromHttpApiData (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Methods

parseUrlPiece :: Text -> Either Text (Key TreeEntry)

parseHeader :: ByteString -> Either Text (Key TreeEntry)

parseQueryParam :: Text -> Either Text (Key TreeEntry)

FromHttpApiData (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

parseUrlPiece :: Text -> Either Text (Key Tree)

parseHeader :: ByteString -> Either Text (Key Tree)

parseQueryParam :: Text -> Either Text (Key Tree)

FromHttpApiData (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

parseUrlPiece :: Text -> Either Text (Key Version)

parseHeader :: ByteString -> Either Text (Key Version)

parseQueryParam :: Text -> Either Text (Key Version)

FromHttpApiData (Key PackageName) 
Instance details

Defined in Pantry.Storage

Methods

parseUrlPiece :: Text -> Either Text (Key PackageName)

parseHeader :: ByteString -> Either Text (Key PackageName)

parseQueryParam :: Text -> Either Text (Key PackageName)

PathPiece (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Methods

fromPathPiece :: Text -> Maybe (Key TreeEntry)

toPathPiece :: Key TreeEntry -> Text

PathPiece (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

fromPathPiece :: Text -> Maybe (Key Tree)

toPathPiece :: Key Tree -> Text

PathPiece (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

fromPathPiece :: Text -> Maybe (Key Version)

toPathPiece :: Key Version -> Text

PathPiece (Key PackageName) 
Instance details

Defined in Pantry.Storage

Methods

fromPathPiece :: Text -> Maybe (Key PackageName)

toPathPiece :: Key PackageName -> Text

ToHttpApiData (Key TreeEntry) 
Instance details

Defined in Pantry.Storage

Methods

toUrlPiece :: Key TreeEntry -> Text

toEncodedUrlPiece :: Key TreeEntry -> Builder

toHeader :: Key TreeEntry -> ByteString

toQueryParam :: Key TreeEntry -> Text

ToHttpApiData (Key Tree) 
Instance details

Defined in Pantry.Storage

Methods

toUrlPiece :: Key Tree -> Text

toEncodedUrlPiece :: Key Tree -> Builder

toHeader :: Key Tree -> ByteString

toQueryParam :: Key Tree -> Text

ToHttpApiData (Key Version) 
Instance details

Defined in Pantry.Storage

Methods

toUrlPiece :: Key Version -> Text

toEncodedUrlPiece :: Key Version -> Builder

toHeader :: Key Version -> ByteString

toQueryParam :: Key Version -> Text

ToHttpApiData (Key PackageName) 
Instance details

Defined in Pantry.Storage

newtype Key TreeEntry Source # 
Instance details

Defined in Pantry.Storage

newtype Key TreeEntry = TreeEntryKey {}
newtype Key Tree Source # 
Instance details

Defined in Pantry.Storage

newtype Key Tree = TreeKey' {}
newtype Key Version Source # 
Instance details

Defined in Pantry.Storage

newtype Key Version = VersionKey {}
newtype Key PackageName Source # 
Instance details

Defined in Pantry.Storage

newtype Key PackageName = PackageNameKey {}

data family Unique record :: Type #

Instances
Show (Unique Tree) 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Unique Tree -> ShowS

show :: Unique Tree -> String

showList :: [Unique Tree] -> ShowS

Show (Unique Version) 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Unique Version -> ShowS

show :: Unique Version -> String

showList :: [Unique Version] -> ShowS

Show (Unique PackageName) 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Unique PackageName -> ShowS

show :: Unique PackageName -> String

showList :: [Unique PackageName] -> ShowS

data Unique TreeEntry Source # 
Instance details

Defined in Pantry.Storage

data Unique Tree Source # 
Instance details

Defined in Pantry.Storage

data Unique Tree = UniqueTree (Key Blob)
data Unique Version Source # 
Instance details

Defined in Pantry.Storage

data Unique PackageName Source # 
Instance details

Defined in Pantry.Storage

data SafeFilePath Source #

Instances
Eq SafeFilePath Source # 
Instance details

Defined in Pantry.Types

Methods

(==) :: SafeFilePath -> SafeFilePath -> Bool

(/=) :: SafeFilePath -> SafeFilePath -> Bool

Ord SafeFilePath Source # 
Instance details

Defined in Pantry.Types

Show SafeFilePath Source # 
Instance details

Defined in Pantry.Types

Methods

showsPrec :: Int -> SafeFilePath -> ShowS

show :: SafeFilePath -> String

showList :: [SafeFilePath] -> ShowS

Display SafeFilePath Source # 
Instance details

Defined in Pantry.Types

Methods

display :: SafeFilePath -> Utf8Builder

textDisplay :: SafeFilePath -> Text

PersistField SafeFilePath Source # 
Instance details

Defined in Pantry.Types

Methods

toPersistValue :: SafeFilePath -> PersistValue

fromPersistValue :: PersistValue -> Either Text SafeFilePath

PersistFieldSql SafeFilePath Source # 
Instance details

Defined in Pantry.Types

Methods

sqlType :: Proxy SafeFilePath -> SqlType

newtype ModuleNameP Source #

Constructors

ModuleNameP 

Fields

Instances
Eq ModuleNameP Source # 
Instance details

Defined in Pantry.Types

Methods

(==) :: ModuleNameP -> ModuleNameP -> Bool

(/=) :: ModuleNameP -> ModuleNameP -> Bool

Ord ModuleNameP Source # 
Instance details

Defined in Pantry.Types

Show ModuleNameP Source # 
Instance details

Defined in Pantry.Types

Methods

showsPrec :: Int -> ModuleNameP -> ShowS

show :: ModuleNameP -> String

showList :: [ModuleNameP] -> ShowS

NFData ModuleNameP Source # 
Instance details

Defined in Pantry.Types

Methods

rnf :: ModuleNameP -> ()

Display ModuleNameP Source # 
Instance details

Defined in Pantry.Types

Methods

display :: ModuleNameP -> Utf8Builder

textDisplay :: ModuleNameP -> Text

PersistField ModuleNameP Source # 
Instance details

Defined in Pantry.Types

Methods

toPersistValue :: ModuleNameP -> PersistValue

fromPersistValue :: PersistValue -> Either Text ModuleNameP

PersistFieldSql ModuleNameP Source # 
Instance details

Defined in Pantry.Types

Methods

sqlType :: Proxy ModuleNameP -> SqlType

newtype VersionP Source #

Constructors

VersionP 

Fields

Instances
Eq VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

(==) :: VersionP -> VersionP -> Bool

(/=) :: VersionP -> VersionP -> Bool

Ord VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

compare :: VersionP -> VersionP -> Ordering

(<) :: VersionP -> VersionP -> Bool

(<=) :: VersionP -> VersionP -> Bool

(>) :: VersionP -> VersionP -> Bool

(>=) :: VersionP -> VersionP -> Bool

max :: VersionP -> VersionP -> VersionP

min :: VersionP -> VersionP -> VersionP

Read VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

readsPrec :: Int -> ReadS VersionP

readList :: ReadS [VersionP]

readPrec :: ReadPrec VersionP

readListPrec :: ReadPrec [VersionP]

Show VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

showsPrec :: Int -> VersionP -> ShowS

show :: VersionP -> String

showList :: [VersionP] -> ShowS

FromJSON VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

parseJSON :: Value -> Parser VersionP #

parseJSONList :: Value -> Parser [VersionP] #

ToJSON VersionP Source # 
Instance details

Defined in Pantry.Types

NFData VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

rnf :: VersionP -> ()

Display VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

display :: VersionP -> Utf8Builder

textDisplay :: VersionP -> Text

PersistField VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

toPersistValue :: VersionP -> PersistValue

fromPersistValue :: PersistValue -> Either Text VersionP

PersistFieldSql VersionP Source # 
Instance details

Defined in Pantry.Types

Methods

sqlType :: Proxy VersionP -> SqlType

newtype PackageNameP Source #

Constructors

PackageNameP 
Instances
Eq PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

(==) :: PackageNameP -> PackageNameP -> Bool

(/=) :: PackageNameP -> PackageNameP -> Bool

Ord PackageNameP Source # 
Instance details

Defined in Pantry.Types

Read PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

readsPrec :: Int -> ReadS PackageNameP

readList :: ReadS [PackageNameP]

readPrec :: ReadPrec PackageNameP

readListPrec :: ReadPrec [PackageNameP]

Show PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

showsPrec :: Int -> PackageNameP -> ShowS

show :: PackageNameP -> String

showList :: [PackageNameP] -> ShowS

FromJSON PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

parseJSON :: Value -> Parser PackageNameP #

parseJSONList :: Value -> Parser [PackageNameP] #

FromJSONKey PackageNameP Source # 
Instance details

Defined in Pantry.Types

ToJSON PackageNameP Source # 
Instance details

Defined in Pantry.Types

ToJSONKey PackageNameP Source # 
Instance details

Defined in Pantry.Types

NFData PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

rnf :: PackageNameP -> ()

Display PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

display :: PackageNameP -> Utf8Builder

textDisplay :: PackageNameP -> Text

PersistField PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

toPersistValue :: PackageNameP -> PersistValue

fromPersistValue :: PersistValue -> Either Text PackageNameP

PersistFieldSql PackageNameP Source # 
Instance details

Defined in Pantry.Types

Methods

sqlType :: Proxy PackageNameP -> SqlType

data PantryConfig Source #

Configuration value used by the entire pantry package. Create one using withPantryConfig. See also PantryApp for a convenience approach to using pantry.

Since: 0.1.0.0

Constructors

PantryConfig 

Fields

data Storage Source #

Represents a SQL database connection. This used to be a newtype wrapper around a connection pool. However, when investigating https://github.com/commercialhaskell/stack/issues/4471, it appeared that holding a pool resulted in overly long write locks being held on the database. As a result, we now abstract away whether a pool is used, and the default implementation in Pantry.Storage does not use a pool.

Constructors

Storage 

Fields

  • withStorage_ :: forall env a. HasLogFunc env => ReaderT SqlBackend (RIO env) a -> RIO env a
     
  • withWriteLock_ :: forall env a. HasLogFunc env => RIO env a -> RIO env a
     

packageTreeKey :: Package -> TreeKey Source #

The TreeKey containing this package.

This is a hash of the binary representation of packageTree.

Since: 0.1.0.0

parsePackageName :: String -> Maybe PackageName Source #

Parse a package name from a String.

Since: 0.1.0.0

parseVersion :: String -> Maybe Version Source #

Parse a version from a String.

Since: 0.1.0.0

parseVersionThrowing :: MonadThrow m => String -> m Version Source #

Parse a package version from a String throwing on failure

Since: 0.1.0.0

packageNameString :: PackageName -> String Source #

Render a package name as a String.

Since: 0.1.0.0

versionString :: Version -> String Source #

Render a version as a String.

Since: 0.1.0.0

type ModuleNameId = Key ModuleName Source #

data TreeEntry Source #

Constructors

TreeEntry 

Fields

Instances
PersistEntity TreeEntry Source # 
Instance details

Defined in Pantry.Storage

Associated Types

type PersistEntityBackend TreeEntry :: Type

data Key TreeEntry :: Type #

data EntityField TreeEntry a :: Type #

data Unique TreeEntry :: Type #

Methods

keyToValues :: Key TreeEntry -> [PersistValue]

keyFromValues :: [PersistValue] -> Either Text (Key TreeEntry)

persistIdField :: EntityField TreeEntry (Key TreeEntry)

entityDef :: Monad m => m TreeEntry -> EntityDef

persistFieldDef :: EntityField TreeEntry typ -> FieldDef

toPersistFields :: TreeEntry -> [SomePersistField]

fromPersistValues :: [PersistValue] -> Either Text TreeEntry

persistUniqueKeys :: TreeEntry -> [Unique TreeEntry]

persistUniqueToFieldNames :: Unique TreeEntry -> [(HaskellName, DBName)]

persistUniqueToValues :: Unique TreeEntry -> [PersistValue]

fieldLens :: EntityField TreeEntry field -> forall (f :: Type -> Type). Functor f => (field -> f field) -> Entity TreeEntry -> f (Entity TreeEntry)

PersistField TreeEntry Source # 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: TreeEntry -> PersistValue

fromPersistValue :: PersistValue -> Either Text TreeEntry

PersistFieldSql TreeEntry Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy TreeEntry -> SqlType

ToBackendKey SqlBackend TreeEntry Source # 
Instance details

Defined in Pantry.Storage

Methods

toBackendKey :: Key TreeEntry -> BackendKey SqlBackend

fromBackendKey :: BackendKey SqlBackend -> Key TreeEntry

Eq (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key TreeEntry -> Key TreeEntry -> Bool

(/=) :: Key TreeEntry -> Key TreeEntry -> Bool

Ord (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Read (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

readsPrec :: Int -> ReadS (Key TreeEntry)

readList :: ReadS [Key TreeEntry]

readPrec :: ReadPrec (Key TreeEntry)

readListPrec :: ReadPrec [Key TreeEntry]

Show (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key TreeEntry -> ShowS

show :: Key TreeEntry -> String

showList :: [Key TreeEntry] -> ShowS

FromJSON (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseJSON :: Value -> Parser (Key TreeEntry) #

parseJSONList :: Value -> Parser [Key TreeEntry] #

ToJSON (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Key TreeEntry -> PersistValue

fromPersistValue :: PersistValue -> Either Text (Key TreeEntry)

PersistFieldSql (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key TreeEntry) -> SqlType

FromHttpApiData (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseUrlPiece :: Text -> Either Text (Key TreeEntry)

parseHeader :: ByteString -> Either Text (Key TreeEntry)

parseQueryParam :: Text -> Either Text (Key TreeEntry)

PathPiece (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

fromPathPiece :: Text -> Maybe (Key TreeEntry)

toPathPiece :: Key TreeEntry -> Text

ToHttpApiData (Key TreeEntry) Source # 
Instance details

Defined in Pantry.Storage

Methods

toUrlPiece :: Key TreeEntry -> Text

toEncodedUrlPiece :: Key TreeEntry -> Builder

toHeader :: Key TreeEntry -> ByteString

toQueryParam :: Key TreeEntry -> Text

data EntityField TreeEntry typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField TreeEntry typ where
newtype Key TreeEntry Source # 
Instance details

Defined in Pantry.Storage

newtype Key TreeEntry = TreeEntryKey {}
type PersistEntityBackend TreeEntry Source # 
Instance details

Defined in Pantry.Storage

type PersistEntityBackend TreeEntry = SqlBackend
data Unique TreeEntry Source # 
Instance details

Defined in Pantry.Storage

data Tree Source #

Constructors

Tree 

Fields

Instances
PersistEntity Tree Source # 
Instance details

Defined in Pantry.Storage

Associated Types

type PersistEntityBackend Tree :: Type

data Key Tree :: Type #

data EntityField Tree a :: Type #

data Unique Tree :: Type #

Methods

keyToValues :: Key Tree -> [PersistValue]

keyFromValues :: [PersistValue] -> Either Text (Key Tree)

persistIdField :: EntityField Tree (Key Tree)

entityDef :: Monad m => m Tree -> EntityDef

persistFieldDef :: EntityField Tree typ -> FieldDef

toPersistFields :: Tree -> [SomePersistField]

fromPersistValues :: [PersistValue] -> Either Text Tree

persistUniqueKeys :: Tree -> [Unique Tree]

persistUniqueToFieldNames :: Unique Tree -> [(HaskellName, DBName)]

persistUniqueToValues :: Unique Tree -> [PersistValue]

fieldLens :: EntityField Tree field -> forall (f :: Type -> Type). Functor f => (field -> f field) -> Entity Tree -> f (Entity Tree)

PersistField Tree Source # 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Tree -> PersistValue

fromPersistValue :: PersistValue -> Either Text Tree

PersistFieldSql Tree Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy Tree -> SqlType

ToBackendKey SqlBackend Tree Source # 
Instance details

Defined in Pantry.Storage

Methods

toBackendKey :: Key Tree -> BackendKey SqlBackend

fromBackendKey :: BackendKey SqlBackend -> Key Tree

Eq (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key Tree -> Key Tree -> Bool

(/=) :: Key Tree -> Key Tree -> Bool

Ord (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

compare :: Key Tree -> Key Tree -> Ordering

(<) :: Key Tree -> Key Tree -> Bool

(<=) :: Key Tree -> Key Tree -> Bool

(>) :: Key Tree -> Key Tree -> Bool

(>=) :: Key Tree -> Key Tree -> Bool

max :: Key Tree -> Key Tree -> Key Tree

min :: Key Tree -> Key Tree -> Key Tree

Read (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

readsPrec :: Int -> ReadS (Key Tree)

readList :: ReadS [Key Tree]

readPrec :: ReadPrec (Key Tree)

readListPrec :: ReadPrec [Key Tree]

Show (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key Tree -> ShowS

show :: Key Tree -> String

showList :: [Key Tree] -> ShowS

Show (Unique Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Unique Tree -> ShowS

show :: Unique Tree -> String

showList :: [Unique Tree] -> ShowS

FromJSON (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseJSON :: Value -> Parser (Key Tree) #

parseJSONList :: Value -> Parser [Key Tree] #

ToJSON (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Key Tree -> PersistValue

fromPersistValue :: PersistValue -> Either Text (Key Tree)

PersistFieldSql (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key Tree) -> SqlType

FromHttpApiData (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseUrlPiece :: Text -> Either Text (Key Tree)

parseHeader :: ByteString -> Either Text (Key Tree)

parseQueryParam :: Text -> Either Text (Key Tree)

PathPiece (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

fromPathPiece :: Text -> Maybe (Key Tree)

toPathPiece :: Key Tree -> Text

ToHttpApiData (Key Tree) Source # 
Instance details

Defined in Pantry.Storage

Methods

toUrlPiece :: Key Tree -> Text

toEncodedUrlPiece :: Key Tree -> Builder

toHeader :: Key Tree -> ByteString

toQueryParam :: Key Tree -> Text

data EntityField Tree typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField Tree typ where
newtype Key Tree Source # 
Instance details

Defined in Pantry.Storage

newtype Key Tree = TreeKey' {}
type PersistEntityBackend Tree Source # 
Instance details

Defined in Pantry.Storage

type PersistEntityBackend Tree = SqlBackend
data Unique Tree Source # 
Instance details

Defined in Pantry.Storage

data Unique Tree = UniqueTree (Key Blob)

type HackageCabalId = Key HackageCabal Source #

data Version Source #

Instances
PersistEntity Version Source # 
Instance details

Defined in Pantry.Storage

Associated Types

type PersistEntityBackend Version :: Type

data Key Version :: Type #

data EntityField Version a :: Type #

data Unique Version :: Type #

Methods

keyToValues :: Key Version -> [PersistValue]

keyFromValues :: [PersistValue] -> Either Text (Key Version)

persistIdField :: EntityField Version (Key Version)

entityDef :: Monad m => m Version -> EntityDef

persistFieldDef :: EntityField Version typ -> FieldDef

toPersistFields :: Version -> [SomePersistField]

fromPersistValues :: [PersistValue] -> Either Text Version

persistUniqueKeys :: Version -> [Unique Version]

persistUniqueToFieldNames :: Unique Version -> [(HaskellName, DBName)]

persistUniqueToValues :: Unique Version -> [PersistValue]

fieldLens :: EntityField Version field -> forall (f :: Type -> Type). Functor f => (field -> f field) -> Entity Version -> f (Entity Version)

PersistField Version Source # 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Version -> PersistValue

fromPersistValue :: PersistValue -> Either Text Version

PersistFieldSql Version Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy Version -> SqlType

ToBackendKey SqlBackend Version Source # 
Instance details

Defined in Pantry.Storage

Methods

toBackendKey :: Key Version -> BackendKey SqlBackend

fromBackendKey :: BackendKey SqlBackend -> Key Version

Eq (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key Version -> Key Version -> Bool

(/=) :: Key Version -> Key Version -> Bool

Ord (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

compare :: Key Version -> Key Version -> Ordering

(<) :: Key Version -> Key Version -> Bool

(<=) :: Key Version -> Key Version -> Bool

(>) :: Key Version -> Key Version -> Bool

(>=) :: Key Version -> Key Version -> Bool

max :: Key Version -> Key Version -> Key Version

min :: Key Version -> Key Version -> Key Version

Read (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

readsPrec :: Int -> ReadS (Key Version)

readList :: ReadS [Key Version]

readPrec :: ReadPrec (Key Version)

readListPrec :: ReadPrec [Key Version]

Show (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key Version -> ShowS

show :: Key Version -> String

showList :: [Key Version] -> ShowS

Show (Unique Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Unique Version -> ShowS

show :: Unique Version -> String

showList :: [Unique Version] -> ShowS

FromJSON (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseJSON :: Value -> Parser (Key Version) #

parseJSONList :: Value -> Parser [Key Version] #

ToJSON (Key Version) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Key Version -> PersistValue

fromPersistValue :: PersistValue -> Either Text (Key Version)

PersistFieldSql (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key Version) -> SqlType

FromHttpApiData (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseUrlPiece :: Text -> Either Text (Key Version)

parseHeader :: ByteString -> Either Text (Key Version)

parseQueryParam :: Text -> Either Text (Key Version)

PathPiece (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

fromPathPiece :: Text -> Maybe (Key Version)

toPathPiece :: Key Version -> Text

ToHttpApiData (Key Version) Source # 
Instance details

Defined in Pantry.Storage

Methods

toUrlPiece :: Key Version -> Text

toEncodedUrlPiece :: Key Version -> Builder

toHeader :: Key Version -> ByteString

toQueryParam :: Key Version -> Text

data EntityField Version typ Source # 
Instance details

Defined in Pantry.Storage

data EntityField Version typ where
newtype Key Version Source # 
Instance details

Defined in Pantry.Storage

newtype Key Version = VersionKey {}
type PersistEntityBackend Version Source # 
Instance details

Defined in Pantry.Storage

type PersistEntityBackend Version = SqlBackend
data Unique Version Source # 
Instance details

Defined in Pantry.Storage

data PackageName Source #

Instances
PersistEntity PackageName Source # 
Instance details

Defined in Pantry.Storage

Associated Types

type PersistEntityBackend PackageName :: Type

data Key PackageName :: Type #

data EntityField PackageName a :: Type #

data Unique PackageName :: Type #

Methods

keyToValues :: Key PackageName -> [PersistValue]

keyFromValues :: [PersistValue] -> Either Text (Key PackageName)

persistIdField :: EntityField PackageName (Key PackageName)

entityDef :: Monad m => m PackageName -> EntityDef

persistFieldDef :: EntityField PackageName typ -> FieldDef

toPersistFields :: PackageName -> [SomePersistField]

fromPersistValues :: [PersistValue] -> Either Text PackageName

persistUniqueKeys :: PackageName -> [Unique PackageName]

persistUniqueToFieldNames :: Unique PackageName -> [(HaskellName, DBName)]

persistUniqueToValues :: Unique PackageName -> [PersistValue]

fieldLens :: EntityField PackageName field -> forall (f :: Type -> Type). Functor f => (field -> f field) -> Entity PackageName -> f (Entity PackageName)

PersistField PackageName Source # 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: PackageName -> PersistValue

fromPersistValue :: PersistValue -> Either Text PackageName

PersistFieldSql PackageName Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy PackageName -> SqlType

ToBackendKey SqlBackend PackageName Source # 
Instance details

Defined in Pantry.Storage

Methods

toBackendKey :: Key PackageName -> BackendKey SqlBackend

fromBackendKey :: BackendKey SqlBackend -> Key PackageName

Eq (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

(==) :: Key PackageName -> Key PackageName -> Bool

(/=) :: Key PackageName -> Key PackageName -> Bool

Ord (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Read (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

readsPrec :: Int -> ReadS (Key PackageName)

readList :: ReadS [Key PackageName]

readPrec :: ReadPrec (Key PackageName)

readListPrec :: ReadPrec [Key PackageName]

Show (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Key PackageName -> ShowS

show :: Key PackageName -> String

showList :: [Key PackageName] -> ShowS

Show (Unique PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

showsPrec :: Int -> Unique PackageName -> ShowS

show :: Unique PackageName -> String

showList :: [Unique PackageName] -> ShowS

FromJSON (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseJSON :: Value -> Parser (Key PackageName) #

parseJSONList :: Value -> Parser [Key PackageName] #

ToJSON (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

PersistField (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

toPersistValue :: Key PackageName -> PersistValue

fromPersistValue :: PersistValue -> Either Text (Key PackageName)

PersistFieldSql (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

sqlType :: Proxy (Key PackageName) -> SqlType

FromHttpApiData (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

parseUrlPiece :: Text -> Either Text (Key PackageName)

parseHeader :: ByteString -> Either Text (Key PackageName)

parseQueryParam :: Text -> Either Text (Key PackageName)

PathPiece (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

Methods

fromPathPiece :: Text -> Maybe (Key PackageName)

toPathPiece :: Key PackageName -> Text

ToHttpApiData (Key PackageName) Source # 
Instance details

Defined in Pantry.Storage

data EntityField PackageName typ Source # 
Instance details

Defined in Pantry.Storage

newtype Key PackageName Source # 
Instance details

Defined in Pantry.Storage

newtype Key PackageName = PackageNameKey {}
type PersistEntityBackend PackageName Source # 
Instance details

Defined in Pantry.Storage

type PersistEntityBackend PackageName = SqlBackend
data Unique PackageName Source # 
Instance details

Defined in Pantry.Storage

type BlobId = Key Blob Source #

migrateAll :: Migration Source #

getPackageNameById :: PackageNameId -> ReaderT SqlBackend (RIO env) (Maybe PackageName) Source #

getPackageNameId :: PackageName -> ReaderT SqlBackend (RIO env) PackageNameId Source #

getVersionId :: Version -> ReaderT SqlBackend (RIO env) VersionId Source #

loadBlobById :: BlobId -> ReaderT SqlBackend (RIO env) ByteString Source #

allBlobsSource Source #

Arguments

:: HasResourceMap env 
=> Maybe BlobId

For some x, yield blob whose id>x.

-> ConduitT () (BlobId, ByteString) (ReaderT SqlBackend (RIO env)) () 

allBlobsCount :: Maybe BlobId -> ReaderT SqlBackend (RIO env) Int Source #

getBlobKey :: BlobId -> ReaderT SqlBackend (RIO env) BlobKey Source #

getTreeForKey :: TreeKey -> ReaderT SqlBackend (RIO env) (Maybe (Entity Tree)) Source #

data HackageTarballResult Source #

Information returned by getHackageTarball

Since: 0.1.0.0

Constructors

HackageTarballResult 

Fields

  • htrPackage :: !Package

    Package that was loaded from Hackage tarball

  • htrFreshPackageInfo :: !(Maybe (GenericPackageDescription, TreeId))

    This information is only available whenever package was just loaded into pantry.

forceUpdateHackageIndex :: (HasPantryConfig env, HasLogFunc env) => Maybe Utf8Builder -> RIO env DidUpdateOccur Source #

Same as updateHackageIndex, but force the database update even if hackage security tells that there is no change. This can be useful in order to make sure the database is in sync with the locally downloaded tarball

Since: 0.1.0.0

getHackageTarball :: (HasPantryConfig env, HasLogFunc env, HasProcessContext env) => PackageIdentifierRevision -> Maybe TreeKey -> RIO env HackageTarballResult Source #