1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4810],{84810:function(e,n,r){r.d(n,{Q:function(){return i},deleteSessionTranscripts:function(){return u},getSessionTranscripts:function(){return a},hasSessionTranscripts:function(){return l},saveChunkTranscript:function(){return c}});var t=r(49809);let s="chunkTranscripts";function o(){return(0,t.I)("TranscriptionsDB",1,[s],e=>{if(!e.objectStoreNames.contains(s)){let n=e.createObjectStore(s,{autoIncrement:!0});n.createIndex("sessionId","sessionId",{unique:!1}),n.createIndex("sessionChunk",["sessionId","chunkIndex"],{unique:!0})}})}async function c(e){let n=await o();return new Promise((r,t)=>{let o=n.transaction(s,"readwrite").objectStore(s).add({...e,timestamp:Date.now()});o.onsuccess=()=>{r()},o.onerror=()=>{t(o.error)}})}async function i(){let e=await o();return new Promise((n,r)=>{let t=e.transaction(s,"readonly").objectStore(s).index("sessionId").getAllKeys();t.onsuccess=()=>n(Array.from(new Set(t.result||[]))),t.onerror=()=>r(t.error)})}async function a(e){let n=await o();return new Promise((r,t)=>{let o=n.transaction(s,"readonly").objectStore(s).index("sessionId").getAll(e);o.onsuccess=()=>{let e=o.result||[];e.sort((e,n)=>e.chunkIndex-n.chunkIndex),r(e)},o.onerror=()=>{t(o.error)}})}async function u(e){let n=await o();return new Promise((r,t)=>{let o=n.transaction(s,"readwrite").objectStore(s).index("sessionId").openCursor(e);o.onsuccess=e=>{let n=e.target.result;n?(n.delete(),n.continue()):r()},o.onerror=()=>{t(o.error)}})}async function l(e){return(await a(e)).length>0}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.