bugsnag-types 1.1.0.1 → 1.1.1.0
raw patch · 25 files changed
+579/−262 lines, 25 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Bugsnag.Types.Application: defaultApplication :: Application
+ Data.Bugsnag.Types.Breadcrumb: defaultBreadcrumb :: Text -> Text -> BreadcrumbType -> Breadcrumb
+ Data.Bugsnag.Types.DependentNotifier: defaultDependentNotifier :: Text -> Text -> Text -> DependentNotifier
+ Data.Bugsnag.Types.Device: defaultDevice :: Device
+ Data.Bugsnag.Types.Event: defaultEvent :: [Exception] -> Event
+ Data.Bugsnag.Types.Exception: defaultException :: Text -> [Stackframe] -> Exception
+ Data.Bugsnag.Types.FeatureFlag: defaultFeatureFlag :: Text -> FeatureFlag
+ Data.Bugsnag.Types.Notifier: defaultNotifier :: Text -> Text -> Text -> Notifier
+ Data.Bugsnag.Types.Payload: defaultPayload :: Text -> Notifier -> [Event] -> Payload
+ Data.Bugsnag.Types.Prelude: (!!) :: HasCallStack => [a] -> Int -> a
+ Data.Bugsnag.Types.Prelude: ($!) :: (a -> b) -> a -> b
+ Data.Bugsnag.Types.Prelude: ($) :: (a -> b) -> a -> b
+ Data.Bugsnag.Types.Prelude: (&&) :: Bool -> Bool -> Bool
+ Data.Bugsnag.Types.Prelude: (*) :: Num a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (**) :: Floating a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (*>) :: Applicative f => f a -> f b -> f b
+ Data.Bugsnag.Types.Prelude: (+) :: Num a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (++) :: [a] -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: (-) :: Num a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (.) :: (b -> c) -> (a -> b) -> a -> c
+ Data.Bugsnag.Types.Prelude: (/) :: Fractional a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (/=) :: Eq a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (<$) :: Functor f => a -> f b -> f a
+ Data.Bugsnag.Types.Prelude: (<$>) :: Functor f => (a -> b) -> f a -> f b
+ Data.Bugsnag.Types.Prelude: (<) :: Ord a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (<*) :: Applicative f => f a -> f b -> f a
+ Data.Bugsnag.Types.Prelude: (<*>) :: Applicative f => f (a -> b) -> f a -> f b
+ Data.Bugsnag.Types.Prelude: (<=) :: Ord a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (<>) :: Semigroup a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (=<<) :: Monad m => (a -> m b) -> m a -> m b
+ Data.Bugsnag.Types.Prelude: (==) :: Eq a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (>) :: Ord a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (>=) :: Ord a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (>>) :: Monad m => m a -> m b -> m b
+ Data.Bugsnag.Types.Prelude: (>>=) :: Monad m => m a -> (a -> m b) -> m b
+ Data.Bugsnag.Types.Prelude: (^) :: (Num a, Integral b) => a -> b -> a
+ Data.Bugsnag.Types.Prelude: (^^) :: (Fractional a, Integral b) => a -> b -> a
+ Data.Bugsnag.Types.Prelude: (||) :: Bool -> Bool -> Bool
+ Data.Bugsnag.Types.Prelude: EQ :: Ordering
+ Data.Bugsnag.Types.Prelude: False :: Bool
+ Data.Bugsnag.Types.Prelude: GT :: Ordering
+ Data.Bugsnag.Types.Prelude: Just :: a -> Maybe a
+ Data.Bugsnag.Types.Prelude: LT :: Ordering
+ Data.Bugsnag.Types.Prelude: Left :: a -> Either a b
+ Data.Bugsnag.Types.Prelude: Nothing :: Maybe a
+ Data.Bugsnag.Types.Prelude: Right :: b -> Either a b
+ Data.Bugsnag.Types.Prelude: True :: Bool
+ Data.Bugsnag.Types.Prelude: abs :: Num a => a -> a
+ Data.Bugsnag.Types.Prelude: acos :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: acosh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: all :: Foldable t => (a -> Bool) -> t a -> Bool
+ Data.Bugsnag.Types.Prelude: and :: Foldable t => t Bool -> Bool
+ Data.Bugsnag.Types.Prelude: any :: Foldable t => (a -> Bool) -> t a -> Bool
+ Data.Bugsnag.Types.Prelude: appendFile :: FilePath -> String -> IO ()
+ Data.Bugsnag.Types.Prelude: asTypeOf :: a -> a -> a
+ Data.Bugsnag.Types.Prelude: asin :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: asinh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: atan :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: atan2 :: RealFloat a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: atanh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: break :: (a -> Bool) -> [a] -> ([a], [a])
+ Data.Bugsnag.Types.Prelude: ceiling :: (RealFrac a, Integral b) => a -> b
+ Data.Bugsnag.Types.Prelude: class a ~# b => (a :: k) ~ (b :: k)
+ Data.Bugsnag.Types.Prelude: class Functor f => Applicative (f :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class Bounded a
+ Data.Bugsnag.Types.Prelude: class Enum a
+ Data.Bugsnag.Types.Prelude: class Eq a
+ Data.Bugsnag.Types.Prelude: class Fractional a => Floating a
+ Data.Bugsnag.Types.Prelude: class Foldable (t :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class Num a => Fractional a
+ Data.Bugsnag.Types.Prelude: class Functor (f :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class (Real a, Enum a) => Integral a
+ Data.Bugsnag.Types.Prelude: class Applicative m => Monad (m :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class Monad m => MonadFail (m :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class Semigroup a => Monoid a
+ Data.Bugsnag.Types.Prelude: class Num a
+ Data.Bugsnag.Types.Prelude: class Eq a => Ord a
+ Data.Bugsnag.Types.Prelude: class Read a
+ Data.Bugsnag.Types.Prelude: class (Num a, Ord a) => Real a
+ Data.Bugsnag.Types.Prelude: class (RealFrac a, Floating a) => RealFloat a
+ Data.Bugsnag.Types.Prelude: class (Real a, Fractional a) => RealFrac a
+ Data.Bugsnag.Types.Prelude: class Semigroup a
+ Data.Bugsnag.Types.Prelude: class Show a
+ Data.Bugsnag.Types.Prelude: class (Functor t, Foldable t) => Traversable (t :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: compare :: Ord a => a -> a -> Ordering
+ Data.Bugsnag.Types.Prelude: concat :: Foldable t => t [a] -> [a]
+ Data.Bugsnag.Types.Prelude: concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
+ Data.Bugsnag.Types.Prelude: const :: a -> b -> a
+ Data.Bugsnag.Types.Prelude: cos :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: cosh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: curry :: ((a, b) -> c) -> a -> b -> c
+ Data.Bugsnag.Types.Prelude: cycle :: HasCallStack => [a] -> [a]
+ Data.Bugsnag.Types.Prelude: data Bool
+ Data.Bugsnag.Types.Prelude: data Char
+ Data.Bugsnag.Types.Prelude: data Double
+ Data.Bugsnag.Types.Prelude: data Either a b
+ Data.Bugsnag.Types.Prelude: data Float
+ Data.Bugsnag.Types.Prelude: data IO a
+ Data.Bugsnag.Types.Prelude: data Int
+ Data.Bugsnag.Types.Prelude: data Integer
+ Data.Bugsnag.Types.Prelude: data Maybe a
+ Data.Bugsnag.Types.Prelude: data Ordering
+ Data.Bugsnag.Types.Prelude: data Word
+ Data.Bugsnag.Types.Prelude: decodeFloat :: RealFloat a => a -> (Integer, Int)
+ Data.Bugsnag.Types.Prelude: div :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: divMod :: Integral a => a -> a -> (a, a)
+ Data.Bugsnag.Types.Prelude: drop :: Int -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: dropWhile :: (a -> Bool) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: either :: (a -> c) -> (b -> c) -> Either a b -> c
+ Data.Bugsnag.Types.Prelude: elem :: (Foldable t, Eq a) => a -> t a -> Bool
+ Data.Bugsnag.Types.Prelude: encodeFloat :: RealFloat a => Integer -> Int -> a
+ Data.Bugsnag.Types.Prelude: enumFrom :: Enum a => a -> [a]
+ Data.Bugsnag.Types.Prelude: enumFromThen :: Enum a => a -> a -> [a]
+ Data.Bugsnag.Types.Prelude: enumFromThenTo :: Enum a => a -> a -> a -> [a]
+ Data.Bugsnag.Types.Prelude: enumFromTo :: Enum a => a -> a -> [a]
+ Data.Bugsnag.Types.Prelude: error :: HasCallStack => [Char] -> a
+ Data.Bugsnag.Types.Prelude: errorWithoutStackTrace :: [Char] -> a
+ Data.Bugsnag.Types.Prelude: even :: Integral a => a -> Bool
+ Data.Bugsnag.Types.Prelude: exp :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: exponent :: RealFloat a => a -> Int
+ Data.Bugsnag.Types.Prelude: fail :: MonadFail m => String -> m a
+ Data.Bugsnag.Types.Prelude: filter :: (a -> Bool) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: flip :: (a -> b -> c) -> b -> a -> c
+ Data.Bugsnag.Types.Prelude: floatDigits :: RealFloat a => a -> Int
+ Data.Bugsnag.Types.Prelude: floatRadix :: RealFloat a => a -> Integer
+ Data.Bugsnag.Types.Prelude: floatRange :: RealFloat a => a -> (Int, Int)
+ Data.Bugsnag.Types.Prelude: floor :: (RealFrac a, Integral b) => a -> b
+ Data.Bugsnag.Types.Prelude: fmap :: Functor f => (a -> b) -> f a -> f b
+ Data.Bugsnag.Types.Prelude: foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
+ Data.Bugsnag.Types.Prelude: foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
+ Data.Bugsnag.Types.Prelude: foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Data.Bugsnag.Types.Prelude: foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
+ Data.Bugsnag.Types.Prelude: foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Data.Bugsnag.Types.Prelude: fromEnum :: Enum a => a -> Int
+ Data.Bugsnag.Types.Prelude: fromInteger :: Num a => Integer -> a
+ Data.Bugsnag.Types.Prelude: fromIntegral :: (Integral a, Num b) => a -> b
+ Data.Bugsnag.Types.Prelude: fromRational :: Fractional a => Rational -> a
+ Data.Bugsnag.Types.Prelude: fst :: (a, b) -> a
+ Data.Bugsnag.Types.Prelude: gcd :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: getChar :: IO Char
+ Data.Bugsnag.Types.Prelude: getContents :: IO String
+ Data.Bugsnag.Types.Prelude: getLine :: IO String
+ Data.Bugsnag.Types.Prelude: head :: HasCallStack => [a] -> a
+ Data.Bugsnag.Types.Prelude: infix 4 `notElem`
+ Data.Bugsnag.Types.Prelude: infixl 1 >>
+ Data.Bugsnag.Types.Prelude: infixl 4 <$>
+ Data.Bugsnag.Types.Prelude: infixl 6 +
+ Data.Bugsnag.Types.Prelude: infixl 7 *
+ Data.Bugsnag.Types.Prelude: infixl 9 !!
+ Data.Bugsnag.Types.Prelude: infixr 0 $!
+ Data.Bugsnag.Types.Prelude: infixr 1 =<<
+ Data.Bugsnag.Types.Prelude: infixr 2 ||
+ Data.Bugsnag.Types.Prelude: infixr 3 &&
+ Data.Bugsnag.Types.Prelude: infixr 5 ++
+ Data.Bugsnag.Types.Prelude: infixr 6 <>
+ Data.Bugsnag.Types.Prelude: infixr 8 ^^
+ Data.Bugsnag.Types.Prelude: infixr 9 .
+ Data.Bugsnag.Types.Prelude: init :: HasCallStack => [a] -> [a]
+ Data.Bugsnag.Types.Prelude: interact :: (String -> String) -> IO ()
+ Data.Bugsnag.Types.Prelude: ioError :: IOError -> IO a
+ Data.Bugsnag.Types.Prelude: isDenormalized :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: isIEEE :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: isInfinite :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: isNaN :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: isNegativeZero :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: iterate :: (a -> a) -> a -> [a]
+ Data.Bugsnag.Types.Prelude: last :: HasCallStack => [a] -> a
+ Data.Bugsnag.Types.Prelude: lcm :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: length :: Foldable t => t a -> Int
+ Data.Bugsnag.Types.Prelude: lex :: ReadS String
+ Data.Bugsnag.Types.Prelude: liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
+ Data.Bugsnag.Types.Prelude: lines :: String -> [String]
+ Data.Bugsnag.Types.Prelude: log :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: logBase :: Floating a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: lookup :: Eq a => a -> [(a, b)] -> Maybe b
+ Data.Bugsnag.Types.Prelude: map :: (a -> b) -> [a] -> [b]
+ Data.Bugsnag.Types.Prelude: mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
+ Data.Bugsnag.Types.Prelude: mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
+ Data.Bugsnag.Types.Prelude: mappend :: Monoid a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: max :: Ord a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: maxBound :: Bounded a => a
+ Data.Bugsnag.Types.Prelude: maximum :: (Foldable t, Ord a) => t a -> a
+ Data.Bugsnag.Types.Prelude: maybe :: b -> (a -> b) -> Maybe a -> b
+ Data.Bugsnag.Types.Prelude: mconcat :: Monoid a => [a] -> a
+ Data.Bugsnag.Types.Prelude: mempty :: Monoid a => a
+ Data.Bugsnag.Types.Prelude: min :: Ord a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: minBound :: Bounded a => a
+ Data.Bugsnag.Types.Prelude: minimum :: (Foldable t, Ord a) => t a -> a
+ Data.Bugsnag.Types.Prelude: mod :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: negate :: Num a => a -> a
+ Data.Bugsnag.Types.Prelude: not :: Bool -> Bool
+ Data.Bugsnag.Types.Prelude: notElem :: (Foldable t, Eq a) => a -> t a -> Bool
+ Data.Bugsnag.Types.Prelude: null :: Foldable t => t a -> Bool
+ Data.Bugsnag.Types.Prelude: odd :: Integral a => a -> Bool
+ Data.Bugsnag.Types.Prelude: or :: Foldable t => t Bool -> Bool
+ Data.Bugsnag.Types.Prelude: otherwise :: Bool
+ Data.Bugsnag.Types.Prelude: pi :: Floating a => a
+ Data.Bugsnag.Types.Prelude: pred :: Enum a => a -> a
+ Data.Bugsnag.Types.Prelude: print :: Show a => a -> IO ()
+ Data.Bugsnag.Types.Prelude: product :: (Foldable t, Num a) => t a -> a
+ Data.Bugsnag.Types.Prelude: properFraction :: (RealFrac a, Integral b) => a -> (b, a)
+ Data.Bugsnag.Types.Prelude: pure :: Applicative f => a -> f a
+ Data.Bugsnag.Types.Prelude: putChar :: Char -> IO ()
+ Data.Bugsnag.Types.Prelude: putStr :: String -> IO ()
+ Data.Bugsnag.Types.Prelude: putStrLn :: String -> IO ()
+ Data.Bugsnag.Types.Prelude: quot :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: quotRem :: Integral a => a -> a -> (a, a)
+ Data.Bugsnag.Types.Prelude: read :: Read a => String -> a
+ Data.Bugsnag.Types.Prelude: readFile :: FilePath -> IO String
+ Data.Bugsnag.Types.Prelude: readIO :: Read a => String -> IO a
+ Data.Bugsnag.Types.Prelude: readList :: Read a => ReadS [a]
+ Data.Bugsnag.Types.Prelude: readLn :: Read a => IO a
+ Data.Bugsnag.Types.Prelude: readParen :: Bool -> ReadS a -> ReadS a
+ Data.Bugsnag.Types.Prelude: reads :: Read a => ReadS a
+ Data.Bugsnag.Types.Prelude: readsPrec :: Read a => Int -> ReadS a
+ Data.Bugsnag.Types.Prelude: realToFrac :: (Real a, Fractional b) => a -> b
+ Data.Bugsnag.Types.Prelude: recip :: Fractional a => a -> a
+ Data.Bugsnag.Types.Prelude: rem :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: repeat :: a -> [a]
+ Data.Bugsnag.Types.Prelude: replicate :: Int -> a -> [a]
+ Data.Bugsnag.Types.Prelude: return :: Monad m => a -> m a
+ Data.Bugsnag.Types.Prelude: reverse :: [a] -> [a]
+ Data.Bugsnag.Types.Prelude: round :: (RealFrac a, Integral b) => a -> b
+ Data.Bugsnag.Types.Prelude: scaleFloat :: RealFloat a => Int -> a -> a
+ Data.Bugsnag.Types.Prelude: scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ Data.Bugsnag.Types.Prelude: scanl1 :: (a -> a -> a) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ Data.Bugsnag.Types.Prelude: scanr1 :: (a -> a -> a) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: seq :: a -> b -> b
+ Data.Bugsnag.Types.Prelude: sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
+ Data.Bugsnag.Types.Prelude: sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
+ Data.Bugsnag.Types.Prelude: sequence_ :: (Foldable t, Monad m) => t (m a) -> m ()
+ Data.Bugsnag.Types.Prelude: show :: Show a => a -> String
+ Data.Bugsnag.Types.Prelude: showChar :: Char -> ShowS
+ Data.Bugsnag.Types.Prelude: showList :: Show a => [a] -> ShowS
+ Data.Bugsnag.Types.Prelude: showParen :: Bool -> ShowS -> ShowS
+ Data.Bugsnag.Types.Prelude: showString :: String -> ShowS
+ Data.Bugsnag.Types.Prelude: shows :: Show a => a -> ShowS
+ Data.Bugsnag.Types.Prelude: showsPrec :: Show a => Int -> a -> ShowS
+ Data.Bugsnag.Types.Prelude: significand :: RealFloat a => a -> a
+ Data.Bugsnag.Types.Prelude: signum :: Num a => a -> a
+ Data.Bugsnag.Types.Prelude: sin :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: sinh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: snd :: (a, b) -> b
+ Data.Bugsnag.Types.Prelude: span :: (a -> Bool) -> [a] -> ([a], [a])
+ Data.Bugsnag.Types.Prelude: splitAt :: Int -> [a] -> ([a], [a])
+ Data.Bugsnag.Types.Prelude: sqrt :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: subtract :: Num a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: succ :: Enum a => a -> a
+ Data.Bugsnag.Types.Prelude: sum :: (Foldable t, Num a) => t a -> a
+ Data.Bugsnag.Types.Prelude: tail :: HasCallStack => [a] -> [a]
+ Data.Bugsnag.Types.Prelude: take :: Int -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: takeWhile :: (a -> Bool) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: tan :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: tanh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: toEnum :: Enum a => Int -> a
+ Data.Bugsnag.Types.Prelude: toInteger :: Integral a => a -> Integer
+ Data.Bugsnag.Types.Prelude: toRational :: Real a => a -> Rational
+ Data.Bugsnag.Types.Prelude: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
+ Data.Bugsnag.Types.Prelude: truncate :: (RealFrac a, Integral b) => a -> b
+ Data.Bugsnag.Types.Prelude: type FilePath = String
+ Data.Bugsnag.Types.Prelude: type IOError = IOException
+ Data.Bugsnag.Types.Prelude: type Rational = Ratio Integer
+ Data.Bugsnag.Types.Prelude: type ReadS a = String -> [(a, String)]
+ Data.Bugsnag.Types.Prelude: type ShowS = String -> String
+ Data.Bugsnag.Types.Prelude: type String = [Char]
+ Data.Bugsnag.Types.Prelude: uncurry :: (a -> b -> c) -> (a, b) -> c
+ Data.Bugsnag.Types.Prelude: undefined :: HasCallStack => a
+ Data.Bugsnag.Types.Prelude: unlines :: [String] -> String
+ Data.Bugsnag.Types.Prelude: until :: (a -> Bool) -> (a -> a) -> a -> a
+ Data.Bugsnag.Types.Prelude: unwords :: [String] -> String
+ Data.Bugsnag.Types.Prelude: unzip :: [(a, b)] -> ([a], [b])
+ Data.Bugsnag.Types.Prelude: unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ Data.Bugsnag.Types.Prelude: userError :: String -> IOError
+ Data.Bugsnag.Types.Prelude: words :: String -> [String]
+ Data.Bugsnag.Types.Prelude: writeFile :: FilePath -> String -> IO ()
+ Data.Bugsnag.Types.Prelude: zip :: [a] -> [b] -> [(a, b)]
+ Data.Bugsnag.Types.Prelude: zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ Data.Bugsnag.Types.Prelude: zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ Data.Bugsnag.Types.Prelude: zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ Data.Bugsnag.Types.Request: defaultRequest :: Request
+ Data.Bugsnag.Types.RuntimeVersion: defaultRuntimeVersion :: RuntimeVersion
+ Data.Bugsnag.Types.Session: defaultSession :: Text -> Text -> SessionEvent -> Session
+ Data.Bugsnag.Types.SessionEvent: defaultSessionEvent :: Int -> Int -> SessionEvent
+ Data.Bugsnag.Types.SeverityReason: defaultSeverityReason :: SeverityReason
+ Data.Bugsnag.Types.SeverityReasonAttributes: defaultSeverityReasonAttributes :: SeverityReasonAttributes
+ Data.Bugsnag.Types.Stackframe: defaultStackframe :: Text -> Int -> Text -> Stackframe
+ Data.Bugsnag.Types.Thread: defaultThread :: Thread
+ Data.Bugsnag.Types.User: defaultUser :: User
Files
- bugsnag-types.cabal +1/−1
- src/Data/Bugsnag/Types/Application.hs +42/−19
- src/Data/Bugsnag/Types/BinaryArch.hs +3/−2
- src/Data/Bugsnag/Types/Breadcrumb.hs +20/−8
- src/Data/Bugsnag/Types/BreadcrumbType.hs +3/−2
- src/Data/Bugsnag/Types/DependentNotifier.hs +18/−7
- src/Data/Bugsnag/Types/Device.hs +48/−22
- src/Data/Bugsnag/Types/ErrorType.hs +3/−2
- src/Data/Bugsnag/Types/Event.hs +50/−26
- src/Data/Bugsnag/Types/Exception.hs +21/−9
- src/Data/Bugsnag/Types/FeatureFlag.hs +16/−6
- src/Data/Bugsnag/Types/Notifier.hs +20/−8
- src/Data/Bugsnag/Types/Payload.hs +21/−9
- src/Data/Bugsnag/Types/Prelude.hs +3/−2
- src/Data/Bugsnag/Types/Request.hs +22/−9
- src/Data/Bugsnag/Types/RuntimeVersion.hs +116/−56
- src/Data/Bugsnag/Types/Session.hs +18/−7
- src/Data/Bugsnag/Types/SessionEvent.hs +16/−6
- src/Data/Bugsnag/Types/Severity.hs +3/−2
- src/Data/Bugsnag/Types/SeverityReason.hs +19/−8
- src/Data/Bugsnag/Types/SeverityReasonAttributes.hs +26/−11
- src/Data/Bugsnag/Types/SeverityReasonType.hs +3/−2
- src/Data/Bugsnag/Types/Stackframe.hs +44/−20
- src/Data/Bugsnag/Types/Thread.hs +25/−11
- src/Data/Bugsnag/Types/User.hs +18/−7
bugsnag-types.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: bugsnag-types-version: 1.1.0.1+version: 1.1.1.0 license: MIT maintainer: pbrisbin@gmail.com author: Patrick Brisbin
src/Data/Bugsnag/Types/Application.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Application ( Application (..) , exampleApplication- ) where+ , defaultApplication+ )+where import Data.Bugsnag.Types.Prelude @@ -53,7 +55,7 @@ , runningOnRosetta :: Maybe Bool -- ^ Whether the application is running on the Rosetta emulator for Mac. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Application where parseJSON = genericParseJSON aesonOptions@@ -62,21 +64,42 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultApplication :: Application+defaultApplication =+ Application+ { id = Nothing+ , version = Nothing+ , versionCode = Nothing+ , bundleVersion = Nothing+ , codeBundleId = Nothing+ , buildUUID = Nothing+ , releaseStage = Nothing+ , type_ = Nothing+ , dsymUUIDs = Nothing+ , duration = Nothing+ , durationInForeground = Nothing+ , inForeground = Nothing+ , isLaunching = Nothing+ , binaryArch = Nothing+ , runningOnRosetta = Nothing+ }+ exampleApplication :: Application-exampleApplication = Application- { id = Just "com.bugsnag.android.example.debug"- , version = Just "1.1.3"- , versionCode = Just 12- , bundleVersion = Just "1.0.2"- , codeBundleId = Just "1.0-1234"- , buildUUID = Just "BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE"- , releaseStage = Just "staging"- , type_ = Just "rails"- , dsymUUIDs = Just ["e6173678256785afd940392abee"]- , duration = Just 1275- , durationInForeground = Just 983- , inForeground = Just True- , isLaunching = Just True- , binaryArch = Just exampleBinaryArch- , runningOnRosetta = Just True- }+exampleApplication =+ Application+ { id = Just "com.bugsnag.android.example.debug"+ , version = Just "1.1.3"+ , versionCode = Just 12+ , bundleVersion = Just "1.0.2"+ , codeBundleId = Just "1.0-1234"+ , buildUUID = Just "BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE"+ , releaseStage = Just "staging"+ , type_ = Just "rails"+ , dsymUUIDs = Just ["e6173678256785afd940392abee"]+ , duration = Just 1275+ , durationInForeground = Just 983+ , inForeground = Just True+ , isLaunching = Just True+ , binaryArch = Just exampleBinaryArch+ , runningOnRosetta = Just True+ }
src/Data/Bugsnag/Types/BinaryArch.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.BinaryArch ( BinaryArch (..) , exampleBinaryArch- ) where+ )+where import Data.Bugsnag.Types.Prelude @@ -19,7 +20,7 @@ | Armv7s | Armv8 | Amd64- deriving stock (Bounded, Enum, Eq, Show, Generic)+ deriving stock (Bounded, Enum, Eq, Generic, Show) instance FromJSON BinaryArch where parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/Breadcrumb.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Breadcrumb ( Breadcrumb (..) , exampleBreadcrumb- ) where+ , defaultBreadcrumb+ )+where import Data.Bugsnag.Types.Prelude @@ -47,7 +49,7 @@ -- > "from": "PodBayDoorView" -- > } }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Breadcrumb where parseJSON = genericParseJSON aesonOptions@@ -56,10 +58,20 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultBreadcrumb :: Text -> Text -> BreadcrumbType -> Breadcrumb+defaultBreadcrumb timestamp name type_ =+ Breadcrumb+ { timestamp+ , name+ , type_+ , metaData = Nothing+ }+ exampleBreadcrumb :: Breadcrumb-exampleBreadcrumb = Breadcrumb- { timestamp = "2016-07-19T12:17:27-0700"- , name = "Open menu"- , type_ = exampleBreadcrumbType- , metaData = Nothing- }+exampleBreadcrumb =+ Breadcrumb+ { timestamp = "2016-07-19T12:17:27-0700"+ , name = "Open menu"+ , type_ = exampleBreadcrumbType+ , metaData = Nothing+ }
src/Data/Bugsnag/Types/BreadcrumbType.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.BreadcrumbType ( BreadcrumbType (..) , exampleBreadcrumbType- ) where+ )+where import Data.Bugsnag.Types.Prelude @@ -38,7 +39,7 @@ | State | Error | Manual- deriving stock (Bounded, Enum, Eq, Show, Generic)+ deriving stock (Bounded, Enum, Eq, Generic, Show) instance FromJSON BreadcrumbType where parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/DependentNotifier.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.DependentNotifier ( DependentNotifier (..) , exampleDependentNotifier- ) where+ , defaultDependentNotifier+ )+where import Data.Bugsnag.Types.Prelude @@ -13,7 +15,7 @@ , url :: Text -- ^ The URL associated with the notifier. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON DependentNotifier where parseJSON = genericParseJSON aesonOptions@@ -22,9 +24,18 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultDependentNotifier :: Text -> Text -> Text -> DependentNotifier+defaultDependentNotifier name version url =+ DependentNotifier+ { name+ , version+ , url+ }+ exampleDependentNotifier :: DependentNotifier-exampleDependentNotifier = DependentNotifier- { name = "Bugsnag Android"- , version = "2.1.10"- , url = "https://github.com/bugsnag/bugsnag-android"- }+exampleDependentNotifier =+ DependentNotifier+ { name = "Bugsnag Android"+ , version = "2.1.10"+ , url = "https://github.com/bugsnag/bugsnag-android"+ }
src/Data/Bugsnag/Types/Device.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Device ( Device (..) , exampleDevice- ) where+ , defaultDevice+ )+where import Data.Bugsnag.Types.Prelude @@ -50,7 +52,7 @@ , macCatalystiOSVersion :: Maybe Text -- ^ The device\'s Mac Catalyst iOS version. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Device where parseJSON = genericParseJSON aesonOptions@@ -59,24 +61,48 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultDevice :: Device+defaultDevice =+ Device+ { hostname = Nothing+ , id = Nothing+ , manufacturer = Nothing+ , model = Nothing+ , modelNumber = Nothing+ , osName = Nothing+ , osVersion = Nothing+ , freeMemory = Nothing+ , totalMemory = Nothing+ , freeDisk = Nothing+ , browserName = Nothing+ , browserVersion = Nothing+ , jailbroken = Nothing+ , orientation = Nothing+ , time = Nothing+ , cpuAbi = Nothing+ , runtimeVersions = Nothing+ , macCatalystiOSVersion = Nothing+ }+ exampleDevice :: Device-exampleDevice = Device- { hostname = Just "web1.internal"- , id = Just "fd124e87760c4281aef"- , manufacturer = Just "LGE"- , model = Just "Nexus 6P"- , modelNumber = Just "600"- , osName = Just "android"- , osVersion = Just "8.0.1"- , freeMemory = Just 183879616- , totalMemory = Just 201326592- , freeDisk = Just 13478064128- , browserName = Just "Chrome"- , browserVersion = Just "61.0.3163.100"- , jailbroken = Nothing- , orientation = Just "portrait"- , time = Just "2018-08-07T10:16:34.564Z"- , cpuAbi = Just ["x86_64"]- , runtimeVersions = Just exampleRuntimeVersion- , macCatalystiOSVersion = Just "14.0"- }+exampleDevice =+ Device+ { hostname = Just "web1.internal"+ , id = Just "fd124e87760c4281aef"+ , manufacturer = Just "LGE"+ , model = Just "Nexus 6P"+ , modelNumber = Just "600"+ , osName = Just "android"+ , osVersion = Just "8.0.1"+ , freeMemory = Just 183879616+ , totalMemory = Just 201326592+ , freeDisk = Just 13478064128+ , browserName = Just "Chrome"+ , browserVersion = Just "61.0.3163.100"+ , jailbroken = Nothing+ , orientation = Just "portrait"+ , time = Just "2018-08-07T10:16:34.564Z"+ , cpuAbi = Just ["x86_64"]+ , runtimeVersions = Just exampleRuntimeVersion+ , macCatalystiOSVersion = Just "14.0"+ }
src/Data/Bugsnag/Types/ErrorType.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.ErrorType ( ErrorType (..) , exampleErrorType- ) where+ )+where import Data.Bugsnag.Types.Prelude @@ -23,7 +24,7 @@ | Python | Reactnativejs | Ruby- deriving stock (Bounded, Enum, Eq, Show, Generic)+ deriving stock (Bounded, Enum, Eq, Generic, Show) instance FromJSON ErrorType where parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/Event.hs view
@@ -1,21 +1,23 @@ module Data.Bugsnag.Types.Event ( Event (..) , exampleEvent- ) where+ , defaultEvent+ )+where import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.Exception+import Data.Bugsnag.Types.Application import Data.Bugsnag.Types.Breadcrumb+import Data.Bugsnag.Types.Device+import Data.Bugsnag.Types.Exception+import Data.Bugsnag.Types.FeatureFlag import Data.Bugsnag.Types.Request-import Data.Bugsnag.Types.Thread+import Data.Bugsnag.Types.Session import Data.Bugsnag.Types.Severity import Data.Bugsnag.Types.SeverityReason+import Data.Bugsnag.Types.Thread import Data.Bugsnag.Types.User-import Data.Bugsnag.Types.Application-import Data.Bugsnag.Types.Device-import Data.Bugsnag.Types.Session-import Data.Bugsnag.Types.FeatureFlag data Event = Event { exceptions :: [Exception]@@ -127,7 +129,7 @@ -- > } -- > } }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Event where parseJSON = genericParseJSON aesonOptions@@ -136,22 +138,44 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultEvent :: [Exception] -> Event+defaultEvent exceptions =+ Event+ { exceptions+ , breadcrumbs = Nothing+ , request = Nothing+ , threads = Nothing+ , context = Nothing+ , groupingHash = Nothing+ , unhandled = Nothing+ , severity = Nothing+ , severityReason = Nothing+ , projectPackages = Nothing+ , user = Nothing+ , app = Nothing+ , device = Nothing+ , session = Nothing+ , featureFlags = Nothing+ , metaData = Nothing+ }+ exampleEvent :: Event-exampleEvent = Event- { exceptions = [exampleException]- , breadcrumbs = Just [exampleBreadcrumb]- , request = Just exampleRequest- , threads = Just [exampleThread]- , context = Just "auth/session#create"- , groupingHash = Just "buggy_file.rb"- , unhandled = Just True- , severity = Just exampleSeverity- , severityReason = Just exampleSeverityReason- , projectPackages = Just ["com.example.package1","com.example.package2"]- , user = Just exampleUser- , app = Just exampleApplication- , device = Just exampleDevice- , session = Just exampleSession- , featureFlags = Just [exampleFeatureFlag]- , metaData = Nothing- }+exampleEvent =+ Event+ { exceptions = [exampleException]+ , breadcrumbs = Just [exampleBreadcrumb]+ , request = Just exampleRequest+ , threads = Just [exampleThread]+ , context = Just "auth/session#create"+ , groupingHash = Just "buggy_file.rb"+ , unhandled = Just True+ , severity = Just exampleSeverity+ , severityReason = Just exampleSeverityReason+ , projectPackages = Just ["com.example.package1", "com.example.package2"]+ , user = Just exampleUser+ , app = Just exampleApplication+ , device = Just exampleDevice+ , session = Just exampleSession+ , featureFlags = Just [exampleFeatureFlag]+ , metaData = Nothing+ }
src/Data/Bugsnag/Types/Exception.hs view
@@ -1,12 +1,14 @@ module Data.Bugsnag.Types.Exception ( Exception (..) , exampleException- ) where+ , defaultException+ )+where import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.Stackframe import Data.Bugsnag.Types.ErrorType+import Data.Bugsnag.Types.Stackframe data Exception = Exception { errorClass :: Text@@ -24,7 +26,7 @@ -- grouping, as well as displaying it to the user. , type_ :: Maybe ErrorType }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Exception where parseJSON = genericParseJSON aesonOptions@@ -33,10 +35,20 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultException :: Text -> [Stackframe] -> Exception+defaultException errorClass stacktrace =+ Exception+ { errorClass+ , stacktrace+ , message = Nothing+ , type_ = Nothing+ }+ exampleException :: Exception-exampleException = Exception- { errorClass = "NoMethodError"- , message = Just "Unable to connect to database"- , stacktrace = [exampleStackframe]- , type_ = Just exampleErrorType- }+exampleException =+ Exception+ { errorClass = "NoMethodError"+ , message = Just "Unable to connect to database"+ , stacktrace = [exampleStackframe]+ , type_ = Just exampleErrorType+ }
src/Data/Bugsnag/Types/FeatureFlag.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.FeatureFlag ( FeatureFlag (..) , exampleFeatureFlag- ) where+ , defaultFeatureFlag+ )+where import Data.Bugsnag.Types.Prelude @@ -11,7 +13,7 @@ , variant :: Maybe Text -- ^ The name of the variant. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON FeatureFlag where parseJSON = genericParseJSON aesonOptions@@ -20,8 +22,16 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultFeatureFlag :: Text -> FeatureFlag+defaultFeatureFlag featureFlag =+ FeatureFlag+ { featureFlag+ , variant = Nothing+ }+ exampleFeatureFlag :: FeatureFlag-exampleFeatureFlag = FeatureFlag- { featureFlag = "share_ios_photo_sharing_button"- , variant = Just "blue_button"- }+exampleFeatureFlag =+ FeatureFlag+ { featureFlag = "share_ios_photo_sharing_button"+ , variant = Just "blue_button"+ }
src/Data/Bugsnag/Types/Notifier.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Notifier ( Notifier (..) , exampleNotifier- ) where+ , defaultNotifier+ )+where import Data.Bugsnag.Types.Prelude @@ -21,7 +23,7 @@ -- optional array containing the details of the additional notifiers can be -- specified. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Notifier where parseJSON = genericParseJSON aesonOptions@@ -30,10 +32,20 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultNotifier :: Text -> Text -> Text -> Notifier+defaultNotifier name version url =+ Notifier+ { name+ , version+ , url+ , dependencies = Nothing+ }+ exampleNotifier :: Notifier-exampleNotifier = Notifier- { name = "Bugsnag Ruby"- , version = "1.0.11"- , url = "https://github.com/bugsnag/bugsnag-ruby"- , dependencies = Just [exampleDependentNotifier]- }+exampleNotifier =+ Notifier+ { name = "Bugsnag Ruby"+ , version = "1.0.11"+ , url = "https://github.com/bugsnag/bugsnag-ruby"+ , dependencies = Just [exampleDependentNotifier]+ }
src/Data/Bugsnag/Types/Payload.hs view
@@ -1,12 +1,14 @@ module Data.Bugsnag.Types.Payload ( Payload (..) , examplePayload- ) where+ , defaultPayload+ )+where import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.Notifier import Data.Bugsnag.Types.Event+import Data.Bugsnag.Types.Notifier data Payload = Payload { apiKey :: Maybe Text@@ -24,7 +26,7 @@ -- or can notify BugSnag each time an event occurs. Should contain at least -- 1 event. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Payload where parseJSON = genericParseJSON aesonOptions@@ -33,10 +35,20 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultPayload :: Text -> Notifier -> [Event] -> Payload+defaultPayload payloadVersion notifier events =+ Payload+ { payloadVersion+ , notifier+ , events+ , apiKey = Nothing+ }+ examplePayload :: Payload-examplePayload = Payload- { apiKey = Just "YOUR-NOTIFIER-API-KEY"- , payloadVersion = "5"- , notifier = exampleNotifier- , events = [exampleEvent]- }+examplePayload =+ Payload+ { apiKey = Just "YOUR-NOTIFIER-API-KEY"+ , payloadVersion = "5"+ , notifier = exampleNotifier+ , events = [exampleEvent]+ }
src/Data/Bugsnag/Types/Prelude.hs view
@@ -1,9 +1,10 @@ module Data.Bugsnag.Types.Prelude ( module X , aesonOptions- ) where+ )+where -import Prelude as X+import Prelude as X hiding (id) import Control.Monad as X (void) import Data.Aeson (Options (..), defaultOptions)
src/Data/Bugsnag/Types/Request.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Request ( Request (..) , exampleRequest- ) where+ , defaultRequest+ )+where import Data.Bugsnag.Types.Prelude @@ -27,7 +29,7 @@ , referer :: Maybe Text -- ^ The <https://en.wikipedia.org/wiki/HTTP_referer HTTP referer> }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Request where parseJSON = genericParseJSON aesonOptions@@ -36,11 +38,22 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultRequest :: Request+defaultRequest =+ Request+ { clientIp = Nothing+ , headers = Nothing+ , httpMethod = Nothing+ , url = Nothing+ , referer = Nothing+ }+ exampleRequest :: Request-exampleRequest = Request- { clientIp = Just "192.168.44.0"- , headers = Nothing- , httpMethod = Just "PUT"- , url = Just "http://example.com/users/19/settings"- , referer = Just "http://example.com?q=awesome"- }+exampleRequest =+ Request+ { clientIp = Just "192.168.44.0"+ , headers = Nothing+ , httpMethod = Just "PUT"+ , url = Just "http://example.com/users/19/settings"+ , referer = Just "http://example.com?q=awesome"+ }
src/Data/Bugsnag/Types/RuntimeVersion.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.RuntimeVersion ( RuntimeVersion (..) , exampleRuntimeVersion- ) where+ , defaultRuntimeVersion+ )+where import Data.Bugsnag.Types.Prelude @@ -113,7 +115,7 @@ , wordpress :: Maybe Text -- ^ Wordpress version (PHP only). }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON RuntimeVersion where parseJSON = genericParseJSON aesonOptions@@ -122,58 +124,116 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultRuntimeVersion :: RuntimeVersion+defaultRuntimeVersion =+ RuntimeVersion+ { androidApiLevel = Nothing+ , bottle = Nothing+ , celery = Nothing+ , clangVersion = Nothing+ , cocos2dx = Nothing+ , delayedJob = Nothing+ , django = Nothing+ , dotnet = Nothing+ , dotnetApiCompatibility = Nothing+ , dotnetClr = Nothing+ , dotnetScriptingRuntime = Nothing+ , electron = Nothing+ , eventMachine = Nothing+ , expoApp = Nothing+ , expoSdk = Nothing+ , flask = Nothing+ , gin = Nothing+ , go = Nothing+ , javaType = Nothing+ , javaVersion = Nothing+ , jruby = Nothing+ , laravel = Nothing+ , lumen = Nothing+ , magento = Nothing+ , mailman = Nothing+ , martini = Nothing+ , negroni = Nothing+ , node = Nothing+ , osBuild = Nothing+ , php = Nothing+ , python = Nothing+ , que = Nothing+ , rack = Nothing+ , rails = Nothing+ , rake = Nothing+ , reactNative = Nothing+ , reactNativeJsEngine = Nothing+ , resque = Nothing+ , revel = Nothing+ , ruby = Nothing+ , shoryoken = Nothing+ , sidekiq = Nothing+ , silex = Nothing+ , sinatra = Nothing+ , springBoot = Nothing+ , springFramework = Nothing+ , swift = Nothing+ , symfony = Nothing+ , tornado = Nothing+ , unity = Nothing+ , unityScriptingBackend = Nothing+ , wordpress = Nothing+ }+ exampleRuntimeVersion :: RuntimeVersion-exampleRuntimeVersion = RuntimeVersion- { androidApiLevel = Just "28"- , bottle = Just "0.12.8"- , celery = Just "4.2.0"- , clangVersion = Just "7.0.1"- , cocos2dx = Just "3.17.2"- , delayedJob = Just "4.1.8"- , django = Just "2.1.7"- , dotnet = Just ".NET Framework 4.7.3416.0"- , dotnetApiCompatibility = Just ".NET 2.0 Subset"- , dotnetClr = Just "4.0.30319.17379"- , dotnetScriptingRuntime = Just ".NET 3.5 equivalent"- , electron = Just "11.4.3"- , eventMachine = Just "1.2.7"- , expoApp = Just "2.10.0.105125"- , expoSdk = Just "32.0.0"- , flask = Just "1.0.2"- , gin = Just "1.3.0"- , go = Just "1.11.2"- , javaType = Just "Java(TM) SE Runtime Environment"- , javaVersion = Just "1.8.0_131-b11"- , jruby = Just "9.2.5.0"- , laravel = Just "5.7.22"- , lumen = Just "5.7"- , magento = Just "2.3.0"- , mailman = Just "0.8.0"- , martini = Just "1.0"- , negroni = Just "1.0.0"- , node = Just "10.14.1"- , osBuild = Just "16D57"- , php = Just "7.2.12"- , python = Just "3.7.1"- , que = Just "0.14.3"- , rack = Just "2.0.6"- , rails = Just "5.2.2"- , rake = Just "12.3.2"- , reactNative = Just "0.57.5"- , reactNativeJsEngine = Just "hermes"- , resque = Just "2.0.0"- , revel = Just "0.21.0"- , ruby = Just "2.5.3"- , shoryoken = Just "5.0.1"- , sidekiq = Just "5.1.3"- , silex = Just "2.1.0"- , sinatra = Just "2.0.3"- , springBoot = Just "1.5.13.RELEASE"- , springFramework = Just "4.2.13.RELEASE"- , swift = Just "4.2"- , symfony = Just "4.2.11"- , tornado = Just "5.1.1"- , unity = Just "2018.2.17"- , unityScriptingBackend = Just "Mono"- , wordpress = Just "5.1"- }+exampleRuntimeVersion =+ RuntimeVersion+ { androidApiLevel = Just "28"+ , bottle = Just "0.12.8"+ , celery = Just "4.2.0"+ , clangVersion = Just "7.0.1"+ , cocos2dx = Just "3.17.2"+ , delayedJob = Just "4.1.8"+ , django = Just "2.1.7"+ , dotnet = Just ".NET Framework 4.7.3416.0"+ , dotnetApiCompatibility = Just ".NET 2.0 Subset"+ , dotnetClr = Just "4.0.30319.17379"+ , dotnetScriptingRuntime = Just ".NET 3.5 equivalent"+ , electron = Just "11.4.3"+ , eventMachine = Just "1.2.7"+ , expoApp = Just "2.10.0.105125"+ , expoSdk = Just "32.0.0"+ , flask = Just "1.0.2"+ , gin = Just "1.3.0"+ , go = Just "1.11.2"+ , javaType = Just "Java(TM) SE Runtime Environment"+ , javaVersion = Just "1.8.0_131-b11"+ , jruby = Just "9.2.5.0"+ , laravel = Just "5.7.22"+ , lumen = Just "5.7"+ , magento = Just "2.3.0"+ , mailman = Just "0.8.0"+ , martini = Just "1.0"+ , negroni = Just "1.0.0"+ , node = Just "10.14.1"+ , osBuild = Just "16D57"+ , php = Just "7.2.12"+ , python = Just "3.7.1"+ , que = Just "0.14.3"+ , rack = Just "2.0.6"+ , rails = Just "5.2.2"+ , rake = Just "12.3.2"+ , reactNative = Just "0.57.5"+ , reactNativeJsEngine = Just "hermes"+ , resque = Just "2.0.0"+ , revel = Just "0.21.0"+ , ruby = Just "2.5.3"+ , shoryoken = Just "5.0.1"+ , sidekiq = Just "5.1.3"+ , silex = Just "2.1.0"+ , sinatra = Just "2.0.3"+ , springBoot = Just "1.5.13.RELEASE"+ , springFramework = Just "4.2.13.RELEASE"+ , swift = Just "4.2"+ , symfony = Just "4.2.11"+ , tornado = Just "5.1.1"+ , unity = Just "2018.2.17"+ , unityScriptingBackend = Just "Mono"+ , wordpress = Just "5.1"+ }
src/Data/Bugsnag/Types/Session.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Session ( Session (..) , exampleSession- ) where+ , defaultSession+ )+where import Data.Bugsnag.Types.Prelude @@ -21,7 +23,7 @@ -- at which the session started. , events :: SessionEvent }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Session where parseJSON = genericParseJSON aesonOptions@@ -30,9 +32,18 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultSession :: Text -> Text -> SessionEvent -> Session+defaultSession id startedAt events =+ Session+ { id+ , startedAt+ , events+ }+ exampleSession :: Session-exampleSession = Session- { id = "9f65c975-8155-456f-91e5-c4c4b3db0555"- , startedAt = "2017-01-01T14:30:00.000Z"- , events = exampleSessionEvent- }+exampleSession =+ Session+ { id = "9f65c975-8155-456f-91e5-c4c4b3db0555"+ , startedAt = "2017-01-01T14:30:00.000Z"+ , events = exampleSessionEvent+ }
src/Data/Bugsnag/Types/SessionEvent.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.SessionEvent ( SessionEvent (..) , exampleSessionEvent- ) where+ , defaultSessionEvent+ )+where import Data.Bugsnag.Types.Prelude @@ -15,7 +17,7 @@ -- ^ The number of unhandled events that have occurred in this session -- (including this event) }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON SessionEvent where parseJSON = genericParseJSON aesonOptions@@ -24,8 +26,16 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultSessionEvent :: Int -> Int -> SessionEvent+defaultSessionEvent handled unhandled =+ SessionEvent+ { handled+ , unhandled+ }+ exampleSessionEvent :: SessionEvent-exampleSessionEvent = SessionEvent- { handled = 1- , unhandled = 1- }+exampleSessionEvent =+ SessionEvent+ { handled = 1+ , unhandled = 1+ }
src/Data/Bugsnag/Types/Severity.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.Severity ( Severity (..) , exampleSeverity- ) where+ )+where import Data.Bugsnag.Types.Prelude @@ -16,7 +17,7 @@ = Error | Warning | Info- deriving stock (Bounded, Enum, Eq, Show, Generic)+ deriving stock (Bounded, Enum, Eq, Generic, Show) instance FromJSON Severity where parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/SeverityReason.hs view
@@ -1,12 +1,14 @@ module Data.Bugsnag.Types.SeverityReason ( SeverityReason (..) , exampleSeverityReason- ) where+ , defaultSeverityReason+ )+where import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.SeverityReasonType import Data.Bugsnag.Types.SeverityReasonAttributes+import Data.Bugsnag.Types.SeverityReasonType -- | Information about why the severity was picked. data SeverityReason = SeverityReason@@ -54,7 +56,7 @@ -- ^ Whether the event\'s @unhandled@ flag was overridden from the -- notifier\'s default value. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON SeverityReason where parseJSON = genericParseJSON aesonOptions@@ -63,9 +65,18 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultSeverityReason :: SeverityReason+defaultSeverityReason =+ SeverityReason+ { type_ = Nothing+ , attributes = Nothing+ , unhandledOverridden = Nothing+ }+ exampleSeverityReason :: SeverityReason-exampleSeverityReason = SeverityReason- { type_ = Just exampleSeverityReasonType- , attributes = Just exampleSeverityReasonAttributes- , unhandledOverridden = Just False- }+exampleSeverityReason =+ SeverityReason+ { type_ = Just exampleSeverityReasonType+ , attributes = Just exampleSeverityReasonAttributes+ , unhandledOverridden = Just False+ }
src/Data/Bugsnag/Types/SeverityReasonAttributes.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.SeverityReasonAttributes ( SeverityReasonAttributes (..) , exampleSeverityReasonAttributes- ) where+ , defaultSeverityReasonAttributes+ )+where import Data.Bugsnag.Types.Prelude @@ -29,7 +31,7 @@ -- ^ Included for @exceptionClass@ severity reason. Specifies the error class -- that is automatically sent. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON SeverityReasonAttributes where parseJSON = genericParseJSON aesonOptions@@ -38,13 +40,26 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultSeverityReasonAttributes :: SeverityReasonAttributes+defaultSeverityReasonAttributes =+ SeverityReasonAttributes+ { errorType = Nothing+ , level = Nothing+ , signalType = Nothing+ , violationType = Nothing+ , errorClass = Nothing+ , framework = Nothing+ , exceptionClass = Nothing+ }+ exampleSeverityReasonAttributes :: SeverityReasonAttributes-exampleSeverityReasonAttributes = SeverityReasonAttributes- { errorType = Just "E_ERROR"- , level = Just "Error"- , signalType = Just "SIGSEGV"- , violationType = Just "NetworkOnMainThread"- , errorClass = Just "ActiveRecord::RecordNotFound"- , framework = Just "Rack"- , exceptionClass = Just "TypeMismatchException"- }+exampleSeverityReasonAttributes =+ SeverityReasonAttributes+ { errorType = Just "E_ERROR"+ , level = Just "Error"+ , signalType = Just "SIGSEGV"+ , violationType = Just "NetworkOnMainThread"+ , errorClass = Just "ActiveRecord::RecordNotFound"+ , framework = Just "Rack"+ , exceptionClass = Just "TypeMismatchException"+ }
src/Data/Bugsnag/Types/SeverityReasonType.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.SeverityReasonType ( SeverityReasonType (..) , exampleSeverityReasonType- ) where+ )+where import Data.Bugsnag.Types.Prelude @@ -66,7 +67,7 @@ | AppHang | OutOfMemory | ThermalKill- deriving stock (Bounded, Enum, Eq, Show, Generic)+ deriving stock (Bounded, Enum, Eq, Generic, Show) instance FromJSON SeverityReasonType where parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/Stackframe.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Stackframe ( Stackframe (..) , exampleStackframe- ) where+ , defaultStackframe+ )+where import Data.Bugsnag.Types.Prelude @@ -54,7 +56,7 @@ , codeIdentifier :: Maybe Text -- ^ The ID of the executable\/library that the frame relates to. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Stackframe where parseJSON = genericParseJSON aesonOptions@@ -63,22 +65,44 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultStackframe :: Text -> Int -> Text -> Stackframe+defaultStackframe file lineNumber method =+ Stackframe+ { file+ , lineNumber+ , method+ , columnNumber = Nothing+ , inProject = Nothing+ , code = Nothing+ , frameAddress = Nothing+ , loadAddress = Nothing+ , isLR = Nothing+ , isPC = Nothing+ , symbolAddress = Nothing+ , machoFile = Nothing+ , machoLoadAddress = Nothing+ , machoUUID = Nothing+ , machoVMAddress = Nothing+ , codeIdentifier = Nothing+ }+ exampleStackframe :: Stackframe-exampleStackframe = Stackframe- { file = "controllers/auth/session_controller.rb"- , lineNumber = 1234- , columnNumber = Just 123- , method = "create"- , inProject = Just True- , code = Nothing- , frameAddress = Just "0x000000010d131040"- , loadAddress = Just "0x000000010d12e000"- , isLR = Nothing- , isPC = Just True- , symbolAddress = Just "0x000000010d130fe6"- , machoFile = Just "/System/Library/Frameworks/Foundation.framework/Foundation"- , machoLoadAddress = Just "0x000000010d12e000"- , machoUUID = Just "B3196052-BAF1-3EA5-AD28-F9E6ECCF0B03"- , machoVMAddress = Just "0x0000000100000000"- , codeIdentifier = Just "b6b529d5e58421a0fba0fa2c5c2c5f3e"- }+exampleStackframe =+ Stackframe+ { file = "controllers/auth/session_controller.rb"+ , lineNumber = 1234+ , columnNumber = Just 123+ , method = "create"+ , inProject = Just True+ , code = Nothing+ , frameAddress = Just "0x000000010d131040"+ , loadAddress = Just "0x000000010d12e000"+ , isLR = Nothing+ , isPC = Just True+ , symbolAddress = Just "0x000000010d130fe6"+ , machoFile = Just "/System/Library/Frameworks/Foundation.framework/Foundation"+ , machoLoadAddress = Just "0x000000010d12e000"+ , machoUUID = Just "B3196052-BAF1-3EA5-AD28-F9E6ECCF0B03"+ , machoVMAddress = Just "0x0000000100000000"+ , codeIdentifier = Just "b6b529d5e58421a0fba0fa2c5c2c5f3e"+ }
src/Data/Bugsnag/Types/Thread.hs view
@@ -1,12 +1,14 @@ module Data.Bugsnag.Types.Thread ( Thread (..) , exampleThread- ) where+ , defaultThread+ )+where import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.Stackframe import Data.Bugsnag.Types.ErrorType+import Data.Bugsnag.Types.Stackframe data Thread = Thread { id :: Maybe Text@@ -23,7 +25,7 @@ -- ^ The state of the thread at the time of the error. , type_ :: Maybe ErrorType }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON Thread where parseJSON = genericParseJSON aesonOptions@@ -32,12 +34,24 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultThread :: Thread+defaultThread =+ Thread+ { id = Nothing+ , name = Nothing+ , errorReportingThread = Nothing+ , stacktrace = Nothing+ , state = Nothing+ , type_ = Nothing+ }+ exampleThread :: Thread-exampleThread = Thread- { id = Just "thread_id"- , name = Just "thread_name"- , errorReportingThread = Just True- , stacktrace = Just [exampleStackframe]- , state = Just "WAITING"- , type_ = Just exampleErrorType- }+exampleThread =+ Thread+ { id = Just "thread_id"+ , name = Just "thread_name"+ , errorReportingThread = Just True+ , stacktrace = Just [exampleStackframe]+ , state = Just "WAITING"+ , type_ = Just exampleErrorType+ }
src/Data/Bugsnag/Types/User.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.User ( User (..) , exampleUser- ) where+ , defaultUser+ )+where import Data.Bugsnag.Types.Prelude @@ -18,7 +20,7 @@ , email :: Maybe Text -- ^ The user\'s email address. }- deriving stock (Eq, Show, Generic)+ deriving stock (Eq, Generic, Show) instance FromJSON User where parseJSON = genericParseJSON aesonOptions@@ -27,9 +29,18 @@ toJSON = genericToJSON aesonOptions toEncoding = genericToEncoding aesonOptions +defaultUser :: User+defaultUser =+ User+ { id = Nothing+ , name = Nothing+ , email = Nothing+ }+ exampleUser :: User-exampleUser = User- { id = Just "19"- , name = Just "Robert Hawkins"- , email = Just "bob@example.com"- }+exampleUser =+ User+ { id = Just "19"+ , name = Just "Robert Hawkins"+ , email = Just "bob@example.com"+ }