!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="859a396e-59cc-303e-a6f5-8d9be6b6a70c")}catch(e){}}(); define(["exports","./e_file_viewer_static_scl_page_folder","./e_core_exception","react","./c_flux_action_type","./c_src_sink_index","./c_init_data_debug_panel","./c_lodash-es_lodash","./c_api_v2_routes_team_provider","./e_edison","./c_pap-events_enums_flexible_sharing_entry_point_variant-utils","./c_pap-events_browse_view_folder_picker","./e_data_modules_stormcrow","./c_react-use_misc_util","./c_core_i18n","metaserver/static/js/langpack","./c_core_notify","react-dom"],(function(e,t,r,a,n,o,i,s,l,d,c,_,u,g,E,h,f,S){"use strict";function w(){return(new Date).getTime()}let p=null;const T="UG_DBX_DB",y="UG_STORE";function C(e){return new Promise(((t,r)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>r(e.error)}))}async function D(e){return(await function(){if(!p){const e=indexedDB.open(T);e.onerror=e=>{console.error("There was an issue with initializing DB ",e)},e.onupgradeneeded=()=>e.result.createObjectStore(y),p=C(e)}return p}()).transaction(y,e).objectStore(y)}function I(e){const t=e.transaction;return new Promise(((e,r)=>{t.oncomplete=()=>e(),t.onabort=t.onerror=()=>r(t.error)}))}const v={check:async()=>Boolean(await D("readonly")),get:async e=>{const t=await D("readonly");return await C(t.get(e))},has:async e=>Boolean(await v.get(e)),set:async(e,t,r=0)=>{const a=await D("readwrite");await C(a.put(t,e)),await I(a)},entries:async()=>{const e=await D("readonly"),[t,r]=await Promise.all([C(e.getAllKeys()),C(e.getAll())]),a=[];return t.forEach(((e,t)=>{a.push([e,r[t]])})),a},delete:async e=>{const t=await D("readwrite");await C(t.delete(e)),await I(t)},multiDelete:async e=>{const t=await D("readwrite");await Promise.all(e.map((e=>t.delete(e)))),await I(t)},clear:async()=>{const e=await D("readwrite");await C(e.clear()),await I(e)}};var b;e.Store=void 0,(b=e.Store||(e.Store={})).PDF_EDIT_STORE="pdfEdit",b.PDF_EDIT_UPLOAD_STORE="pdfEditUpload",b.PDF_EDIT_SHARED_STORE="pdfEditShared",b.PDF_CONVERT_STORE="pdfConvert",b.IMG_EDIT_STORE="imgEdit",b.FILE_UPLOAD="fileUpload";const m=3600,L="data",R="metadata",U="EMPTY",x="storeType",A="creationTimeStamp",N="updatedTimeStamp",O="fileName",F="ungated_idx_db_lib",k="_ugStoreKey",Y="ttlSeconds",M=157286400;function B(e){return new Blob([e],{type:"text/plain"}).size}function P(e,t=r.SEVERITY.CRITICAL){console.log(`Ungated IndexedDB Store: ${e}`),r.reportException({err:new Error(e),tags:[F],severity:t})}function $(e){const[t,r]=e.split("_");return t}function V(e){if(!(N in e)||!(Y in e))return!0;return Number(e[N])+1e3*Number(e[Y]){const r=await v.check();return r||t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{error:"browser_compatibility",store:e}}),r},init:async(e,r=3600,a=!1)=>{t.UDCL.logStart("ungated_store_init",{tags:{state:"start",store:e}});const n=a?"all":e;await K.cleanupExpiredSessionsForStore(n);const o=function(e){return(e+"_"+t.UUID.v4()+k).toString()}(e),i=v.set(o,function(e,t){const r=w().toString();return{[L]:U,[R]:"{}",[x]:e,[A]:r.toString(),[N]:r.toString(),[O]:r.toString(),[Y]:t.toString()}}(e,r));return i.then((()=>(t.UDCL.logEnd("ungated_store_init",{eventState:"success",tags:{store:e}}),o))).catch((r=>{throw P(`Could not initialize a store in indexedDB. Check browser limits or cookie settings. ${r}`),t.UDCL.logEnd("ungated_store_init",{eventState:"failed",tags:{store:e}}),r}))},setSessionData:async(e,a,n,o=3600)=>{if(0===a.byteLength||B(a)>M){const e="File is empty or size is larger than 150 MB. Exiting processing.";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}if(!await v.has(e)||null===n){const e="SetSessionData: Invalid file metadata or session key does not exist or has expired.";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}return v.get(e).then((t=>(t[L]=a,t[R]=JSON.stringify(n),t[N]=w().toString(),t[Y]=o.toString(),v.set(e,t,o)))).catch((r=>{throw P(`Could not set session data. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:$(e),error:"set_session_data"}}),r}))},getSessionData:async e=>{if(!await v.has(e)){const e="GetSessionData: Session key does not exist or has expired.";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}return v.get(e).then((t=>{if(!V(t))return t;K.deleteUngatedSession(e)})).catch((r=>{throw P(`Could not retrieve file data. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:$(e),error:"get_session_data"}}),r}))},hasUngatedSessionKey:async e=>await v.has(e),saveFileData:async(e,a,n=3600)=>{if(0===a.byteLength||B(a)>M){const e="File is empty or size is larger than 150 MB. Exiting processing.";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}if(!await v.has(e)){const e="Invalid file data or session key does not exist or has expired.";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}return v.get(e).then(((t={})=>(t[L]=a,t[N]=w().toString(),t[Y]=n.toString(),v.set(e,t,n)))).catch((r=>{throw P(`Could not save file data to indexedDB. Check file size or try again. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:$(e),error:"save_file_data"}}),r}))},getFileData:async e=>{if(!await v.has(e)){const e="GetFileData: Session key does not exist or has expired.";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}return v.get(e).then(((t={})=>{if(!V(t))return L in t?t[L]:void 0;K.deleteUngatedSession(e)})).catch((r=>{throw P(`Could not get file data from indexedDB. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:$(e),error:"get_file_data"}}),r}))},getLatestUngatedSessionKeyForStore:async e=>v.entries().then((t=>{let r="",a="0";for(const n of t){const[t,o]=n;if("all"===e||t.startsWith(e)){const e=o[N]||"0";e>=a&&(r=t,a=e)}}return r})).catch((r=>{throw P(`Could not get latest session key for ${e}. It is possible it has already expired. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:e,error:"get_latest_key"}}),r})),saveFileMetadata:async(e,a,n=3600)=>{if(null===a){const e="File metadata is null. Returning";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}if(!await v.has(e)){const e="SaveFileMetadata: Session key does not exist or has expired.";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}return v.get(e).then(((t={})=>(t[R]=JSON.stringify(a),t[N]=w().toString(),t[Y]=n.toString(),v.set(e,t,n)))).catch((r=>{throw P(`Could not save file metadata to indexedDB. Check keys and values are set to string type for key ${e}. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:$(e),error:"save_file_metadata"}}),r}))},getFileMetadata:async e=>{if(!await v.has(e)){const e="getFileMetadata: Session key does not exist or has expired.";throw P(e,r.SEVERITY.NONCRITICAL),new Error(e)}return v.get(e).then(((t={})=>{if(!V(t))return R in t?JSON.parse(t[R]):{};K.deleteUngatedSession(e)})).catch((r=>{throw P(`Could not retrieve file metadata. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:$(e),error:"get_file_metadata"}}),r}))},cleanupOldSessionsForStore:async e=>{const r=v.entries(),a=[];return r.then((t=>{for(const r of t){const[t,n]=r;t.endsWith(k)&&("all"===e||t.startsWith(e))&&a.push(t)}return v.multiDelete(a)})).catch((r=>{throw P(`Could not delete old entries for store ${e}. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:e,error:"cleanup_old_sessions"}}),r}))},cleanupExpiredSessionsForStore:async e=>{const r=v.entries(),a=[];return r.then((t=>{for(const r of t){const[t,n]=r;t.endsWith(k)&&("all"===e||t.startsWith(e))&&V(n)&&a.push(t)}return v.multiDelete(a)})).catch((r=>{throw P(`Could not remove expired entries for store ${e}. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:e,error:"cleanup_expired_sessions"}}),r}))},deleteUngatedSession:async e=>{if(!await v.has(e)){P("DeleteUngatedSession: Session key does not exist or has expired.",r.SEVERITY.NONCRITICAL)}return v.delete(e).then((()=>{})).catch((r=>{P(`Could not retrieve file metadata. ${r}`),t.UDCL.logEvent("ungated_idb_lib_failure",{tags:{store:$(e),error:"delete_session"}})}))}};e.CREATION_TIMESTAMP_KEY=A,e.DATA_KEY=L,e.DEFAULT_EXPIRATION_SECONDS=m,e.EMPTY_VALUE=U,e.ERROR_TAG=F,e.FILENAME_KEY=O,e.METADATA_KEY=R,e.STORE_KEY=x,e.TTL=Y,e.UG_STORE_KEY_SUFFIX=k,e.UPDATED_TIMESTAMP_KEY=N,e.UPLOAD_FILE_SIZE_LIMIT_MB=150,e.checkBufferSize=B,e.reportErrorMessage=P,e.ungatedDBStore=K})); //# sourceMappingURL=c_ungated_idx_db_access_lib.js-vflFhUyCS.map //# debugId=859a396e-59cc-303e-a6f5-8d9be6b6a70c