1{ 2 "domain": "IndexedDB", 3 "types": [ 4 { 5 "id": "DatabaseWithObjectStores", 6 "type": "object", 7 "description": "Database with an array of object stores.", 8 "properties": [ 9 { "name": "name", "type": "string", "description": "Database name." }, 10 { "name": "version", "type": "number", "description": "Database version." }, 11 { "name": "objectStores", "type": "array", "items": { "$ref": "ObjectStore" }, "description": "Object stores in this database." } 12 ] 13 }, 14 { 15 "id": "ObjectStore", 16 "type": "object", 17 "description": "Object store.", 18 "properties": [ 19 { "name": "name", "type": "string", "description": "Object store name." }, 20 { "name": "keyPath", "$ref": "KeyPath", "description": "Object store key path." }, 21 { "name": "autoIncrement", "type": "boolean", "description": "If true, object store has auto increment flag set." }, 22 { "name": "indexes", "type": "array", "items": { "$ref": "ObjectStoreIndex" }, "description": "Indexes in this object store." } 23 ] 24 }, 25 { 26 "id": "ObjectStoreIndex", 27 "type": "object", 28 "description": "Object store index.", 29 "properties": [ 30 { "name": "name", "type": "string", "description": "Index name." }, 31 { "name": "keyPath", "$ref": "KeyPath", "description": "Index key path." }, 32 { "name": "unique", "type": "boolean", "description": "If true, index is unique." }, 33 { "name": "multiEntry", "type": "boolean", "description": "If true, index allows multiple entries for a key." } 34 ] 35 }, 36 { 37 "id": "Key", 38 "type": "object", 39 "description": "Key.", 40 "properties": [ 41 { "name": "type", "type": "string", "enum": ["number", "string", "date", "array"], "description": "Key type." }, 42 { "name": "number", "type": "number", "optional": true, "description": "Number value." }, 43 { "name": "string", "type": "string", "optional": true, "description": "String value." }, 44 { "name": "date", "type": "number", "optional": true, "description": "Date value." }, 45 { "name": "array", "type": "array", "optional": true, "items": { "$ref": "Key" }, "description": "Array value." } 46 ] 47 }, 48 { 49 "id": "KeyRange", 50 "type": "object", 51 "description": "Key range.", 52 "properties": [ 53 { "name": "lower", "$ref": "Key", "optional": true, "description": "Lower bound." }, 54 { "name": "upper", "$ref": "Key", "optional": true, "description": "Upper bound." }, 55 { "name": "lowerOpen", "type": "boolean", "description": "If true lower bound is open." }, 56 { "name": "upperOpen", "type": "boolean", "description": "If true upper bound is open." } 57 ] 58 }, 59 { 60 "id": "DataEntry", 61 "type": "object", 62 "description": "Data entry.", 63 "properties": [ 64 { "name": "key", "$ref": "Runtime.RemoteObject", "description": "Key." }, 65 { "name": "primaryKey", "$ref": "Runtime.RemoteObject", "description": "Primary key." }, 66 { "name": "value", "$ref": "Runtime.RemoteObject", "description": "Value." } 67 ] 68 }, 69 { 70 "id": "KeyPath", 71 "type": "object", 72 "description": "Key path.", 73 "properties": [ 74 { "name": "type", "type": "string", "enum": ["null", "string", "array"], "description": "Key path type." }, 75 { "name": "string", "type": "string", "optional": true, "description": "String value." }, 76 { "name": "array", "type": "array", "optional": true, "items": { "type": "string" }, "description": "Array value." } 77 ] 78 } 79 ], 80 "commands": [ 81 { 82 "name": "enable", 83 "description": "Enables events from backend." 84 }, 85 { 86 "name": "disable", 87 "description": "Disables events from backend." 88 }, 89 { 90 "name": "requestDatabaseNames", 91 "async": true, 92 "parameters": [ 93 { "name": "securityOrigin", "type": "string", "description": "Security origin." } 94 ], 95 "returns": [ 96 { "name": "databaseNames", "type": "array", "items": { "type": "string" }, "description": "Database names for origin." } 97 ], 98 "description": "Requests database names for given security origin." 99 }, 100 { 101 "name": "requestDatabase", 102 "async": true, 103 "parameters": [ 104 { "name": "securityOrigin", "type": "string", "description": "Security origin." }, 105 { "name": "databaseName", "type": "string", "description": "Database name." } 106 ], 107 "returns": [ 108 { "name": "databaseWithObjectStores", "$ref": "DatabaseWithObjectStores", "description": "Database with an array of object stores." } 109 ], 110 "description": "Requests database with given name in given frame." 111 }, 112 { 113 "name": "requestData", 114 "async": true, 115 "parameters": [ 116 { "name": "securityOrigin", "type": "string", "description": "Security origin." }, 117 { "name": "databaseName", "type": "string", "description": "Database name." }, 118 { "name": "objectStoreName", "type": "string", "description": "Object store name." }, 119 { "name": "indexName", "type": "string", "description": "Index name, empty string for object store data requests." }, 120 { "name": "skipCount", "type": "integer", "description": "Number of records to skip." }, 121 { "name": "pageSize", "type": "integer", "description": "Number of records to fetch." }, 122 { "name": "keyRange", "$ref": "KeyRange", "optional": true, "description": "Key range." } 123 ], 124 "returns": [ 125 { "name": "objectStoreDataEntries", "type": "array", "items": { "$ref": "DataEntry" }, "description": "Array of object store data entries." }, 126 { "name": "hasMore", "type": "boolean", "description": "If true, there are more entries to fetch in the given range." } 127 ], 128 "description": "Requests data from object store or index." 129 }, 130 { 131 "name": "clearObjectStore", 132 "async": true, 133 "parameters": [ 134 { "name": "securityOrigin", "type": "string", "description": "Security origin." }, 135 { "name": "databaseName", "type": "string", "description": "Database name." }, 136 { "name": "objectStoreName", "type": "string", "description": "Object store name." } 137 ], 138 "returns": [ 139 ], 140 "description": "Clears all entries from an object store." 141 } 142 ] 143} 144