|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clear: () => (/* binding */ clear),\n/* harmony export */ createStore: () => (/* binding */ createStore),\n/* harmony export */ del: () => (/* binding */ del),\n/* harmony export */ delMany: () => (/* binding */ delMany),\n/* harmony export */ entries: () => (/* binding */ entries),\n/* harmony export */ get: () => (/* binding */ get),\n/* harmony export */ getMany: () => (/* binding */ getMany),\n/* harmony export */ keys: () => (/* binding */ keys),\n/* harmony export */ promisifyRequest: () => (/* binding */ promisifyRequest),\n/* harmony export */ set: () => (/* binding */ set),\n/* harmony export */ setMany: () => (/* binding */ setMany),\n/* harmony export */ update: () => (/* binding */ update),\n/* harmony export */ values: () => (/* binding */ values)\n/* harmony export */ });\nfunction promisifyRequest(request) {\n return new Promise((resolve, reject)=>{\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = ()=>resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = ()=>reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = ()=>request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback)=>dbp.then((db)=>callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore(\"keyval-store\", \"keyval\");\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function get(key, customStore = defaultGetStore()) {\n return customStore(\"readonly\", (store)=>promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function set(key, value, customStore = defaultGetStore()) {\n return customStore(\"readwrite\", (store)=>{\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function setMany(entries, customStore = defaultGetStore()) {\n return customStore(\"readwrite\", (store)=>{\n entries.forEach((entry)=>store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function getMany(keys, customStore = defaultGetStore()) {\n return customStore(\"readonly\", (store)=>Promise.all(keys.map((key)=>promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function update(key, updater, customStore = defaultGetStore()) {\n return customStore(\"readwrite\", (store)=>// Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject)=>{\n store.get(key).onsuccess = function() {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n } catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function del(key, customStore = defaultGetStore()) {\n return customStore(\"readwrite\", (store)=>{\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function delMany(keys, customStore = defaultGetStore()) {\n return customStore(\"readwrite\", (store)=>{\n keys.forEach((key)=>store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function clear(customStore = defaultGetStore()) {\n return customStore(\"readwrite\", (store)=>{\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function() {\n if (!this.result) return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function keys(customStore = defaultGetStore()) {\n return customStore(\"readonly\", (store)=>{\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor)=>items.push(cursor.key)).then(()=>items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function values(customStore = defaultGetStore()) {\n return customStore(\"readonly\", (store)=>{\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor)=>items.push(cursor.value)).then(()=>items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */ function entries(customStore = defaultGetStore()) {\n return customStore(\"readonly\", (store)=>{\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll())\n ]).then(([keys, values])=>keys.map((key, i)=>[\n key,\n values[i]\n ]));\n }\n const items = [];\n return customStore(\"readonly\", (store)=>eachCursor(store, (cursor)=>items.push([\n cursor.key,\n cursor.value\n ])).then(()=>items));\n });\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvaWRiLWtleXZhbC9kaXN0L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTQSxpQkFBaUJDLE9BQU87SUFDN0IsT0FBTyxJQUFJQyxRQUFRLENBQUNDLFNBQVNDO1FBQ3pCLCtCQUErQjtRQUMvQkgsUUFBUUksVUFBVSxHQUFHSixRQUFRSyxTQUFTLEdBQUcsSUFBTUgsUUFBUUYsUUFBUU0sTUFBTTtRQUNyRSwrQkFBK0I7UUFDL0JOLFFBQVFPLE9BQU8sR0FBR1AsUUFBUVEsT0FBTyxHQUFHLElBQU1MLE9BQU9ILFFBQVFTLEtBQUs7SUFDbEU7QUFDSjtBQUNBLFNBQVNDLFlBQVlDLE1BQU0sRUFBRUMsU0FBUztJQUNsQyxNQUFNWixVQUFVYSxVQUFVQyxJQUFJLENBQUNIO0lBQy9CWCxRQUFRZSxlQUFlLEdBQUcsSUFBTWYsUUFBUU0sTUFBTSxDQUFDVSxpQkFBaUIsQ0FBQ0o7SUFDakUsTUFBTUssTUFBTWxCLGlCQUFpQkM7SUFDN0IsT0FBTyxDQUFDa0IsUUFBUUMsV0FBYUYsSUFBSUcsSUFBSSxDQUFDLENBQUNDLEtBQU9GLFNBQVNFLEdBQUdDLFdBQVcsQ0FBQ1YsV0FBV00sUUFBUUssV0FBVyxDQUFDWDtBQUN6RztBQUNBLElBQUlZO0FBQ0osU0FBU0M7SUFDTCxJQUFJLENBQUNELHFCQUFxQjtRQUN0QkEsc0JBQXNCZCxZQUFZLGdCQUFnQjtJQUN0RDtJQUNBLE9BQU9jO0FBQ1g7QUFDQTs7Ozs7Q0FLQyxHQUNELFNBQVNFLElBQUlDLEdBQUcsRUFBRUMsY0FBY0gsaUJBQWlCO0lBQzdDLE9BQU9HLFlBQVksWUFBWSxDQUFDQyxRQUFVOUIsaUJBQWlCOEIsTUFBTUgsR0FBRyxDQUFDQztBQUN6RTtBQUNBOzs7Ozs7Q0FNQyxHQUNELFNBQVNHLElBQUlILEdBQUcsRUFBRUksS0FBSyxFQUFFSCxjQUFjSCxpQkFBaUI7SUFDcEQsT0FBT0csWUFBWSxhQUFhLENBQUNDO1FBQzdCQSxN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T0FBTzNCLGNBQWNILGlCQUFpQjtJQUMzQyxPQUFPRyxZQUFZLFlBQVksQ0FBQ0M7UUFDNUIsZ0NBQWdDO1FBQ2hDLElBQUlBLE1BQU0yQixNQUFNLEVBQUU7WUFDZCxPQUFPekQsaUJBQWlCOEIsTUFBTTJCLE1BQU07UUFDeEM7UUFDQSxNQUFNSixRQUFRLEVBQUU7UUFDaEIsT0FBT0osV0FBV25CLE9BQU8sQ0FBQ3dCLFNBQVdELE1BQU1FLElBQUksQ0FBQ0QsT0FBT3RCLEtBQUssR0FBR1gsSUFBSSxDQUFDLElBQU1nQztJQUM5RTtBQUNKO0FBQ0E7Ozs7Q0FJQyxHQUNELFNBQVNsQixRQUFRTixjQUFjSCxpQkFBaUI7SUFDNUMsT0FBT0csWUFBWSxZQUFZLENBQUNDO1FBQzVCLGdDQUFnQztRQUNoQywwREFBMEQ7UUFDMUQsSUFBSUEsTUFBTTJCLE1BQU0sSUFBSTNCLE1BQU1zQixVQUFVLEVBQUU7WUFDbEMsT0FBT2xELFFBQVFzQyxHQUFHLENBQUM7Z0JBQ2Z4QyxpQkFBaUI4QixNQUFNc0IsVUFBVTtnQkFDakNwRCxpQkFBaUI4QixNQUFNMkIsTUFBTTthQUNoQyxFQUFFcEMsSUFBSSxDQUFDLENBQUMsQ0FBQ2tCLE1BQU1pQixPQUFPLEdBQUtqQixLQUFLRSxHQUFHLENBQUMsQ0FBQ2IsS0FBSzhCLElBQU07d0JBQUM5Qjt3QkFBSzRCLE1BQU0sQ0FBQ0UsRUFBRTtxQkFBQztRQUNyRTtRQUNBLE1BQU1MLFFBQVEsRUFBRTtRQUNoQixPQUFPeEIsWUFBWSxZQUFZLENBQUNDLFFBQVVtQixXQUFXbkIsT0FBTyxDQUFDd0IsU0FBV0QsTUFBTUUsSUFBSSxDQUFDO29CQUFDRCxPQUFPMUIsR0FBRztvQkFBRTBCLE9BQU90QixLQUFLO2lCQUFDLEdBQUdYLElBQUksQ0FBQyxJQUFNZ0M7SUFDL0g7QUFDSjtBQUV5SCIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vbm9kZV9tb2R1bGVzL2lkYi1rZXl2YWwvZGlzdC9pbmRleC5qcz9mNDIyIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHByb21pc2lmeVJlcXVlc3QocmVxdWVzdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmUgLSBmaWxlIHNpemUgaGFja3NcbiAgICAgICAgcmVxdWVzdC5vbmNvbXBsZXRlID0gcmVxdWVzdC5vbnN1Y2Nlc3MgPSAoKSA9PiByZXNvbHZlKHJlcXVlc3QucmVzdWx0KTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZSAtIGZpbGUgc2l6ZSBoYWNrc1xuICAgICAgICByZXF1ZXN0Lm9uYWJvcnQgPSByZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVxdWVzdC5lcnJvcik7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVTdG9yZShkYk5hbWUsIHN0b3JlTmFtZSkge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYk5hbWUpO1xuICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gKCkgPT4gcmVxdWVzdC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVOYW1lKTtcbiAgICBjb25zdCBkYnAgPSBwcm9taXNpZnlSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIHJldHVybiAodHhNb2RlLCBjYWxsYmFjaykgPT4gZGJwLnRoZW4oKGRiKSA9PiBjYWxsYmFjayhkYi50cmFuc2FjdGlvbihzdG9yZU5hbWUsIHR4TW9kZSkub2JqZWN0U3RvcmUoc3RvcmVOYW1lKSkpO1xufVxubGV0IGRlZmF1bHRHZXRTdG9yZUZ1bmM7XG5mdW5jdGlvbiBkZWZhdWx0R2V0U3RvcmUoKSB7XG4gICAgaWYgKCFkZWZhdWx0R2V0U3RvcmVGdW5jKSB7XG4gICAgICAgIGRlZmF1bHRHZXRTdG9yZUZ1bmMgPSBjcmVhdGVTdG9yZSgna2V5dmFsLXN0b3JlJywgJ2tleXZhbCcpO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdEdldFN0b3JlRnVuYztcbn1cbi8qKlxuICogR2V0IGEgdmFsdWUgYnkgaXRzIGtleS5cbiAqXG4gKiBAcGFyYW0ga2V5XG4gKiBAcGFyYW0gY3VzdG9tU3RvcmUgTWV0aG9kIHRvIGdldCBhIGN1c3RvbSBzdG9yZS4gVXNlIHdpdGggY2F1dGlvbiAoc2VlIHRoZSBkb2NzKS5cbiAqL1xuZnVuY3Rpb24gZ2V0KGtleSwgY3VzdG9tU3RvcmUgPSBkZWZhdWx0R2V0U3RvcmUoKSkge1xuICAgIHJldHVybiBjdXN0b21TdG9yZSgncmVhZG9ubHknLCAoc3RvcmUpID0+IHByb21pc2lmeVJlcXVlc3Qoc3RvcmUuZ2V0KGtleSkpKTtcbn1cbi8qKlxuICogU2V0IGEgdmFsdWUgd2l0aCBhIGtleS5cbiAqXG4gKiBAcGFyYW0ga2V5XG4gKiBAcGFyYW0gdmFsdWVcbiAqIEBwYXJhbSBjdXN0b21TdG9yZSBNZXRob2QgdG8gZ2V0IGEgY3VzdG9tIHN0b3JlLiBVc2Ugd2l0aCBjYXV0aW9uIChzZWUgdGhlIGRvY3MpLlxuICovXG5mdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSwgY3VzdG9tU3RvcmUgPSBkZWZhdWx0R2V0U3RvcmUoKSkge1xuICAgIHJldHVybiBjdXN0b21TdG9yZSgncmVhZHdyaXRlJywgKHN0b3JlKSA9PiB7XG4gICAgICAgIHN0b3JlLnB1dCh2YWx1ZSwga2V5KTtcbiAgICAgICAgcmV0dXJuIHByb21pc2lmeVJlcXVlc3Qoc3RvcmUudHJhbnNhY3Rpb24pO1xuICAgIH0pO1xufVxuLyoqXG4gKiBTZXQgbXVsdGlwbGUgdmFsdWVzIGF0IG9uY2UuIFRoaXMgaXMgZmFzdGVyIHRoYW4gY2FsbGluZyBzZXQoKSBtdWx0aXBsZSB0aW1lcy5cbiAqIEl0J3MgYWxzbyBhdG9taWMg4oCTIGlmIG9uZSBvZiB0aGUgcGFpcnMgY2FuJ3QgYmUgYWRkZWQsIG5vbmUgd2lsbCBiZSBhZGRlZC5cbiAqXG4gKiBAcGFyYW0gZW50cmllcyBBcnJheSBvZiBlbnRyaWVzLCB3aGVyZSBlYWNoIGVudHJ5IGlzIGFuIGFycmF5IG9mIGBba2V5LCB2YWx1ZV1gLlxuICogQHBhcmFtIGN1c3RvbVN0b3JlIE1ldGhvZCB0byBnZXQgYSBjdXN0b20gc3RvcmUuIFVzZSB3aXRoIGNhdXRpb24gKHNlZSB0aGUgZG9jcykuXG4gKi9cbmZ1bmN0aW9uIHNldE1hbnkoZW50cmllcywgY3VzdG9tU3RvcmUgPSBkZWZhdWx0R2V0U3RvcmUoKSkge1xuICAgIHJldHVybiBjdXN0b21TdG9yZSgncmVhZHdyaXRlJywgKHN0b3JlKSA9PiB7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHN0b3JlLnB1dChlbnRyeVsxXSwgZW50cnlbMF0pKTtcbiAgICAgICAgcmV0dXJuIHByb21pc2lmeVJlcXVlc3Qoc3RvcmUudHJhbnNhY3Rpb24pO1xuICAgIH0pO1xufVxuLyoqXG4gKiBHZXQgbXVsdGlwbGUgdmFsdWVzIGJ5IHRoZWlyIGtleXNcbiAqXG4gKiBAcGFyYW0ga2V5c1xuICogQHBhcmFtIGN1c3RvbVN0b3JlIE1ldGhvZCB0byBnZXQgYSBjdXN0b20gc3RvcmUuIFVzZSB3aXRoIGNhdXRpb24gKHNlZSB0aGUgZG9jcykuXG4gKi9cbmZ1bmN0aW9uIGdldE1hbnkoa2V5cywgY3VzdG9tU3RvcmUgPSBkZWZhdWx0R2V0U3RvcmUoKSkge1xuICAgIHJldHVybiBjdXN0b21TdG9yZSgncmVhZG9ubHknLCAoc3RvcmUpID0+IFByb21pc2UuYWxsKGtleXMubWFwKChrZXkpID0+IHByb21pc2lmeVJlcXVlc3Qoc3RvcmUuZ2V0KGtleSkpKSkpO1xufVxuLyoqXG4gKiBVcGRhdGUgYSB2YWx1ZS4gVGhpcyBsZXRzIHlvdSBzZWUgdGhlIG9sZCB2YWx1ZSBhbmQgdXBkYXRlIGl0IGFzIGFuIGF0b21pYyBvcGVyYXRpb24uXG4gKlxuICogQHBhcmFtIGtleVxuICogQHBhcmFtIHVwZGF0ZXIgQSBjYWxsYmFjayB0aGF0IHRha2VzIHRoZSBvbGQgdmFsdWUgYW5kIHJldHVybnMgYSBuZXcgdmFsdWUuXG4gKiBAcGFyYW0gY3VzdG9tU3RvcmUgTWV0aG9kIHRvIGdldCBhIGN1c3RvbSBzdG9yZS4gVXNlIHdpdGggY2F1dGlvbiAoc2VlIHRoZSBkb2NzKS5cbiAqL1xuZnVuY3Rpb24gdXBkYXRlKGtleSwgdXBkYXRlciwgY3VzdG9tU3RvcmUgPSBkZWZhdWx0R2V0U3RvcmUoKSkge1xuICAgIHJldHVybiBjdXN0b21TdG9yZSgncmVhZHdyaXRlJywgKHN0b3JlKSA9PiBcbiAgICAvLyBOZWVkIHRvIGNyZWF0ZSB0aGUgcHJvbWlzZSBtYW51YWxseS5cbiAgICAvLyBJZiBJIHRyeSB0byBjaGFpbiBwcm9taXNlcywgdGhlIHRyYW5zYWN0aW9uIGNsb3NlcyBpbiBicm93c2Vyc1xuICAgIC8vIHRoYXQgdXNlIGEgcHJvbWlzZSBwb2x5ZmlsbCAoSUUxMC8xMSkuXG4gICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBzdG9yZS5nZXQoa2V5KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHN0b3JlLnB1dCh1cGRhdGVyKHRoaXMucmVzdWx0KSwga2V5KTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHByb21pc2lmeVJlcXVlc3Qoc3RvcmUudHJhbnNhY3Rpb24pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9KSk7XG59XG4vKipcbiAqIERlbGV0ZSBhIHBhcnRpY3VsYXIga2V5IGZyb20gdGhlIHN0b3JlLlxuICpcbiAqIEBwYXJhbSBrZXlcbiAqIEBwYXJhbSBjdXN0b21TdG9yZSBNZXRob2QgdG8gZ2V0IGEgY3VzdG9tIHN0b3JlLiBVc2Ugd2l0aCBjYXV0aW9uIChzZWUgdGhlIGRvY3MpLlxuICovXG5mdW5jdGlvbiBkZWwoa2V5LCBjdXN0b21TdG9yZSA9IGRlZmF1bHRHZXRTdG9yZSgpKSB7XG4gICAgcmV0dXJuIGN1c3RvbVN0b3JlKCdyZWFkd3JpdGUnLCAoc3RvcmUpID0+IHtcbiAgICAgICAgc3RvcmUuZGVsZXRlKGtleSk7XG4gICAgICAgIHJldHVybiBwcm9taXNpZnlSZXF1ZXN0KHN0b3JlLnRyYW5zYWN0aW9uKTtcbiAgICB9KTtcbn1cbi8qKlxuICogRGVsZXRlIG11bHRpcGxlIGtleXMgYXQgb25jZS5cbiAqXG4gKiBAcGFyYW0ga2V5cyBMaXN0IG9mIGtleXMgdG8gZGVsZXRlLlxuICogQHBhcmFtIGN1c3RvbVN0b3JlIE1ldGhvZCB0byBnZXQgYSBjdXN0b20gc3RvcmUuIFVzZSB3aXRoIGNhdXRpb24gKHNlZSB0aGUgZG9jcykuXG4gKi9cbmZ1bmN0aW9uIGRlbE1hbnkoa2V5cywgY3VzdG9tU3RvcmUgPSBkZWZhdWx0R2V0U3RvcmUoKSkge1xuICAgIHJldHVybiBjdXN0b21TdG9yZSgncmVhZHdyaXRlJywgKHN0b3JlKSA9PiB7XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiBzdG9yZS5kZWxldGUoa2V5KSk7XG4gICAgICAgIHJldHVybiBwcm9taXNpZnlSZXF1ZXN0KHN0b3JlLnRyYW5zYWN0aW9uKTtcbiAgICB9KTtcbn1cbi8qKlxuICogQ2xlYXIgYWxsIHZhbHVlcyBpbiB0aGUgc3RvcmUuXG4gKlxuICogQHBhcmFtIGN1c3RvbVN0b3JlIE1ldGhvZCB0byBnZXQgYSBjdXN0b20gc3RvcmUuIFVzZSB3aXRoIGNhdXRpb24gKHNlZSB0aGUgZG9jcykuXG4gKi9cbmZ1bmN0aW9uIGNsZWFyKGN1c3RvbVN0b3JlID0gZGVmYXVsdEdldFN0b3JlKCkpIHtcbiAgICByZXR1cm4gY3VzdG9tU3RvcmUoJ3JlYWR3cml0ZScsIChzdG9yZSkgPT4ge1xuICAgICAgICBzdG9yZS5jbGVhcigpO1xuICAgICAgICByZXR1cm4gcHJvbWlzaWZ5UmVxdWVzdChzdG9yZS50cmFuc2FjdGlvbik7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBlYWNoQ3Vyc29yKHN0b3JlLCBjYWxsYmFjaykge1xuICAgIHN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5yZXN1bHQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhbGxiYWNrKHRoaXMucmVzdWx0KTtcbiAgICAgICAgdGhpcy5yZXN1bHQuY29udGludWUoKTtcbiAgICB9O1xuICAgIHJldHVybiBwcm9taXNpZnlSZXF1ZXN0KHN0b3JlLnRyYW5zYWN0aW9uKTtcbn1cbi8qKlxuICogR2V0IGFsbCBrZXlzIGluIHRoZSBzdG9yZS5cbiAqXG4gKiBAcGFyYW0gY3VzdG9tU3RvcmUgTWV0aG9kIHRvIGdldCBhIGN1c3RvbSBzdG9yZS4gVXNlIHdpdGggY2F1dGlvbiAoc2VlIHRoZSBkb2NzKS5cbiAqL1xuZnVuY3Rpb24ga2V5cyhjdXN0b21TdG9yZSA9IGRlZmF1bHRHZXRTdG9yZSgpKSB7XG4gICAgcmV0dXJuIGN1c3RvbVN0b3JlKCdyZWFkb25seScsIChzdG9yZSkgPT4ge1xuICAgICAgICAvLyBGYXN0IHBhdGggZm9yIG1vZGVybiBicm93c2Vyc1xuICAgICAgICBpZiAoc3RvcmUuZ2V0QWxsS2V5cykge1xuICAgICAgICAgICAgcmV0dXJuIHByb21pc2lmeVJlcXVlc3Qoc3RvcmUuZ2V0QWxsS2V5cygpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtcyA9IFtdO1xuICAgICAgICByZXR1cm4gZWFjaEN1cnNvcihzdG9yZSwgKGN1cnNvcikgPT4gaXRlbXMucHVzaChjdXJzb3Iua2V5KSkudGhlbigoKSA9PiBpdGVtcyk7XG4gICAgfSk7XG59XG4vKipcbiAqIEdldCBhbGwgdmFsdWVzIGluIHRoZSBzdG9yZS5cbiAqXG4gKiBAcGFyYW0gY3VzdG9tU3RvcmUgTWV0aG9kIHRvIGdldCBhIGN1c3RvbSBzdG9yZS4gVXNlIHdpdGggY2F1dGlvbiAoc2VlIHRoZSBkb2NzKS5cbiAqL1xuZnVuY3Rpb24gdmFsdWVzKGN1c3RvbVN0b3JlID0gZGVmYXVsdEdldFN0b3JlKCkpIHtcbiAgICByZXR1cm4gY3VzdG9tU3RvcmUoJ3JlYWRvbmx5JywgKHN0b3JlKSA9PiB7XG4gICAgICAgIC8vIEZhc3QgcGF0aCBmb3IgbW9kZXJuIGJyb3dzZXJzXG4gICAgICAgIGlmIChzdG9yZS5nZXRBbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9taXNpZnlSZXF1ZXN0KHN0b3JlLmdldEFsbCgpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtcyA9IFtdO1xuICAgICAgICByZXR1cm4gZWFjaEN1cnNvcihzdG9yZSwgKGN1cnNvcikgPT4gaXRlbXMucHVzaChjdXJzb3IudmFsdWUpKS50aGVuKCgpID0+IGl0ZW1zKTtcbiAgICB9KTtcbn1cbi8qKlxuICogR2V0IGFsbCBlbnRyaWVzIGluIHRoZSBzdG9yZS4gRWFjaCBlbnRyeSBpcyBhbiBhcnJheSBvZiBgW2tleSwgdmFsdWVdYC5cbiAqXG4gKiBAcGFyYW0gY3VzdG9tU3RvcmUgTWV0aG9kIHRvIGdldCBhIGN1c3RvbSBzdG9yZS4gVXNlIHdpdGggY2F1dGlvbiAoc2VlIHRoZSBkb2NzKS5cbiAqL1xuZnVuY3Rpb24gZW50cmllcyhjdXN0b21TdG9yZSA9IGRlZmF1bHRHZXRTdG9yZSgpKSB7XG4gICAgcmV0dXJuIGN1c3RvbVN0b3JlKCdyZWFkb25seScsIChzdG9yZSkgPT4ge1xuICAgICAgICAvLyBGYXN0IHBhdGggZm9yIG1vZGVybiBicm93c2Vyc1xuICAgICAgICAvLyAoYWx0aG91Z2gsIGhvcGVmdWxseSB3ZSdsbCBnZXQgYSBzaW1wbGVyIHBhdGggc29tZSBkYXkpXG4gICAgICAgIGlmIChzdG9yZS5nZXRBbGwgJiYgc3RvcmUuZ2V0QWxsS2V5cykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICBwcm9taXNpZnlSZXF1ZXN0KHN0b3JlLmdldEFsbEtleXMoKSksXG4gICAgICAgICAgICAgICAgcHJvbWlzaWZ5UmVxdWVzdChzdG9yZS5nZXRBbGwoKSksXG4gICAgICAgICAgICBdKS50aGVuKChba2V5cywgdmFsdWVzXSkgPT4ga2V5cy5tYXAoKGtleSwgaSkgPT4gW2tleSwgdmFsdWVzW2ldXSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gW107XG4gICAgICAgIHJldHVybiBjdXN0b21TdG9yZSgncmVhZG9ubHknLCAoc3RvcmUpID0+IGVhY2hDdXJzb3Ioc3RvcmUsIChjdXJzb3IpID0+IGl0ZW1zLnB1c2goW2N1cnNvci5rZXksIGN1cnNvci52YWx1ZV0pKS50aGVuKCgpID0+IGl0ZW1zKSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCB7IGNsZWFyLCBjcmVhdGVTdG9yZSwgZGVsLCBkZWxNYW55LCBlbnRyaWVzLCBnZXQsIGdldE1hbnksIGtleXMsIHByb21pc2lmeVJlcXVlc3QsIHNldCwgc2V0TWFueSwgdXBkYXRlLCB2YWx1ZXMgfTtcbiJdLCJuYW1lcyI6WyJwcm9taXNpZnlSZXF1ZXN0IiwicmVxdWVzdCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwib25jb21wbGV0ZSIsIm9uc3VjY2VzcyIsInJlc3VsdCIsIm9uYWJvcnQiLCJvbmVycm9yIiwiZXJyb3IiLCJjcmVhdGVTdG9yZSIsImRiTmFtZSIsInN0b3JlTmFtZSIsImluZGV4ZWREQiIsIm9wZW4iLCJvbnVwZ3JhZGVuZWVkZWQiLCJjcmVhdGVPYmplY3RTdG9yZSIsImRicCIsInR4TW9kZSIsImNhbGxiYWNrIiwidGhlbiIsImRiIiwidHJhbnNhY3Rpb24iLCJvYmplY3RTdG9yZSIsImRlZmF1bHRHZXRTdG9yZUZ1bmMiLCJkZWZhdWx0R2V0U3RvcmUiLCJnZXQiLCJrZXkiLCJjdXN0b21TdG9yZSIsInN0b3JlIiwic2V0IiwidmFsdWUiLCJwdXQiLCJzZXRNYW55IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsImdldE1hbnkiLCJrZXlzIiwiYWxsIiwibWFwIiwidXBkYXRlIiwidXBkYXRlciIsImVyciIsImRlbCIsImRlbGV0ZSIsImRlbE1hbnkiLCJjbGVhciIsImVhY2hDdXJzb3IiLCJvcGVuQ3Vyc29yIiwiY29udGludWUiLCJnZXRBbGxLZXlzIiwiaXRlbXMiLCJjdXJzb3IiLCJwdXNoIiwidmFsdWVzIiwiZ2V0QWxsIiwiaSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/idb-keyval/dist/index.js\n");
|