bower-json-1.1.0.0: Read bower.json from Haskell
Safe HaskellSafe-Inferred
LanguageHaskell2010

Web.Bower.PackageMeta

Description

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.

Synopsis

Data types

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

Instances

Instances details
FromJSON PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

ToJSON PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep PackageMeta :: Type -> Type

Methods

from :: PackageMeta -> Rep PackageMeta x

to :: Rep PackageMeta x -> PackageMeta

Show PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> PackageMeta -> ShowS

show :: PackageMeta -> String

showList :: [PackageMeta] -> ShowS

NFData PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: PackageMeta -> ()

Eq PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

(==) :: PackageMeta -> PackageMeta -> Bool

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

Ord PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageMeta # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageMeta = D1 ('MetaData "PackageMeta" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'False) (C1 ('MetaCons "PackageMeta" 'PrefixI 'True) (((S1 ('MetaSel ('Just "bowerName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageName) :*: (S1 ('MetaSel ('Just "bowerDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "bowerMain") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FilePath]))) :*: ((S1 ('MetaSel ('Just "bowerModuleType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ModuleType]) :*: S1 ('MetaSel ('Just "bowerLicense") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])) :*: (S1 ('MetaSel ('Just "bowerIgnore") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text]) :*: S1 ('MetaSel ('Just "bowerKeywords") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])))) :*: ((S1 ('MetaSel ('Just "bowerAuthors") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Author]) :*: (S1 ('MetaSel ('Just "bowerHomepage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "bowerRepository") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Repository)))) :*: ((S1 ('MetaSel ('Just "bowerDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(PackageName, VersionRange)]) :*: S1 ('MetaSel ('Just "bowerDevDependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(PackageName, VersionRange)])) :*: (S1 ('MetaSel ('Just "bowerResolutions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(PackageName, Version)]) :*: S1 ('MetaSel ('Just "bowerPrivate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))))

data PackageName #

A valid package name for a Bower package.

Instances

Instances details
FromJSON PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

ToJSON PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep PackageName :: Type -> Type

Methods

from :: PackageName -> Rep PackageName x

to :: Rep PackageName x -> PackageName

Show PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> PackageName -> ShowS

show :: PackageName -> String

showList :: [PackageName] -> ShowS

NFData PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: PackageName -> ()

Eq PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

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

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

Ord PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageName # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageName = D1 ('MetaData "PackageName" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'True) (C1 ('MetaCons "PackageName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

mkPackageName :: Text -> Either PackageNameError PackageName #

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.

data Author #

Constructors

Author 

Fields

Instances

Instances details
FromJSON Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

ToJSON Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep Author :: Type -> Type

Methods

from :: Author -> Rep Author x

to :: Rep Author x -> Author

Show Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> Author -> ShowS

show :: Author -> String

showList :: [Author] -> ShowS

NFData Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: Author -> ()

Eq Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

(==) :: Author -> Author -> Bool

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

Ord Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

compare :: Author -> Author -> Ordering

(<) :: Author -> Author -> Bool

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

(>) :: Author -> Author -> Bool

(>=) :: Author -> Author -> Bool

max :: Author -> Author -> Author

min :: Author -> Author -> Author

type Rep Author # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep Author = D1 ('MetaData "Author" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'False) (C1 ('MetaCons "Author" 'PrefixI 'True) (S1 ('MetaSel ('Just "authorName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "authorEmail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "authorHomepage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)))))

data ModuleType #

Constructors

Globals 
AMD 
Node 
ES6 
YUI 

Instances

Instances details
FromJSON ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

ToJSON ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Bounded ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Enum ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep ModuleType :: Type -> Type

Methods

from :: ModuleType -> Rep ModuleType x

to :: Rep ModuleType x -> ModuleType

Show ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> ModuleType -> ShowS

show :: ModuleType -> String

showList :: [ModuleType] -> ShowS

NFData ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: ModuleType -> ()

Eq ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

(==) :: ModuleType -> ModuleType -> Bool

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

Ord ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep ModuleType # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep ModuleType = D1 ('MetaData "ModuleType" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'False) ((C1 ('MetaCons "Globals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AMD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Node" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ES6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "YUI" 'PrefixI 'False) (U1 :: Type -> Type))))

moduleTypes :: [(Text, ModuleType)] #

data Repository #

Constructors

Repository 

Fields

Instances

Instances details
FromJSON Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

ToJSON Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep Repository :: Type -> Type

Methods

from :: Repository -> Rep Repository x

to :: Rep Repository x -> Repository

Show Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> Repository -> ShowS

show :: Repository -> String

showList :: [Repository] -> ShowS

NFData Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: Repository -> ()

Eq Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

(==) :: Repository -> Repository -> Bool

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

Ord Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep Repository # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep Repository = D1 ('MetaData "Repository" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'False) (C1 ('MetaCons "Repository" 'PrefixI 'True) (S1 ('MetaSel ('Just "repositoryUrl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "repositoryType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

newtype Version #

Constructors

Version 

Fields

Instances

Instances details
FromJSON Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

ToJSON Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep Version :: Type -> Type

Methods

from :: Version -> Rep Version x

to :: Rep Version x -> Version

Show Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> Version -> ShowS

show :: Version -> String

showList :: [Version] -> ShowS

NFData Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: Version -> ()

Eq Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

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

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

Ord Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

compare :: Version -> Version -> Ordering

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

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

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

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

max :: Version -> Version -> Version

min :: Version -> Version -> Version

type Rep Version # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep Version = D1 ('MetaData "Version" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'True) (C1 ('MetaCons "Version" 'PrefixI 'True) (S1 ('MetaSel ('Just "runVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

newtype VersionRange #

Constructors

VersionRange 

Fields

Instances

Instances details
FromJSON VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

ToJSON VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Generic VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep VersionRange :: Type -> Type

Show VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> VersionRange -> ShowS

show :: VersionRange -> String

showList :: [VersionRange] -> ShowS

NFData VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: VersionRange -> ()

Eq VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

(==) :: VersionRange -> VersionRange -> Bool

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

Ord VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep VersionRange # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep VersionRange = D1 ('MetaData "VersionRange" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'True) (C1 ('MetaCons "VersionRange" 'PrefixI 'True) (S1 ('MetaSel ('Just "runVersionRange") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data BowerError #

Instances

Instances details
Generic BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep BowerError :: Type -> Type

Methods

from :: BowerError -> Rep BowerError x

to :: Rep BowerError x -> BowerError

Show BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> BowerError -> ShowS

show :: BowerError -> String

showList :: [BowerError] -> ShowS

NFData BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: BowerError -> ()

Eq BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

(==) :: BowerError -> BowerError -> Bool

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

Ord BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep BowerError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep BowerError = D1 ('MetaData "BowerError" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'False) (C1 ('MetaCons "InvalidPackageName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageNameError)) :+: C1 ('MetaCons "InvalidModuleType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data PackageNameError #

Instances

Instances details
Generic PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Associated Types

type Rep PackageNameError :: Type -> Type

Show PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

showsPrec :: Int -> PackageNameError -> ShowS

show :: PackageNameError -> String

showList :: [PackageNameError] -> ShowS

NFData PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Methods

rnf :: PackageNameError -> ()

Eq PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

Ord PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageNameError # 
Instance details

Defined in Web.Bower.PackageMeta.Internal

type Rep PackageNameError = D1 ('MetaData "PackageNameError" "Web.Bower.PackageMeta.Internal" "bower-json-1.1.0.0-4Ea240MdIAtp474RsajKl" 'False) ((C1 ('MetaCons "NotEmpty" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TooLong" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "InvalidChars" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char])))) :+: (C1 ('MetaCons "RepeatedSeparators" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MustNotBeginSeparator" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MustNotEndSeparator" 'PrefixI 'False) (U1 :: Type -> Type))))

Parsing

decodeFile :: FilePath -> IO (Either (ParseError BowerError) PackageMeta) #

Read and attempt to decode a bower.json file.

asPackageMeta :: Parse BowerError PackageMeta #

A parser for bower.json files, using the aeson-better-errors package.