IndexedDB.json   [plain text]


{
    "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." }
            ]
        }
    ]
}