-- 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