{ "domain": "IndexedDB", "featureGuard": "ENABLE(INDEXED_DATABASE)", "availability": ["web"], "types": [ { "id": "DatabaseWithObjectStores", "type": "object", "description": "Database with an array of object stores.", "properties": [ { "name": "name", "type": "string", "description": "Database name." }, { "name": "version", "type": "number", "description": "Database version." }, { "name": "objectStores", "type": "array", "items": { "$ref": "ObjectStore" }, "description": "Object stores in this database." } ] }, { "id": "ObjectStore", "type": "object", "description": "Object store.", "properties": [ { "name": "name", "type": "string", "description": "Object store name." }, { "name": "keyPath", "$ref": "KeyPath", "description": "Object store key path." }, { "name": "autoIncrement", "type": "boolean", "description": "If true, object store has auto increment flag set." }, { "name": "indexes", "type": "array", "items": { "$ref": "ObjectStoreIndex" }, "description": "Indexes in this object store." } ] }, { "id": "ObjectStoreIndex", "type": "object", "description": "Object store index.", "properties": [ { "name": "name", "type": "string", "description": "Index name." }, { "name": "keyPath", "$ref": "KeyPath", "description": "Index key path." }, { "name": "unique", "type": "boolean", "description": "If true, index is unique." }, { "name": "multiEntry", "type": "boolean", "description": "If true, index allows multiple entries for a key." } ] }, { "id": "Key", "type": "object", "description": "Key.", "properties": [ { "name": "type", "type": "string", "enum": ["number", "string", "date", "array"], "description": "Key type." }, { "name": "number", "type": "number", "optional": true, "description": "Number value." }, { "name": "string", "type": "string", "optional": true, "description": "String value." }, { "name": "date", "type": "number", "optional": true, "description": "Date value." }, { "name": "array", "type": "array", "optional": true, "items": { "$ref": "Key" }, "description": "Array value." } ] }, { "id": "KeyRange", "type": "object", "description": "Key range.", "properties": [ { "name": "lower", "$ref": "Key", "optional": true, "description": "Lower bound." }, { "name": "upper", "$ref": "Key", "optional": true, "description": "Upper bound." }, { "name": "lowerOpen", "type": "boolean", "description": "If true lower bound is open." }, { "name": "upperOpen", "type": "boolean", "description": "If true upper bound is open." } ] }, { "id": "DataEntry", "type": "object", "description": "Data entry.", "properties": [ { "name": "key", "$ref": "Runtime.RemoteObject", "description": "Key." }, { "name": "primaryKey", "$ref": "Runtime.RemoteObject", "description": "Primary key." }, { "name": "value", "$ref": "Runtime.RemoteObject", "description": "Value." } ] }, { "id": "KeyPath", "type": "object", "description": "Key path.", "properties": [ { "name": "type", "type": "string", "enum": ["null", "string", "array"], "description": "Key path type." }, { "name": "string", "type": "string", "optional": true, "description": "String value." }, { "name": "array", "type": "array", "optional": true, "items": { "type": "string" }, "description": "Array value." } ] } ], "commands": [ { "name": "enable", "description": "Enables events from backend." }, { "name": "disable", "description": "Disables events from backend." }, { "name": "requestDatabaseNames", "description": "Requests database names for given security origin.", "async": true, "parameters": [ { "name": "securityOrigin", "type": "string", "description": "Security origin." } ], "returns": [ { "name": "databaseNames", "type": "array", "items": { "type": "string" }, "description": "Database names for origin." } ] }, { "name": "requestDatabase", "description": "Requests database with given name in given frame.", "async": true, "parameters": [ { "name": "securityOrigin", "type": "string", "description": "Security origin." }, { "name": "databaseName", "type": "string", "description": "Database name." } ], "returns": [ { "name": "databaseWithObjectStores", "$ref": "DatabaseWithObjectStores", "description": "Database with an array of object stores." } ] }, { "name": "requestData", "description": "Requests data from object store or index.", "async": true, "parameters": [ { "name": "securityOrigin", "type": "string", "description": "Security origin." }, { "name": "databaseName", "type": "string", "description": "Database name." }, { "name": "objectStoreName", "type": "string", "description": "Object store name." }, { "name": "indexName", "type": "string", "description": "Index name, empty string for object store data requests." }, { "name": "skipCount", "type": "integer", "description": "Number of records to skip." }, { "name": "pageSize", "type": "integer", "description": "Number of records to fetch." }, { "name": "keyRange", "$ref": "KeyRange", "optional": true, "description": "Key range." } ], "returns": [ { "name": "objectStoreDataEntries", "type": "array", "items": { "$ref": "DataEntry" }, "description": "Array of object store data entries." }, { "name": "hasMore", "type": "boolean", "description": "If true, there are more entries to fetch in the given range." } ] }, { "name": "clearObjectStore", "description": "Clears all entries from an object store.", "async": true, "parameters": [ { "name": "securityOrigin", "type": "string", "description": "Security origin." }, { "name": "databaseName", "type": "string", "description": "Database name." }, { "name": "objectStoreName", "type": "string", "description": "Object store name." } ] } ] }