(()=>{function e(){return window.unifiedSDK}function a(){const a={},{logger:r}=e();let o=null,s={},i=[];return a.initializeDatabase=({databaseName:e,databaseVersion:a,upgrades:n=[]})=>{if("string"!=typeof e)throw new Error("Invalid Argument: databaseName has to be a string, got: "+typeof e);if("number"!=typeof a)throw new Error("Invalid Argument: databaseVersion has to be a number, got: "+typeof a);s={databaseName:e,databaseVersion:a,upgrades:n}},a.openDatabase=e=>(i.includes(e)||i.push(e),o?Promise.resolve(o):new Promise(((e,a)=>{const n=window.indexedDB.open(s.databaseName,s.databaseVersion);n.onupgradeneeded=async({target:e,oldVersion:a,newVersion:n})=>{r.info(`indexedDB "${s.databaseName}" v${a} needs upgrade to v${n}`);for(const t in s.upgrades){const o=Number(t)+1,i=s.upgrades[t];o>a&&o<=n&&(await i(e.result),r.info(`indexedDB "${s.databaseName}" upgraded to v${o}`))}},n.onsuccess=({target:a})=>{r.debug(`indexedDB "${s.databaseName}" opened`),o=a.result,e(o)},n.onerror=e=>a(e.error),n.onclose=()=>{r.debug(`indexedDB "${s.databaseName}" closed`),o=null}}))),a.closeDatabase=(e="")=>{i=i.filter((a=>a!=e)),o&&!i.length&&(o.close(),o=null)},a.isConnected=()=>!!o,a.getDatabase=()=>o,a.deleteDatabase=async()=>(i=[],await a.closeDatabase(),n(window.indexedDB.deleteDatabase(s.databaseName))),a.getObjectStore=e=>function(e,a){const r={};return r.runTransaction=(n,t,r={})=>{const o=e.getDatabase();if(!o)throw new Error("Can't run transaction. IndexedDB is not connected");const s=o.transaction(a,n,r);return t(s.objectStore(a),s)},r.add=(e,a=null)=>r.runTransaction("readwrite",(t=>n(t.add(e,a)))),r.clear=()=>r.runTransaction("readwrite",(e=>n(e.clear()))),r.count=e=>r.runTransaction("readonly",(a=>n(a.count(e)))),r.delete=e=>r.runTransaction("readwrite",(a=>n(a.delete(e)))),r.get=e=>r.runTransaction("readonly",(a=>n(a.get(e)))),r.getAll=(e,a)=>r.runTransaction("readonly",(t=>n(t.getAll(e,a)))),r.getAllKeys=(e,a)=>r.runTransaction("readwrite",(t=>n(t.getAllKeys(e,a)))),r.getKey=e=>r.runTransaction("readwrite",(a=>n(a.getKey(e)))),r.openCursor=(e,a,{query:n=null,direction:o="next"}={})=>r.runTransaction(e,(e=>t(e.openCursor(n,o),a))),r.openKeyCursor=(e,a,{query:n=null,direction:o="next"}={})=>r.runTransaction(e,(e=>t(e.openKeyCursor(n,o),a))),r.put=(e,a)=>r.runTransaction("readwrite",(t=>n(t.put(e,a)))),r}(a,e),a}function n(e){return new Promise(((a,n)=>{e.onsuccess=e=>a(e.target.result),e.onerror=e=>n(e.error)}))}function t(e,a){return new Promise(((n,t)=>{e.onsuccess=({target:e})=>{const t=e.result;t?a(t,null):n()},e.onerror=e=>t(e.error)}))}function r(){const{config:a}=e();return[e=>{const{idsite:n}=a.getConfig("recordingEngine"),t=`pages_${n}`;e.createObjectStore(t,{keyPath:"pageId"}).createIndex("siteId","siteId",{unique:!1}),e.createObjectStore("scoring",{keyPath:"indicator"})}]}const{loader:o}=e();o.resolveModule("database",(async()=>{const e=a();return await e.initializeDatabase({databaseName:"uws-database",databaseVersion:1,upgrades:r()}),e}))})();