cdp-0.0.1.0: src/CDP/Domains/IndexedDB.hs
{-# LANGUAGE OverloadedStrings, RecordWildCards, TupleSections #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeFamilies #-}
{- |
= IndexedDB
-}
module CDP.Domains.IndexedDB (module CDP.Domains.IndexedDB) where
import Control.Applicative ((<$>))
import Control.Monad
import Control.Monad.Loops
import Control.Monad.Trans (liftIO)
import qualified Data.Map as M
import Data.Maybe
import Data.Functor.Identity
import Data.String
import qualified Data.Text as T
import qualified Data.List as List
import qualified Data.Text.IO as TI
import qualified Data.Vector as V
import Data.Aeson.Types (Parser(..))
import Data.Aeson (FromJSON (..), ToJSON (..), (.:), (.:?), (.=), (.!=), (.:!))
import qualified Data.Aeson as A
import qualified Network.HTTP.Simple as Http
import qualified Network.URI as Uri
import qualified Network.WebSockets as WS
import Control.Concurrent
import qualified Data.ByteString.Lazy as BS
import qualified Data.Map as Map
import Data.Proxy
import System.Random
import GHC.Generics
import Data.Char
import Data.Default
import CDP.Internal.Utils
import CDP.Domains.Runtime as Runtime
-- | Type 'IndexedDB.DatabaseWithObjectStores'.
-- Database with an array of object stores.
data IndexedDBDatabaseWithObjectStores = IndexedDBDatabaseWithObjectStores
{
-- | Database name.
indexedDBDatabaseWithObjectStoresName :: T.Text,
-- | Database version (type is not 'integer', as the standard
-- requires the version number to be 'unsigned long long')
indexedDBDatabaseWithObjectStoresVersion :: Double,
-- | Object stores in this database.
indexedDBDatabaseWithObjectStoresObjectStores :: [IndexedDBObjectStore]
}
deriving (Eq, Show)
instance FromJSON IndexedDBDatabaseWithObjectStores where
parseJSON = A.withObject "IndexedDBDatabaseWithObjectStores" $ \o -> IndexedDBDatabaseWithObjectStores
<$> o A..: "name"
<*> o A..: "version"
<*> o A..: "objectStores"
instance ToJSON IndexedDBDatabaseWithObjectStores where
toJSON p = A.object $ catMaybes [
("name" A..=) <$> Just (indexedDBDatabaseWithObjectStoresName p),
("version" A..=) <$> Just (indexedDBDatabaseWithObjectStoresVersion p),
("objectStores" A..=) <$> Just (indexedDBDatabaseWithObjectStoresObjectStores p)
]
-- | Type 'IndexedDB.ObjectStore'.
-- Object store.
data IndexedDBObjectStore = IndexedDBObjectStore
{
-- | Object store name.
indexedDBObjectStoreName :: T.Text,
-- | Object store key path.
indexedDBObjectStoreKeyPath :: IndexedDBKeyPath,
-- | If true, object store has auto increment flag set.
indexedDBObjectStoreAutoIncrement :: Bool,
-- | Indexes in this object store.
indexedDBObjectStoreIndexes :: [IndexedDBObjectStoreIndex]
}
deriving (Eq, Show)
instance FromJSON IndexedDBObjectStore where
parseJSON = A.withObject "IndexedDBObjectStore" $ \o -> IndexedDBObjectStore
<$> o A..: "name"
<*> o A..: "keyPath"
<*> o A..: "autoIncrement"
<*> o A..: "indexes"
instance ToJSON IndexedDBObjectStore where
toJSON p = A.object $ catMaybes [
("name" A..=) <$> Just (indexedDBObjectStoreName p),
("keyPath" A..=) <$> Just (indexedDBObjectStoreKeyPath p),
("autoIncrement" A..=) <$> Just (indexedDBObjectStoreAutoIncrement p),
("indexes" A..=) <$> Just (indexedDBObjectStoreIndexes p)
]
-- | Type 'IndexedDB.ObjectStoreIndex'.
-- Object store index.
data IndexedDBObjectStoreIndex = IndexedDBObjectStoreIndex
{
-- | Index name.
indexedDBObjectStoreIndexName :: T.Text,
-- | Index key path.
indexedDBObjectStoreIndexKeyPath :: IndexedDBKeyPath,
-- | If true, index is unique.
indexedDBObjectStoreIndexUnique :: Bool,
-- | If true, index allows multiple entries for a key.
indexedDBObjectStoreIndexMultiEntry :: Bool
}
deriving (Eq, Show)
instance FromJSON IndexedDBObjectStoreIndex where
parseJSON = A.withObject "IndexedDBObjectStoreIndex" $ \o -> IndexedDBObjectStoreIndex
<$> o A..: "name"
<*> o A..: "keyPath"
<*> o A..: "unique"
<*> o A..: "multiEntry"
instance ToJSON IndexedDBObjectStoreIndex where
toJSON p = A.object $ catMaybes [
("name" A..=) <$> Just (indexedDBObjectStoreIndexName p),
("keyPath" A..=) <$> Just (indexedDBObjectStoreIndexKeyPath p),
("unique" A..=) <$> Just (indexedDBObjectStoreIndexUnique p),
("multiEntry" A..=) <$> Just (indexedDBObjectStoreIndexMultiEntry p)
]
-- | Type 'IndexedDB.Key'.
-- Key.
data IndexedDBKeyType = IndexedDBKeyTypeNumber | IndexedDBKeyTypeString | IndexedDBKeyTypeDate | IndexedDBKeyTypeArray
deriving (Ord, Eq, Show, Read)
instance FromJSON IndexedDBKeyType where
parseJSON = A.withText "IndexedDBKeyType" $ \v -> case v of
"number" -> pure IndexedDBKeyTypeNumber
"string" -> pure IndexedDBKeyTypeString
"date" -> pure IndexedDBKeyTypeDate
"array" -> pure IndexedDBKeyTypeArray
"_" -> fail "failed to parse IndexedDBKeyType"
instance ToJSON IndexedDBKeyType where
toJSON v = A.String $ case v of
IndexedDBKeyTypeNumber -> "number"
IndexedDBKeyTypeString -> "string"
IndexedDBKeyTypeDate -> "date"
IndexedDBKeyTypeArray -> "array"
data IndexedDBKey = IndexedDBKey
{
-- | Key type.
indexedDBKeyType :: IndexedDBKeyType,
-- | Number value.
indexedDBKeyNumber :: Maybe Double,
-- | String value.
indexedDBKeyString :: Maybe T.Text,
-- | Date value.
indexedDBKeyDate :: Maybe Double,
-- | Array value.
indexedDBKeyArray :: Maybe [IndexedDBKey]
}
deriving (Eq, Show)
instance FromJSON IndexedDBKey where
parseJSON = A.withObject "IndexedDBKey" $ \o -> IndexedDBKey
<$> o A..: "type"
<*> o A..:? "number"
<*> o A..:? "string"
<*> o A..:? "date"
<*> o A..:? "array"
instance ToJSON IndexedDBKey where
toJSON p = A.object $ catMaybes [
("type" A..=) <$> Just (indexedDBKeyType p),
("number" A..=) <$> (indexedDBKeyNumber p),
("string" A..=) <$> (indexedDBKeyString p),
("date" A..=) <$> (indexedDBKeyDate p),
("array" A..=) <$> (indexedDBKeyArray p)
]
-- | Type 'IndexedDB.KeyRange'.
-- Key range.
data IndexedDBKeyRange = IndexedDBKeyRange
{
-- | Lower bound.
indexedDBKeyRangeLower :: Maybe IndexedDBKey,
-- | Upper bound.
indexedDBKeyRangeUpper :: Maybe IndexedDBKey,
-- | If true lower bound is open.
indexedDBKeyRangeLowerOpen :: Bool,
-- | If true upper bound is open.
indexedDBKeyRangeUpperOpen :: Bool
}
deriving (Eq, Show)
instance FromJSON IndexedDBKeyRange where
parseJSON = A.withObject "IndexedDBKeyRange" $ \o -> IndexedDBKeyRange
<$> o A..:? "lower"
<*> o A..:? "upper"
<*> o A..: "lowerOpen"
<*> o A..: "upperOpen"
instance ToJSON IndexedDBKeyRange where
toJSON p = A.object $ catMaybes [
("lower" A..=) <$> (indexedDBKeyRangeLower p),
("upper" A..=) <$> (indexedDBKeyRangeUpper p),
("lowerOpen" A..=) <$> Just (indexedDBKeyRangeLowerOpen p),
("upperOpen" A..=) <$> Just (indexedDBKeyRangeUpperOpen p)
]
-- | Type 'IndexedDB.DataEntry'.
-- Data entry.
data IndexedDBDataEntry = IndexedDBDataEntry
{
-- | Key object.
indexedDBDataEntryKey :: Runtime.RuntimeRemoteObject,
-- | Primary key object.
indexedDBDataEntryPrimaryKey :: Runtime.RuntimeRemoteObject,
-- | Value object.
indexedDBDataEntryValue :: Runtime.RuntimeRemoteObject
}
deriving (Eq, Show)
instance FromJSON IndexedDBDataEntry where
parseJSON = A.withObject "IndexedDBDataEntry" $ \o -> IndexedDBDataEntry
<$> o A..: "key"
<*> o A..: "primaryKey"
<*> o A..: "value"
instance ToJSON IndexedDBDataEntry where
toJSON p = A.object $ catMaybes [
("key" A..=) <$> Just (indexedDBDataEntryKey p),
("primaryKey" A..=) <$> Just (indexedDBDataEntryPrimaryKey p),
("value" A..=) <$> Just (indexedDBDataEntryValue p)
]
-- | Type 'IndexedDB.KeyPath'.
-- Key path.
data IndexedDBKeyPathType = IndexedDBKeyPathTypeNull | IndexedDBKeyPathTypeString | IndexedDBKeyPathTypeArray
deriving (Ord, Eq, Show, Read)
instance FromJSON IndexedDBKeyPathType where
parseJSON = A.withText "IndexedDBKeyPathType" $ \v -> case v of
"null" -> pure IndexedDBKeyPathTypeNull
"string" -> pure IndexedDBKeyPathTypeString
"array" -> pure IndexedDBKeyPathTypeArray
"_" -> fail "failed to parse IndexedDBKeyPathType"
instance ToJSON IndexedDBKeyPathType where
toJSON v = A.String $ case v of
IndexedDBKeyPathTypeNull -> "null"
IndexedDBKeyPathTypeString -> "string"
IndexedDBKeyPathTypeArray -> "array"
data IndexedDBKeyPath = IndexedDBKeyPath
{
-- | Key path type.
indexedDBKeyPathType :: IndexedDBKeyPathType,
-- | String value.
indexedDBKeyPathString :: Maybe T.Text,
-- | Array value.
indexedDBKeyPathArray :: Maybe [T.Text]
}
deriving (Eq, Show)
instance FromJSON IndexedDBKeyPath where
parseJSON = A.withObject "IndexedDBKeyPath" $ \o -> IndexedDBKeyPath
<$> o A..: "type"
<*> o A..:? "string"
<*> o A..:? "array"
instance ToJSON IndexedDBKeyPath where
toJSON p = A.object $ catMaybes [
("type" A..=) <$> Just (indexedDBKeyPathType p),
("string" A..=) <$> (indexedDBKeyPathString p),
("array" A..=) <$> (indexedDBKeyPathArray p)
]
-- | Clears all entries from an object store.
-- | Parameters of the 'IndexedDB.clearObjectStore' command.
data PIndexedDBClearObjectStore = PIndexedDBClearObjectStore
{
-- | At least and at most one of securityOrigin, storageKey must be specified.
-- Security origin.
pIndexedDBClearObjectStoreSecurityOrigin :: Maybe T.Text,
-- | Storage key.
pIndexedDBClearObjectStoreStorageKey :: Maybe T.Text,
-- | Database name.
pIndexedDBClearObjectStoreDatabaseName :: T.Text,
-- | Object store name.
pIndexedDBClearObjectStoreObjectStoreName :: T.Text
}
deriving (Eq, Show)
pIndexedDBClearObjectStore
{-
-- | Database name.
-}
:: T.Text
{-
-- | Object store name.
-}
-> T.Text
-> PIndexedDBClearObjectStore
pIndexedDBClearObjectStore
arg_pIndexedDBClearObjectStoreDatabaseName
arg_pIndexedDBClearObjectStoreObjectStoreName
= PIndexedDBClearObjectStore
Nothing
Nothing
arg_pIndexedDBClearObjectStoreDatabaseName
arg_pIndexedDBClearObjectStoreObjectStoreName
instance ToJSON PIndexedDBClearObjectStore where
toJSON p = A.object $ catMaybes [
("securityOrigin" A..=) <$> (pIndexedDBClearObjectStoreSecurityOrigin p),
("storageKey" A..=) <$> (pIndexedDBClearObjectStoreStorageKey p),
("databaseName" A..=) <$> Just (pIndexedDBClearObjectStoreDatabaseName p),
("objectStoreName" A..=) <$> Just (pIndexedDBClearObjectStoreObjectStoreName p)
]
instance Command PIndexedDBClearObjectStore where
type CommandResponse PIndexedDBClearObjectStore = ()
commandName _ = "IndexedDB.clearObjectStore"
fromJSON = const . A.Success . const ()
-- | Deletes a database.
-- | Parameters of the 'IndexedDB.deleteDatabase' command.
data PIndexedDBDeleteDatabase = PIndexedDBDeleteDatabase
{
-- | At least and at most one of securityOrigin, storageKey must be specified.
-- Security origin.
pIndexedDBDeleteDatabaseSecurityOrigin :: Maybe T.Text,
-- | Storage key.
pIndexedDBDeleteDatabaseStorageKey :: Maybe T.Text,
-- | Database name.
pIndexedDBDeleteDatabaseDatabaseName :: T.Text
}
deriving (Eq, Show)
pIndexedDBDeleteDatabase
{-
-- | Database name.
-}
:: T.Text
-> PIndexedDBDeleteDatabase
pIndexedDBDeleteDatabase
arg_pIndexedDBDeleteDatabaseDatabaseName
= PIndexedDBDeleteDatabase
Nothing
Nothing
arg_pIndexedDBDeleteDatabaseDatabaseName
instance ToJSON PIndexedDBDeleteDatabase where
toJSON p = A.object $ catMaybes [
("securityOrigin" A..=) <$> (pIndexedDBDeleteDatabaseSecurityOrigin p),
("storageKey" A..=) <$> (pIndexedDBDeleteDatabaseStorageKey p),
("databaseName" A..=) <$> Just (pIndexedDBDeleteDatabaseDatabaseName p)
]
instance Command PIndexedDBDeleteDatabase where
type CommandResponse PIndexedDBDeleteDatabase = ()
commandName _ = "IndexedDB.deleteDatabase"
fromJSON = const . A.Success . const ()
-- | Delete a range of entries from an object store
-- | Parameters of the 'IndexedDB.deleteObjectStoreEntries' command.
data PIndexedDBDeleteObjectStoreEntries = PIndexedDBDeleteObjectStoreEntries
{
-- | At least and at most one of securityOrigin, storageKey must be specified.
-- Security origin.
pIndexedDBDeleteObjectStoreEntriesSecurityOrigin :: Maybe T.Text,
-- | Storage key.
pIndexedDBDeleteObjectStoreEntriesStorageKey :: Maybe T.Text,
pIndexedDBDeleteObjectStoreEntriesDatabaseName :: T.Text,
pIndexedDBDeleteObjectStoreEntriesObjectStoreName :: T.Text,
-- | Range of entry keys to delete
pIndexedDBDeleteObjectStoreEntriesKeyRange :: IndexedDBKeyRange
}
deriving (Eq, Show)
pIndexedDBDeleteObjectStoreEntries
:: T.Text
-> T.Text
{-
-- | Range of entry keys to delete
-}
-> IndexedDBKeyRange
-> PIndexedDBDeleteObjectStoreEntries
pIndexedDBDeleteObjectStoreEntries
arg_pIndexedDBDeleteObjectStoreEntriesDatabaseName
arg_pIndexedDBDeleteObjectStoreEntriesObjectStoreName
arg_pIndexedDBDeleteObjectStoreEntriesKeyRange
= PIndexedDBDeleteObjectStoreEntries
Nothing
Nothing
arg_pIndexedDBDeleteObjectStoreEntriesDatabaseName
arg_pIndexedDBDeleteObjectStoreEntriesObjectStoreName
arg_pIndexedDBDeleteObjectStoreEntriesKeyRange
instance ToJSON PIndexedDBDeleteObjectStoreEntries where
toJSON p = A.object $ catMaybes [
("securityOrigin" A..=) <$> (pIndexedDBDeleteObjectStoreEntriesSecurityOrigin p),
("storageKey" A..=) <$> (pIndexedDBDeleteObjectStoreEntriesStorageKey p),
("databaseName" A..=) <$> Just (pIndexedDBDeleteObjectStoreEntriesDatabaseName p),
("objectStoreName" A..=) <$> Just (pIndexedDBDeleteObjectStoreEntriesObjectStoreName p),
("keyRange" A..=) <$> Just (pIndexedDBDeleteObjectStoreEntriesKeyRange p)
]
instance Command PIndexedDBDeleteObjectStoreEntries where
type CommandResponse PIndexedDBDeleteObjectStoreEntries = ()
commandName _ = "IndexedDB.deleteObjectStoreEntries"
fromJSON = const . A.Success . const ()
-- | Disables events from backend.
-- | Parameters of the 'IndexedDB.disable' command.
data PIndexedDBDisable = PIndexedDBDisable
deriving (Eq, Show)
pIndexedDBDisable
:: PIndexedDBDisable
pIndexedDBDisable
= PIndexedDBDisable
instance ToJSON PIndexedDBDisable where
toJSON _ = A.Null
instance Command PIndexedDBDisable where
type CommandResponse PIndexedDBDisable = ()
commandName _ = "IndexedDB.disable"
fromJSON = const . A.Success . const ()
-- | Enables events from backend.
-- | Parameters of the 'IndexedDB.enable' command.
data PIndexedDBEnable = PIndexedDBEnable
deriving (Eq, Show)
pIndexedDBEnable
:: PIndexedDBEnable
pIndexedDBEnable
= PIndexedDBEnable
instance ToJSON PIndexedDBEnable where
toJSON _ = A.Null
instance Command PIndexedDBEnable where
type CommandResponse PIndexedDBEnable = ()
commandName _ = "IndexedDB.enable"
fromJSON = const . A.Success . const ()
-- | Requests data from object store or index.
-- | Parameters of the 'IndexedDB.requestData' command.
data PIndexedDBRequestData = PIndexedDBRequestData
{
-- | At least and at most one of securityOrigin, storageKey must be specified.
-- Security origin.
pIndexedDBRequestDataSecurityOrigin :: Maybe T.Text,
-- | Storage key.
pIndexedDBRequestDataStorageKey :: Maybe T.Text,
-- | Database name.
pIndexedDBRequestDataDatabaseName :: T.Text,
-- | Object store name.
pIndexedDBRequestDataObjectStoreName :: T.Text,
-- | Index name, empty string for object store data requests.
pIndexedDBRequestDataIndexName :: T.Text,
-- | Number of records to skip.
pIndexedDBRequestDataSkipCount :: Int,
-- | Number of records to fetch.
pIndexedDBRequestDataPageSize :: Int,
-- | Key range.
pIndexedDBRequestDataKeyRange :: Maybe IndexedDBKeyRange
}
deriving (Eq, Show)
pIndexedDBRequestData
{-
-- | Database name.
-}
:: T.Text
{-
-- | Object store name.
-}
-> T.Text
{-
-- | Index name, empty string for object store data requests.
-}
-> T.Text
{-
-- | Number of records to skip.
-}
-> Int
{-
-- | Number of records to fetch.
-}
-> Int
-> PIndexedDBRequestData
pIndexedDBRequestData
arg_pIndexedDBRequestDataDatabaseName
arg_pIndexedDBRequestDataObjectStoreName
arg_pIndexedDBRequestDataIndexName
arg_pIndexedDBRequestDataSkipCount
arg_pIndexedDBRequestDataPageSize
= PIndexedDBRequestData
Nothing
Nothing
arg_pIndexedDBRequestDataDatabaseName
arg_pIndexedDBRequestDataObjectStoreName
arg_pIndexedDBRequestDataIndexName
arg_pIndexedDBRequestDataSkipCount
arg_pIndexedDBRequestDataPageSize
Nothing
instance ToJSON PIndexedDBRequestData where
toJSON p = A.object $ catMaybes [
("securityOrigin" A..=) <$> (pIndexedDBRequestDataSecurityOrigin p),
("storageKey" A..=) <$> (pIndexedDBRequestDataStorageKey p),
("databaseName" A..=) <$> Just (pIndexedDBRequestDataDatabaseName p),
("objectStoreName" A..=) <$> Just (pIndexedDBRequestDataObjectStoreName p),
("indexName" A..=) <$> Just (pIndexedDBRequestDataIndexName p),
("skipCount" A..=) <$> Just (pIndexedDBRequestDataSkipCount p),
("pageSize" A..=) <$> Just (pIndexedDBRequestDataPageSize p),
("keyRange" A..=) <$> (pIndexedDBRequestDataKeyRange p)
]
data IndexedDBRequestData = IndexedDBRequestData
{
-- | Array of object store data entries.
indexedDBRequestDataObjectStoreDataEntries :: [IndexedDBDataEntry],
-- | If true, there are more entries to fetch in the given range.
indexedDBRequestDataHasMore :: Bool
}
deriving (Eq, Show)
instance FromJSON IndexedDBRequestData where
parseJSON = A.withObject "IndexedDBRequestData" $ \o -> IndexedDBRequestData
<$> o A..: "objectStoreDataEntries"
<*> o A..: "hasMore"
instance Command PIndexedDBRequestData where
type CommandResponse PIndexedDBRequestData = IndexedDBRequestData
commandName _ = "IndexedDB.requestData"
-- | Gets metadata of an object store
-- | Parameters of the 'IndexedDB.getMetadata' command.
data PIndexedDBGetMetadata = PIndexedDBGetMetadata
{
-- | At least and at most one of securityOrigin, storageKey must be specified.
-- Security origin.
pIndexedDBGetMetadataSecurityOrigin :: Maybe T.Text,
-- | Storage key.
pIndexedDBGetMetadataStorageKey :: Maybe T.Text,
-- | Database name.
pIndexedDBGetMetadataDatabaseName :: T.Text,
-- | Object store name.
pIndexedDBGetMetadataObjectStoreName :: T.Text
}
deriving (Eq, Show)
pIndexedDBGetMetadata
{-
-- | Database name.
-}
:: T.Text
{-
-- | Object store name.
-}
-> T.Text
-> PIndexedDBGetMetadata
pIndexedDBGetMetadata
arg_pIndexedDBGetMetadataDatabaseName
arg_pIndexedDBGetMetadataObjectStoreName
= PIndexedDBGetMetadata
Nothing
Nothing
arg_pIndexedDBGetMetadataDatabaseName
arg_pIndexedDBGetMetadataObjectStoreName
instance ToJSON PIndexedDBGetMetadata where
toJSON p = A.object $ catMaybes [
("securityOrigin" A..=) <$> (pIndexedDBGetMetadataSecurityOrigin p),
("storageKey" A..=) <$> (pIndexedDBGetMetadataStorageKey p),
("databaseName" A..=) <$> Just (pIndexedDBGetMetadataDatabaseName p),
("objectStoreName" A..=) <$> Just (pIndexedDBGetMetadataObjectStoreName p)
]
data IndexedDBGetMetadata = IndexedDBGetMetadata
{
-- | the entries count
indexedDBGetMetadataEntriesCount :: Double,
-- | the current value of key generator, to become the next inserted
-- key into the object store. Valid if objectStore.autoIncrement
-- is true.
indexedDBGetMetadataKeyGeneratorValue :: Double
}
deriving (Eq, Show)
instance FromJSON IndexedDBGetMetadata where
parseJSON = A.withObject "IndexedDBGetMetadata" $ \o -> IndexedDBGetMetadata
<$> o A..: "entriesCount"
<*> o A..: "keyGeneratorValue"
instance Command PIndexedDBGetMetadata where
type CommandResponse PIndexedDBGetMetadata = IndexedDBGetMetadata
commandName _ = "IndexedDB.getMetadata"
-- | Requests database with given name in given frame.
-- | Parameters of the 'IndexedDB.requestDatabase' command.
data PIndexedDBRequestDatabase = PIndexedDBRequestDatabase
{
-- | At least and at most one of securityOrigin, storageKey must be specified.
-- Security origin.
pIndexedDBRequestDatabaseSecurityOrigin :: Maybe T.Text,
-- | Storage key.
pIndexedDBRequestDatabaseStorageKey :: Maybe T.Text,
-- | Database name.
pIndexedDBRequestDatabaseDatabaseName :: T.Text
}
deriving (Eq, Show)
pIndexedDBRequestDatabase
{-
-- | Database name.
-}
:: T.Text
-> PIndexedDBRequestDatabase
pIndexedDBRequestDatabase
arg_pIndexedDBRequestDatabaseDatabaseName
= PIndexedDBRequestDatabase
Nothing
Nothing
arg_pIndexedDBRequestDatabaseDatabaseName
instance ToJSON PIndexedDBRequestDatabase where
toJSON p = A.object $ catMaybes [
("securityOrigin" A..=) <$> (pIndexedDBRequestDatabaseSecurityOrigin p),
("storageKey" A..=) <$> (pIndexedDBRequestDatabaseStorageKey p),
("databaseName" A..=) <$> Just (pIndexedDBRequestDatabaseDatabaseName p)
]
data IndexedDBRequestDatabase = IndexedDBRequestDatabase
{
-- | Database with an array of object stores.
indexedDBRequestDatabaseDatabaseWithObjectStores :: IndexedDBDatabaseWithObjectStores
}
deriving (Eq, Show)
instance FromJSON IndexedDBRequestDatabase where
parseJSON = A.withObject "IndexedDBRequestDatabase" $ \o -> IndexedDBRequestDatabase
<$> o A..: "databaseWithObjectStores"
instance Command PIndexedDBRequestDatabase where
type CommandResponse PIndexedDBRequestDatabase = IndexedDBRequestDatabase
commandName _ = "IndexedDB.requestDatabase"
-- | Requests database names for given security origin.
-- | Parameters of the 'IndexedDB.requestDatabaseNames' command.
data PIndexedDBRequestDatabaseNames = PIndexedDBRequestDatabaseNames
{
-- | At least and at most one of securityOrigin, storageKey must be specified.
-- Security origin.
pIndexedDBRequestDatabaseNamesSecurityOrigin :: Maybe T.Text,
-- | Storage key.
pIndexedDBRequestDatabaseNamesStorageKey :: Maybe T.Text
}
deriving (Eq, Show)
pIndexedDBRequestDatabaseNames
:: PIndexedDBRequestDatabaseNames
pIndexedDBRequestDatabaseNames
= PIndexedDBRequestDatabaseNames
Nothing
Nothing
instance ToJSON PIndexedDBRequestDatabaseNames where
toJSON p = A.object $ catMaybes [
("securityOrigin" A..=) <$> (pIndexedDBRequestDatabaseNamesSecurityOrigin p),
("storageKey" A..=) <$> (pIndexedDBRequestDatabaseNamesStorageKey p)
]
data IndexedDBRequestDatabaseNames = IndexedDBRequestDatabaseNames
{
-- | Database names for origin.
indexedDBRequestDatabaseNamesDatabaseNames :: [T.Text]
}
deriving (Eq, Show)
instance FromJSON IndexedDBRequestDatabaseNames where
parseJSON = A.withObject "IndexedDBRequestDatabaseNames" $ \o -> IndexedDBRequestDatabaseNames
<$> o A..: "databaseNames"
instance Command PIndexedDBRequestDatabaseNames where
type CommandResponse PIndexedDBRequestDatabaseNames = IndexedDBRequestDatabaseNames
commandName _ = "IndexedDB.requestDatabaseNames"