-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Read bower.json from Haskell
--
-- Bower is a package manager for the web (see http://bower.io).
-- This package provides a data type and ToJSON/FromJSON instances for
-- Bower's package manifest file, bower.json.
@package bower-json
@version 0.8.0
-- | A data type representing the Bower.json package description file,
-- together with a parser and related functions.
--
-- This code is based on the specification at
-- https://github.com/bower/bower.json-spec.
module Web.Bower.PackageMeta
-- | A data type representing the data stored in a bower.json package
-- manifest file.
--
-- Note that the ToJSON / FromJSON instances don't
-- exactly match; for example, it is not always the case that decoding
-- from JSON and then encoding to JSON will give you the exact same JSON
-- that you started with. However, if you start with a PackageMeta value,
-- encode to JSON, and then decode, you should always get the same value
-- back.
data PackageMeta
PackageMeta :: PackageName -> Maybe String -> [FilePath] -> [ModuleType] -> [String] -> [String] -> [String] -> [Author] -> Maybe String -> Maybe Repository -> [(PackageName, VersionRange)] -> [(PackageName, VersionRange)] -> [(PackageName, Version)] -> Bool -> PackageMeta
[bowerName] :: PackageMeta -> PackageName
[bowerDescription] :: PackageMeta -> Maybe String
[bowerMain] :: PackageMeta -> [FilePath]
[bowerModuleType] :: PackageMeta -> [ModuleType]
[bowerLicense] :: PackageMeta -> [String]
[bowerIgnore] :: PackageMeta -> [String]
[bowerKeywords] :: PackageMeta -> [String]
[bowerAuthors] :: PackageMeta -> [Author]
[bowerHomepage] :: PackageMeta -> Maybe String
[bowerRepository] :: PackageMeta -> Maybe Repository
[bowerDependencies] :: PackageMeta -> [(PackageName, VersionRange)]
[bowerDevDependencies] :: PackageMeta -> [(PackageName, VersionRange)]
[bowerResolutions] :: PackageMeta -> [(PackageName, Version)]
[bowerPrivate] :: PackageMeta -> Bool
-- | A valid package name for a Bower package.
data PackageName
runPackageName :: PackageName -> String
-- | A smart constructor for a PackageName. It ensures that the package
-- name satisfies the restrictions described at
-- https://github.com/bower/bower.json-spec#name.
mkPackageName :: String -> Either PackageNameError PackageName
data Author
Author :: String -> Maybe String -> Maybe String -> Author
[authorName] :: Author -> String
[authorEmail] :: Author -> Maybe String
[authorHomepage] :: Author -> Maybe String
-- | See: https://github.com/bower/bower.json-spec#moduletype
data ModuleType
Globals :: ModuleType
AMD :: ModuleType
Node :: ModuleType
ES6 :: ModuleType
YUI :: ModuleType
moduleTypes :: [(String, ModuleType)]
data Repository
Repository :: String -> String -> Repository
[repositoryUrl] :: Repository -> String
[repositoryType] :: Repository -> String
newtype Version
Version :: String -> Version
[runVersion] :: Version -> String
newtype VersionRange
VersionRange :: String -> VersionRange
[runVersionRange] :: VersionRange -> String
data BowerError
InvalidPackageName :: PackageNameError -> BowerError
InvalidModuleType :: String -> BowerError
showBowerError :: BowerError -> Text
data PackageNameError
NotEmpty :: PackageNameError
TooLong :: Int -> PackageNameError
InvalidChars :: String -> PackageNameError
RepeatedSeparators :: PackageNameError
MustNotBeginSeparator :: PackageNameError
MustNotEndSeparator :: PackageNameError
showPackageNameError :: PackageNameError -> Text
-- | Read and attempt to decode a bower.json file.
decodeFile :: FilePath -> IO (Either (ParseError BowerError) PackageMeta)
displayError :: ParseError BowerError -> Text
-- | A parser for bower.json files, using the aeson-better-errors package.
asPackageMeta :: Parse BowerError PackageMeta
parseModuleType :: String -> Either BowerError ModuleType
parsePackageName :: String -> Either BowerError PackageName
asAuthor :: Parse e Author
asRepository :: Parse e Repository