{"version":3,"sources":["webpack:///./node_modules/jeep-sqlite/dist/esm/jeep-sqlite.entry.js"],"names":["global$1","global","self","window","defaultSetTimout","Error","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","setTimeout","e","call","this","runClearTimeout","marker","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","nextTick","args","Array","arguments","i","push","Item","array","prototype","apply","title","platform","browser","env","argv","version","versions","release","config","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","performance$1","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","Date","getTime","hrtime","previousTimestamp","clocktime","seconds","Math","floor","nanoseconds","startTime","uptime","currentTime","dif","browser$1","__dirname","lookup","revLookup","Arr","Uint8Array","inited","init","code","charCodeAt","toByteArray","b64","j","l","tmp","placeHolders","arr","L","tripletToBase64","num","encodeChunk","uint8","start","end","output","join","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","pow","write","value","c","rt","abs","isNaN","log","LN2","toString","isArray","INSPECT_MAX_BYTES","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","arg","encodingOrOffset","allocUnsafe","from","TypeError","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","fill","encoding","undefined","checked","string","isEncoding","byteLength","actual","slice","fromArrayLike","byteOffset","obj","internalIsBuffer","copy","isnan","type","data","b","_isBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","val","arrayIndexOf","indexOf","lastIndexOf","indexSize","arrLength","valLength","String","buf","readUInt16BE","foundIndex","found","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","poolSize","_augment","allocUnsafeSlow","isBuffer","compare","a","x","y","list","pos","swap16","swap32","swap64","equals","inspect","str","max","match","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","subarray","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","base64clean","stringtrim","replace","trim","units","leadSurrogate","byteArray","hi","lo","src","dst","isFastBuffer","isSlowBuffer","constructor","commonjsGlobal","globalThis","createCommonjsModule","fn","basedir","module","path","exports","require","base","commonjsRequire","getAugmentedNamespace","__esModule","Object","defineProperty","keys","forEach","k","getOwnPropertyDescriptor","get","enumerable","normalizeArray","allowAboveRoot","up","last","splice","unshift","splitPathRe","splitPath","filename","exec","resolve","resolvedPath","resolvedAbsolute","charAt","filter","split","p","normalize","isPathAbsolute","isAbsolute","trailingSlash","paths","index","relative","to","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","result","root","basename","f","extname","xs","path$1","freeze","empty","empty$1","require$$0","require$$2","sqlWasm","initSqlJsPromise","initSqlJs","moduleConfig","Promise","resolveModule","reject","Module","originalOnAbortFunction","errorThatCausedAbort","onRuntimeInitialized","g","gc","hc","ic","kb","aa","jc","ba","xa","v","kc","lc","mc","nc","oc","G","r","La","db","Ja","fb","ca","Ya","da","t","u","eb","Ua","ib","random","ea","z","fa","ha","ia","ja","ka","la","handleError","q","h","pc","Za","Na","B","cwrap","w","A","S","nb","qc","ob","rc","pb","sc","tc","uc","vc","wc","xc","yc","zc","qb","Ac","Bc","Cc","Dc","Ec","Fc","Gc","rb","sb","bind","reset","xb","yb","step","Cb","BigInt","Db","getBlob","useBigInt","getColumnNames","getAsObject","getSQL","getNormalizedSQL","ma","wb","mb","zb","freemem","pop","free","next","done","gb","oa","pa","C","qa","getRemainingSQL","Symbol","iterator","prepare","H","I","columns","values","na","each","iterateStatements","ra","sa","close","ta","getRowsModified","create_function","hasOwnProperty","ua","create_aggregate","finalize","Z","Ic","Database","Ba","Ca","Da","fs","Ea","Fa","va","assign","wa","ya","za","importScripts","Aa","node","D","readFileSync","readFile","location","href","document","currentScript","XMLHttpRequest","open","send","responseText","responseType","response","onload","status","onerror","Ia","Ga","print","console","Ha","printErr","warn","thisProgram","wasmBinary","WebAssembly","E","Oa","F","J","Pa","Qa","Ka","TextDecoder","Ma","decode","Ra","HEAP8","Int8Array","HEAP16","Int16Array","HEAP32","Int32Array","HEAPU8","HEAPU16","Uint16Array","HEAPU32","Uint32Array","HEAPF32","Float32Array","HEAPF64","Float64Array","K","Sa","Ta","Va","preRun","shift","M","N","O","Wa","onAbort","RuntimeError","startsWith","$a","locateFile","ab","bb","fetch","credentials","then","ok","arrayBuffer","catch","cb","endsWith","ceil","crypto","getRandomValues","randomBytes","hb","jb","input","Xa","lb","ac","bc","Ob","Xb","rdev","P","tty","seekable","fsync","tb","timestamp","readSync","stdin","fd","prompt","readline","ub","Q","createNode","rename","unlink","rmdir","readdir","symlink","stream","file","link","readlink","vb","mode","Jb","Gb","dev","id","ino","nlink","uid","gid","atime","mtime","ctime","Ab","blocks","parent","position","Fb","Bb","R","T","U","Eb","Hb","Ib","Kb","Lb","Mb","Nb","Pb","defineProperties","object","flags","Qb","V","Rb","Sb","Tb","Ub","Vb","Wb","error","logReadFiles","Yb","Zb","$b","message","stack","cc","W","dc","X","ec","Nc","fc","Hc","Jc","Kc","Lc","toTimeString","getFullYear","getTimezoneOffset","Mc","Oc","Pc","Qc","USER","LOGNAME","PATH","PWD","HOME","LANG","navigator","languages","_","Y","Rc","WeakMap","has","grow","Function","parameters","results","Instance","delete","Uc","Wc","Vc","o","getSeconds","getMinutes","getHours","getDate","getMonth","getDay","asm","monitorRunDependencies","instance","instantiate","instantiateWasm","instantiateStreaming","___wasm_call_ctors","_sqlite3_free","_sqlite3_value_double","_sqlite3_value_text","___errno_location","_sqlite3_prepare_v2","_sqlite3_step","_sqlite3_finalize","_sqlite3_reset","_sqlite3_value_int","_sqlite3_clear_bindings","_sqlite3_value_blob","_sqlite3_value_bytes","_sqlite3_value_type","_sqlite3_result_blob","_sqlite3_result_double","_sqlite3_result_error","_sqlite3_result_int","_sqlite3_result_int64","$","_sqlite3_result_null","_sqlite3_result_text","_sqlite3_sql","_sqlite3_aggregate_context","_sqlite3_column_count","_sqlite3_data_count","_sqlite3_column_blob","ga","_sqlite3_column_bytes","_sqlite3_column_double","_sqlite3_column_text","_sqlite3_column_type","_sqlite3_column_name","_sqlite3_bind_blob","_sqlite3_bind_double","_sqlite3_bind_int","_sqlite3_bind_text","_sqlite3_bind_parameter_index","_sqlite3_normalized_sql","_sqlite3_errmsg","_sqlite3_exec","_sqlite3_changes","_sqlite3_close_v2","_sqlite3_create_function_v2","_sqlite3_open","_malloc","_free","_RegisterExtensionFunctions","Xc","_emscripten_builtin_memalign","stackSave","stackRestore","stackAlloc","Zc","calledRun","noFSInit","stdout","stderr","postRun","setStatus","UTF8ToString","every","Yc","preInit","default","UtilsStore","dbName","store","retDb","getItem","err","setItem","mDb","export","saveDBToStore","removeItem","prefix","mFileName","isFilePre","isDBInStore","isFile","getDBFromStore","removeDBFromStore","toDb","retDbList","UtilsDrop","sql","retArr","retQuery","UtilsSQLite","queryAll","query","msg","stmt1","stmt","elements","upType","toUpperCase","statements","elem","lastId","dropElements","alterTables","tempTables","tTable","changes","execute","UtilsJSON","keyFirstLevel","key","oKey","retTable","isTable","retView","keyTableLevel","nbColumn","element","column","retSchema","isSchema","retIndexes","isIndexes","retTriggers","isTriggers","keySchemaLevel","keyIndexesLevel","keyTriggersLevel","keyViewLevel","schema","sch","foreignkey","constraint","isValid","indexes","triggers","trigger","logic","timeevent","condition","views","view","tableName","resQuery","retNames","retTypes","names","types","tableNamesTypes","getTableColumnNamesTypes","rowNames","retValues","rValue","row","rName","UtilsSQLStatement","statement","pattern","whereClause","colNames","refNames","columnValuePairs","subSequenceArray","map","pair","modifiedPairs","operator","newColumn","findIndexOfStringInArray","getStringAtIndex","modifiedColumn","sqlStatement","foreignKeyPattern","matches","foreignKeyInfo","forKeys","refKeys","action","keywords","Set","regex","columnList","columnNamesArray","columnName","matchedText","lines","sqlStmt","retMode","retWord","retStmtNames","retWordIndex","substring","suffix","RegExp","matchAll","primaryKeySets","keysString","whStmt","withRefs","retWhere","grpKeys","repKeys","entries","replaceAllString","originalStr","searchStr","replaceStr","fromIndex","indices","currentIndex","whereStmt","idx","colType","idxs","indicesOf","valStr","indicesEqual","indicesAnd","extractCombinedPrimaryKey","getWhereStmtForCombinedPK","getWhereStmtForNonCombinedPK","replaceString","range","modifiedStr","UtilsDeleteError","UtilsDelete","mDB","initColNames","retBool","getReferences","references","retRefs","tableNameWithRefs","tableWithRefs","ref","extractForeignKeyInfo","refTable","withRefsNames","findReferencesAndUpdate","updTableName","updColNames","uWhereStmt","setStmt","checkValuesMatch","searchForRelatedItems","relatedItems","upDateWhereForRestrict","upDateWhereForCascade","upDateWhereForDefault","executeUpdateForDelete","getRefs","foreignKeys","flattenMultilineString","tableNamePattern","tableNameMatch","foreignKeyMatches","foreignKeyMatch","foreignKey","refValue","oPar","t1Names","t2Names","addPrefixToWhereClause","resultString","t1","vals","cols","relItem","mVal","col","selValues","arrVal","jdx","updVal","retObj","array1","array2","isOpen","SELECT_CHANGE","SELECT_LAST_ID","toggle","fromJson","sqlStmts","resArr","trimStmt","rStmt","deleteSQL","dbChanges","returnMode","replaceUndefinedByNull","entry","stmtType","mValues","getReturnedValues","getLastId","isLast","isLastModified","isDel","isSqlDeleted","extractWhereClause","extractTableName","extractColumnNames","hasToUpdate","getTablesNames","tableList","table","tableColumnNames","tables","backupTable","beginTransaction","getTableColumnNames","tmpTable","delStmt","rollbackTransaction","commitTransaction","commonColumns","tableNames","arraysIntersection","a1","a2","first","second","item","UtilsImportJSON","jsonData","setVersion","dropAll","createSchema","setIsTransActive","stmts","createSchemaStatement","schemaStmt","jTable","primarykey","trig","jIndex","jTrg","importProgress","isValue","initChanges","createTableData","progress","tableExists","isTableExists","tableColumnTypes","isRun","createRowStatement","checkUpdate","tColNames","retisIdExists","isIdExists","nameString","questionMarkString","createQuestionMarkString","isUpdate","isColDeleted","idxDelete","findIndex","setString","setNameForUpdate","tbName","getValues","resValues","firstColumnName","tableTypes","rowValues","isType","retString","jView","createView","UtilsExportJSON","sqlObj","exportProgress","errmsg","getViewsName","resTables","getTablesNameSQL","getTablesPartial","getTablesFull","database","encrypted","rTable","getSchema","checkSchemaValidity","getIndexes","checkIndexesValidity","getTriggers","checkTriggersValidity","openPar","closePar","sstr","modEmbeddedParentheses","scht","jsonRow","cPar","fk","fknames","pk","pknames","tRow","row1t","rIndex","rTrg","sqlArr","timeEvent","modTables","syncDate","modTablesKeys","partialModeData","getPartialModeData","retData","getSynchroDate","getTablesModified","retModified","totalCount","totalModifiedCount","lastExportedDate","sDate","round","getLastExportDate","lastExportDate","getTableList","oParArray","indexOfChar","cParArray","resStmt","newS","char","tmpArr","reduce","UtilsUpgrade","vUpgDict","curVersion","targetVersion","sortedKeys","sort","versionKey","setForeignKeyConstraintsEnabled","executeStatementsProcess","databaseName","upgDict","autoSave","wasmPath","isBackup","isTransactionActive","_isDBOpen","async","SQL","retDB","setInitialDBToStore","getVersion","isDB","copyDBToStore","onUpgrade","restoreDBFromStore","saveToStore","setFK","setDBToStore","isExists","isDBExists","transaction","mChanges","retRes","executeSet","retB","isLastMod","date","createDatabaseSchema","createTablesData","createViews","inJson","setLastExportDate","toISOString","retJson","createExportObject","isJsonSQLite","delExportedRows","localforage","1","_dereq_","scheduleDrain","Mutation","MutationObserver","WebKitMutationObserver","called","observer","createTextNode","observe","characterData","setImmediate","MessageChannel","createElement","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","appendChild","channel","port1","onmessage","port2","postMessage","oldQueue","immediate","task","2","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","state","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","func","returnValue","getThen","thenable","onError","onSuccess","tryToUnwrap","tryCatch","reason","all","iterable","resolved","allResolver","resolveFromAll","outValue","race","3","4","_typeof","_classCallCheck","Constructor","getIDB","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","idb","isIndexedDBValid","isSafari","openDatabase","test","userAgent","hasFetch","IDBKeyRange","createBlob","properties","Blob","Builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","builder","append","Promise$1","executeCallback","callback","executeTwoCallbacks","errorCallback","normalizeKey","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_binStringToArrayBuffer","bin","_checkBlobSupportWithoutCaching","txn","blob","objectStore","put","onabort","preventDefault","stopPropagation","oncomplete","matchedChrome","matchedEdge","_checkBlobSupport","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","_rejectReadiness","_getConnection","upgradeNeeded","createDbContext","dbArgs","openreq","onupgradeneeded","createObjectStore","storeName","oldVersion","ex","newVersion","onsuccess","onversionchange","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","contains","isDowngrade","isUpgrade","incVersion","_encodeBlob","reader","FileReader","onloadend","base64","btoa","__local_forage_encoded_blob","readAsBinaryString","_decodeBlob","encodedBlob","arrayBuff","atob","_isEncodedBlob","_fullyReady","_initReady","_dbInfo","_tryReconnect","forages","forage","createTransaction","retries","tx","_initStorage","options","ready","initPromises","ignoreErrors","_defaultConfig","req","iterate","openCursor","iterationNumber","cursor","blobSupport","clear","count","advanced","openKeyCursor","advance","dropInstance","currentConfig","isCurrentDb","dbPromise","dropObjectPromise","deleteObjectStore","_forage2","dropDBPromise","deleteDatabase","onblocked","_forage","asyncStorage","_driver","_support","isWebSQLValid","BASE_CHARS","BLOB_TYPE_PREFIX","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferLength","bufferToString","base64String","serialize","valueType","fileReader","readAsArrayBuffer","JSON","stringify","deserialize","parse","blobType","matcher","Uint8ClampedArray","localforageSerializer","createDbTable","executeSql","_initStorage$1","dbInfoPromise","description","serializer","tryExecuteSql","SYNTAX_ERR","rows","getItem$1","iterate$1","_setItem","retriesLeft","originalValue","sqlError","QUOTA_ERR","setItem$1","removeItem$1","clear$1","length$1","key$1","keys$1","getAllStoreNames","storeNames","dropInstance$1","operationInfo","dropTable","operations","webSQLStorage","isLocalStorageValid","localStorage","_getKeyPrefix","defaultConfig","keyPrefix","checkIfLocalStorageThrows","localStorageTestKey","_isLocalStorageUsable","_initStorage$2","clear$2","getItem$2","iterate$2","keyPrefixLength","key$2","keys$2","itemKey","length$2","removeItem$2","setItem$2","dropInstance$2","localStorageWrapper","sameValue","searchElement","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","extend","_key","LocalForage","driverTypeKey","driverName","defineDriver","_config","_driverSet","_initDriver","_ready","_wrapLibraryMethodsWithReady","setDriver","driverObject","complianceError","driverMethods","driverMethodName","isRequired","configureMissingMethods","methodNotImplementedFactory","methodName","_i","_len","optionalDriverMethod","setDriverSupport","support","info","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","_extend","initDriver","currentDriverIndex","driverPromiseLoop","oldDriverSetDone","supports","libraryMethodsAndProperties","createInstance","localforage_js","jszip_min","encode","getTypeOf","uint8array","compressedSize","uncompressedSize","crc32","compression","compressedContent","getContentWorker","pipe","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","5","binary","createFolders","compressionOptions","comment","unixPermissions","dosPermissions","6","lie","7","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","flush","cleanUp","raw","level","onData","pako","8","utf8encode","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","percent","openedSource","closedSource","DATA_DESCRIPTOR","CENTRAL_DIRECTORY_END","prepareNextSource","previous","isPaused","pause","resume","registerPrevious","generatedError","lock","9","generateWorker","_compressWorker","10","files","create","clone","loadAsync","defaults","external","11","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isNode","isStream","prepareContent","load","fileNameStr","fileCommentStr","unsafeOriginalName","12","_upstreamEnded","_bindStream","_stream","13","Readable","_helper","_read","14","newBufferFrom","allocBuffer","15","folder","remove","generate","generateInternalStream","mimeType","checkSupport","generateAsync","generateNodeStream","toNodejsStream","16","17","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","18","checkIndex","setIndex","skip","readInt","readString","readDate","UTC","19","20","21","22","23","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","24","destType","25","26","propName","27","dataIsReady","_tickScheduled","_tickAndRepeat","delay","isFinished","_tick","28","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","29","nodestream","_internalType","_outputType","_mimeType","newBlob","_worker","objectMode","30","arraybuffer","nodebuffer","31","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","32","stringifyByChunk","stringifyByChar","applyCanBeUsed","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","setimmediate","33","loadOptions","checkSignature","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","34","isEncrypted","bitFlag","useUTF8","fileNameLength","fileName","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","35","_data","_dataBinary","internalStream","_decompressWorker","nodeStream","36","37","finally","38","39","method","chunkSize","windowBits","memLevel","strategy","gzip","ended","chunks","strm","avail_out","deflateInit2","header","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","40","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","41","setTyped","Buf16","Buf32","42","43","44","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","45","46","pending","pending_buf","pending_out","total_out","_tr_flush_block","block_start","strstart","max_chain_length","prev_length","nice_match","w_size","w_mask","prev","good_match","lookahead","match_start","window_size","hash_size","head","wrap","adler","total_in","insert","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","data_type","_tr_init","deflateInit","deflateReset","deflateResetKeep","text","hcrc","extra","time","os","_tr_align","_tr_stored_block","deflateInfo","47","xflags","extra_len","48","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","sane","49","havedict","check","total","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","back","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","50","51","0","52","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","53","54","getPrototypeOf","process","addEventListener","attachEvent","clearImmediate","source","getFile","handle","accept","mimeTypes","extensions","showOpenFilePicker","startIn","multiple","excludeAcceptAllOption","return","throw","asyncIterator","kind","directoryHandle","configurable","flat","recursive","showDirectoryPicker","skipDirectory","headers","showSaveFilePicker","suggestedName","createWritable","pipeTo","body","style","display","legacySetup","removeEventListener","HTMLInputElement","showPicker","click","webkitdirectory","webkitRelativePath","getReader","ReadableStream","enqueue","Response","releaseLock","download","URL","createObjectURL","revokeObjectURL","jeepSqliteCss","JeepSqlite","hostRef","HTTPRequestEnded","PickDatabaseEnded","SaveDatabaseEnded","isStore","_dbDict","databaseList","_versionUpgrades","_overwrite","typeOrm","pickText","saveText","buttonOptions","innerAutoSave","innerTypeOrm","innerWasmPath","innerPickText","innerSaveText","innerButtonOptions","newValue","el","setProperty","readonly","_createConnection","_isConnection","_closeConnection","_open","_close","_getVersion","_beginTransaction","_commitTransaction","_rollbackTransaction","_isTransactionActive","_execute","setOfStatements","_executeSet","retChanges","_run","_query","_getTableList","_isDBExists","_deleteDatabase","overwrite","_copyFromAssets","_isTableExists","_createSyncTable","_getSyncDate","syncdate","_setSyncDate","jsonStrObj","jsonstring","_isJsonValid","_importFromJson","exportMode","jsonexportmode","_exportToJson","_deleteExportedRows","upgrades","upgrade","versionUpgradeKeys","toVersion","upgVDict","_isDatabase","_getDatabaseList","dbNames","openModes","_checkConnectionsConsistency","_saveToStore","_saveToLocalDisk","_getFromLocalDiskToStore","url","_getFromHTTPRequest","parseAutoSave","parseTypeOrm","parseWasmPath","parseSaveText","parsePickText","parseButtonOptions","openStore","mStore","_element","shadowRoot","vUpgKeys","dbDictKeys","connName","isDBOpen","uint","exportDB","_blob","uint2blob","_opts","_buttonSaveEl","setAttribute","innerHTML","saveFile","_buttonPickEl","pickDatabase","uInt8Array","blob2uint","removePathSuffix","setPathSuffix","isExist","db_name","isTransActive","command","executeSQL","sStmt","execSet","runSQL","selectSQL","getTableNames","deleteDB","createSyncTable","getSyncDate","setSyncDate","jsonObj","_a","_b","vJsonObj","dbVersion","importJson","exportJson","deleteExportedRows","loadJSON","copyDatabase","unzipDatabase","getDBListFromStore","dbConns","inConnectionsSet","outConnectionSet","_resetDbDict","opt","symDiffSet","symmetricDifference","setA","setB","_difference","add","_compare","dbZipName","xhr","zip","retrieveDBFromZip","zipFiles","fileData","dbInName","jsonFileName","xobj","overrideMimeType","readyState","setConfig"],"mappings":"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","file":"js/chunk-2d22540b.29365868.js","sourcesContent":["import { r as registerInstance, c as createEvent, g as getElement } from './index-ffc65f19.js';\n\nconst global$1 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\n// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global$1.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global$1.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance$1 = global$1.performance || {};\nvar performanceNow =\n performance$1.now ||\n performance$1.mozNow ||\n performance$1.msNow ||\n performance$1.oNow ||\n performance$1.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance$1)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nconst __dirname = '/Volumes/Development_Lacie/Development/new/jeep-sqlite/node_modules/sql.js/dist';\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined\n ? global$1.TYPED_ARRAY_SUPPORT\n : true;\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n};\n\nBuffer.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return ''\n};\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire();\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction getAugmentedNamespace(n) {\n\tif (n.__esModule) return n;\n\tvar a = Object.defineProperty({}, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nfunction resolve() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : '/';\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n}\n// path.normalize(path)\n// posix version\nfunction normalize(path) {\n var isPathAbsolute = isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isPathAbsolute).join('/');\n\n if (!path && !isPathAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + path;\n}\n// posix version\nfunction isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\nfunction join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n}\n\n\n// path.relative(from, to)\n// posix version\nfunction relative(from, to) {\n from = resolve(from).substr(1);\n to = resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\nvar sep = '/';\nvar delimiter = ':';\n\nfunction dirname(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\nfunction basename(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n}\n\n\nfunction extname(path) {\n return splitPath(path)[3];\n}\nconst path = {\n extname: extname,\n basename: basename,\n dirname: dirname,\n sep: sep,\n delimiter: delimiter,\n relative: relative,\n join: join,\n isAbsolute: isAbsolute,\n normalize: normalize,\n resolve: resolve\n};\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b' ?\n function (str, start, len) { return str.substr(start, len) } :\n function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n\nconst path$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n resolve: resolve,\n normalize: normalize,\n isAbsolute: isAbsolute,\n join: join,\n relative: relative,\n sep: sep,\n delimiter: delimiter,\n dirname: dirname,\n basename: basename,\n extname: extname,\n 'default': path\n});\n\nconst empty = {};\n\nconst empty$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': empty\n});\n\nconst require$$0 = /*@__PURE__*/getAugmentedNamespace(path$1);\n\nconst require$$2 = /*@__PURE__*/getAugmentedNamespace(empty$1);\n\nvar sqlWasm = createCommonjsModule(function (module, exports) {\n// We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n// https://github.com/kripken/emscripten/issues/5820\n// In addition, When you use emcc's modularization, it still expects to export a global object called `Module`,\n// which is able to be used/called before the WASM is loaded.\n// The modularization below exports a promise that loads and resolves to the actual sql.js module.\n// That way, this module can't be used before the WASM is finished loading.\n\n// We are going to define a function that a user will call to start loading initializing our Sql.js library\n// However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module\n// Instead, we want to return the previously loaded module\n\n// TODO: Make this not declare a global if used in the browser\nvar initSqlJsPromise = undefined;\n\nvar initSqlJs = function (moduleConfig) {\n\n if (initSqlJsPromise){\n return initSqlJsPromise;\n }\n // If we're here, we've never called this function before\n initSqlJsPromise = new Promise(function (resolveModule, reject) {\n\n // We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n // https://github.com/kripken/emscripten/issues/5820\n\n // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add\n // properties to it, like `preRun`, `postRun`, etc\n // We are using that to get notified when the WASM has finished loading.\n // Only then will we return our promise\n\n // If they passed in a moduleConfig object, use that\n // Otherwise, initialize Module to the empty object\n var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {};\n\n // EMCC only allows for a single onAbort function (not an array of functions)\n // So if the user defined their own onAbort function, we remember it and call it\n var originalOnAbortFunction = Module['onAbort'];\n Module['onAbort'] = function (errorThatCausedAbort) {\n reject(new Error(errorThatCausedAbort));\n if (originalOnAbortFunction){\n originalOnAbortFunction(errorThatCausedAbort);\n }\n };\n\n Module['postRun'] = Module['postRun'] || [];\n Module['postRun'].push(function () {\n // When Emscripted calls postRun, this promise resolves with the built Module\n resolveModule(Module);\n });\n\n // There is a section of code in the emcc-generated code below that looks like this:\n // (Note that this is lowercase `module`)\n // if (typeof module !== 'undefined') {\n // module['exports'] = Module;\n // }\n // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js!\n // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags,\n // but that carries with it additional unnecessary baggage/bugs we don't want either.\n // So, we have three options:\n // 1) We undefine `module`\n // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later\n // 3) We write a script to remove those lines of code as part of the Make process.\n //\n // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward\n // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.\n // That's a nice side effect since we're handling the modularization efforts ourselves\n module = undefined;\n\n // The emcc-generated code and shell-post.js code goes below,\n // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort\n\nvar e;e||(e=typeof Module !== 'undefined' ? Module : {});e.onRuntimeInitialized=function(){function a(g,m){switch(typeof m){case \"boolean\":gc(g,m?1:0);break;case \"number\":hc(g,m);break;case \"string\":ic(g,m,-1,-1);break;case \"object\":if(null===m)kb(g);else if(null!=m.length){var n=aa(m);jc(g,n,m.length,-1);ba(n);}else xa(g,\"Wrong API use : tried to return a value of an unknown type (\"+m+\").\",-1);break;default:kb(g);}}function b(g,m){for(var n=[],p=0;p>>0);if(null!=g){var m=this.filename,n=\"/\",p=m;n&&(n=\"string\"==typeof n?n:ea(n),p=m?z(n+\"/\"+m):n);m=fa(!0,\n!0);p=ha(p,(void 0!==m?m:438)&4095|32768,0);if(g){if(\"string\"==typeof g){n=Array(g.length);for(var v=0,y=g.length;v{Ea||(fs=require$$2,Ea=require$$0);},Ba=function(a,b){Fa();a=Ea.normalize(a);return fs.readFileSync(a,b?void 0:\"utf8\")},Da=a=>{a=Ba(a,!0);a.buffer||(a=new Uint8Array(a));return a},Ca=(a,b,c)=>{Fa();a=Ea.normalize(a);fs.readFile(a,function(d,f){d?c(d):b(f.buffer);});},1{var b=new XMLHttpRequest;b.open(\"GET\",a,!1);b.send(null);return b.responseText},za&&(Da=a=>{var b=new XMLHttpRequest;b.open(\"GET\",a,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)}),Ca=(a,b,c)=>{var d=new XMLHttpRequest;d.open(\"GET\",a,!0);d.responseType=\"arraybuffer\";\nd.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c();};d.onerror=c;d.send(null);};var Ga=e.print||console.log.bind(console),Ha=e.printErr||console.warn.bind(console);Object.assign(e,va);va=null;e.thisProgram&&(wa=e.thisProgram);var Ia;e.wasmBinary&&(Ia=e.wasmBinary);\"object\"!=typeof WebAssembly&&E(\"no native wasm support detected\");var Ja,Ka=!1,La=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;\nfunction Ma(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023));}}else d+=String.fromCharCode(f);}return d}function C(a,b){return a?Ma(u,a,b):\"\"}\nfunction t(a,b,c,d){if(!(0=k){var q=a.charCodeAt(++h);k=65536+((k&1023)<<10)|q&1023;}if(127>=k){if(c>=d)break;b[c++]=k;}else {if(2047>=k){if(c+1>=d)break;b[c++]=192|k>>6;}else {if(65535>=k){if(c+2>=d)break;b[c++]=224|k>>12;}else {if(c+3>=d)break;b[c++]=240|k>>18;b[c++]=128|k>>12&63;}b[c++]=128|k>>6&63;}b[c++]=128|k&63;}}b[c]=0;return c-f}\nfunction ca(a){for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3;}return b}var Na,r,u,Oa,F,J,Pa,Qa;function Ra(){var a=Ja.buffer;Na=a;e.HEAP8=r=new Int8Array(a);e.HEAP16=Oa=new Int16Array(a);e.HEAP32=F=new Int32Array(a);e.HEAPU8=u=new Uint8Array(a);e.HEAPU16=new Uint16Array(a);e.HEAPU32=J=new Uint32Array(a);e.HEAPF32=Pa=new Float32Array(a);e.HEAPF64=Qa=new Float64Array(a);}var K,Sa=[],Ta=[],Ua=[];\nfunction Va(){var a=e.preRun.shift();Sa.unshift(a);}var Wa=0,Ya=null;function E(a){if(e.onAbort)e.onAbort(a);a=\"Aborted(\"+a+\")\";Ha(a);Ka=!0;throw new WebAssembly.RuntimeError(a+\". Build with -sASSERTIONS for more info.\");}function Za(){return M.startsWith(\"data:application/octet-stream;base64,\")}var M;M=\"sql-wasm.wasm\";if(!Za()){var $a=M;M=e.locateFile?e.locateFile($a,D):D+$a;}\nfunction ab(){var a=M;try{if(a==M&&Ia)return new Uint8Array(Ia);if(Da)return Da(a);throw \"both async and sync fetching of the wasm failed\";}catch(b){E(b);}}\nfunction bb(){if(!Ia&&(ya||za)){if(\"function\"==typeof fetch&&!M.startsWith(\"file://\"))return fetch(M,{credentials:\"same-origin\"}).then(function(a){if(!a.ok)throw \"failed to load wasm binary file at '\"+M+\"'\";return a.arrayBuffer()}).catch(function(){return ab()});if(Ca)return new Promise(function(a,b){Ca(M,function(c){a(new Uint8Array(c));},b);})}return Promise.resolve().then(function(){return ab()})}var N,O;function cb(a){for(;0>0];case \"i8\":return r[a>>0];case \"i16\":return Oa[a>>1];case \"i32\":return F[a>>2];case \"i64\":return F[a>>2];case \"float\":return Pa[a>>2];case \"double\":return Qa[a>>3];case \"*\":return J[a>>2];default:E(\"invalid type for getValue: \"+b);}return null}\nfunction pa(a){var b=\"i32\";b.endsWith(\"*\")&&(b=\"*\");switch(b){case \"i1\":r[a>>0]=0;break;case \"i8\":r[a>>0]=0;break;case \"i16\":Oa[a>>1]=0;break;case \"i32\":F[a>>2]=0;break;case \"i64\":O=[0,(N=0,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];F[a>>2]=O[0];F[a+4>>2]=O[1];break;case \"float\":Pa[a>>2]=0;break;case \"double\":Qa[a>>3]=0;break;case \"*\":J[a>>2]=0;break;default:E(\"invalid type for setValue: \"+b);}}\nvar db=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];\".\"===f?a.splice(d,1):\"..\"===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--);}if(b)for(;c;c--)a.unshift(\"..\");return a},z=a=>{var b=\"/\"===a.charAt(0),c=\"/\"===a.substr(-1);(a=db(a.split(\"/\").filter(d=>!!d),!b).join(\"/\"))||b||(a=\".\");a&&c&&(a+=\"/\");return (b?\"/\":\"\")+a},eb=a=>{var b=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return \".\";b&&(b=b.substr(0,b.length-1));return a+b},fb=a=>{if(\"/\"===\na)return \"/\";a=z(a);a=a.replace(/\\/$/,\"\");var b=a.lastIndexOf(\"/\");return -1===b?a:a.substr(b+1)};function gb(){if(\"object\"==typeof crypto&&\"function\"==typeof crypto.getRandomValues){var a=new Uint8Array(1);return ()=>{crypto.getRandomValues(a);return a[0]}}if(Aa)try{var b=require$$2;return ()=>b.randomBytes(1)[0]}catch(c){}return ()=>E(\"randomDevice\")}\nfunction hb(){for(var a=\"\",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:\"/\";if(\"string\"!=typeof b)throw new TypeError(\"Arguments to path.resolve must be strings\");if(!b)return \"\";a=b+\"/\"+a;b=\"/\"===b.charAt(0);}a=db(a.split(\"/\").filter(d=>!!d),!b).join(\"/\");return (b?\"/\":\"\")+a||\".\"}function ma(a,b){var c=Array(ca(a)+1);a=t(a,c,0,c.length);b&&(c.length=a);return c}var ib=[];function jb(a,b){ib[a]={input:[],output:[],Xa:b};lb(a,mb);}\nvar mb={open:function(a){var b=ib[a.node.rdev];if(!b)throw new P(43);a.tty=b;a.seekable=!1;},close:function(a){a.tty.Xa.fsync(a.tty);},fsync:function(a){a.tty.Xa.fsync(a.tty);},read:function(a,b,c,d){if(!a.tty||!a.tty.Xa.tb)throw new P(60);for(var f=0,h=0;h=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.Ia,a.Ia=new Uint8Array(b),0=a.node.Ma)return 0;a=Math.min(a.node.Ma-f,d);if(8b)throw new P(28);return b},lb:function(a,b,c){Q.qb(a.node,b+c);a.node.Ma=Math.max(a.node.Ma,b+c);},bb:function(a,b,c,d,f){if(32768!==(a.node.mode&61440))throw new P(43);a=a.node.Ia;if(f&2||a.buffer!==Na){if(0{a=hb(\"/\",a);if(!a)return {path:\"\",node:null};b=Object.assign({rb:!0,kb:0},b);if(8!!k),!1);for(var c=Ab,d=\"/\",\nf=0;f{for(var b;;){if(a===a.parent)return a=a.Ra.ub,b?\"/\"!==a[a.length-1]?a+\"/\"+b:a+b:a;b=b?a.name+\"/\"+b:a.name;a=a.parent;}},Fb=(a,b)=>{for(var c=0,d=0;d>>0)%T.length},Gb=a=>{var b=\nFb(a.parent.id,a.name);if(T[b]===a)T[b]=a.Wa;else for(b=T[b];b;){if(b.Wa===a){b.Wa=a.Wa;break}b=b.Wa;}},yb=(a,b)=>{var c;if(c=(c=Hb(a,\"x\"))?c:a.Ga.lookup?0:2)throw new P(c,a);for(c=T[Fb(a.id,b)];c;c=c.Wa){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Ga.lookup(a,b)},wb=(a,b,c,d)=>{a=new Ib(a,b,c,d);b=Fb(a.parent.id,a.name);a.Wa=T[b];return T[b]=a},Jb={r:0,\"r+\":2,w:577,\"w+\":578,a:1089,\"a+\":1090},Kb=a=>{var b=[\"r\",\"w\",\"rw\"][a&3];a&512&&(b+=\"w\");return b},Hb=(a,b)=>{if(Db)return 0;if(!b.includes(\"r\")||\na.mode&292){if(b.includes(\"w\")&&!(a.mode&146)||b.includes(\"x\")&&!(a.mode&73))return 2}else return 2;return 0},Lb=(a,b)=>{try{return yb(a,b),20}catch(c){}return Hb(a,\"wx\")},Mb=(a,b,c)=>{try{var d=yb(a,b);}catch(f){return f.Ka}if(a=Hb(a,\"wx\"))return a;if(c){if(16384!==(d.mode&61440))return 54;if(d===d.parent||\"/\"===ea(d))return 10}else if(16384===(d.mode&61440))return 31;return 0},Nb=(a=0)=>{for(;4096>=a;a++)if(!R[a])return a;throw new P(33);},Pb=(a,b)=>{Ob||(Ob=function(){this.$a={};},Ob.prototype={},\nObject.defineProperties(Ob.prototype,{object:{get:function(){return this.node},set:function(c){this.node=c;}},flags:{get:function(){return this.$a.flags},set:function(c){this.$a.flags=c;}},position:{get:function(){return this.$a.position},set:function(c){this.$a.position=c;}}}));a=Object.assign(new Ob,a);b=Nb(b);a.fd=b;return R[b]=a},vb={open:a=>{a.Ha=Bb[a.node.rdev].Ha;a.Ha.open&&a.Ha.open(a);},Ta:()=>{throw new P(70);}},lb=(a,b)=>{Bb[a]={Ha:b};},Qb=(a,b)=>{var c=\"/\"===b,d=!b;if(c&&Ab)throw new P(10);\nif(!c&&!d){var f=U(b,{rb:!1});b=f.path;f=f.node;if(f.Va)throw new P(10);if(16384!==(f.mode&61440))throw new P(54);}b={type:a,Kb:{},ub:b,Eb:[]};a=a.Ra(b);a.Ra=b;b.root=a;c?Ab=a:f&&(f.Va=b,f.Ra&&f.Ra.Eb.push(b));},ha=(a,b,c)=>{var d=U(a,{parent:!0}).node;a=fb(a);if(!a||\".\"===a||\"..\"===a)throw new P(28);var f=Lb(d,a);if(f)throw new P(f);if(!d.Ga.ab)throw new P(63);return d.Ga.ab(d,a,b,c)},V=(a,b)=>ha(a,(void 0!==b?b:511)&1023|16384,0),Rb=(a,b,c)=>{\"undefined\"==typeof c&&(c=b,b=438);ha(a,b|8192,c);},Sb=\n(a,b)=>{if(!hb(a))throw new P(44);var c=U(b,{parent:!0}).node;if(!c)throw new P(44);b=fb(b);var d=Lb(c,b);if(d)throw new P(d);if(!c.Ga.symlink)throw new P(63);c.Ga.symlink(c,b,a);},Tb=a=>{var b=U(a,{parent:!0}).node;a=fb(a);var c=yb(b,a),d=Mb(b,a,!0);if(d)throw new P(d);if(!b.Ga.rmdir)throw new P(63);if(c.Va)throw new P(10);b.Ga.rmdir(b,a);Gb(c);},ta=a=>{var b=U(a,{parent:!0}).node;if(!b)throw new P(44);a=fb(a);var c=yb(b,a),d=Mb(b,a,!1);if(d)throw new P(d);if(!b.Ga.unlink)throw new P(63);if(c.Va)throw new P(10);\nb.Ga.unlink(b,a);Gb(c);},Eb=a=>{a=U(a).node;if(!a)throw new P(44);if(!a.Ga.readlink)throw new P(28);return hb(ea(a.parent),a.Ga.readlink(a))},Ub=(a,b)=>{a=U(a,{Sa:!b}).node;if(!a)throw new P(44);if(!a.Ga.Pa)throw new P(63);return a.Ga.Pa(a)},Vb=a=>Ub(a,!0),ia=(a,b)=>{a=\"string\"==typeof a?U(a,{Sa:!0}).node:a;if(!a.Ga.Oa)throw new P(63);a.Ga.Oa(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()});},Wb=(a,b)=>{if(0>b)throw new P(28);a=\"string\"==typeof a?U(a,{Sa:!0}).node:a;if(!a.Ga.Oa)throw new P(63);if(16384===\n(a.mode&61440))throw new P(31);if(32768!==(a.mode&61440))throw new P(28);var c=Hb(a,\"w\");if(c)throw new P(c);a.Ga.Oa(a,{size:b,timestamp:Date.now()});},ja=(a,b,c)=>{if(\"\"===a)throw new P(44);if(\"string\"==typeof b){var d=Jb[b];if(\"undefined\"==typeof d)throw Error(\"Unknown file open mode: \"+b);b=d;}c=b&64?(\"undefined\"==typeof c?438:c)&4095|32768:0;if(\"object\"==typeof a)var f=a;else {a=z(a);try{f=U(a,{Sa:!(b&131072)}).node;}catch(h){}}d=!1;if(b&64)if(f){if(b&128)throw new P(20);}else f=ha(a,c,0),d=!0;if(!f)throw new P(44);\n8192===(f.mode&61440)&&(b&=-513);if(b&65536&&16384!==(f.mode&61440))throw new P(54);if(!d&&(c=f?40960===(f.mode&61440)?32:16384===(f.mode&61440)&&(\"r\"!==Kb(b)||b&512)?31:Hb(f,Kb(b)):44))throw new P(c);b&512&&!d&&Wb(f,0);b&=-131713;f=Pb({node:f,path:ea(f),flags:b,seekable:!0,position:0,Ha:f.Ha,Ib:[],error:!1});f.Ha.open&&f.Ha.open(f);!e.logReadFiles||b&1||(Xb||(Xb={}),a in Xb||(Xb[a]=1));return f},la=a=>{if(null===a.fd)throw new P(8);a.hb&&(a.hb=null);try{a.Ha.close&&a.Ha.close(a);}catch(b){throw b;\n}finally{R[a.fd]=null;}a.fd=null;},Yb=(a,b,c)=>{if(null===a.fd)throw new P(8);if(!a.seekable||!a.Ha.Ta)throw new P(70);if(0!=c&&1!=c&&2!=c)throw new P(28);a.position=a.Ha.Ta(a,b,c);a.Ib=[];},Zb=(a,b,c,d,f)=>{if(0>d||0>f)throw new P(28);if(null===a.fd)throw new P(8);if(1===(a.flags&2097155))throw new P(8);if(16384===(a.node.mode&61440))throw new P(31);if(!a.Ha.read)throw new P(28);var h=\"undefined\"!=typeof f;if(!h)f=a.position;else if(!a.seekable)throw new P(70);b=a.Ha.read(a,b,c,d,f);h||(a.position+=\nb);return b},ka=(a,b,c,d,f)=>{if(0>d||0>f)throw new P(28);if(null===a.fd)throw new P(8);if(0===(a.flags&2097155))throw new P(8);if(16384===(a.node.mode&61440))throw new P(31);if(!a.Ha.write)throw new P(28);a.seekable&&a.flags&1024&&Yb(a,0,2);var h=\"undefined\"!=typeof f;if(!h)f=a.position;else if(!a.seekable)throw new P(70);b=a.Ha.write(a,b,c,d,f,void 0);h||(a.position+=b);return b},sa=a=>{var c;var d=ja(a,d||0);\na=Ub(a).size;var f=new Uint8Array(a);Zb(d,f,0,a,0);(c=f);la(d);return c},$b=()=>{P||(P=function(a,b){this.node=b;this.Hb=function(c){this.Ka=c;};this.Hb(a);this.message=\"FS error\";},P.prototype=Error(),P.prototype.constructor=P,[44].forEach(a=>{xb[a]=new P(a);xb[a].stack=\"\";}));},ac,fa=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},cc=(a,b,c)=>{a=z(\"/dev/\"+a);var d=fa(!!b,!!c);bc||(bc=64);var f=bc++<<8|0;lb(f,{open:h=>{h.seekable=!1;},close:()=>\n{c&&c.buffer&&c.buffer.length&&c(10);},read:(h,k,q,x)=>{for(var w=0,A=0;A{for(var w=0;w>2]=d.dev;F[c+8>>2]=d.ino;F[c+12>>2]=d.mode;J[c+16>>2]=d.nlink;F[c+20>>2]=d.uid;F[c+24>>2]=d.gid;F[c+28>>2]=d.rdev;O=[d.size>>>0,(N=d.size,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];F[c+40>>2]=O[0];F[c+44>>2]=O[1];F[c+48>>2]=4096;F[c+52>>2]=d.blocks;O=[Math.floor(d.atime.getTime()/1E3)>>>0,(N=Math.floor(d.atime.getTime()/\n1E3),1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];F[c+56>>2]=O[0];F[c+60>>2]=O[1];J[c+64>>2]=0;O=[Math.floor(d.mtime.getTime()/1E3)>>>0,(N=Math.floor(d.mtime.getTime()/1E3),1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];F[c+72>>2]=O[0];F[c+76>>2]=O[1];J[c+80>>2]=0;O=[Math.floor(d.ctime.getTime()/1E3)>>>0,(N=Math.floor(d.ctime.getTime()/1E3),1<=+Math.abs(N)?\n0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];F[c+88>>2]=O[0];F[c+92>>2]=O[1];J[c+96>>2]=0;O=[d.ino>>>0,(N=d.ino,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];F[c+104>>2]=O[0];F[c+108>>2]=O[1];return 0}var fc=void 0;function Hc(){fc+=4;return F[fc-4>>2]}function X(a){a=R[a];if(!a)throw new P(8);return a}function Jc(a){return J[a>>2]+4294967296*F[a+4>>2]}\nfunction Kc(a){var b=ca(a)+1,c=da(b);c&&t(a,r,c,b);return c}function Lc(a,b,c){function d(x){return (x=x.toTimeString().match(/\\(([A-Za-z ]+)\\)$/))?x[1]:\"GMT\"}var f=(new Date).getFullYear(),h=new Date(f,0,1),k=new Date(f,6,1);f=h.getTimezoneOffset();var q=k.getTimezoneOffset();F[a>>2]=60*Math.max(f,q);F[b>>2]=Number(f!=q);a=d(h);b=d(k);a=Kc(a);b=Kc(b);q>2]=a,J[c+4>>2]=b):(J[c>>2]=b,J[c+4>>2]=a);}function Mc(a,b,c){Mc.Bb||(Mc.Bb=!0,Lc(a,b,c));}var Nc;\nNc=Aa?()=>{var a=browser$1.hrtime();return 1E3*a[0]+a[1]/1E6}:()=>performance.now();var Oc={};function Pc(){if(!Qc){var a={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:(\"object\"==typeof navigator&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",_:wa||\"./this.program\"},b;for(b in Oc)void 0===Oc[b]?delete a[b]:a[b]=Oc[b];var c=[];for(b in a)c.push(b+\"=\"+a[b]);Qc=c;}return Qc}var Qc,Y=void 0,Rc=[];\nfunction ua(a,b){if(!Y){Y=new WeakMap;var c=K.length;if(Y)for(var d=0;d<0+c;d++){var f=K.get(d);f&&Y.set(f,d);}}if(Y.has(a))return Y.get(a);if(Rc.length)c=Rc.pop();else {try{K.grow(1);}catch(q){if(!(q instanceof RangeError))throw q;throw \"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\";}c=K.length-1;}try{K.set(c,a);}catch(q){if(!(q instanceof TypeError))throw q;if(\"function\"==typeof WebAssembly.Function){d=WebAssembly.Function;f={i:\"i32\",j:\"i64\",f:\"f32\",d:\"f64\",p:\"i32\"};for(var h={parameters:[],results:\"v\"==\nb[0]?[]:[f[b[0]]]},k=1;kk?d.push(k):d.push(k%128|128,k>>7);for(k=0;kf?b.push(f):b.push(f%128|128,f>>7);b.push.apply(b,d);b.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(new Uint8Array(b));b=(new WebAssembly.Instance(b,{e:{f:a}})).exports.f;}K.set(c,\nb);}Y.set(a,c);return c}function ra(a){Y.delete(K.get(a));Rc.push(a);}function aa(a){var b=da(a.length);a.subarray||a.slice||(a=new Uint8Array(a));u.set(a,b);return b}\nfunction Uc(a,b,c,d){var f={string:w=>{var A=0;if(null!==w&&void 0!==w&&0!==w){var S=(w.length<<2)+1;A=B(S);t(w,u,A,S);}return A},array:w=>{var A=B(w.length);r.set(w,A);return A}};a=e[\"_\"+a];var h=[],k=0;if(d)for(var q=0;q{V(\"/dev\");lb(259,{read:()=>0,write:(b,c,d,f)=>f});Rb(\"/dev/null\",259);jb(1280,tb);jb(1536,ub);Rb(\"/dev/tty\",1280);Rb(\"/dev/tty1\",1536);var a=gb();cc(\"random\",a);cc(\"urandom\",a);V(\"/dev/shm\");V(\"/dev/shm/tmp\");})();(()=>{V(\"/proc\");var a=V(\"/proc/self\");V(\"/proc/self/fd\");Qb({Ra:()=>{var b=wb(a,\"fd\",16895,73);b.Ga={lookup:(c,d)=>{var f=R[+d];if(!f)throw new P(8);c={parent:null,Ra:{ub:\"fake\"},Ga:{readlink:()=>f.path}};return c.parent=c}};return b}},\"/proc/self/fd\");})();\nvar Wc={a:function(a,b,c,d){E(\"Assertion failed: \"+C(a)+\", at: \"+[b?C(b):\"unknown filename\",c,d?C(d):\"unknown function\"]);},h:function(a,b){try{return a=C(a),ia(a,b),0}catch(c){if(\"undefined\"==typeof W||!(c instanceof P))throw c;return -c.Ka}},H:function(a,b,c){try{b=C(b);b=dc(a,b);if(c&-8)return -28;var d=U(b,{Sa:!0}).node;if(!d)return -44;a=\"\";c&4&&(a+=\"r\");c&2&&(a+=\"w\");c&1&&(a+=\"x\");return a&&Hb(d,a)?-2:0}catch(f){if(\"undefined\"==typeof W||!(f instanceof P))throw f;return -f.Ka}},i:function(a,b){try{var c=\nR[a];if(!c)throw new P(8);ia(c.node,b);return 0}catch(d){if(\"undefined\"==typeof W||!(d instanceof P))throw d;return -d.Ka}},g:function(a){try{var b=R[a];if(!b)throw new P(8);var c=b.node;var d=\"string\"==typeof c?U(c,{Sa:!0}).node:c;if(!d.Ga.Oa)throw new P(63);d.Ga.Oa(d,{timestamp:Date.now()});return 0}catch(f){if(\"undefined\"==typeof W||!(f instanceof P))throw f;return -f.Ka}},b:function(a,b,c){fc=c;try{var d=X(a);switch(b){case 0:var f=Hc();return 0>f?-28:Pb(d,f).fd;case 1:case 2:return 0;case 3:return d.flags;\ncase 4:return f=Hc(),d.flags|=f,0;case 5:return f=Hc(),Oa[f+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return -28;case 9:return F[Vc()>>2]=28,-1;default:return -28}}catch(h){if(\"undefined\"==typeof W||!(h instanceof P))throw h;return -h.Ka}},G:function(a,b){try{var c=X(a);return ec(Ub,c.path,b)}catch(d){if(\"undefined\"==typeof W||!(d instanceof P))throw d;return -d.Ka}},l:function(a,b,c){try{b=c+2097152>>>0<4194305-!!b?(b>>>0)+4294967296*c:NaN;if(isNaN(b))return -61;var d=R[a];if(!d)throw new P(8);\nif(0===(d.flags&2097155))throw new P(28);Wb(d.node,b);return 0}catch(f){if(\"undefined\"==typeof W||!(f instanceof P))throw f;return -f.Ka}},B:function(a,b){try{if(0===b)return -28;var c=ca(\"/\")+1;if(b=d)return -28;var f=Eb(b),h=Math.min(d,\nca(f)),k=r[c+h];t(f,u,c,d+1);r[c+h]=k;return h}catch(q){if(\"undefined\"==typeof W||!(q instanceof P))throw q;return -q.Ka}},s:function(a){try{return a=C(a),Tb(a),0}catch(b){if(\"undefined\"==typeof W||!(b instanceof P))throw b;return -b.Ka}},F:function(a,b){try{return a=C(a),ec(Ub,a,b)}catch(c){if(\"undefined\"==typeof W||!(c instanceof P))throw c;return -c.Ka}},p:function(a,b,c){try{return b=C(b),b=dc(a,b),0===c?ta(b):512===c?Tb(b):E(\"Invalid flags passed to unlinkat\"),0}catch(d){if(\"undefined\"==typeof W||\n!(d instanceof P))throw d;return -d.Ka}},o:function(a,b,c){try{b=C(b);b=dc(a,b,!0);if(c){var d=Jc(c),f=F[c+8>>2];h=1E3*d+f/1E6;c+=16;d=Jc(c);f=F[c+8>>2];k=1E3*d+f/1E6;}else var h=Date.now(),k=h;a=h;var q=U(b,{Sa:!0}).node;q.Ga.Oa(q,{timestamp:Math.max(a,k)});return 0}catch(x){if(\"undefined\"==typeof W||!(x instanceof P))throw x;return -x.Ka}},e:function(){return Date.now()},j:function(a,b){a=new Date(1E3*Jc(a));F[b>>2]=a.getSeconds();F[b+4>>2]=a.getMinutes();F[b+8>>2]=a.getHours();F[b+12>>2]=a.getDate();\nF[b+16>>2]=a.getMonth();F[b+20>>2]=a.getFullYear()-1900;F[b+24>>2]=a.getDay();var c=new Date(a.getFullYear(),0,1);F[b+28>>2]=(a.getTime()-c.getTime())/864E5|0;F[b+36>>2]=-(60*a.getTimezoneOffset());var d=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();c=c.getTimezoneOffset();F[b+32>>2]=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0;},w:function(a,b,c,d,f,h){try{var k=X(d);if(0!==(b&2)&&0===(c&2)&&2!==(k.flags&2097155))throw new P(2);if(1===(k.flags&2097155))throw new P(2);if(!k.Ha.bb)throw new P(43);\nvar q=k.Ha.bb(k,a,f,b,c);var x=q.Fb;F[h>>2]=q.vb;return x}catch(w){if(\"undefined\"==typeof W||!(w instanceof P))throw w;return -w.Ka}},x:function(a,b,c,d,f,h){try{var k=X(f);if(c&2){var q=u.slice(a,a+b);k&&k.Ha.cb&&k.Ha.cb(k,q,h,b,d);}}catch(x){if(\"undefined\"==typeof W||!(x instanceof P))throw x;return -x.Ka}},n:Mc,q:function(){return 2147483648},d:Nc,c:function(a){var b=u.length;a>>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var f=Math;d=Math.max(a,\nd);f=f.min.call(f,2147483648,d+(65536-d%65536)%65536);a:{try{Ja.grow(f-Na.byteLength+65535>>>16);Ra();var h=1;break a}catch(k){}h=void 0;}if(h)return !0}return !1},z:function(a,b){var c=0;Pc().forEach(function(d,f){var h=b+c;f=J[a+4*f>>2]=h;for(h=0;h>0]=d.charCodeAt(h);r[f>>0]=0;c+=d.length+1;});return 0},A:function(a,b){var c=Pc();J[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1;});J[b>>2]=d;return 0},f:function(a){try{var b=X(a);la(b);return 0}catch(c){if(\"undefined\"==\ntypeof W||!(c instanceof P))throw c;return c.Ka}},m:function(a,b){try{var c=X(a);r[b>>0]=c.tty?2:16384===(c.mode&61440)?3:40960===(c.mode&61440)?7:4;return 0}catch(d){if(\"undefined\"==typeof W||!(d instanceof P))throw d;return d.Ka}},u:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var h=b=0;h>2],q=J[a+4>>2];a+=8;var x=Zb(f,r,k,q);if(0>x){var w=-1;break a}b+=x;if(x>2]=w;return 0}catch(A){if(\"undefined\"==typeof W||!(A instanceof P))throw A;return A.Ka}},k:function(a,\nb,c,d,f){try{b=c+2097152>>>0<4194305-!!b?(b>>>0)+4294967296*c:NaN;if(isNaN(b))return 61;var h=X(a);Yb(h,b,d);O=[h.position>>>0,(N=h.position,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];F[f>>2]=O[0];F[f+4>>2]=O[1];h.hb&&0===b&&0===d&&(h.hb=null);return 0}catch(k){if(\"undefined\"==typeof W||!(k instanceof P))throw k;return k.Ka}},C:function(a){try{var b=X(a);return b.Ha&&b.Ha.fsync?b.Ha.fsync(b):0}catch(c){if(\"undefined\"==\ntypeof W||!(c instanceof P))throw c;return c.Ka}},r:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var h=b=0;h>2],q=J[a+4>>2];a+=8;var x=ka(f,r,k,q);if(0>x){var w=-1;break a}b+=x;}w=b;}J[d>>2]=w;return 0}catch(A){if(\"undefined\"==typeof W||!(A instanceof P))throw A;return A.Ka}}};\n(function(){function a(f){e.asm=f.exports;Ja=e.asm.I;Ra();K=e.asm.Aa;Ta.unshift(e.asm.J);Wa--;e.monitorRunDependencies&&e.monitorRunDependencies(Wa);0==Wa&&(Ya&&(f=Ya,Ya=null,f()));}function b(f){a(f.instance);}function c(f){return bb().then(function(h){return WebAssembly.instantiate(h,d)}).then(function(h){return h}).then(f,function(h){Ha(\"failed to asynchronously prepare wasm: \"+h);E(h);})}var d={a:Wc};Wa++;e.monitorRunDependencies&&e.monitorRunDependencies(Wa);\nif(e.instantiateWasm)try{return e.instantiateWasm(d,a)}catch(f){return Ha(\"Module.instantiateWasm callback failed with error: \"+f),!1}(function(){return Ia||\"function\"!=typeof WebAssembly.instantiateStreaming||Za()||M.startsWith(\"file://\")||Aa||\"function\"!=typeof fetch?c(b):fetch(M,{credentials:\"same-origin\"}).then(function(f){return WebAssembly.instantiateStreaming(f,d).then(b,function(h){Ha(\"wasm streaming compile failed: \"+h);Ha(\"falling back to ArrayBuffer instantiation\");return c(b)})})})();\nreturn {}})();e.___wasm_call_ctors=function(){return (e.___wasm_call_ctors=e.asm.J).apply(null,arguments)};e._sqlite3_free=function(){return (e._sqlite3_free=e.asm.K).apply(null,arguments)};e._sqlite3_value_double=function(){return (e._sqlite3_value_double=e.asm.L).apply(null,arguments)};e._sqlite3_value_text=function(){return (e._sqlite3_value_text=e.asm.M).apply(null,arguments)};var Vc=e.___errno_location=function(){return (Vc=e.___errno_location=e.asm.N).apply(null,arguments)};\ne._sqlite3_prepare_v2=function(){return (e._sqlite3_prepare_v2=e.asm.O).apply(null,arguments)};e._sqlite3_step=function(){return (e._sqlite3_step=e.asm.P).apply(null,arguments)};e._sqlite3_finalize=function(){return (e._sqlite3_finalize=e.asm.Q).apply(null,arguments)};e._sqlite3_reset=function(){return (e._sqlite3_reset=e.asm.R).apply(null,arguments)};e._sqlite3_value_int=function(){return (e._sqlite3_value_int=e.asm.S).apply(null,arguments)};\ne._sqlite3_clear_bindings=function(){return (e._sqlite3_clear_bindings=e.asm.T).apply(null,arguments)};e._sqlite3_value_blob=function(){return (e._sqlite3_value_blob=e.asm.U).apply(null,arguments)};e._sqlite3_value_bytes=function(){return (e._sqlite3_value_bytes=e.asm.V).apply(null,arguments)};e._sqlite3_value_type=function(){return (e._sqlite3_value_type=e.asm.W).apply(null,arguments)};e._sqlite3_result_blob=function(){return (e._sqlite3_result_blob=e.asm.X).apply(null,arguments)};\ne._sqlite3_result_double=function(){return (e._sqlite3_result_double=e.asm.Y).apply(null,arguments)};e._sqlite3_result_error=function(){return (e._sqlite3_result_error=e.asm.Z).apply(null,arguments)};e._sqlite3_result_int=function(){return (e._sqlite3_result_int=e.asm._).apply(null,arguments)};e._sqlite3_result_int64=function(){return (e._sqlite3_result_int64=e.asm.$).apply(null,arguments)};e._sqlite3_result_null=function(){return (e._sqlite3_result_null=e.asm.aa).apply(null,arguments)};\ne._sqlite3_result_text=function(){return (e._sqlite3_result_text=e.asm.ba).apply(null,arguments)};e._sqlite3_sql=function(){return (e._sqlite3_sql=e.asm.ca).apply(null,arguments)};e._sqlite3_aggregate_context=function(){return (e._sqlite3_aggregate_context=e.asm.da).apply(null,arguments)};e._sqlite3_column_count=function(){return (e._sqlite3_column_count=e.asm.ea).apply(null,arguments)};e._sqlite3_data_count=function(){return (e._sqlite3_data_count=e.asm.fa).apply(null,arguments)};\ne._sqlite3_column_blob=function(){return (e._sqlite3_column_blob=e.asm.ga).apply(null,arguments)};e._sqlite3_column_bytes=function(){return (e._sqlite3_column_bytes=e.asm.ha).apply(null,arguments)};e._sqlite3_column_double=function(){return (e._sqlite3_column_double=e.asm.ia).apply(null,arguments)};e._sqlite3_column_text=function(){return (e._sqlite3_column_text=e.asm.ja).apply(null,arguments)};e._sqlite3_column_type=function(){return (e._sqlite3_column_type=e.asm.ka).apply(null,arguments)};\ne._sqlite3_column_name=function(){return (e._sqlite3_column_name=e.asm.la).apply(null,arguments)};e._sqlite3_bind_blob=function(){return (e._sqlite3_bind_blob=e.asm.ma).apply(null,arguments)};e._sqlite3_bind_double=function(){return (e._sqlite3_bind_double=e.asm.na).apply(null,arguments)};e._sqlite3_bind_int=function(){return (e._sqlite3_bind_int=e.asm.oa).apply(null,arguments)};e._sqlite3_bind_text=function(){return (e._sqlite3_bind_text=e.asm.pa).apply(null,arguments)};\ne._sqlite3_bind_parameter_index=function(){return (e._sqlite3_bind_parameter_index=e.asm.qa).apply(null,arguments)};e._sqlite3_normalized_sql=function(){return (e._sqlite3_normalized_sql=e.asm.ra).apply(null,arguments)};e._sqlite3_errmsg=function(){return (e._sqlite3_errmsg=e.asm.sa).apply(null,arguments)};e._sqlite3_exec=function(){return (e._sqlite3_exec=e.asm.ta).apply(null,arguments)};e._sqlite3_changes=function(){return (e._sqlite3_changes=e.asm.ua).apply(null,arguments)};\ne._sqlite3_close_v2=function(){return (e._sqlite3_close_v2=e.asm.va).apply(null,arguments)};e._sqlite3_create_function_v2=function(){return (e._sqlite3_create_function_v2=e.asm.wa).apply(null,arguments)};e._sqlite3_open=function(){return (e._sqlite3_open=e.asm.xa).apply(null,arguments)};var da=e._malloc=function(){return (da=e._malloc=e.asm.ya).apply(null,arguments)},ba=e._free=function(){return (ba=e._free=e.asm.za).apply(null,arguments)};\ne._RegisterExtensionFunctions=function(){return (e._RegisterExtensionFunctions=e.asm.Ba).apply(null,arguments)};var zb=e._emscripten_builtin_memalign=function(){return (zb=e._emscripten_builtin_memalign=e.asm.Ca).apply(null,arguments)},oa=e.stackSave=function(){return (oa=e.stackSave=e.asm.Da).apply(null,arguments)},qa=e.stackRestore=function(){return (qa=e.stackRestore=e.asm.Ea).apply(null,arguments)},B=e.stackAlloc=function(){return (B=e.stackAlloc=e.asm.Fa).apply(null,arguments)};e.UTF8ToString=C;\ne.stackAlloc=B;e.stackSave=oa;e.stackRestore=qa;e.cwrap=function(a,b,c,d){c=c||[];var f=c.every(h=>\"number\"===h||\"boolean\"===h);return \"string\"!==b&&f&&!d?e[\"_\"+a]:function(){return Uc(a,b,c,arguments)}};var Xc;Ya=function Yc(){Xc||Zc();Xc||(Ya=Yc);};\nfunction Zc(){function a(){if(!Xc&&(Xc=!0,e.calledRun=!0,!Ka)){e.noFSInit||ac||(ac=!0,$b(),e.stdin=e.stdin,e.stdout=e.stdout,e.stderr=e.stderr,e.stdin?cc(\"stdin\",e.stdin):Sb(\"/dev/tty\",\"/dev/stdin\"),e.stdout?cc(\"stdout\",null,e.stdout):Sb(\"/dev/tty\",\"/dev/stdout\"),e.stderr?cc(\"stderr\",null,e.stderr):Sb(\"/dev/tty1\",\"/dev/stderr\"),ja(\"/dev/stdin\",0),ja(\"/dev/stdout\",1),ja(\"/dev/stderr\",1));Db=!1;cb(Ta);if(e.onRuntimeInitialized)e.onRuntimeInitialized();if(e.postRun)for(\"function\"==typeof e.postRun&&\n(e.postRun=[e.postRun]);e.postRun.length;){var b=e.postRun.shift();Ua.unshift(b);}cb(Ua);}}if(!(0 0) {\n return Promise.resolve(true);\n }\n else {\n return Promise.resolve(false);\n }\n }\n catch (err) {\n return Promise.reject(`IsDBInStore: ${err}`);\n }\n }\n static async restoreDBFromStore(dbName, prefix, store) {\n const mFileName = `${prefix}-${dbName}`;\n try {\n // check if file exists\n const isFilePre = await UtilsStore.isDBInStore(mFileName, store);\n if (isFilePre) {\n const isFile = await UtilsStore.isDBInStore(dbName, store);\n if (isFile) {\n const retDb = await UtilsStore.getDBFromStore(mFileName, store);\n await UtilsStore.saveDBToStore(dbName, retDb, store);\n await UtilsStore.removeDBFromStore(mFileName, store);\n return Promise.resolve();\n }\n else {\n return Promise.reject(new Error(`RestoreDBFromStore: ${dbName} does not exist`));\n }\n }\n else {\n return Promise.reject(new Error(`RestoreDBFromStore: ${mFileName} does not exist`));\n }\n }\n catch (err) {\n return Promise.reject(`RestoreDBFromStore: ${err.message}`);\n }\n }\n static async copyDBToStore(dbName, toDb, store) {\n try {\n // check if file exists\n const isFile = await UtilsStore.isDBInStore(dbName, store);\n if (isFile) {\n const retDb = await UtilsStore.getDBFromStore(dbName, store);\n await UtilsStore.saveDBToStore(toDb, retDb, store);\n return Promise.resolve();\n }\n else {\n return Promise.reject(new Error(`CopyDBToStore: ${dbName} does not exist`));\n }\n }\n catch (err) {\n return Promise.reject(`CopyDBToStore: ${err.message}`);\n }\n }\n static async getDBListFromStore(store) {\n try {\n const retDbList = await store.keys();\n return Promise.resolve(retDbList);\n }\n catch (err) {\n return Promise.reject(`GetDBListFromStore: ${err.message}`);\n }\n }\n}\n\nclass UtilsDrop {\n static async getTablesNames(db) {\n let sql = 'SELECT name FROM sqlite_master WHERE ';\n sql += \"type='table' AND name NOT LIKE 'sync_table' \";\n sql += \"AND name NOT LIKE '_temp_%' \";\n sql += \"AND name NOT LIKE 'sqlite_%' \";\n sql += \"ORDER BY rootpage DESC;\";\n const retArr = [];\n try {\n const retQuery = await UtilsSQLite.queryAll(db, sql, []);\n for (const query of retQuery) {\n retArr.push(query.name);\n }\n return Promise.resolve(retArr);\n }\n catch (err) {\n return Promise.reject(new Error(`GetTablesNames: ${err.message}`));\n }\n }\n static async getViewsNames(mDb) {\n let sql = 'SELECT name FROM sqlite_master WHERE ';\n sql += \"type='view' AND name NOT LIKE 'sqlite_%' \";\n sql += 'ORDER BY rootpage DESC;';\n const retArr = [];\n try {\n const retQuery = await UtilsSQLite.queryAll(mDb, sql, []);\n for (const query of retQuery) {\n retArr.push(query.name);\n }\n return Promise.resolve(retArr);\n }\n catch (err) {\n return Promise.reject(new Error(`getViewsNames: ${err.message}`));\n }\n }\n static async dropElements(db, type) {\n let msg = '';\n let stmt1 = `AND name NOT LIKE ('sqlite_%')`;\n switch (type) {\n case 'index':\n msg = 'DropIndexes';\n break;\n case 'trigger':\n msg = 'DropTriggers';\n break;\n case 'table':\n msg = 'DropTables';\n stmt1 += ` AND name NOT IN ('sync_table')`;\n break;\n case 'view':\n msg = 'DropViews';\n break;\n default:\n return Promise.reject(new Error(`DropElements: ${type} ` + 'not found'));\n }\n // get the element's names\n let stmt = 'SELECT name FROM sqlite_master WHERE ';\n stmt += `type = '${type}' ${stmt1};`;\n try {\n const elements = await UtilsSQLite.queryAll(db, stmt, []);\n if (elements.length > 0) {\n const upType = type.toUpperCase();\n const statements = [];\n for (const elem of elements) {\n let stmt = `DROP ${upType} IF EXISTS `;\n stmt += `${elem.name};`;\n statements.push(stmt);\n }\n for (const stmt of statements) {\n const lastId = await UtilsSQLite.run(db, stmt, [], false, 'no');\n if (lastId < 0) {\n return Promise.reject(new Error(`DropElements: ${msg}: lastId < 0`));\n }\n }\n }\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`DropElements: ${msg}: ${err.message}`));\n }\n }\n static async dropAll(db) {\n try {\n // drop tables\n await UtilsDrop.dropElements(db, 'table');\n // drop indexes\n await UtilsDrop.dropElements(db, 'index');\n // drop triggers\n await UtilsDrop.dropElements(db, 'trigger');\n // drop views\n await UtilsDrop.dropElements(db, 'view');\n // vacuum the database\n await UtilsSQLite.run(db, 'VACUUM;', [], false, 'no');\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`DropAll: ${err.message}`));\n }\n }\n static async dropTempTables(db, alterTables) {\n const tempTables = Object.keys(alterTables);\n const statements = [];\n for (const tTable of tempTables) {\n let stmt = 'DROP TABLE IF EXISTS ';\n stmt += `_temp_${tTable};`;\n statements.push(stmt);\n }\n try {\n const changes = await UtilsSQLite.execute(db, statements.join('\\n'), false);\n if (changes < 0) {\n return Promise.reject(new Error('DropTempTables: changes < 0'));\n }\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`DropTempTables: ${err.message}`));\n }\n }\n}\n\nclass UtilsJSON {\n static async isJsonSQLite(obj) {\n const keyFirstLevel = [\n 'database',\n 'version',\n 'overwrite',\n 'encrypted',\n 'mode',\n 'tables',\n 'views'\n ];\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object))\n return false;\n for (const key of Object.keys(obj)) {\n if (keyFirstLevel.indexOf(key) === -1)\n return false;\n if (key === 'database' && typeof obj[key] != 'string')\n return false;\n if (key === 'version' && typeof obj[key] != 'number')\n return false;\n if (key === 'overwrite' && typeof obj[key] != 'boolean')\n return false;\n if (key === 'encrypted' && typeof obj[key] != 'boolean')\n return false;\n if (key === 'mode' && typeof obj[key] != 'string')\n return false;\n if (key === 'tables' && typeof obj[key] != 'object')\n return false;\n if (key === 'tables') {\n for (const oKey of obj[key]) {\n const retTable = await UtilsJSON.isTable(oKey);\n if (!retTable)\n return false;\n }\n }\n if (key === 'views' && typeof obj[key] != 'object')\n return false;\n if (key === 'views') {\n for (const oKey of obj[key]) {\n const retView = await UtilsJSON.isView(oKey);\n if (!retView)\n return false;\n }\n }\n }\n return true;\n }\n static async isTable(obj) {\n const keyTableLevel = [\n 'name',\n 'schema',\n 'indexes',\n 'triggers',\n 'values',\n ];\n let nbColumn = 0;\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object))\n return false;\n for (const key of Object.keys(obj)) {\n if (keyTableLevel.indexOf(key) === -1)\n return false;\n if (key === 'name' && typeof obj[key] != 'string')\n return false;\n if (key === 'schema' && typeof obj[key] != 'object')\n return false;\n if (key === 'indexes' && typeof obj[key] != 'object')\n return false;\n if (key === 'triggers' && typeof obj[key] != 'object')\n return false;\n if (key === 'values' && typeof obj[key] != 'object')\n return false;\n if (key === 'schema') {\n obj['schema'].forEach((element) => {\n if (element.column) {\n nbColumn++;\n }\n });\n for (let i = 0; i < nbColumn; i++) {\n const retSchema = await UtilsJSON.isSchema(obj[key][i]);\n if (!retSchema)\n return false;\n }\n }\n if (key === 'indexes') {\n for (const oKey of obj[key]) {\n const retIndexes = await UtilsJSON.isIndexes(oKey);\n if (!retIndexes)\n return false;\n }\n }\n if (key === 'triggers') {\n for (const oKey of obj[key]) {\n const retTriggers = await UtilsJSON.isTriggers(oKey);\n if (!retTriggers)\n return false;\n }\n }\n if (key === 'values') {\n if (nbColumn > 0) {\n for (const oKey of obj[key]) {\n if (typeof oKey != 'object' || oKey.length != nbColumn)\n return false;\n }\n }\n }\n }\n return true;\n }\n static async isSchema(obj) {\n const keySchemaLevel = [\n 'column',\n 'value',\n 'foreignkey',\n 'primarykey',\n 'constraint',\n ];\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object))\n return false;\n for (const key of Object.keys(obj)) {\n if (keySchemaLevel.indexOf(key) === -1)\n return false;\n if (key === 'column' && typeof obj[key] != 'string')\n return false;\n if (key === 'value' && typeof obj[key] != 'string')\n return false;\n if (key === 'foreignkey' && typeof obj[key] != 'string')\n return false;\n if (key === 'primarykey' && typeof obj[key] != 'string')\n return false;\n if (key === 'constraint' && typeof obj[key] != 'string')\n return false;\n }\n return true;\n }\n static async isIndexes(obj) {\n const keyIndexesLevel = ['name', 'value', 'mode'];\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object))\n return false;\n for (const key of Object.keys(obj)) {\n if (keyIndexesLevel.indexOf(key) === -1)\n return false;\n if (key === 'name' && typeof obj[key] != 'string')\n return false;\n if (key === 'value' && typeof obj[key] != 'string')\n return false;\n if (key === 'mode' &&\n (typeof obj[key] != 'string' || obj[key].toUpperCase() != 'UNIQUE'))\n return false;\n }\n return true;\n }\n static async isTriggers(obj) {\n const keyTriggersLevel = [\n 'name',\n 'timeevent',\n 'condition',\n 'logic',\n ];\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object))\n return false;\n for (const key of Object.keys(obj)) {\n if (keyTriggersLevel.indexOf(key) === -1)\n return false;\n if (key === 'name' && typeof obj[key] != 'string')\n return false;\n if (key === 'timeevent' && typeof obj[key] != 'string')\n return false;\n if (key === 'condition' && typeof obj[key] != 'string')\n return false;\n if (key === 'logic' && typeof obj[key] != 'string')\n return false;\n }\n return true;\n }\n static async isView(obj) {\n const keyViewLevel = ['name', 'value'];\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object))\n return false;\n for (const key of Object.keys(obj)) {\n if (keyViewLevel.indexOf(key) === -1)\n return false;\n if (key === 'name' && typeof obj[key] != 'string')\n return false;\n if (key === 'value' && typeof obj[key] != 'string')\n return false;\n }\n return true;\n }\n static async checkSchemaValidity(schema) {\n for (let i = 0; i < schema.length; i++) {\n const sch = {};\n const keys = Object.keys(schema[i]);\n if (keys.includes('column')) {\n sch.column = schema[i].column;\n }\n if (keys.includes('value')) {\n sch.value = schema[i].value;\n }\n if (keys.includes('foreignkey')) {\n sch.foreignkey = schema[i].foreignkey;\n }\n if (keys.includes('constraint')) {\n sch.constraint = schema[i].constraint;\n }\n const isValid = await UtilsJSON.isSchema(sch);\n if (!isValid) {\n return Promise.reject(new Error(`CheckSchemaValidity: schema[${i}] not valid`));\n }\n }\n return Promise.resolve();\n }\n static async checkIndexesValidity(indexes) {\n for (let i = 0; i < indexes.length; i++) {\n const index = {};\n const keys = Object.keys(indexes[i]);\n if (keys.includes('value')) {\n index.value = indexes[i].value;\n }\n if (keys.includes('name')) {\n index.name = indexes[i].name;\n }\n if (keys.includes('mode')) {\n index.mode = indexes[i].mode;\n }\n const isValid = await UtilsJSON.isIndexes(index);\n if (!isValid) {\n return Promise.reject(new Error(`CheckIndexesValidity: indexes[${i}] not valid`));\n }\n }\n return Promise.resolve();\n }\n static async checkTriggersValidity(triggers) {\n for (let i = 0; i < triggers.length; i++) {\n const trigger = {};\n const keys = Object.keys(triggers[i]);\n if (keys.includes('logic')) {\n trigger.logic = triggers[i].logic;\n }\n if (keys.includes('name')) {\n trigger.name = triggers[i].name;\n }\n if (keys.includes('timeevent')) {\n trigger.timeevent = triggers[i].timeevent;\n }\n if (keys.includes('condition')) {\n trigger.condition = triggers[i].condition;\n }\n const isValid = await UtilsJSON.isTriggers(trigger);\n if (!isValid) {\n return Promise.reject(new Error(`CheckTriggersValidity: triggers[${i}] not valid`));\n }\n }\n return Promise.resolve();\n }\n static async checkViewsValidity(views) {\n for (let i = 0; i < views.length; i++) {\n const view = {};\n const keys = Object.keys(views[i]);\n if (keys.includes('value')) {\n view.value = views[i].value;\n }\n if (keys.includes('name')) {\n view.name = views[i].name;\n }\n const isValid = await UtilsJSON.isView(view);\n if (!isValid) {\n return Promise.reject(new Error(`CheckViewsValidity: views[${i}] not valid`));\n }\n }\n return Promise.resolve();\n }\n static async getTableColumnNamesTypes(db, tableName) {\n let resQuery = [];\n const retNames = [];\n const retTypes = [];\n const query = `PRAGMA table_info('${tableName}');`;\n try {\n resQuery = await UtilsSQLite.queryAll(db, query, []);\n if (resQuery.length > 0) {\n for (const query of resQuery) {\n retNames.push(query.name);\n retTypes.push(query.type);\n }\n }\n return Promise.resolve({ names: retNames, types: retTypes });\n }\n catch (err) {\n return Promise.reject(new Error('GetTableColumnNamesTypes: ' + `${err.message}`));\n }\n }\n static async getValues(db, query, tableName) {\n const values = [];\n try {\n // get table column names and types\n const tableNamesTypes = await UtilsJSON.getTableColumnNamesTypes(db, tableName);\n let rowNames = [];\n if (Object.keys(tableNamesTypes).includes('names')) {\n rowNames = tableNamesTypes.names;\n }\n else {\n return Promise.reject(new Error(`GetValues: Table ${tableName} no names`));\n }\n const retValues = await UtilsSQLite.queryAll(db, query, []);\n for (const rValue of retValues) {\n const row = [];\n for (const rName of rowNames) {\n if (Object.keys(rValue).includes(rName)) {\n row.push(rValue[rName]);\n }\n else {\n row.push(null);\n }\n }\n values.push(row);\n }\n return Promise.resolve(values);\n }\n catch (err) {\n return Promise.reject(new Error(`GetValues: ${err.message}`));\n }\n }\n}\n\nclass UtilsSQLStatement {\n static extractTableName(statement) {\n const pattern = /(?:INSERT\\s+INTO|UPDATE|DELETE\\s+FROM)\\s+([^\\s]+)/i;\n const match = statement.match(pattern);\n if (match && match[1]) {\n const tableName = match[1];\n return tableName;\n }\n return null;\n }\n static extractWhereClause(statement) {\n const pattern = /WHERE(.+?)(?:ORDER\\s+BY|LIMIT|$)/i;\n const match = statement.match(pattern);\n if (match && match[1]) {\n const whereClause = match[1].trim();\n return whereClause;\n }\n return null;\n }\n static addPrefixToWhereClause(whereClause, colNames, refNames, prefix) {\n let columnValuePairs;\n // TODO \"OR\" and \"NOT\"\n if (whereClause.includes(\"AND\")) {\n // Split the WHERE clause based on the \"AND\" keyword\n const subSequenceArray = whereClause.split(\"AND\");\n columnValuePairs = subSequenceArray.map((pair) => pair.trim());\n }\n else {\n columnValuePairs = [whereClause];\n }\n const modifiedPairs = columnValuePairs.map((pair) => {\n const match = pair.match(/(\\w+)\\s*(=|<|<=|<>|>|>=|IN|BETWEEN|LIKE)\\s*(.+)/);\n if (!match) {\n return pair;\n }\n const column = match[1].trim();\n const operator = match[2].trim();\n let value = match[3].trim();\n let newColumn = column;\n const index = UtilsSQLStatement.findIndexOfStringInArray(column, refNames);\n if (index !== -1) {\n newColumn = UtilsSQLStatement.getStringAtIndex(colNames, index);\n }\n const modifiedColumn = `${prefix}${newColumn}`;\n const ret = `${modifiedColumn} ${operator} ${value}`;\n return ret;\n });\n return modifiedPairs.join(\" AND \");\n }\n static findIndexOfStringInArray(target, array) {\n return array.indexOf(target);\n }\n static getStringAtIndex(array, index) {\n if (index >= 0 && index < array.length) {\n return array[index];\n }\n else {\n return undefined;\n }\n }\n static extractForeignKeyInfo(sqlStatement) {\n // Define the regular expression pattern for extracting the FOREIGN KEY clause\n const foreignKeyPattern = /\\bFOREIGN\\s+KEY\\s*\\(([^)]+)\\)\\s+REFERENCES\\s+(\\w+)\\s*\\(([^)]+)\\)\\s+(ON\\s+DELETE\\s+(RESTRICT|CASCADE|SET\\s+NULL|SET\\s+DEFAULT|NO\\s+ACTION))?/;\n const matches = sqlStatement.match(foreignKeyPattern);\n if (matches) {\n const foreignKeyInfo = {\n forKeys: matches[1].split(\",\").map(key => key.trim()),\n tableName: matches[2],\n refKeys: matches[3].split(\",\").map(key => key.trim()),\n action: matches[5] ? matches[5] : \"NO ACTION\"\n };\n return foreignKeyInfo;\n }\n else {\n throw new Error(\"extractForeignKeyInfo: No FOREIGN KEY found\");\n }\n }\n static extractColumnNames(whereClause) {\n const keywords = new Set([\n \"AND\", \"OR\", \"IN\", \"VALUES\", \"LIKE\", \"BETWEEN\", \"NOT\"\n ]);\n const regex = /\\b[a-zA-Z]\\w*\\b(?=\\s*(?:<=?|>=?|<>?|=|AND|OR|BETWEEN|NOT|IN|LIKE))|\\b[a-zA-Z]\\w*\\b\\s+BETWEEN\\s+'[^']+'\\s+AND\\s+'[^']+'|\\(([^)]+)\\)\\s+IN\\s+\\(?\\s*VALUES\\s*\\(/g;\n let match;\n const columns = [];\n while ((match = regex.exec(whereClause)) !== null) {\n const columnList = match[1];\n if (columnList) {\n const columnNamesArray = columnList.split(',');\n for (const columnName of columnNamesArray) {\n columns.push(columnName.trim());\n }\n }\n else {\n const matchedText = match[0];\n if (!keywords.has(matchedText.trim().toUpperCase())) {\n columns.push(matchedText.trim());\n }\n }\n }\n return columns;\n }\n static flattenMultilineString(input) {\n const lines = input.split(/\\r?\\n/);\n return lines.join(\" \");\n }\n static getStmtAndRetColNames(sqlStmt, retMode) {\n const retWord = \"RETURNING\";\n const retStmtNames = { stmt: sqlStmt, names: \"\" };\n const retWordIndex = sqlStmt.toUpperCase().indexOf(retWord);\n if (retWordIndex !== -1) {\n const prefix = sqlStmt.substring(0, retWordIndex);\n retStmtNames.stmt = `${prefix};`;\n if (retMode.substring(0, 2) === \"wA\") {\n const suffix = sqlStmt.substring(retWordIndex + retWord.length);\n const names = suffix.trim();\n if (names.endsWith(\";\")) {\n retStmtNames.names = names.substring(0, names.length - 1);\n }\n else {\n retStmtNames.names = names;\n }\n }\n }\n return retStmtNames;\n }\n static extractCombinedPrimaryKey(whereClause) {\n const pattern = /WHERE\\s*\\((.+?)\\)\\s*(?:=|IN)\\s*\\((.+?)\\)/g;\n const regex = new RegExp(pattern);\n const matches = whereClause.matchAll(regex);\n const primaryKeySets = [];\n for (const match of matches) {\n const keysString = match[1].trim();\n const keys = keysString.split(\",\").map((key) => key.trim());\n primaryKeySets.push(keys);\n }\n return primaryKeySets.length === 0 ? null : primaryKeySets;\n }\n static getWhereStmtForCombinedPK(whStmt, withRefs, colNames, keys) {\n let retWhere = whStmt;\n for (const grpKeys of keys) {\n const repKeys = grpKeys.join(\",\") === withRefs.join(\",\") ? colNames : withRefs;\n for (const [index, key] of grpKeys.entries()) {\n retWhere = UtilsSQLStatement.replaceAllString(retWhere, key, repKeys[index]);\n }\n }\n return retWhere;\n }\n static replaceAllString(originalStr, searchStr, replaceStr) {\n return originalStr.split(searchStr).join(replaceStr);\n }\n static indicesOf(str, searchStr, fromIndex = 0) {\n // Helper function to find indices of a substring within a string\n const indices = [];\n let currentIndex = str.indexOf(searchStr, fromIndex);\n while (currentIndex !== -1) {\n indices.push(currentIndex);\n currentIndex = str.indexOf(searchStr, currentIndex + 1);\n }\n return indices;\n }\n static getWhereStmtForNonCombinedPK(whStmt, withRefs, colNames) {\n let whereStmt = \"\";\n let stmt = whStmt.substring(6);\n for (let idx = 0; idx < withRefs.length; idx++) {\n let colType = \"withRefsNames\";\n let idxs = UtilsSQLStatement.indicesOf(stmt, withRefs[idx]);\n if (idxs.length === 0) {\n idxs = UtilsSQLStatement.indicesOf(stmt, colNames[idx]);\n colType = \"colNames\";\n }\n if (idxs.length > 0) {\n let valStr = \"\";\n const indicesEqual = UtilsSQLStatement.indicesOf(stmt, \"=\", idxs[0]);\n if (indicesEqual.length > 0) {\n const indicesAnd = UtilsSQLStatement.indicesOf(stmt, \"AND\", indicesEqual[0]);\n if (indicesAnd.length > 0) {\n valStr = stmt.substring(indicesEqual[0] + 1, indicesAnd[0] - 1);\n stmt = stmt.substring(indicesAnd[0] + 3);\n }\n else {\n valStr = stmt.substring(indicesEqual[0] + 1);\n }\n if (idx > 0) {\n whereStmt += \" AND \";\n }\n if (colType === \"withRefsNames\") {\n whereStmt += colNames[idx] + \" = \" + valStr;\n }\n else {\n whereStmt += withRefs[idx] + \" = \" + valStr;\n }\n }\n }\n }\n whereStmt = \"WHERE \" + whereStmt;\n return whereStmt;\n }\n static updateWhere(whStmt, withRefs, colNames) {\n let whereStmt = \"\";\n if (whStmt.length <= 0) {\n return whereStmt;\n }\n if (whStmt.toUpperCase().substring(0, 5) !== \"WHERE\") {\n return whereStmt;\n }\n if (withRefs.length === colNames.length) {\n // get whereStmt for primary combined key\n const keys = UtilsSQLStatement.extractCombinedPrimaryKey(whStmt);\n if (keys) {\n whereStmt = UtilsSQLStatement.getWhereStmtForCombinedPK(whStmt, withRefs, colNames, keys);\n }\n else {\n // get for non primary combined key\n whereStmt = UtilsSQLStatement.getWhereStmtForNonCombinedPK(whStmt, withRefs, colNames);\n }\n }\n return whereStmt;\n }\n}\nUtilsSQLStatement.replaceString = (originalStr, searchStr, replaceStr) => {\n const range = originalStr.indexOf(searchStr);\n if (range !== -1) {\n const modifiedStr = originalStr.substring(0, range) + replaceStr + originalStr.substring(range + searchStr.length);\n return modifiedStr;\n }\n return originalStr;\n};\n\nclass UtilsDeleteError {\n static findReferencesAndUpdate(message) {\n return new UtilsDeleteError(message);\n }\n static getRefs(message) {\n return new UtilsDeleteError(message);\n }\n static getReferences(message) {\n return new UtilsDeleteError(message);\n }\n static searchForRelatedItems(message) {\n return new UtilsDeleteError(message);\n }\n static upDateWhereForDefault(message) {\n return new UtilsDeleteError(message);\n }\n static upDateWhereForRestrict(message) {\n return new UtilsDeleteError(message);\n }\n static upDateWhereForCascade(message) {\n return new UtilsDeleteError(message);\n }\n static executeUpdateForDelete(message) {\n return new UtilsDeleteError(message);\n }\n constructor(message) {\n this.message = message;\n }\n}\nclass UtilsDelete {\n static async findReferencesAndUpdate(mDB, tableName, whereStmt, initColNames, values) {\n try {\n let retBool = true;\n const result = await UtilsDelete.getReferences(mDB, tableName);\n const references = result.retRefs;\n const tableNameWithRefs = result.tableWithRefs;\n if (references.length <= 0) {\n return retBool;\n }\n if (tableName === tableNameWithRefs) {\n return retBool;\n }\n // Loop through references\n for (const ref of references) {\n // Extract the FOREIGN KEY constraint info from the ref statement\n const foreignKeyInfo = UtilsSQLStatement.extractForeignKeyInfo(ref);\n // Get the tableName of the references\n const refTable = foreignKeyInfo.tableName;\n if (refTable === '' || refTable !== tableName) {\n continue;\n }\n // Get the with ref column names\n const withRefsNames = foreignKeyInfo.forKeys;\n // Get the column names\n const colNames = foreignKeyInfo.refKeys;\n if (colNames.length !== withRefsNames.length) {\n const msg = \"findReferencesAndUpdate: mismatch length\";\n throw UtilsDeleteError.findReferencesAndUpdate(msg);\n }\n const action = foreignKeyInfo.action;\n if (action === 'NO_ACTION') {\n continue;\n }\n let updTableName = tableNameWithRefs;\n let updColNames = withRefsNames;\n let results = {\n uWhereStmt: '',\n setStmt: '',\n };\n if (!UtilsDelete.checkValuesMatch(withRefsNames, initColNames)) {\n // Case: no match\n // Search for related items in tableName\n const result = await UtilsDelete\n .searchForRelatedItems(mDB, updTableName, tableName, whereStmt, withRefsNames, colNames, values);\n if (result.relatedItems.length === 0 && result.key.length <= 0) {\n continue;\n }\n if (updTableName !== tableName) {\n switch (action) {\n case 'RESTRICT':\n results = await UtilsDelete\n .upDateWhereForRestrict(result);\n break;\n case 'CASCADE':\n results = await UtilsDelete\n .upDateWhereForCascade(result);\n break;\n default:\n results = await UtilsDelete\n .upDateWhereForDefault(withRefsNames, result);\n break;\n }\n }\n }\n else {\n throw UtilsDeleteError.findReferencesAndUpdate('Not implemented. Please transfer your example to the maintener');\n }\n if (results.setStmt.length > 0 &&\n results.uWhereStmt.length > 0) {\n UtilsDelete.executeUpdateForDelete(mDB, updTableName, results.uWhereStmt, results.setStmt, updColNames, values);\n }\n }\n return retBool;\n }\n catch (error) {\n const msg = error.message ? error.message : error;\n if (error instanceof UtilsDeleteError) {\n throw UtilsDeleteError.findReferencesAndUpdate(msg);\n }\n else {\n throw error;\n }\n }\n }\n static async getReferences(db, tableName) {\n const sqlStmt = \"SELECT sql FROM sqlite_master \" +\n \"WHERE sql LIKE('%FOREIGN KEY%') AND sql LIKE('%REFERENCES%') AND \" +\n \"sql LIKE('%\" + tableName + \"%') AND sql LIKE('%ON DELETE%');\";\n try {\n const res = await UtilsSQLite.queryAll(db, sqlStmt, []);\n // get the reference's string(s)\n let retRefs = [];\n let tableWithRefs = \"\";\n if (res.length > 0) {\n let result = UtilsDelete.getRefs(res[0].sql);\n retRefs = result.foreignKeys;\n tableWithRefs = result.tableName;\n }\n return Promise.resolve({ tableWithRefs: tableWithRefs, retRefs: retRefs });\n }\n catch (err) {\n const error = err.message ? err.message : err;\n const msg = `getReferences: ${error}`;\n throw UtilsDeleteError.getReferences(msg);\n }\n }\n static getRefs(sqlStatement) {\n let tableName = '';\n const foreignKeys = [];\n const statement = UtilsSQLStatement.flattenMultilineString(sqlStatement);\n try {\n // Regular expression pattern to match the table name\n const tableNamePattern = /CREATE\\s+TABLE\\s+(\\w+)\\s+\\(/;\n const tableNameMatch = statement.match(tableNamePattern);\n if (tableNameMatch) {\n tableName = tableNameMatch[1];\n }\n // Regular expression pattern to match the FOREIGN KEY constraints\n const foreignKeyPattern = /FOREIGN\\s+KEY\\s+\\([^)]+\\)\\s+REFERENCES\\s+(\\w+)\\s*\\([^)]+\\)\\s+ON\\s+DELETE\\s+(CASCADE|RESTRICT|SET\\s+DEFAULT|SET\\s+NULL|NO\\s+ACTION)/g;\n const foreignKeyMatches = statement.matchAll(foreignKeyPattern);\n for (const foreignKeyMatch of foreignKeyMatches) {\n const foreignKey = foreignKeyMatch[0];\n foreignKeys.push(foreignKey);\n }\n }\n catch (error) {\n const msg = `getRefs: Error creating regular expression: ${error}`;\n throw UtilsDeleteError.getRefs(msg);\n }\n return { tableName, foreignKeys };\n }\n static async getReferencedTableName(refValue) {\n var tableName = '';\n if (refValue.length > 0) {\n const arr = refValue.split(new RegExp('REFERENCES', 'i'));\n if (arr.length === 2) {\n const oPar = arr[1].indexOf(\"(\");\n tableName = arr[1].substring(0, oPar).trim();\n }\n }\n return tableName;\n }\n static async searchForRelatedItems(mDB, updTableName, tableName, whStmt, withRefsNames, colNames, values) {\n const relatedItems = [];\n let key = \"\";\n const t1Names = withRefsNames.map((name) => `t1.${name}`);\n const t2Names = colNames.map((name) => `t2.${name}`);\n try {\n // addPrefix to the whereClause and swap colNames with withRefsNames\n let whereClause = UtilsSQLStatement\n .addPrefixToWhereClause(whStmt, colNames, withRefsNames, \"t2.\");\n // look at the whereclause and change colNames with withRefsNames\n if (whereClause.endsWith(\";\")) {\n whereClause = whereClause.slice(0, -1);\n }\n const resultString = t1Names\n .map((t1, index) => `${t1} = ${t2Names[index]}`)\n .join(\" AND \");\n const sql = `SELECT t1.rowid FROM ${updTableName} t1 ` +\n `JOIN ${tableName} t2 ON ${resultString} ` +\n `WHERE ${whereClause} AND t1.sql_deleted = 0;`;\n const vals = await UtilsSQLite.queryAll(mDB, sql, values);\n if (vals.length > 0) {\n key = (Object.keys(vals[0]))[0];\n relatedItems.push(...vals);\n }\n return { key: key, relatedItems: relatedItems };\n }\n catch (error) {\n const msg = error.message ? error.message : error;\n throw UtilsDeleteError.searchForRelatedItems(msg);\n }\n }\n static async upDateWhereForDefault(withRefsNames, results) {\n let setStmt = '';\n let uWhereStmt = '';\n try {\n const key = results.key;\n const cols = [];\n for (const relItem of results.relatedItems) {\n const mVal = relItem[key];\n if (mVal !== undefined) {\n cols.push(mVal);\n }\n }\n // Create the set statement\n for (const name of withRefsNames) {\n setStmt += `${name} = NULL, `;\n }\n setStmt += 'sql_deleted = 0';\n // const curTime = UtilsDelete.getCurrentTimeAsInteger() + 5;\n // setStmt += `last_modified = ${curTime}`;\n // Create the where statement\n uWhereStmt = `WHERE ${key} IN (`;\n for (const col of cols) {\n uWhereStmt += `${col},`;\n }\n if (uWhereStmt.endsWith(',')) {\n uWhereStmt = uWhereStmt.slice(0, -1);\n }\n uWhereStmt += ');';\n }\n catch (error) {\n const msg = error.message ? error.message : error;\n throw UtilsDeleteError.upDateWhereForDefault(msg);\n }\n return { setStmt, uWhereStmt };\n }\n static async upDateWhereForRestrict(results) {\n try {\n const setStmt = '';\n const uWhereStmt = '';\n if (results.relatedItems.length > 0) {\n const msg = 'Restrict mode related items exist, please delete them first';\n throw UtilsDeleteError.upDateWhereForRestrict(msg);\n }\n return { setStmt, uWhereStmt };\n }\n catch (error) {\n const msg = error.message ? error.message : error;\n throw UtilsDeleteError.upDateWhereForRestrict(msg);\n }\n }\n static async upDateWhereForCascade(results) {\n let setStmt = '';\n let uWhereStmt = '';\n try {\n const key = results.key;\n const cols = [];\n for (const relItem of results.relatedItems) {\n const mVal = relItem[key];\n if (mVal !== undefined) {\n cols.push(mVal);\n }\n }\n setStmt += 'sql_deleted = 1';\n // Create the where statement\n uWhereStmt = `WHERE ${key} IN (`;\n for (const col of cols) {\n uWhereStmt += `${col},`;\n }\n if (uWhereStmt.endsWith(',')) {\n uWhereStmt = uWhereStmt.slice(0, -1);\n }\n uWhereStmt += ');';\n }\n catch (error) {\n const msg = error.message ? error.message : error;\n throw UtilsDeleteError.upDateWhereForCascade(msg);\n }\n return { setStmt, uWhereStmt };\n }\n static executeUpdateForDelete(mDB, tableName, whereStmt, setStmt, colNames, values) {\n try {\n let lastId = -1;\n // Update sql_deleted for this references\n const stmt = `UPDATE ${tableName} SET ${setStmt} ${whereStmt}`;\n const selValues = [];\n if (values.length > 0) {\n const arrVal = whereStmt.split('?');\n if (arrVal[arrVal.length - 1] === ';') {\n arrVal.pop();\n }\n for (let jdx = 0; jdx < arrVal.length; jdx++) {\n for (const updVal of colNames) {\n const indices = UtilsSQLStatement.indicesOf(arrVal[jdx], updVal);\n if (indices.length > 0) {\n selValues.push(values[jdx]);\n }\n }\n }\n }\n const retObj = UtilsSQLite.run(mDB, stmt, selValues, false, 'no');\n lastId = retObj[\"lastId\"];\n if (lastId === -1) {\n const msg = `UPDATE sql_deleted failed for table: ${tableName}`;\n throw UtilsDeleteError.executeUpdateForDelete(msg);\n }\n }\n catch (error) {\n const msg = error.message ? error.message : error;\n throw UtilsDeleteError.executeUpdateForDelete(msg);\n }\n }\n static getCurrentTimeAsInteger() {\n const currentTime = Math.floor(Date.now() / 1000);\n return currentTime;\n }\n static checkValuesMatch(array1, array2) {\n for (const value of array1) {\n if (!array2.includes(value)) {\n return false;\n }\n }\n return true;\n }\n}\n\nclass UtilsSQLite {\n static async beginTransaction(db, isOpen) {\n const msg = 'BeginTransaction: ';\n if (!isOpen) {\n return Promise.reject(new Error(`${msg}database not opened`));\n }\n try {\n db.exec('BEGIN');\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`${msg}${err.message}`));\n }\n }\n static async rollbackTransaction(db, isOpen) {\n const msg = 'RollbackTransaction: ';\n if (!isOpen) {\n return Promise.reject(new Error(`${msg}database not opened`));\n }\n try {\n db.exec('ROLLBACK');\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`${msg}${err.message}`));\n }\n }\n static commitTransaction(db, isOpen) {\n const msg = 'CommitTransaction: ';\n if (!isOpen) {\n return Promise.reject(new Error(`${msg}database not opened`));\n }\n const sql = 'COMMIT';\n try {\n db.exec(sql);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`${msg}${err.message}`));\n }\n }\n static async dbChanges(db) {\n const SELECT_CHANGE = 'SELECT total_changes()';\n let changes = 0;\n try {\n const res = db.exec(SELECT_CHANGE);\n // process the row here\n changes = res[0].values[0][0];\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(new Error(`DbChanges failed: ${err.message}`));\n }\n }\n static async getLastId(db) {\n const SELECT_LAST_ID = 'SELECT last_insert_rowid()';\n let lastId = -1;\n try {\n const res = db.exec(SELECT_LAST_ID);\n // process the row here\n lastId = res[0].values[0][0];\n return Promise.resolve(lastId);\n }\n catch (err) {\n return Promise.reject(new Error(`GetLastId failed: ${err.message}`));\n }\n }\n static async setForeignKeyConstraintsEnabled(db, toggle) {\n let stmt = 'PRAGMA foreign_keys=OFF';\n if (toggle) {\n stmt = 'PRAGMA foreign_keys=ON';\n }\n try {\n db.run(stmt);\n return Promise.resolve();\n }\n catch (err) {\n const msg = err.message ? err.message : err;\n return Promise.reject(new Error(`SetForeignKey: ${msg}`));\n }\n }\n static async getVersion(db) {\n let version = 0;\n try {\n const res = db.exec('PRAGMA user_version;');\n version = res[0].values[0][0];\n return Promise.resolve(version);\n }\n catch (err) {\n return Promise.reject(new Error(`GetVersion: ${err.message}`));\n }\n }\n static async setVersion(db, version) {\n try {\n db.exec(`PRAGMA user_version = ${version}`);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`SetVersion: ${err.message}`));\n }\n }\n static async execute(db, sql, fromJson) {\n try {\n var sqlStmt = sql;\n // Check for DELETE FROM in sql string\n if (!fromJson && sql.toLowerCase().includes('DELETE FROM'.toLowerCase())) {\n sqlStmt = sql.replace(/\\n/g, '');\n let sqlStmts = sqlStmt.split(';');\n var resArr = [];\n for (const stmt of sqlStmts) {\n const trimStmt = stmt.trim().substring(0, 11).toUpperCase();\n if (trimStmt === 'DELETE FROM' && stmt.toLowerCase().includes('WHERE'.toLowerCase())) {\n const whereStmt = stmt.trim();\n const rStmt = await UtilsSQLite.deleteSQL(db, whereStmt, []);\n resArr.push(rStmt);\n }\n else {\n resArr.push(stmt);\n }\n }\n sqlStmt = resArr.join(';');\n }\n db.exec(sqlStmt);\n const changes = await UtilsSQLite.dbChanges(db);\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(new Error(`Execute: ${err.message}`));\n }\n }\n static async executeSet(db, set, fromJson, returnMode) {\n const retValues = [];\n let lastId = -1;\n let retObj = {};\n for (let i = 0; i < set.length; i++) {\n const statement = 'statement' in set[i] ? set[i].statement : null;\n const values = 'values' in set[i] && set[i].values.length > 0 ? set[i].values : [];\n if (statement == null) {\n let msg = 'ExecuteSet: Error No statement';\n msg += ` for index ${i}`;\n return Promise.reject(new Error(msg));\n }\n try {\n if (Array.isArray(values[0])) {\n for (const val of values) {\n const mVal = await UtilsSQLite.replaceUndefinedByNull(val);\n retObj = await UtilsSQLite.run(db, statement, mVal, fromJson, returnMode);\n lastId = retObj[\"lastId\"];\n if (Object.keys(retObj).includes(\"values\") && retObj[\"values\"].length > 0) {\n retValues.push(retObj[\"values\"]);\n }\n }\n }\n else {\n const mVal = await UtilsSQLite.replaceUndefinedByNull(values);\n retObj = await UtilsSQLite.run(db, statement, mVal, fromJson, returnMode);\n lastId = retObj[\"lastId\"];\n if (Object.keys(retObj).includes(\"values\") && retObj[\"values\"].length > 0) {\n retValues.push(retObj[\"values\"]);\n }\n }\n }\n catch (err) {\n return Promise.reject(new Error(`ExecuteSet: ${err.message}`));\n }\n }\n retObj[\"lastId\"] = lastId;\n retObj[\"values\"] = returnMode === 'all' ? retValues :\n returnMode === 'one' ? retValues[0] : [];\n return Promise.resolve(retObj);\n }\n static async queryAll(db, sql, values) {\n try {\n let retArr = [];\n if (values != null && values.length > 0) {\n retArr = db.exec(sql, values);\n }\n else {\n retArr = db.exec(sql);\n }\n if (retArr.length == 0)\n return Promise.resolve([]);\n const result = retArr[0].values.map(entry => {\n const obj = {};\n retArr[0].columns.forEach((column, index) => {\n obj[column] = entry[index];\n });\n return obj;\n });\n return Promise.resolve(result);\n }\n catch (err) {\n return Promise.reject(new Error(`queryAll: ${err.message}`));\n }\n }\n static async run(db, statement, values, fromJson, returnMode) {\n let stmtType = statement.replace(/\\n/g, \"\").trim().substring(0, 6).toUpperCase();\n let sqlStmt = statement;\n let retValues = [];\n let retObj = {};\n try {\n if (!fromJson && stmtType === \"DELETE\") {\n sqlStmt = await UtilsSQLite.deleteSQL(db, statement, values);\n }\n const mValues = values ? values : [];\n if (mValues.length > 0) {\n const mVal = await UtilsSQLite.replaceUndefinedByNull(mValues);\n const res = db.exec(sqlStmt, mVal);\n if (returnMode === \"all\" || returnMode === \"one\") {\n if (res && res.length > 0) {\n retValues = UtilsSQLite.getReturnedValues(res[0], returnMode);\n }\n else {\n return Promise.reject(new Error(`run: ${sqlStmt} does not returned any change`));\n }\n }\n }\n else {\n const res = db.exec(sqlStmt);\n if (returnMode === \"all\" || returnMode === \"one\") {\n if (res && res.length > 0) {\n retValues = UtilsSQLite.getReturnedValues(res[0], returnMode);\n }\n else {\n return Promise.reject(new Error(`run: ${sqlStmt} does not returned any change`));\n }\n }\n }\n const lastId = await UtilsSQLite.getLastId(db);\n retObj[\"lastId\"] = lastId;\n if (retValues != null && retValues.length > 0)\n retObj[\"values\"] = retValues;\n return Promise.resolve(retObj);\n }\n catch (err) {\n return Promise.reject(new Error(`run: ${err.message}`));\n }\n }\n static getReturnedValues(result, returnMode) {\n const retValues = [];\n for (let i = 0; i < result.values.length; i++) {\n let row = {};\n for (let j = 0; j < result.columns.length; j++) {\n row[result.columns[j]] = result.values[i][j];\n }\n retValues.push(row);\n if (returnMode === 'one')\n break;\n }\n return retValues;\n }\n static async deleteSQL(db, statement, values) {\n let sqlStmt = statement;\n try {\n const isLast = await UtilsSQLite.isLastModified(db, true);\n const isDel = await UtilsSQLite.isSqlDeleted(db, true);\n if (!isLast || !isDel) {\n return sqlStmt;\n }\n // Replace DELETE by UPDATE\n // set sql_deleted to 1 and the last_modified to\n // timenow\n const whereClause = UtilsSQLStatement.extractWhereClause(sqlStmt);\n if (!whereClause) {\n const msg = 'deleteSQL: cannot find a WHERE clause';\n return Promise.reject(new Error(`${msg}`));\n }\n const tableName = UtilsSQLStatement.extractTableName(sqlStmt);\n if (!tableName) {\n const msg = 'deleteSQL: cannot find a WHERE clause';\n return Promise.reject(new Error(`${msg}`));\n }\n const colNames = UtilsSQLStatement.extractColumnNames(whereClause);\n if (colNames.length === 0) {\n const msg = 'deleteSQL: Did not find column names in the WHERE Statement';\n return Promise.reject(new Error(`${msg}`));\n }\n const setStmt = 'sql_deleted = 1';\n // Find REFERENCES if any and update the sql_deleted\n // column\n const hasToUpdate = await UtilsDelete.findReferencesAndUpdate(db, tableName, whereClause, colNames, values);\n if (hasToUpdate) {\n const whereStmt = whereClause.endsWith(';')\n ? whereClause.slice(0, -1)\n : whereClause;\n sqlStmt = `UPDATE ${tableName} SET ${setStmt} WHERE ${whereStmt} AND sql_deleted = 0;`;\n }\n else {\n sqlStmt = '';\n }\n return Promise.resolve(sqlStmt);\n }\n catch (err) {\n let msg = err.message ? err.message : err;\n return Promise.reject(new Error(`deleteSQL: ${msg}`));\n }\n }\n static async getTableList(db) {\n try {\n const result = await UtilsDrop.getTablesNames(db);\n return Promise.resolve(result);\n }\n catch (err) {\n return Promise.reject(new Error(`getTableList: ${err.message}`));\n }\n }\n static async isTableExists(db, tableName) {\n try {\n let statement = 'SELECT name FROM sqlite_master WHERE ';\n statement += `type='table' AND name='${tableName}';`;\n const res = await UtilsSQLite.queryAll(db, statement, []);\n const ret = res.length > 0 ? true : false;\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(new Error(`isTableExists: ${err.message}`));\n }\n }\n /**\n * isLastModified\n * @param db\n * @param isOpen\n */\n static async isLastModified(db, isOpen) {\n if (!isOpen) {\n return Promise.reject('isLastModified: database not opened');\n }\n try {\n const tableList = await UtilsDrop.getTablesNames(db);\n for (const table of tableList) {\n const tableNamesTypes = await UtilsJSON\n .getTableColumnNamesTypes(db, table);\n const tableColumnNames = tableNamesTypes.names;\n if (tableColumnNames.includes(\"last_modified\")) {\n return Promise.resolve(true);\n }\n }\n }\n catch (err) {\n return Promise.reject(`isLastModified: ${err}`);\n }\n }\n /**\n * isSqlDeleted\n * @param db\n * @param isOpen\n */\n static async isSqlDeleted(db, isOpen) {\n if (!isOpen) {\n return Promise.reject('isSqlDeleted: database not opened');\n }\n try {\n const tableList = await UtilsDrop.getTablesNames(db);\n for (const table of tableList) {\n const tableNamesTypes = await UtilsJSON\n .getTableColumnNamesTypes(db, table);\n const tableColumnNames = tableNamesTypes.names;\n if (tableColumnNames.includes(\"sql_deleted\")) {\n return Promise.resolve(true);\n }\n }\n }\n catch (err) {\n return Promise.reject(`isSqlDeleted: ${err}`);\n }\n }\n static async replaceUndefinedByNull(values) {\n const retValues = [];\n for (const val of values) {\n let mVal = val;\n if (typeof val === 'undefined')\n mVal = null;\n retValues.push(mVal);\n }\n return Promise.resolve(retValues);\n }\n static async backupTables(db) {\n const msg = 'BackupTables: ';\n let alterTables = {};\n try {\n const tables = await UtilsDrop.getTablesNames(db);\n for (const table of tables) {\n try {\n const colNames = await UtilsSQLite.backupTable(db, table);\n alterTables[`${table}`] = colNames;\n }\n catch (err) {\n return Promise.reject(new Error(`${msg}table ${table}: ` + `${err.message}`));\n }\n }\n return Promise.resolve(alterTables);\n }\n catch (err) {\n return Promise.reject(new Error(`BackupTables: ${err.message}`));\n }\n }\n static async backupTable(db, table) {\n try {\n // start a transaction\n await UtilsSQLite.beginTransaction(db, true);\n // get the table's column names\n const colNames = await UtilsSQLite.getTableColumnNames(db, table);\n const tmpTable = `_temp_${table}`;\n // Drop the tmpTable if exists\n const delStmt = `DROP TABLE IF EXISTS ${tmpTable};`;\n await UtilsSQLite.run(db, delStmt, [], false, 'no');\n // prefix the table with _temp_\n let stmt = `ALTER TABLE ${table} RENAME `;\n stmt += `TO ${tmpTable};`;\n const lastId = await UtilsSQLite.run(db, stmt, [], false, 'no');\n if (lastId < 0) {\n let msg = 'BackupTable: lastId < 0';\n try {\n await UtilsSQLite.rollbackTransaction(db, true);\n }\n catch (err) {\n msg += `: ${err.message}`;\n }\n return Promise.reject(new Error(`${msg}`));\n }\n else {\n try {\n await UtilsSQLite.commitTransaction(db, true);\n return Promise.resolve(colNames);\n }\n catch (err) {\n return Promise.reject(new Error('BackupTable: ' + `${err.message}`));\n }\n }\n }\n catch (err) {\n return Promise.reject(new Error(`BackupTable: ${err.message}`));\n }\n }\n static async getTableColumnNames(db, tableName) {\n let resQuery = [];\n const retNames = [];\n const query = `PRAGMA table_info('${tableName}');`;\n try {\n resQuery = await UtilsSQLite.queryAll(db, query, []);\n if (resQuery.length > 0) {\n for (const query of resQuery) {\n retNames.push(query.name);\n }\n }\n return Promise.resolve(retNames);\n }\n catch (err) {\n return Promise.reject(new Error('GetTableColumnNames: ' + `${err.message}`));\n }\n }\n static async findCommonColumns(db, alterTables) {\n let commonColumns = {};\n try {\n // Get new table list\n const tables = await UtilsDrop.getTablesNames(db);\n if (tables.length === 0) {\n return Promise.reject(new Error('FindCommonColumns: get ' + \"table's names failed\"));\n }\n for (const table of tables) {\n // get the column's name\n const tableNames = await UtilsSQLite.getTableColumnNames(db, table);\n // find the common columns\n const keys = Object.keys(alterTables);\n if (keys.includes(table)) {\n commonColumns[table] = UtilsSQLite.arraysIntersection(alterTables[table], tableNames);\n }\n }\n return Promise.resolve(commonColumns);\n }\n catch (err) {\n return Promise.reject(new Error(`FindCommonColumns: ${err.message}`));\n }\n }\n static arraysIntersection(a1, a2) {\n if (a1 != null && a2 != null) {\n const first = new Set(a1);\n const second = new Set(a2);\n return [...first].filter(item => second.has(item));\n }\n else {\n return [];\n }\n }\n static async updateNewTablesData(db, commonColumns) {\n try {\n // start a transaction\n await UtilsSQLite.beginTransaction(db, true);\n const statements = [];\n const keys = Object.keys(commonColumns);\n keys.forEach(key => {\n const columns = commonColumns[key].join(',');\n let stmt = `INSERT INTO ${key} `;\n stmt += `(${columns}) `;\n stmt += `SELECT ${columns} FROM _temp_${key};`;\n statements.push(stmt);\n });\n const changes = await UtilsSQLite.execute(db, statements.join('\\n'), false);\n if (changes < 0) {\n let msg = 'updateNewTablesData: ' + 'changes < 0';\n try {\n await UtilsSQLite.rollbackTransaction(db, true);\n }\n catch (err) {\n msg += `: ${err.message}`;\n }\n return Promise.reject(new Error(`${msg}`));\n }\n else {\n try {\n await UtilsSQLite.commitTransaction(db, true);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error('updateNewTablesData: ' + `${err.message}`));\n }\n }\n }\n catch (err) {\n return Promise.reject(new Error('updateNewTablesData: ' + `${err.message}`));\n }\n }\n}\n\nclass UtilsImportJSON {\n static async createDatabaseSchema(mDB, jsonData) {\n let changes = -1;\n const version = jsonData.version;\n try {\n // set User Version PRAGMA\n await UtilsSQLite.setVersion(mDB.mDb, version);\n // DROP ALL when mode=\"full\"\n if (jsonData.mode === 'full') {\n await UtilsDrop.dropAll(mDB.mDb);\n }\n // create database schema\n changes = await UtilsImportJSON.createSchema(mDB, jsonData);\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(new Error('CreateDatabaseSchema: ' + `${err.message}`));\n }\n }\n static async createSchema(mDB, jsonData) {\n // create the database schema\n let changes = 0;\n const db = mDB.mDb;\n try {\n // start a transaction\n await UtilsSQLite.beginTransaction(db, true);\n mDB.setIsTransActive(true);\n }\n catch (err) {\n return Promise.reject(new Error(`CreateSchema: ${err.message}`));\n }\n const stmts = await UtilsImportJSON.createSchemaStatement(jsonData);\n if (stmts.length > 0) {\n const schemaStmt = stmts.join('\\n');\n try {\n changes = await UtilsSQLite.execute(db, schemaStmt, true);\n if (changes < 0) {\n try {\n await UtilsSQLite.rollbackTransaction(db, true);\n mDB.setIsTransActive(false);\n }\n catch (err) {\n return Promise.reject(new Error('CreateSchema: changes < 0 ' + `${err.message}`));\n }\n }\n }\n catch (err) {\n const msg = err.message;\n try {\n await UtilsSQLite.rollbackTransaction(db, true);\n mDB.setIsTransActive(false);\n return Promise.reject(new Error(`CreateSchema: ${msg}`));\n }\n catch (err) {\n return Promise.reject(new Error('CreateSchema: changes < 0 ' + `${err.message}: ${msg}`));\n }\n }\n }\n try {\n await UtilsSQLite.commitTransaction(db, true);\n mDB.setIsTransActive(false);\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(new Error('CreateSchema: commit ' + `${err.message}`));\n }\n }\n static async createSchemaStatement(jsonData) {\n const statements = [];\n let isLastModified = false;\n let isSqlDeleted = false;\n // Prepare the statement to execute\n try {\n for (const jTable of jsonData.tables) {\n if (jTable.schema != null && jTable.schema.length >= 1) {\n // create table\n statements.push('CREATE TABLE IF NOT EXISTS ' + `${jTable.name} (`);\n for (let j = 0; j < jTable.schema.length; j++) {\n if (j === jTable.schema.length - 1) {\n if (jTable.schema[j].column) {\n statements.push(`${jTable.schema[j].column} ${jTable.schema[j].value}`);\n if (jTable.schema[j].column === \"last_modified\") {\n isLastModified = true;\n }\n if (jTable.schema[j].column === \"sql_deleted\") {\n isSqlDeleted = true;\n }\n }\n else if (jTable.schema[j].foreignkey) {\n statements.push(`FOREIGN KEY (${jTable.schema[j].foreignkey}) ${jTable.schema[j].value}`);\n }\n else if (jTable.schema[j].constraint) {\n statements.push(`CONSTRAINT ${jTable.schema[j].constraint} ${jTable.schema[j].value}`);\n }\n }\n else {\n if (jTable.schema[j].column) {\n statements.push(`${jTable.schema[j].column} ${jTable.schema[j].value},`);\n }\n else if (jTable.schema[j].foreignkey) {\n statements.push(`FOREIGN KEY (${jTable.schema[j].foreignkey}) ${jTable.schema[j].value},`);\n }\n else if (jTable.schema[j].primarykey) {\n statements.push(`FOREIGN KEY ${jTable.schema[j].value},`);\n }\n else if (jTable.schema[j].constraint) {\n statements.push(`CONSTRAINT ${jTable.schema[j].constraint} ${jTable.schema[j].value},`);\n }\n }\n }\n statements.push(');');\n if (isLastModified && isSqlDeleted) {\n // create trigger last_modified associated with the table\n let trig = 'CREATE TRIGGER IF NOT EXISTS ';\n trig += `${jTable.name}`;\n trig += `_trigger_last_modified `;\n trig += `AFTER UPDATE ON ${jTable.name} `;\n trig += 'FOR EACH ROW WHEN NEW.last_modified < ';\n trig += 'OLD.last_modified BEGIN UPDATE ';\n trig += `${jTable.name} `;\n trig += `SET last_modified = `;\n trig += \"(strftime('%s','now')) WHERE id=OLD.id; END;\";\n statements.push(trig);\n }\n }\n if (jTable.indexes != null && jTable.indexes.length >= 1) {\n for (const jIndex of jTable.indexes) {\n const tableName = jTable.name;\n let stmt = `CREATE ${Object.keys(jIndex).includes('mode') ? jIndex.mode + ' ' : ''} INDEX IF NOT EXISTS `;\n stmt += `${jIndex.name} ON ${tableName} (${jIndex.value});`;\n statements.push(stmt);\n }\n }\n if (jTable.triggers != null && jTable.triggers.length >= 1) {\n for (const jTrg of jTable.triggers) {\n const tableName = jTable.name;\n if (jTrg.timeevent.toUpperCase().endsWith(\" ON\")) {\n jTrg.timeevent = jTrg.timeevent.substring(0, jTrg.timeevent.length - 3);\n }\n let stmt = `CREATE TRIGGER IF NOT EXISTS `;\n stmt += `${jTrg.name} ${jTrg.timeevent} ON ${tableName} `;\n if (jTrg.condition)\n stmt += `${jTrg.condition} `;\n stmt += `${jTrg.logic};`;\n statements.push(stmt);\n }\n }\n }\n return Promise.resolve(statements);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n static async createTablesData(mDB, jsonData, importProgress) {\n let changes = 0;\n let isValue = false;\n let lastId = -1;\n let msg = '';\n let initChanges = -1;\n const db = mDB.mDb;\n try {\n initChanges = await UtilsSQLite.dbChanges(db);\n // start a transaction\n await UtilsSQLite.beginTransaction(db, true);\n mDB.setIsTransActive(true);\n }\n catch (err) {\n return Promise.reject(new Error(`createTablesData: ${err.message}`));\n }\n for (const jTable of jsonData.tables) {\n if (jTable.values != null && jTable.values.length >= 1) {\n // Create the table's data\n try {\n lastId = await UtilsImportJSON.createTableData(db, jTable, jsonData.mode);\n const msg = `create table data ${jTable.name}`;\n importProgress.emit({ progress: msg });\n if (lastId < 0)\n break;\n isValue = true;\n }\n catch (err) {\n msg = err.message;\n isValue = false;\n break;\n }\n }\n }\n if (isValue) {\n try {\n await UtilsSQLite.commitTransaction(db, true);\n mDB.setIsTransActive(false);\n changes = (await UtilsSQLite.dbChanges(db)) - initChanges;\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(new Error('CreateTablesData: ' + `${err.message}`));\n }\n }\n else {\n if (msg.length > 0) {\n try {\n await UtilsSQLite.rollbackTransaction(db, true);\n mDB.setIsTransActive(false);\n return Promise.reject(new Error(`CreateTablesData: ${msg}`));\n }\n catch (err) {\n return Promise.reject(new Error('CreateTablesData: ' + `${err.message}: ${msg}`));\n }\n }\n else {\n // case were no values given\n return Promise.resolve(0);\n }\n }\n }\n static async createTableData(db, table, mode) {\n let lastId = -1;\n try {\n // Check if the table exists\n const tableExists = await UtilsSQLite.isTableExists(db, table.name);\n if (!tableExists) {\n return Promise.reject(new Error('CreateTableData: Table ' + `${table.name} does not exist`));\n }\n // Get the column names and types\n const tableNamesTypes = await UtilsJSON\n .getTableColumnNamesTypes(db, table.name);\n const tableColumnTypes = tableNamesTypes.types;\n const tableColumnNames = tableNamesTypes.names;\n if (tableColumnTypes.length === 0) {\n return Promise.reject(new Error('CreateTableData: Table ' + `${table.name} info does not exist`));\n }\n // Loop on Table Values\n for (let j = 0; j < table.values.length; j++) {\n let row = table.values[j];\n let isRun = true;\n const stmt = await UtilsImportJSON\n .createRowStatement(db, tableColumnNames, row, j, table.name, mode);\n isRun = await UtilsImportJSON.checkUpdate(db, stmt, row, table.name, tableColumnNames);\n if (isRun) {\n if (stmt.substring(0, 6).toUpperCase() === \"DELETE\") {\n row = [];\n }\n lastId = await UtilsSQLite.run(db, stmt, row, true, 'no');\n if (lastId < 0) {\n return Promise.reject(new Error('CreateTableData: lastId < 0'));\n }\n }\n else {\n lastId = 0;\n }\n }\n return Promise.resolve(lastId);\n }\n catch (err) {\n return Promise.reject(new Error(`CreateTableData: ${err.message}`));\n }\n }\n static async createRowStatement(db, tColNames, row, j, tableName, mode) {\n // Check the row number of columns\n if (row.length != tColNames.length || row.length === 0 || tColNames.length === 0) {\n return Promise.reject(new Error(`CreateRowStatement: Table ${tableName} ` +\n `values row ${j} not correct length`));\n }\n try {\n const retisIdExists = await UtilsImportJSON.isIdExists(db, tableName, tColNames[0], row[0]);\n let stmt;\n if (mode === 'full' || (mode === 'partial' && !retisIdExists)) {\n // Insert\n const nameString = tColNames.join();\n const questionMarkString = await UtilsImportJSON.createQuestionMarkString(tColNames.length);\n stmt = `INSERT INTO ${tableName} (${nameString}) VALUES (`;\n stmt += `${questionMarkString});`;\n }\n else {\n // Update or Delete\n let isUpdate = true;\n const isColDeleted = (element) => element === `sql_deleted`;\n const idxDelete = tColNames.findIndex(isColDeleted);\n if (idxDelete >= 0) {\n if (row[idxDelete] === 1) {\n isUpdate = false;\n stmt =\n `DELETE FROM ${tableName} WHERE `;\n if (typeof row[0] == \"string\") {\n stmt +=\n `${tColNames[0]} = '${row[0]}';`;\n }\n else {\n stmt +=\n `${tColNames[0]} = ${row[0]};`;\n }\n }\n }\n if (isUpdate) {\n // Update\n const setString = await UtilsImportJSON.setNameForUpdate(tColNames);\n if (setString.length === 0) {\n return Promise.reject(new Error(`CreateRowStatement: Table ${tableName} ` +\n `values row ${j} not set to String`));\n }\n stmt =\n `UPDATE ${tableName} SET ${setString} WHERE `;\n if (typeof row[0] == \"string\") {\n stmt +=\n `${tColNames[0]} = '${row[0]}';`;\n }\n else {\n stmt +=\n `${tColNames[0]} = ${row[0]};`;\n }\n }\n }\n return Promise.resolve(stmt);\n }\n catch (err) {\n return Promise.reject(new Error(`CreateRowStatement: ${err.message}`));\n }\n }\n static async checkUpdate(db, stmt, values, tbName, tColNames) {\n let isRun = true;\n if (stmt.substring(0, 6) === \"UPDATE\") {\n try {\n let query = `SELECT * FROM ${tbName} WHERE `;\n if (typeof values[0] == \"string\") {\n query +=\n `${tColNames[0]} = '${values[0]}';`;\n }\n else {\n query +=\n `${tColNames[0]} = ${values[0]};`;\n }\n const resQuery = await UtilsJSON.getValues(db, query, tbName);\n let resValues = [];\n if (resQuery.length > 0) {\n resValues = resQuery[0];\n }\n if (values.length > 0 && resValues.length > 0\n && values.length === resValues.length) {\n for (let i = 0; i < values.length; i++) {\n if (values[i] !== resValues[i]) {\n return Promise.resolve(true);\n }\n }\n return Promise.resolve(false);\n }\n else {\n const msg = \"Both arrays not the same length\";\n return Promise.reject(new Error(`CheckUpdate: ${msg}`));\n }\n }\n catch (err) {\n return Promise.reject(new Error(`CheckUpdate: ${err.message}`));\n }\n }\n else {\n return Promise.resolve(isRun);\n }\n }\n static async isIdExists(db, dbName, firstColumnName, key) {\n let ret = false;\n let query = `SELECT ${firstColumnName} FROM ` +\n `${dbName} WHERE ${firstColumnName} = `;\n if (typeof key === 'number')\n query += `${key};`;\n if (typeof key === 'string')\n query += `'${key}';`;\n try {\n const resQuery = await UtilsSQLite.queryAll(db, query, []);\n if (resQuery.length === 1)\n ret = true;\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(new Error(`IsIdExists: ${err.message}`));\n }\n }\n static async isType(type, value) {\n let ret = false;\n if (type === 'NULL' && typeof value === 'object')\n ret = true;\n if (type === 'TEXT' && typeof value === 'string')\n ret = true;\n if (type === 'INTEGER' && typeof value === 'number')\n ret = true;\n if (type === 'REAL' && typeof value === 'number')\n ret = true;\n if (type === 'BLOB' && typeof value === 'string')\n ret = true;\n if (ret) {\n return Promise.resolve();\n }\n else {\n return Promise.reject(new Error('IsType: not a SQL Type'));\n }\n }\n static async checkColumnTypes(tableTypes, rowValues) {\n for (let i = 0; i < rowValues.length; i++) {\n if (rowValues[i] != null) {\n try {\n await UtilsImportJSON.isType(tableTypes[i], rowValues[i]);\n }\n catch (err) {\n return Promise.reject(new Error('CheckColumnTypes: Type not found'));\n }\n }\n }\n return Promise.resolve();\n }\n static async createQuestionMarkString(length) {\n let retString = '';\n for (let i = 0; i < length; i++) {\n retString += '?,';\n }\n if (retString.length > 1) {\n retString = retString.slice(0, -1);\n return Promise.resolve(retString);\n }\n else {\n return Promise.reject(new Error('CreateQuestionMarkString: length = 0'));\n }\n }\n static async setNameForUpdate(names) {\n let retString = '';\n for (const name of names) {\n retString += `${name} = ? ,`;\n }\n if (retString.length > 1) {\n retString = retString.slice(0, -1);\n return Promise.resolve(retString);\n }\n else {\n return Promise.reject(new Error('SetNameForUpdate: length = 0'));\n }\n }\n static async createView(db, view) {\n const stmt = `CREATE VIEW IF NOT EXISTS ${view.name} AS ${view.value};`;\n try {\n const changes = await UtilsSQLite.execute(db, stmt, true);\n if (changes < 0) {\n return Promise.reject(new Error(`CreateView: ${view.name} failed`));\n }\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`CreateView: ${err.message}`));\n }\n }\n static async createViews(mDB, jsonData) {\n const db = mDB.mDb;\n let isView = false;\n let msg = '';\n let initChanges = -1;\n let changes = -1;\n try {\n initChanges = await UtilsSQLite.dbChanges(db);\n // start a transaction\n await UtilsSQLite.beginTransaction(db, true);\n mDB.setIsTransActive(true);\n }\n catch (err) {\n return Promise.reject(new Error(`createViews: ${err.message}`));\n }\n for (const jView of jsonData.views) {\n if (jView.value != null) {\n // Create the view\n try {\n await UtilsImportJSON.createView(db, jView);\n isView = true;\n }\n catch (err) {\n msg = err.message;\n isView = false;\n break;\n }\n }\n }\n if (isView) {\n try {\n await UtilsSQLite.commitTransaction(db, true);\n mDB.setIsTransActive(false);\n changes = (await UtilsSQLite.dbChanges(db)) - initChanges;\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(new Error('createViews: ' + `${err.message}`));\n }\n }\n else {\n if (msg.length > 0) {\n try {\n await UtilsSQLite.rollbackTransaction(db, true);\n mDB.setIsTransActive(false);\n return Promise.reject(new Error(`createViews: ${msg}`));\n }\n catch (err) {\n return Promise.reject(new Error('createViews: ' + `${err.message}: ${msg}`));\n }\n }\n else {\n // case were no views given\n return Promise.resolve(0);\n }\n }\n }\n}\n\nclass UtilsExportJSON {\n static async createExportObject(db, sqlObj, exportProgress) {\n const retObj = {};\n let tables = [];\n let views = [];\n let errmsg = '';\n try {\n // get View's name\n views = await UtilsExportJSON.getViewsName(db);\n // get Table's name\n const resTables = await UtilsExportJSON.getTablesNameSQL(db);\n if (resTables.length === 0) {\n return Promise.reject(new Error(\"createExportObject: table's names failed\"));\n }\n else {\n const isTable = await UtilsSQLite.isTableExists(db, 'sync_table');\n if (!isTable && sqlObj.mode === 'partial') {\n return Promise.reject(new Error('No sync_table available'));\n }\n switch (sqlObj.mode) {\n case 'partial': {\n tables = await UtilsExportJSON.getTablesPartial(db, resTables, exportProgress);\n break;\n }\n case 'full': {\n tables = await UtilsExportJSON.getTablesFull(db, resTables, exportProgress);\n break;\n }\n default: {\n errmsg =\n 'createExportObject: expMode ' + sqlObj.mode + ' not defined';\n break;\n }\n }\n if (errmsg.length > 0) {\n return Promise.reject(new Error(errmsg));\n }\n if (tables.length > 0) {\n retObj.database = sqlObj.database;\n retObj.version = sqlObj.version;\n retObj.encrypted = sqlObj.encrypted;\n retObj.mode = sqlObj.mode;\n retObj.tables = tables;\n if (views.length > 0) {\n retObj.views = views;\n }\n }\n return Promise.resolve(retObj);\n }\n }\n catch (err) {\n return Promise.reject(new Error('createExportObject: ' + err.message));\n }\n }\n static async getViewsName(mDb) {\n const views = [];\n let sql = 'SELECT name,sql FROM sqlite_master WHERE ';\n sql += \"type='view' AND name NOT LIKE 'sqlite_%';\";\n let retQuery = [];\n try {\n retQuery = await UtilsSQLite.queryAll(mDb, sql, []);\n for (const query of retQuery) {\n const view = {};\n view.name = query.name;\n view.value = query.sql.substring(query.sql.indexOf('AS ') + 3);\n views.push(view);\n }\n return Promise.resolve(views);\n }\n catch (err) {\n return Promise.reject(new Error(`getViewsName: ${err.message}`));\n }\n }\n static async getTablesFull(db, resTables, exportProgress) {\n const tables = [];\n let errmsg = '';\n try {\n // Loop through the tables\n for (const rTable of resTables) {\n let tableName;\n let sqlStmt;\n if (rTable.name) {\n tableName = rTable.name;\n }\n else {\n errmsg = 'GetTablesFull: no name';\n break;\n }\n if (rTable.sql) {\n sqlStmt = rTable.sql;\n }\n else {\n errmsg = 'GetTablesFull: no sql';\n break;\n }\n const table = {};\n // create Table's Schema\n const schema = await UtilsExportJSON.getSchema(sqlStmt /*, tableName*/);\n if (schema.length === 0) {\n errmsg = 'GetTablesFull: no Schema returned';\n break;\n }\n // check schema validity\n await UtilsJSON.checkSchemaValidity(schema);\n // create Table's indexes if any\n const indexes = await UtilsExportJSON.getIndexes(db, tableName);\n if (indexes.length > 0) {\n // check indexes validity\n await UtilsJSON.checkIndexesValidity(indexes);\n }\n // create Table's triggers if any\n const triggers = await UtilsExportJSON.getTriggers(db, tableName);\n if (triggers.length > 0) {\n // check triggers validity\n await UtilsJSON.checkTriggersValidity(triggers);\n }\n let msg = `Full: Table ${tableName} schema export completed ...`;\n exportProgress.emit({ progress: msg });\n // create Table's Data\n const query = `SELECT * FROM ${tableName};`;\n const values = await UtilsJSON.getValues(db, query, tableName);\n table.name = tableName;\n if (schema.length > 0) {\n table.schema = schema;\n }\n else {\n errmsg = `GetTablesFull: must contain schema`;\n break;\n }\n if (indexes.length > 0) {\n table.indexes = indexes;\n }\n if (triggers.length > 0) {\n table.triggers = triggers;\n }\n if (values.length > 0) {\n table.values = values;\n }\n if (Object.keys(table).length <= 1) {\n errmsg = `GetTablesFull: table ${tableName} is not a jsonTable`;\n break;\n }\n msg = `Full: Table ${tableName} table data export completed ...`;\n exportProgress.emit({ progress: msg });\n tables.push(table);\n }\n if (errmsg.length > 0) {\n return Promise.reject(new Error(errmsg));\n }\n return Promise.resolve(tables);\n }\n catch (err) {\n return Promise.reject(new Error(`GetTablesFull: ${err.message}`));\n }\n }\n static async getSchema(sqlStmt /*, tableName: string*/) {\n const schema = [];\n // take the substring between parenthesis\n const openPar = sqlStmt.indexOf('(');\n const closePar = sqlStmt.lastIndexOf(')');\n let sstr = sqlStmt.substring(openPar + 1, closePar);\n // check if there is other parenthesis and replace the ',' by '§'\n try {\n sstr = await UtilsExportJSON.modEmbeddedParentheses(sstr);\n const sch = sstr.split(\",\");\n // for each element of the array split the\n // first word as key\n for (let j = 0; j < sch.length; j++) {\n let row = [];\n const scht = sch[j].replace(/\\n/g, \"\").trim();\n row[0] = scht.substring(0, scht.indexOf(\" \"));\n row[1] = scht.substring(scht.indexOf(\" \") + 1);\n const jsonRow = {};\n if (row[0].toUpperCase() === \"FOREIGN\") {\n const oPar = scht.indexOf(\"(\");\n const cPar = scht.indexOf(\")\");\n const fk = scht.substring(oPar + 1, cPar);\n const fknames = fk.split('§');\n row[0] = fknames.join(',');\n row[0] = row[0].replace(/, /g, \",\");\n row[1] = scht.substring(cPar + 2);\n jsonRow['foreignkey'] = row[0];\n }\n else if (row[0].toUpperCase() === \"PRIMARY\") {\n const oPar = scht.indexOf(\"(\");\n const cPar = scht.indexOf(\")\");\n const pk = scht.substring(oPar + 1, cPar);\n const pknames = pk.split('§');\n row[0] = \"CPK_\" + pknames.join('_');\n row[0] = row[0].replace(/_ /g, \"_\");\n row[1] = scht;\n jsonRow['constraint'] = row[0];\n }\n else if (row[0].toUpperCase() === \"CONSTRAINT\") {\n let tRow = [];\n const row1t = row[1].trim();\n tRow[0] = row1t.substring(0, row1t.indexOf(\" \"));\n tRow[1] = row1t.substring(row1t.indexOf(\" \") + 1);\n row[0] = tRow[0];\n jsonRow['constraint'] = row[0];\n row[1] = tRow[1];\n }\n else {\n jsonRow['column'] = row[0];\n }\n jsonRow['value'] = row[1].replace(/§/g, \",\");\n schema.push(jsonRow);\n }\n return Promise.resolve(schema);\n }\n catch (err) {\n return Promise.reject(new Error(err.message));\n }\n }\n static async getIndexes(db, tableName) {\n const indexes = [];\n let errmsg = '';\n try {\n let stmt = 'SELECT name,tbl_name,sql FROM sqlite_master WHERE ';\n stmt += `type = 'index' AND tbl_name = '${tableName}' `;\n stmt += `AND sql NOTNULL;`;\n const retIndexes = await UtilsSQLite.queryAll(db, stmt, []);\n if (retIndexes.length > 0) {\n for (const rIndex of retIndexes) {\n const keys = Object.keys(rIndex);\n if (keys.length === 3) {\n if (rIndex['tbl_name'] === tableName) {\n const sql = rIndex['sql'];\n const mode = sql.includes('UNIQUE') ? 'UNIQUE' : '';\n const oPar = sql.lastIndexOf('(');\n const cPar = sql.lastIndexOf(')');\n const index = {};\n index.name = rIndex['name'];\n index.value = sql.slice(oPar + 1, cPar);\n if (mode.length > 0)\n index.mode = mode;\n indexes.push(index);\n }\n else {\n errmsg = `GetIndexes: Table ${tableName} doesn't match`;\n break;\n }\n }\n else {\n errmsg = `GetIndexes: Table ${tableName} creating indexes`;\n break;\n }\n }\n if (errmsg.length > 0) {\n return Promise.reject(new Error(errmsg));\n }\n }\n return Promise.resolve(indexes);\n }\n catch (err) {\n return Promise.reject(new Error(`GetIndexes: ${err.message}`));\n }\n }\n static async getTriggers(db, tableName) {\n const triggers = [];\n try {\n let stmt = 'SELECT name,tbl_name,sql FROM sqlite_master WHERE ';\n stmt += `type = 'trigger' AND tbl_name = '${tableName}' `;\n stmt += `AND sql NOT NULL;`;\n const retTriggers = await UtilsSQLite.queryAll(db, stmt, []);\n if (retTriggers.length > 0) {\n for (const rTrg of retTriggers) {\n const keys = Object.keys(rTrg);\n if (keys.length === 3) {\n if (rTrg['tbl_name'] === tableName) {\n const sql = rTrg['sql'];\n const name = rTrg['name'];\n let sqlArr = sql.split(name);\n if (sqlArr.length != 2) {\n return Promise.reject(new Error(`GetTriggers: sql split name does not return 2 values`));\n }\n if (!sqlArr[1].includes(tableName)) {\n return Promise.reject(new Error(`GetTriggers: sql split does not contains ${tableName}`));\n }\n const timeEvent = sqlArr[1].split(tableName, 1)[0].trim();\n sqlArr = sqlArr[1].split(timeEvent + ' ' + tableName);\n if (sqlArr.length != 2) {\n return Promise.reject(new Error(`GetTriggers: sql split tableName does not return 2 values`));\n }\n let condition = '';\n let logic = '';\n if (sqlArr[1].trim().substring(0, 5).toUpperCase() !== 'BEGIN') {\n sqlArr = sqlArr[1].trim().split('BEGIN');\n if (sqlArr.length != 2) {\n return Promise.reject(new Error(`GetTriggers: sql split BEGIN does not return 2 values`));\n }\n condition = sqlArr[0].trim();\n logic = 'BEGIN' + sqlArr[1];\n }\n else {\n logic = sqlArr[1].trim();\n }\n const trigger = {};\n trigger.name = name;\n trigger.logic = logic;\n if (condition.length > 0)\n trigger.condition = condition;\n trigger.timeevent = timeEvent;\n triggers.push(trigger);\n }\n else {\n return Promise.reject(new Error(`GetTriggers: Table ${tableName} doesn't match`));\n }\n }\n else {\n return Promise.reject(new Error(`GetTriggers: Table ${tableName} creating indexes`));\n }\n }\n }\n return Promise.resolve(triggers);\n }\n catch (err) {\n return Promise.reject(new Error(`GetTriggers: ${err.message}`));\n }\n }\n static async getTablesPartial(db, resTables, exportProgress) {\n const tables = [];\n let modTables = {};\n let syncDate = 0;\n let modTablesKeys = [];\n let errmsg = '';\n try {\n // Get the syncDate and the Modified Tables\n const partialModeData = await UtilsExportJSON\n .getPartialModeData(db, resTables);\n if (Object.keys(partialModeData).includes('syncDate')) {\n syncDate = partialModeData.syncDate;\n }\n if (Object.keys(partialModeData).includes('modTables')) {\n modTables = partialModeData.modTables;\n modTablesKeys = Object.keys(modTables);\n }\n // Loop trough tables\n for (const rTable of resTables) {\n let tableName = '';\n let sqlStmt = '';\n if (rTable.name) {\n tableName = rTable.name;\n }\n else {\n errmsg = 'GetTablesFull: no name';\n break;\n }\n if (rTable.sql) {\n sqlStmt = rTable.sql;\n }\n else {\n errmsg = 'GetTablesFull: no sql';\n break;\n }\n if (modTablesKeys.length == 0 ||\n modTablesKeys.indexOf(tableName) === -1 ||\n modTables[tableName] == 'No') {\n continue;\n }\n const table = {};\n let schema = [];\n let indexes = [];\n let triggers = [];\n table.name = rTable;\n if (modTables[table.name] === 'Create') {\n // create Table's Schema\n schema = await UtilsExportJSON.getSchema(sqlStmt /*, tableName*/);\n if (schema.length > 0) {\n // check schema validity\n await UtilsJSON.checkSchemaValidity(schema);\n }\n // create Table's indexes if any\n indexes = await UtilsExportJSON.getIndexes(db, tableName);\n if (indexes.length > 0) {\n // check indexes validity\n await UtilsJSON.checkIndexesValidity(indexes);\n }\n // create Table's triggers if any\n triggers = await UtilsExportJSON.getTriggers(db, tableName);\n if (triggers.length > 0) {\n // check triggers validity\n await UtilsJSON.checkTriggersValidity(triggers);\n }\n }\n let msg = `Partial: Table ${tableName} schema export completed ...`;\n exportProgress.emit({ progress: msg });\n // create Table's Data\n let query = '';\n if (modTables[tableName] === 'Create') {\n query = `SELECT * FROM ${tableName};`;\n }\n else {\n query =\n `SELECT * FROM ${tableName} ` +\n `WHERE last_modified > ${syncDate};`;\n }\n const values = await UtilsJSON.getValues(db, query, tableName);\n // check the table object validity\n table.name = tableName;\n if (schema.length > 0) {\n table.schema = schema;\n }\n if (indexes.length > 0) {\n table.indexes = indexes;\n }\n if (triggers.length > 0) {\n table.triggers = triggers;\n }\n if (values.length > 0) {\n table.values = values;\n }\n if (Object.keys(table).length <= 1) {\n errmsg = `GetTablesPartial: table ${tableName} is not a jsonTable`;\n break;\n }\n msg = `Partial: Table ${tableName} table data export completed ...`;\n exportProgress.emit({ progress: msg });\n tables.push(table);\n }\n if (errmsg.length > 0) {\n return Promise.reject(new Error(errmsg));\n }\n return Promise.resolve(tables);\n }\n catch (err) {\n return Promise.reject(new Error(`GetTablesPartial: ${err.message}`));\n }\n }\n static async getPartialModeData(db, resTables) {\n const retData = {};\n try {\n // get the synchronization date\n const syncDate = await UtilsExportJSON.getSynchroDate(db);\n if (syncDate <= 0) {\n return Promise.reject(new Error(`GetPartialModeData: no syncDate`));\n }\n // get the tables which have been updated\n // since last synchronization\n const modTables = await UtilsExportJSON.getTablesModified(db, resTables, syncDate);\n if (modTables.length <= 0) {\n return Promise.reject(new Error(`GetPartialModeData: no modTables`));\n }\n retData.syncDate = syncDate;\n retData.modTables = modTables;\n return Promise.resolve(retData);\n }\n catch (err) {\n return Promise.reject(new Error(`GetPartialModeData: ${err.message}`));\n }\n }\n static async getTablesNameSQL(db) {\n let sql = 'SELECT name,sql FROM sqlite_master WHERE ';\n sql += \"type='table' AND name NOT LIKE 'sync_table' \";\n sql += \"AND name NOT LIKE '_temp_%' \";\n sql += \"AND name NOT LIKE 'sqlite_%';\";\n try {\n const retQuery = await UtilsSQLite.queryAll(db, sql, []);\n return Promise.resolve(retQuery);\n }\n catch (err) {\n return Promise.reject(new Error(`getTablesNamesSQL: ${err.message}`));\n }\n }\n static async getTablesModified(db, tables, syncDate) {\n let errmsg = '';\n try {\n const retModified = {};\n for (const rTable of tables) {\n let mode;\n // get total count of the table\n let stmt = 'SELECT count(*) AS tcount ';\n stmt += `FROM ${rTable.name};`;\n let retQuery = await UtilsSQLite.queryAll(db, stmt, []);\n if (retQuery.length != 1) {\n errmsg = 'GetTableModified: total ' + 'count not returned';\n break;\n }\n const totalCount = retQuery[0]['tcount'];\n // get total count of modified since last sync\n stmt = 'SELECT count(*) AS mcount FROM ';\n stmt += `${rTable.name} WHERE last_modified > `;\n stmt += `${syncDate};`;\n retQuery = await UtilsSQLite.queryAll(db, stmt, []);\n if (retQuery.length != 1)\n break;\n const totalModifiedCount = retQuery[0]['mcount'];\n if (totalModifiedCount === 0) {\n mode = 'No';\n }\n else if (totalCount === totalModifiedCount) {\n mode = 'Create';\n }\n else {\n mode = 'Modified';\n }\n const key = rTable.name;\n retModified[key] = mode;\n }\n if (errmsg.length > 0) {\n return Promise.reject(new Error(errmsg));\n }\n return Promise.resolve(retModified);\n }\n catch (err) {\n return Promise.reject(new Error(`GetTableModified: ${err.message}`));\n }\n }\n static async getSynchroDate(db) {\n try {\n const stmt = `SELECT sync_date FROM sync_table WHERE id = 1;`;\n const res = await UtilsSQLite.queryAll(db, stmt, []);\n return Promise.resolve(res[0][\"sync_date\"]);\n }\n catch (err) {\n const msg = `GetSynchroDate: ${err.message}`;\n return Promise.reject(new Error(msg));\n }\n }\n static async getLastExportDate(db) {\n try {\n const stmt = `SELECT sync_date FROM sync_table WHERE id = 2;`;\n const res = await UtilsSQLite.queryAll(db, stmt, []);\n if (res.length === 0) {\n return Promise.resolve(-1);\n }\n else {\n return Promise.resolve(res[0][\"sync_date\"]);\n }\n }\n catch (err) {\n const msg = `getLastExport: ${err.message}`;\n return Promise.reject(new Error(msg));\n }\n }\n static async setLastExportDate(db, lastExportedDate) {\n try {\n const isTable = await UtilsSQLite.isTableExists(db, 'sync_table');\n if (!isTable) {\n return Promise.reject(new Error('setLastExportDate: No sync_table available'));\n }\n const sDate = Math.round(new Date(lastExportedDate).getTime() / 1000);\n let stmt = \"\";\n if (await UtilsExportJSON.getLastExportDate(db) > 0) {\n stmt = `UPDATE sync_table SET sync_date = ${sDate} WHERE id = 2;`;\n }\n else {\n stmt = `INSERT INTO sync_table (sync_date) VALUES (${sDate});`;\n }\n const changes = await UtilsSQLite.execute(db, stmt, false);\n if (changes < 0) {\n return { result: false, message: 'setLastExportDate failed' };\n }\n else {\n return { result: true };\n }\n }\n catch (err) {\n return { result: false, message: `setLastExportDate failed: ${err.message}` };\n }\n }\n static async delExportedRows(db) {\n let lastExportDate;\n try {\n // check if synchronization table exists\n const isTable = await UtilsSQLite.isTableExists(db, 'sync_table');\n if (!isTable) {\n return Promise.reject(new Error('DelExportedRows: No sync_table available'));\n }\n // get the last export date\n lastExportDate = await UtilsExportJSON.getLastExportDate(db);\n if (lastExportDate < 0) {\n return Promise.reject(new Error(\"DelExportedRows: no last exported date available\"));\n }\n // get the table' name list\n const resTables = await UtilsSQLite.getTableList(db);\n if (resTables.length === 0) {\n return Promise.reject(new Error(\"DelExportedRows: No table's names returned\"));\n }\n // Loop through the tables\n for (const table of resTables) {\n let lastId = -1;\n // define the delete statement\n const delStmt = `DELETE FROM ${table}\n WHERE sql_deleted = 1 AND last_modified < ${lastExportDate};`;\n lastId = await UtilsSQLite.run(db, delStmt, [], true, 'no');\n if (lastId < 0) {\n return Promise.reject(new Error('DelExportedRows: lastId < 0'));\n }\n }\n }\n catch (err) {\n return Promise.reject(new Error(`DelExportedRows failed: ${err.message}`));\n }\n }\n static async modEmbeddedParentheses(sstr) {\n const oParArray = UtilsExportJSON.indexOfChar(sstr, '(');\n const cParArray = UtilsExportJSON.indexOfChar(sstr, ')');\n if (oParArray.length != cParArray.length) {\n return Promise.reject(\"ModEmbeddedParentheses: Not same number of '(' & ')'\");\n }\n if (oParArray.length === 0) {\n return Promise.resolve(sstr);\n }\n let resStmt = sstr.substring(0, oParArray[0] - 1);\n for (let i = 0; i < oParArray.length; i++) {\n let str;\n if (i < oParArray.length - 1) {\n if (oParArray[i + 1] < cParArray[i]) {\n str = sstr.substring(oParArray[i] - 1, cParArray[i + 1]);\n i++;\n }\n else {\n str = sstr.substring(oParArray[i] - 1, cParArray[i]);\n }\n }\n else {\n str = sstr.substring(oParArray[i] - 1, cParArray[i]);\n }\n const newS = str.replace(/,/g, \"§\");\n resStmt += newS;\n if (i < oParArray.length - 1) {\n resStmt += sstr.substring(cParArray[i], oParArray[i + 1] - 1);\n }\n }\n resStmt += sstr.substring(cParArray[cParArray.length - 1], sstr.length);\n return Promise.resolve(resStmt);\n }\n static indexOfChar(str, char) {\n let tmpArr = [...str];\n char = char.toLowerCase();\n return tmpArr.reduce((results, elem, idx) => elem.toLowerCase() === char ? [...results, idx] : results, []);\n }\n}\n\nclass UtilsUpgrade {\n static async onUpgrade(mDB, vUpgDict, curVersion, targetVersion) {\n let changes = -1;\n const sortedKeys = new Int32Array(Object.keys(vUpgDict)\n .map(item => parseInt(item)))\n .sort();\n for (const versionKey of sortedKeys) {\n if (versionKey > curVersion && versionKey <= targetVersion) {\n const statements = vUpgDict[versionKey].statements;\n if (statements.length === 0) {\n return Promise.reject('onUpgrade: statements not given');\n }\n try {\n // set Foreign Keys Off\n await UtilsSQLite.setForeignKeyConstraintsEnabled(mDB.mDb, false);\n const initChanges = await UtilsSQLite.dbChanges(mDB.mDb);\n await UtilsUpgrade.executeStatementsProcess(mDB, statements);\n await UtilsSQLite.setVersion(mDB.mDb, versionKey);\n // set Foreign Keys On\n await UtilsSQLite.setForeignKeyConstraintsEnabled(mDB.mDb, true);\n changes = (await UtilsSQLite.dbChanges(mDB.mDb)) - initChanges;\n }\n catch (err) {\n return Promise.reject(new Error(`onUpgrade: ${err.message}`));\n }\n }\n }\n return Promise.resolve(changes);\n }\n ;\n static async executeStatementsProcess(mDB, statements) {\n try {\n await UtilsSQLite.beginTransaction(mDB.mDb, true);\n mDB.setIsTransActive(true);\n for (const statement of statements) {\n await UtilsSQLite.execute(mDB.mDb, statement, false);\n }\n await UtilsSQLite.commitTransaction(mDB.mDb, true);\n mDB.setIsTransActive(false);\n return Promise.resolve();\n }\n catch (err) {\n await UtilsSQLite.rollbackTransaction(mDB.mDb, true);\n mDB.setIsTransActive(false);\n return Promise.reject(`ExecuteStatementProcess: ${err}`);\n }\n }\n}\n\nclass Database {\n constructor(databaseName, version, upgDict, store, autoSave, wasmPath) {\n this.vUpgDict = {};\n this.autoSave = false;\n this.wasmPath = '/assets';\n this.isBackup = false;\n this.isTransactionActive = false;\n this.dbName = databaseName;\n this.store = store;\n this.version = version;\n this.mDb = null;\n this.vUpgDict = upgDict;\n this._isDBOpen = false;\n this.autoSave = autoSave;\n this.wasmPath = wasmPath;\n }\n async open() {\n const config = {\n locateFile: (file) => `${this.wasmPath}/${file}`\n };\n return new Promise((resolve, reject) => {\n try {\n sqlWasm(config).then(async (SQL) => {\n // retrieve the database if stored on localforage\n const retDB = await UtilsStore.getDBFromStore(this.dbName, this.store);\n if (retDB != null) {\n // Open existing database\n this.mDb = new SQL.Database(retDB);\n }\n else {\n // Create a new database\n this.mDb = new SQL.Database();\n await UtilsStore.setInitialDBToStore(this.dbName, this.store);\n }\n this._isDBOpen = true;\n // get the current version\n let curVersion = await UtilsSQLite.getVersion(this.mDb);\n if (this.version > curVersion && (Object.keys(this.vUpgDict)).length > 0) {\n try {\n // copy the db\n const isDB = await UtilsStore.isDBInStore(this.dbName, this.store);\n if (isDB) {\n await UtilsStore.copyDBToStore(this.dbName, `backup-${this.dbName}`, this.store);\n this.isBackup = true;\n }\n // execute the upgrade flow process\n const changes = await UtilsUpgrade.onUpgrade(this, this.vUpgDict, curVersion, this.version);\n if (changes === -1) {\n // restore the database from backup\n try {\n if (this.isBackup) {\n await UtilsStore.restoreDBFromStore(this.dbName, 'backup', this.store);\n }\n }\n catch (err) {\n return reject(new Error(`Open: ${err.message}`));\n }\n }\n // delete the backup database\n if (this.isBackup) {\n await UtilsStore.removeDBFromStore(`backup-${this.dbName}`, this.store);\n }\n }\n catch (err) {\n // restore the database from backup\n try {\n if (this.isBackup) {\n await UtilsStore.restoreDBFromStore(this.dbName, 'backup', this.store);\n }\n }\n catch (err) {\n return reject(new Error(`Open: ${err.message}`));\n }\n }\n }\n if (this.autoSave) {\n try {\n await this.saveToStore();\n }\n catch (err) {\n this._isDBOpen = false;\n return reject(`Open: ${err}`);\n }\n }\n // set Foreign Keys On\n await UtilsSQLite.setForeignKeyConstraintsEnabled(this.mDb, true);\n return resolve();\n });\n }\n catch (err) {\n this._isDBOpen = false;\n return reject(`in open ${err}`);\n }\n });\n }\n isDBOpen() {\n return this._isDBOpen;\n }\n async close() {\n if (this.mDb != null && this._isDBOpen) {\n try {\n // save the database to store\n await this.saveToStore(false);\n // close the database\n this.mDb.close();\n this._isDBOpen = false;\n }\n catch (err) {\n this._isDBOpen = false;\n return Promise.reject(`in close ${err}`);\n }\n }\n return Promise.resolve();\n }\n async saveToStore(setFK = true) {\n if (this.mDb != null && this._isDBOpen) {\n try {\n // save the database to store\n await UtilsStore.setDBToStore(this.mDb, this.dbName, this.store);\n if (setFK) {\n // set Foreign Keys On\n await UtilsSQLite.setForeignKeyConstraintsEnabled(this.mDb, true);\n }\n }\n catch (err) {\n return Promise.reject(`in saveToStore ${err}`);\n }\n }\n return Promise.resolve();\n }\n async exportDB() {\n // export the database\n try {\n const data = this.mDb.export();\n return data;\n }\n catch (err) {\n const msg = err.message ? err.message : err;\n return Promise.reject(`exportDB: ${msg}`);\n }\n }\n async getVersion() {\n if (this.mDb != null && this._isDBOpen) {\n try {\n // save the database to store\n const curVersion = await UtilsSQLite.getVersion(this.mDb);\n return Promise.resolve(curVersion);\n }\n catch (err) {\n this._isDBOpen = false;\n return Promise.reject(`in getVersion ${err}`);\n }\n }\n }\n async isDBExists(database) {\n try {\n const isExists = await UtilsStore.isDBInStore(database, this.store);\n return Promise.resolve(isExists);\n }\n catch (err) {\n return Promise.reject(`in isDBExists ${err}`);\n }\n }\n async deleteDB(database) {\n try {\n // test if file exists\n const isExists = await this.isDBExists(database);\n if (isExists && !this._isDBOpen) {\n // open the database\n await this.open();\n }\n // close the database\n await this.close();\n // delete the database\n if (isExists) {\n await UtilsStore.removeDBFromStore(database, this.store);\n }\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`DeleteDB: ${err.message}`));\n }\n }\n async beginTransaction() {\n if (!this._isDBOpen) {\n let msg = `BeginTransaction: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n try {\n await UtilsSQLite.beginTransaction(this.mDb, true);\n this.setIsTransActive(true);\n return 0;\n }\n catch (err) {\n let msg = `BeginTransaction: ${err.message}`;\n return Promise.reject(new Error(`${msg}`));\n }\n }\n async commitTransaction() {\n if (!this._isDBOpen) {\n let msg = `CommitTransaction: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n try {\n await UtilsSQLite.commitTransaction(this.mDb, true);\n this.setIsTransActive(false);\n return 0;\n }\n catch (err) {\n let msg = `CommitTransaction: ${err.message}`;\n return Promise.reject(new Error(`${msg}`));\n }\n }\n async rollbackTransaction() {\n if (!this._isDBOpen) {\n let msg = `RollbackTransaction: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n try {\n await UtilsSQLite.rollbackTransaction(this.mDb, true);\n this.setIsTransActive(false);\n return 0;\n }\n catch (err) {\n let msg = `RollbackTransaction: ${err.message}`;\n return Promise.reject(new Error(`${msg}`));\n }\n }\n isTransActive() {\n return this.isTransactionActive;\n }\n setIsTransActive(value) {\n this.isTransactionActive = value;\n }\n async executeSQL(sql, transaction = true) {\n if (!this._isDBOpen) {\n let msg = `ExecuteSQL: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n let initChanges = -1;\n try {\n initChanges = await UtilsSQLite.dbChanges(this.mDb);\n if (transaction && !this.isTransactionActive) {\n await this.beginTransaction();\n }\n }\n catch (err) {\n let msg = `executeSQL: ${err.message}`;\n return Promise.reject(new Error(`${msg}`));\n }\n try {\n const mChanges = await UtilsSQLite.execute(this.mDb, sql, false);\n if (mChanges < 0) {\n return Promise.reject(new Error('ExecuteSQL: changes < 0'));\n }\n if (transaction && this.isTransactionActive) {\n await this.commitTransaction();\n }\n const changes = (await UtilsSQLite.dbChanges(this.mDb)) - initChanges;\n return Promise.resolve(changes);\n }\n catch (err) {\n let msg = `ExecuteSQL: ${err.message}`;\n try {\n if (transaction && this.isTransactionActive)\n await this.rollbackTransaction();\n }\n catch (err) {\n msg += ` : ${err.message}`;\n }\n return Promise.reject(new Error(`ExecuteSQL: ${msg}`));\n }\n finally {\n if (transaction)\n this.isTransactionActive = false;\n if (this.autoSave) {\n try {\n await this.saveToStore();\n }\n catch (err) {\n this._isDBOpen = false;\n return Promise.reject(`ExecuteSQL: ${err}`);\n }\n }\n }\n }\n async execSet(set, transaction = true, returnMode = 'no') {\n if (!this._isDBOpen) {\n let msg = `ExecSet: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n const retRes = { changes: -1, lastId: -1 };\n let initChanges = -1;\n try {\n initChanges = await UtilsSQLite.dbChanges(this.mDb);\n if (transaction && !this.isTransactionActive) {\n await this.beginTransaction();\n }\n }\n catch (err) {\n let msg = `ExecSet: ${err.message}`;\n return Promise.reject(new Error(`${msg}`));\n }\n try {\n const retObj = await UtilsSQLite.executeSet(this.mDb, set, false, returnMode);\n let lastId = retObj[\"lastId\"];\n if (lastId < 0) {\n return Promise.reject(new Error('ExecSet: changes < 0'));\n }\n if (transaction && this.isTransactionActive)\n await this.commitTransaction();\n const changes = (await UtilsSQLite.dbChanges(this.mDb)) - initChanges;\n retRes.changes = changes;\n retRes.lastId = lastId;\n retRes.values = retObj[\"values\"] ? retObj[\"values\"] : [];\n return Promise.resolve(retRes);\n }\n catch (err) {\n let msg = `ExecSet: ${err.message}`;\n try {\n if (transaction && this.isTransactionActive)\n await this.rollbackTransaction();\n }\n catch (err) {\n msg += ` : ${err.message}`;\n }\n return Promise.reject(new Error(`ExecSet: ${msg}`));\n }\n finally {\n if (transaction)\n this.isTransactionActive = false;\n if (this.autoSave) {\n try {\n await this.saveToStore();\n }\n catch (err) {\n this._isDBOpen = false;\n return Promise.reject(`ExecSet: ${err}`);\n }\n }\n }\n }\n async selectSQL(sql, values) {\n if (!this._isDBOpen) {\n let msg = `SelectSQL: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n try {\n let retArr = await UtilsSQLite.queryAll(this.mDb, sql, values);\n return Promise.resolve(retArr);\n }\n catch (err) {\n return Promise.reject(new Error(`SelectSQL: ${err.message}`));\n }\n }\n async runSQL(statement, values, transaction = true, returnMode) {\n let lastId = -1;\n if (!this._isDBOpen) {\n let msg = `RunSQL: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n const retRes = { changes: -1, lastId: -1 };\n let initChanges = -1;\n try {\n initChanges = await UtilsSQLite.dbChanges(this.mDb);\n if (transaction && !this.isTransactionActive) {\n await this.beginTransaction();\n }\n }\n catch (err) {\n let msg = `RunSQL: ${err.message}`;\n return Promise.reject(new Error(`${msg}`));\n }\n try {\n const retObj = await UtilsSQLite.run(this.mDb, statement, values, false, returnMode);\n lastId = retObj[\"lastId\"];\n if (lastId < 0) {\n return Promise.reject(new Error('RunSQL: lastId < 0'));\n }\n if (transaction && this.isTransactionActive) {\n await this.commitTransaction();\n }\n const changes = (await UtilsSQLite.dbChanges(this.mDb)) - initChanges;\n retRes.changes = changes;\n retRes.lastId = lastId;\n retRes.values = retObj[\"values\"] ? retObj[\"values\"] : [];\n return Promise.resolve(retRes);\n }\n catch (err) {\n let msg = `RunSQL: ${err.message}`;\n try {\n if (transaction && this.isTransactionActive) {\n await this.rollbackTransaction();\n }\n }\n catch (err) {\n msg += ` : ${err.message}`;\n }\n return Promise.reject(new Error(`${msg}`));\n }\n finally {\n if (transaction)\n this.setIsTransActive(false);\n if (this.autoSave) {\n try {\n await this.saveToStore();\n }\n catch (err) {\n this._isDBOpen = false;\n return Promise.reject(`ExecSet: ${err}`);\n }\n }\n }\n }\n async getTableNames() {\n if (!this._isDBOpen) {\n let msg = `GetTableNames: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n try {\n let retArr = await UtilsSQLite.getTableList(this.mDb);\n return Promise.resolve(retArr);\n }\n catch (err) {\n return Promise.reject(new Error(`GetTableNames: ${err.message}`));\n }\n }\n async isTable(tableName) {\n if (!this._isDBOpen) {\n let msg = `isTable: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n try {\n const retB = await UtilsSQLite.isTableExists(this.mDb, tableName);\n return Promise.resolve(retB);\n }\n catch (err) {\n const msg = `IsTable: ${err.message}`;\n return Promise.reject(new Error(msg));\n }\n }\n async createSyncTable() {\n if (!this._isDBOpen) {\n let msg = `createSyncTable: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n let changes = -1;\n try {\n const retB = await UtilsSQLite.isTableExists(this.mDb, 'sync_table');\n if (!retB) {\n const isLastMod = await UtilsSQLite.isLastModified(this.mDb, this._isDBOpen);\n const isDel = await UtilsSQLite.isSqlDeleted(this.mDb, this._isDBOpen);\n if (isLastMod && isDel) {\n const date = Math.round(new Date().getTime() / 1000);\n let stmts = `\n CREATE TABLE IF NOT EXISTS sync_table (\n id INTEGER PRIMARY KEY NOT NULL,\n sync_date INTEGER\n );`;\n stmts += `INSERT INTO sync_table (sync_date) VALUES (\n \"${date}\");`;\n changes = await UtilsSQLite.execute(this.mDb, stmts, false);\n return Promise.resolve(changes);\n }\n else {\n return Promise.reject(new Error('No last_modified/sql_deleted columns in tables'));\n }\n }\n else {\n return Promise.resolve(0);\n }\n }\n catch (err) {\n const msg = `CreateSyncTable: ${err.message}`;\n return Promise.reject(new Error(msg));\n }\n }\n async getSyncDate() {\n if (!this._isDBOpen) {\n let msg = `getSyncDate: Database ${this.dbName} `;\n msg += `not opened`;\n return Promise.reject(new Error(msg));\n }\n try {\n const isTable = await UtilsSQLite.isTableExists(this.mDb, 'sync_table');\n if (!isTable) {\n return Promise.reject(new Error('No sync_table available'));\n }\n const res = await UtilsExportJSON.getSynchroDate(this.mDb);\n return Promise.resolve(res);\n }\n catch (err) {\n const msg = `getSyncDate: ${err.message}`;\n return Promise.reject(new Error(msg));\n }\n }\n async setSyncDate(syncDate) {\n if (!this._isDBOpen) {\n let msg = `SetSyncDate: Database ${this.dbName} `;\n msg += `not opened`;\n return { result: false, message: msg };\n }\n try {\n const isTable = await UtilsSQLite.isTableExists(this.mDb, 'sync_table');\n if (!isTable) {\n return Promise.reject(new Error('No sync_table available'));\n }\n const sDate = Math.round(new Date(syncDate).getTime() / 1000);\n let stmt = `UPDATE sync_table SET sync_date = `;\n stmt += `${sDate} WHERE id = 1;`;\n const changes = await UtilsSQLite.execute(this.mDb, stmt, false);\n if (changes < 0) {\n return { result: false, message: 'setSyncDate failed' };\n }\n else {\n return { result: true };\n }\n }\n catch (err) {\n return { result: false, message: `setSyncDate failed: ${err.message}` };\n }\n }\n async importJson(jsonData, importProgress) {\n let changes = 0;\n if (this._isDBOpen) {\n try {\n // set Foreign Keys Off\n await UtilsSQLite.setForeignKeyConstraintsEnabled(this.mDb, false);\n if (jsonData.tables && jsonData.tables.length > 0) {\n // create the database schema\n changes = await UtilsImportJSON.createDatabaseSchema(this, jsonData);\n let msg = `Schema creation completed changes: ${changes}`;\n importProgress.emit({ progress: msg });\n if (changes != -1) {\n // create the tables data\n changes += await UtilsImportJSON.createTablesData(this, jsonData, importProgress);\n let msg = `Tables data creation completed changes: ${changes}`;\n importProgress.emit({ progress: msg });\n }\n }\n if (jsonData.views && jsonData.views.length > 0) {\n // create the views\n changes += await UtilsImportJSON.createViews(this, jsonData);\n }\n // set Foreign Keys On\n await UtilsSQLite.setForeignKeyConstraintsEnabled(this.mDb, true);\n await this.saveToStore();\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(new Error(`ImportJson: ${err.message}`));\n }\n }\n else {\n return Promise.reject(new Error(`ImportJson: database is closed`));\n }\n }\n async exportJson(mode, exportProgress) {\n const inJson = {};\n inJson.database = this.dbName.slice(0, -9);\n inJson.version = this.version;\n inJson.encrypted = false;\n inJson.mode = mode;\n if (this._isDBOpen) {\n try {\n const isTable = await UtilsSQLite.isTableExists(this.mDb, 'sync_table');\n if (isTable) {\n await UtilsExportJSON\n .setLastExportDate(this.mDb, (new Date()).toISOString());\n }\n const retJson = await UtilsExportJSON\n .createExportObject(this.mDb, inJson, exportProgress);\n const keys = Object.keys(retJson);\n if (keys.length === 0) {\n const msg = `ExportJson: return Object is empty ` +\n `No data to synchronize`;\n return Promise.reject(new Error(msg));\n }\n const isValid = UtilsJSON.isJsonSQLite(retJson);\n if (isValid) {\n return Promise.resolve(retJson);\n }\n else {\n return Promise.reject(new Error(`ExportJson: retJson not valid`));\n }\n }\n catch (err) {\n return Promise.reject(new Error(`ExportJson: ${err.message}`));\n }\n }\n else {\n return Promise.reject(new Error(`ExportJson: database is closed`));\n }\n }\n async deleteExportedRows() {\n if (this._isDBOpen) {\n try {\n await UtilsExportJSON.delExportedRows(this.mDb);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(new Error(`deleteExportedRows: ${err.message}`));\n }\n }\n else {\n return Promise.reject(new Error(`deleteExportedRows: database is closed`));\n }\n }\n}\n\nvar localforage = createCommonjsModule(function (module, exports) {\n/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){{module.exports=f();}})(function(){return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof commonjsRequire==\"function\"&&commonjsRequire;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r);}return n[o].exports}var i=typeof commonjsRequire==\"function\"&&commonjsRequire;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof commonjsGlobal !== \"undefined\" ? commonjsGlobal : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n},{}],2:[function(_dereq_,module,exports){\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof commonjsGlobal !== \"undefined\" ? commonjsGlobal : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n});\n\nvar jszip_min = createCommonjsModule(function (module, exports) {\n/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){module.exports=e();}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h);}return o[r].exports}for(var l=\"function\"==typeof commonjsRequire&&commonjsRequire,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l};},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i;}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o;},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\");},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return -1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return -1^e}(0|t,e,e.length,0):0};},{\"./utils\":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null;},{}],6:[function(e,t,r){var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n};},{lie:37}],7:[function(e,t,r){var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={};}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1);},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0);},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null;},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta});};},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})};},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[];}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}));},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}});}else this.accumulate=!0;},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null;},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i;},{\"../utils\":32}],19:[function(e,t,r){var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e);}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){var n=e(\"./DataReader\");function i(e){n.call(this,e);}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){var n=e(\"./ArrayReader\");function i(e){n.call(this,e);}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)};},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\";},{}],24:[function(e,t,r){var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e;}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta});},t.exports=s;},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0);}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e);},t.exports=s;},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0);}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length;}i.prototype.processChunk.call(this,e);},t.exports=s;},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat();},function(e){t.error(e);});}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null;},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0));},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return !1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t);}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s;},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null;}n.prototype={push:function(e){this.emit(\"data\",e);},end:function(){if(this.isFinished)return !1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0;}catch(e){this.emit(\"error\",e);}return !0},error:function(e){return !this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[];},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n;},{}],29:[function(e,t,r){var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\");}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t);}).on(\"error\",function(e){n=[],r(e);}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n);}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length);}else t=this.leftOver.concat(t);this.leftOver=null;}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta});},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null);},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta});},s.Utf8EncodeWorker=l;},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0);},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4));}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i);}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t};},{\"./common\":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return -1^e};},{}],46:[function(e,t,r){var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return (e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0));}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm);}function U(e,t){e.pending_buf[e.pending++]=t;}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t;}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f;}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else {var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1;}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73);}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91);}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103);}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead);}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else {if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0;}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30;}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3;}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else {if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2;}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3;}else {for(z=_+7;l>>=_)),u>>>=7,l-=7;}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k;}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra;}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra;}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window;}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]];}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255;}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o));}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8);}(e);};},{\"../utils/common\":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0;};},{}],54:[function(e,t,r){(function(e){!function(r,n){if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){browser$1.nextTick(function(){c(e);});}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1;},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\");}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data);},function(e){t.port2.postMessage(e);}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null;},s.appendChild(t);}):function(e){setTimeout(c,0,e);},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r{if(\"undefined\"==typeof self)return !1;return \"showOpenFilePicker\"in self})(),t=e?Promise.resolve().then(function(){return l}):Promise.resolve().then(function(){return v});async function n(...e){return (await t).default(...e)}e?Promise.resolve().then(function(){return y}):Promise.resolve().then(function(){return b});const a=e?Promise.resolve().then(function(){return m}):Promise.resolve().then(function(){return k});async function o(...e){return (await a).default(...e)}const s=async e=>{const t=await e.getFile();return t.handle=e,t};var c=async(e=[{}])=>{Array.isArray(e)||(e=[e]);const t=[];e.forEach((e,n)=>{t[n]={description:e.description||\"Files\",accept:{}},e.mimeTypes?e.mimeTypes.map(r=>{t[n].accept[r]=e.extensions||[];}):t[n].accept[\"*/*\"]=e.extensions||[];});const n=await window.showOpenFilePicker({id:e[0].id,startIn:e[0].startIn,types:t,multiple:e[0].multiple||!1,excludeAcceptAllOption:e[0].excludeAcceptAllOption||!1}),r=await Promise.all(n.map(s));return e[0].multiple?r:r[0]},l={__proto__:null,default:c};function u(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+\" is not an object.\"));var t=e.done;return Promise.resolve(e.value).then(function(e){return {value:e,done:t}})}return u=function(e){this.s=e,this.n=e.next;},u.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new u(e)}const p=async(e,t,n=e.name,r)=>{const i=[],a=[];var o,s=!1,c=!1;try{for(var l,d=function(e){var t,n,r,i=2;for(\"undefined\"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);i--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new u(t.call(e));n=\"@@asyncIterator\",r=\"@@iterator\";}throw new TypeError(\"Object is not async iterable\")}(e.values());s=!(l=await d.next()).done;s=!1){const o=l.value,s=`${n}/${o.name}`;\"file\"===o.kind?a.push(o.getFile().then(t=>(t.directoryHandle=e,t.handle=o,Object.defineProperty(t,\"webkitRelativePath\",{configurable:!0,enumerable:!0,get:()=>s})))):\"directory\"!==o.kind||!t||r&&r(o)||i.push(p(o,t,s,r));}}catch(e){c=!0,o=e;}finally{try{s&&null!=d.return&&await d.return();}finally{if(c)throw o}}return [...(await Promise.all(i)).flat(),...await Promise.all(a)]};var d=async(e={})=>{e.recursive=e.recursive||!1,e.mode=e.mode||\"read\";const t=await window.showDirectoryPicker({id:e.id,startIn:e.startIn,mode:e.mode});return (await(await t.values()).next()).done?[t]:p(t,e.recursive,void 0,e.skipDirectory)},y={__proto__:null,default:d},f=async(e,t=[{}],n=null,r=!1,i=null)=>{Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||\"Untitled\";const a=[];let o=null;if(e instanceof Blob&&e.type?o=e.type:e.headers&&e.headers.get(\"content-type\")&&(o=e.headers.get(\"content-type\")),t.forEach((e,t)=>{a[t]={description:e.description||\"Files\",accept:{}},e.mimeTypes?(0===t&&o&&e.mimeTypes.push(o),e.mimeTypes.map(n=>{a[t].accept[n]=e.extensions||[];})):o?a[t].accept[o]=e.extensions||[]:a[t].accept[\"*/*\"]=e.extensions||[];}),n)try{await n.getFile();}catch(e){if(n=null,r)throw e}const s=n||await window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1});!n&&i&&i(s);const c=await s.createWritable();if(\"stream\"in e){const t=e.stream();return await t.pipeTo(c),s}return \"body\"in e?(await e.body.pipeTo(c),s):(await c.write(await e),await c.close(),s)},m={__proto__:null,default:f},w=async(e=[{}])=>(Array.isArray(e)||(e=[e]),new Promise((t,n)=>{const r=document.createElement(\"input\");r.type=\"file\";const i=[...e.map(e=>e.mimeTypes||[]),...e.map(e=>e.extensions||[])].join();r.multiple=e[0].multiple||!1,r.accept=i||\"\",r.style.display=\"none\",document.body.append(r);const a=e=>{\"function\"==typeof o&&o(),t(e);},o=e[0].legacySetup&&e[0].legacySetup(a,()=>o(n),r),s=()=>{window.removeEventListener(\"focus\",s),r.remove();};r.addEventListener(\"click\",()=>{window.addEventListener(\"focus\",s);}),r.addEventListener(\"change\",()=>{window.removeEventListener(\"focus\",s),r.remove(),a(r.multiple?Array.from(r.files):r.files[0]);}),\"showPicker\"in HTMLInputElement.prototype?r.showPicker():r.click();})),v={__proto__:null,default:w},h=async(e=[{}])=>(Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise((t,n)=>{const r=document.createElement(\"input\");r.type=\"file\",r.webkitdirectory=!0;const i=e=>{\"function\"==typeof a&&a(),t(e);},a=e[0].legacySetup&&e[0].legacySetup(i,()=>a(n),r);r.addEventListener(\"change\",()=>{let t=Array.from(r.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(t=t.filter(t=>t.webkitRelativePath.split(\"/\").every(t=>!e[0].skipDirectory({name:t,kind:\"directory\"})))):t=t.filter(e=>2===e.webkitRelativePath.split(\"/\").length),i(t);}),\"showPicker\"in HTMLInputElement.prototype?r.showPicker():r.click();})),b={__proto__:null,default:h},P=async(e,t={})=>{Array.isArray(t)&&(t=t[0]);const n=document.createElement(\"a\");let r=e;\"body\"in e&&(r=await async function(e,t){const n=e.getReader(),r=new ReadableStream({start:e=>async function t(){return n.read().then(({done:n,value:r})=>{if(!n)return e.enqueue(r),t();e.close();})}()}),i=new Response(r),a=await i.blob();return n.releaseLock(),new Blob([a],{type:t})}(e.body,e.headers.get(\"content-type\"))),n.download=t.fileName||\"Untitled\",n.href=URL.createObjectURL(await r);const i=()=>{\"function\"==typeof a&&a();},a=t.legacySetup&&t.legacySetup(i,()=>a(),n);return n.addEventListener(\"click\",()=>{setTimeout(()=>URL.revokeObjectURL(n.href),3e4),i();}),n.click(),null},k={__proto__:null,default:P};\n\nconst jeepSqliteCss = \":host{display:block;--jeep-sqlite-top:10%;--jeep-sqlite-right:1%;--jeep-sqlite-font-size:2em;--jeep-sqlite-padding:2%;--jeep-sqlite-background-color:#a9a9a9;--jeep-sqlite-color:#ffffff}#fileElem{display:none}#pickButton{position:absolute;top:var(--jeep-sqlite-top);right:var(--jeep-sqlite-right);font-size:var(--jeep-sqlite-font-size);padding:var(--jeep-sqlite-padding);background-color:var(--jeep-sqlite-background-color);color:var(--jeep-sqlite-color)}#saveButton{position:absolute;top:var(--jeep-sqlite-top);right:var(--jeep-sqlite-right);font-size:var(--jeep-sqlite-font-size);padding:var(--jeep-sqlite-padding);background-color:var(--jeep-sqlite-background-color);color:var(--jeep-sqlite-color)}\";\n\nconst JeepSqlite = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.importProgress = createEvent(this, \"jeepSqliteImportProgress\", 7);\n this.exportProgress = createEvent(this, \"jeepSqliteExportProgress\", 7);\n this.HTTPRequestEnded = createEvent(this, \"jeepSqliteHTTPRequestEnded\", 7);\n this.PickDatabaseEnded = createEvent(this, \"jeepSqlitePickDatabaseEnded\", 7);\n this.SaveDatabaseEnded = createEvent(this, \"jeepSqliteSaveDatabaseToDisk\", 7);\n this.isStore = false;\n this._dbDict = {};\n this.databaseList = {};\n this._versionUpgrades = {};\n this._overwrite = true;\n this.autoSave = false;\n this.typeOrm = false;\n this.wasmPath = undefined;\n this.pickText = undefined;\n this.saveText = undefined;\n this.buttonOptions = undefined;\n this.innerAutoSave = undefined;\n this.innerTypeOrm = undefined;\n this.innerWasmPath = undefined;\n this.innerPickText = undefined;\n this.innerSaveText = undefined;\n this.innerButtonOptions = undefined;\n }\n //*****************************\n //* Watch on Property Changes *\n //*****************************\n parseAutoSave(newValue) {\n this.innerAutoSave = newValue;\n }\n parseTypeOrm(newValue) {\n this.innerTypeOrm = newValue;\n }\n parseWasmPath(newValue) {\n this.innerWasmPath = newValue;\n }\n parsePickText(newValue) {\n this.innerPickText = newValue;\n }\n parseSaveText(newValue) {\n this.innerSaveText = newValue;\n }\n parseButtonOptions(newValue) {\n this.innerButtonOptions = JSON.parse(newValue);\n const keys = Object.keys(this.innerButtonOptions);\n for (const key of keys) {\n switch (key) {\n case \"top\": {\n this.el.style.setProperty('--jeep-sqlite-top', this.innerButtonOptions[key]);\n break;\n }\n case \"right\": {\n this.el.style.setProperty('--jeep-sqlite-right', this.innerButtonOptions[key]);\n break;\n }\n case \"fontSize\": {\n this.el.style.setProperty('--jeep-sqlite-font-size', this.innerButtonOptions[key]);\n break;\n }\n case \"padding\": {\n this.el.style.setProperty('--jeep-sqlite-padding', this.innerButtonOptions[key]);\n break;\n }\n case \"backgroundColor\": {\n this.el.style.setProperty('--jeep-sqlite-background-color', this.innerButtonOptions[key]);\n break;\n }\n case \"color\": {\n this.el.style.setProperty('--jeep-sqlite-color', this.innerButtonOptions[key]);\n break;\n }\n }\n }\n }\n //**********************\n //* Method Definitions *\n //**********************\n async echo(options) {\n return options;\n }\n async createConnection(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const version = options.version ? options.version : 1;\n const readonly = options.readonly ? options.readonly : false;\n try {\n await this._createConnection(dbName, version, readonly);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isConnection(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n const ret = await this._isConnection(dbName, readonly);\n return Promise.resolve(ret);\n }\n async closeConnection(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n await this._closeConnection(dbName, readonly);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async open(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n await this._open(dbName, readonly);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async close(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n await this._close(dbName, readonly);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getVersion(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const res = await this._getVersion(dbName, readonly);\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async beginTransaction(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n if (readonly) {\n return Promise.reject(`BeginTransaction: not allowed in read-only mode`);\n }\n try {\n const changes = await this._beginTransaction(dbName);\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async commitTransaction(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n if (readonly) {\n return Promise.reject(`CommitTransaction: not allowed in read-only mode`);\n }\n try {\n const changes = await this._commitTransaction(dbName);\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async rollbackTransaction(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n if (readonly) {\n return Promise.reject(`BeginTransaction: not allowed in read-only mode`);\n }\n try {\n const changes = await this._rollbackTransaction(dbName);\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isTransactionActive(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n if (readonly) {\n return Promise.reject(`isTransactionActive: not allowed in read-only mode`);\n }\n try {\n const res = await this._isTransactionActive(dbName);\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async execute(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n if (!keys.includes('statements') || options.statements.length === 0) {\n return Promise.reject('Must provide raw SQL statements');\n }\n const dbName = options.database;\n const statements = options.statements;\n let transaction = true;\n const readonly = options.readonly ? options.readonly : false;\n if (keys.includes('transaction'))\n transaction = options.transaction;\n try {\n const changes = await this._execute(dbName, statements, transaction, readonly);\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async executeSet(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n if (!keys.includes('set') || options.set.length === 0) {\n return Promise.reject('Must provide a non-empty set of SQL statements');\n }\n const dbName = options.database;\n const setOfStatements = options.set;\n let transaction = true;\n if (keys.includes('transaction'))\n transaction = options.transaction;\n const readonly = options.readonly ? options.readonly : false;\n const returnMode = options.returnMode ? options.returnMode : 'no';\n try {\n const changes = await this._executeSet(dbName, setOfStatements, transaction, readonly, returnMode);\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async run(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n if (!keys.includes('statement') || options.statement.length === 0) {\n return Promise.reject('Must provide a run statement');\n }\n const dbName = options.database;\n const statement = options.statement;\n let values = [];\n if (keys.includes('values')) {\n values = options.values.length > 0 ? options.values : [];\n }\n let transaction = true;\n if (keys.includes('transaction'))\n transaction = options.transaction;\n const readonly = options.readonly ? options.readonly : false;\n const returnMode = options.returnMode ? options.returnMode : 'no';\n try {\n const retChanges = await this._run(dbName, statement, values, transaction, readonly, returnMode);\n return Promise.resolve(retChanges);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async query(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n if (!keys.includes('statement') || options.statement.length === 0) {\n return Promise.reject('Must provide a query statement');\n }\n let values = [];\n if (keys.includes('values')) {\n values = options.values.length > 0 ? options.values : [];\n }\n const dbName = options.database;\n const statement = options.statement;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const retValues = await this._query(dbName, statement, values, readonly);\n return Promise.resolve(retValues);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getTableList(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const retValues = await this._getTableList(dbName, readonly);\n return Promise.resolve(retValues);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isDBExists(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const ret = await this._isDBExists(dbName, readonly);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isDBOpen(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const ret = await this._isDBOpen(dbName, readonly);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteDatabase(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n return await this._deleteDatabase(dbName, readonly);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isStoreOpen() {\n return Promise.resolve(this.isStore);\n }\n async copyFromAssets(options) {\n let overwrite;\n if (options != null) {\n const keys = Object.keys(options);\n overwrite = keys.includes('overwrite') ? options.overwrite : true;\n }\n else {\n overwrite = true;\n }\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n try {\n await this._copyFromAssets(overwrite);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isTableExists(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n if (!keys.includes('table')) {\n return Promise.reject('Must provide a table name');\n }\n const tableName = options.table;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const ret = await this._isTableExists(dbName, tableName, readonly);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async createSyncTable(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const ret = await this._createSyncTable(dbName, readonly);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getSyncDate(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const ret = await this._getSyncDate(dbName, readonly);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async setSyncDate(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n if (!keys.includes('syncdate')) {\n return Promise.reject('Must provide a synchronization date');\n }\n const dbName = options.database;\n const syncDate = options.syncdate;\n const readonly = options.readonly ? options.readonly : false;\n try {\n await this._setSyncDate(dbName, syncDate, readonly);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isJsonValid(options) {\n const keys = Object.keys(options);\n if (!keys.includes('jsonstring')) {\n return Promise.reject('Must provide a json object');\n }\n const jsonStrObj = options.jsonstring;\n try {\n const ret = await this._isJsonValid(jsonStrObj);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async importFromJson(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('jsonstring')) {\n return Promise.reject('Must provide a json object');\n }\n const jsonStrObj = options.jsonstring;\n try {\n const ret = await this._importFromJson(jsonStrObj);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async exportToJson(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n if (!keys.includes('jsonexportmode')) {\n return Promise.reject('Must provide a json export mode');\n }\n const dbName = options.database;\n const exportMode = options.jsonexportmode;\n const readonly = options.readonly ? options.readonly : false;\n try {\n const ret = await this._exportToJson(dbName, exportMode, readonly);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteExportedRows(options) {\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n await this._deleteExportedRows(dbName, readonly);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async addUpgradeStatement(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n if (!keys.includes('upgrade')) {\n return Promise.reject('Must provide an upgrade capSQLiteVersionUpgrade Object');\n }\n const dbName = options.database;\n const upgrades = options.upgrade;\n for (const upgrade of upgrades) {\n const versionUpgradeKeys = Object.keys(upgrade);\n if (!versionUpgradeKeys.includes('toVersion') ||\n !versionUpgradeKeys.includes('statements')) {\n return Promise.reject('Must provide an upgrade capSQLiteVersionUpgrade Object');\n }\n if (typeof upgrade.toVersion != 'number') {\n return Promise.reject('upgrade.toVersion must be a number');\n }\n if (this._versionUpgrades[dbName]) {\n this._versionUpgrades[dbName][upgrade.toVersion] = upgrade;\n }\n else {\n const upgVDict = {};\n upgVDict[upgrade.toVersion] = upgrade;\n this._versionUpgrades[dbName] = upgVDict;\n }\n }\n return Promise.resolve();\n }\n async isDatabase(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n try {\n const ret = await this._isDatabase(dbName);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getDatabaseList() {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n try {\n const ret = await this._getDatabaseList();\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async checkConnectionsConsistency(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('dbNames')) {\n return Promise.reject(`Must provide a list of connection's name`);\n }\n const dbNames = options.dbNames;\n if (!keys.includes('openModes')) {\n return Promise.reject(`Must provide a list of connection's open mode`);\n }\n const openModes = options.openModes;\n try {\n const ret = await this._checkConnectionsConsistency(dbNames, openModes);\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async saveToStore(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n const readonly = options.readonly ? options.readonly : false;\n try {\n await this._saveToStore(dbName, readonly);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async saveToLocalDisk(options) {\n const keys = Object.keys(options);\n if (!keys.includes('database')) {\n return Promise.reject('Must provide a database name');\n }\n const dbName = options.database;\n try {\n await this._saveToLocalDisk(dbName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getFromLocalDiskToStore(options) {\n const overwrite = options.overwrite ? options.overwrite : true;\n if (e) {\n console.log('Using the File System Access API.');\n }\n else {\n console.log('Using the fallback implementation.');\n }\n try {\n await this._getFromLocalDiskToStore(overwrite);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getFromHTTPRequest(options) {\n if (!this.isStore) {\n return Promise.reject(`>>> jeep-sqlite StoreName: ${this.storeName} is not opened`);\n }\n let keys = Object.keys(options);\n if (!keys.includes('url')) {\n return Promise.reject('Must provide an url');\n }\n const url = options.url;\n const overwrite = options.overwrite ? options.overwrite : true;\n try {\n await this._getFromHTTPRequest(url, overwrite);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n //*******************************\n //* Component Lifecycle Methods *\n //*******************************\n connectedCallback() {\n this.parseAutoSave(this.autoSave !== undefined ? this.autoSave : false);\n this.parseTypeOrm(this.typeOrm !== undefined ? this.typeOrm : false);\n this.parseWasmPath(this.wasmPath !== undefined ? this.wasmPath : '/assets');\n this.parseSaveText(this.saveText !== undefined ? this.saveText : 'Save');\n this.parsePickText(this.pickText !== undefined ? this.pickText : 'Pick a database');\n if (this.buttonOptions !== undefined) {\n this.parseButtonOptions(this.buttonOptions);\n }\n this.openStore(\"jeepSqliteStore\", \"databases\").then((mStore) => {\n this.isStore = mStore;\n });\n }\n componentWillLoad() {\n }\n async componentDidLoad() {\n this._element = this.el.shadowRoot;\n if (!this.isStore) {\n console.log('jeep-sqlite isStore = false');\n }\n }\n //******************************\n //* Private Method Definitions *\n //******************************\n async _createConnection(database, version, readonly) {\n let upgDict = {};\n const vUpgKeys = Object.keys(this._versionUpgrades);\n if (vUpgKeys.length !== 0 && vUpgKeys.includes(database)) {\n upgDict = this._versionUpgrades[database];\n }\n const dbDictKeys = Object.keys(this._dbDict);\n let mDB;\n try {\n if (dbDictKeys.length > 0 && (dbDictKeys.includes(\"RW_\" + database) ||\n dbDictKeys.includes(\"RO_\" + database))) {\n mDB = dbDictKeys.includes(\"RW_\" + database) ? this._dbDict[\"RW_\" + database]\n : this._dbDict[\"RO_\" + database];\n }\n else {\n mDB = new Database(database + 'SQLite.db', version, upgDict, this.store, this.innerAutoSave, this.innerWasmPath);\n }\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n this._dbDict[connName] = mDB;\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n }\n async _isConnection(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (keys.includes(connName)) {\n return { result: true };\n }\n else {\n return { result: false };\n }\n }\n async _closeConnection(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`CloseConnection: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n if (mDB.isDBOpen()) {\n // close the database\n try {\n await mDB.close();\n }\n catch (err) {\n return Promise.reject(`CloseConnection: close ${database} failed ${err}`);\n }\n }\n // remove the connection from dictionary\n delete this._dbDict[connName];\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`CloseConnection: ${err.message}`);\n }\n }\n async _open(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`Open: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n await mDB.open();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`Open: ${err.message}`);\n }\n }\n async _close(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`Close: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n await mDB.close();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`Close: ${err.message}`);\n }\n }\n async _saveToStore(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`SaveToStore: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n await mDB.saveToStore();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`SaveToStore: ${err.message}`);\n }\n }\n async _saveToLocalDisk(database) {\n try {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject('_saveToLocalDisk: No available connection for ' + `${database}`);\n }\n const mDb = this._dbDict[connName];\n const uint = await mDb.exportDB();\n this._blob = await this.uint2blob(uint);\n const dbName = `${database}SQLite.db`;\n this._opts = { fileName: dbName, extensions: ['.db'] };\n this._buttonSaveEl = document.createElement('button');\n this._buttonSaveEl.setAttribute(\"id\", \"saveButton\");\n this._buttonSaveEl.innerHTML = `${this.innerSaveText} ${dbName}`;\n this._element.appendChild(this._buttonSaveEl);\n this._buttonSaveEl.addEventListener(\"click\", this.saveFile.bind(this));\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`_saveToLocalDisk: ${err.message}`);\n }\n }\n async _getFromLocalDiskToStore(overwrite) {\n this._buttonPickEl = document.createElement('button');\n this._buttonPickEl.setAttribute(\"id\", \"pickButton\");\n this._buttonPickEl.innerHTML = `${this.innerPickText}`;\n this._element.appendChild(this._buttonPickEl);\n this._buttonPickEl.addEventListener(\"click\", this.pickDatabase.bind(this));\n this._overwrite = overwrite;\n return Promise.resolve();\n }\n async pickDatabase() {\n try {\n const blob = await n({ extensions: ['.db'] });\n let uInt8Array = await this.blob2uint(blob);\n const databaseName = this.removePathSuffix(blob.name);\n const dbName = this.setPathSuffix(blob.name);\n // check if dbName exists\n const isExist = await UtilsStore.isDBInStore(dbName, this.store);\n if (!isExist) {\n await UtilsStore.saveDBToStore(dbName, uInt8Array, this.store);\n }\n else {\n if (this._overwrite) {\n await UtilsStore.removeDBFromStore(dbName, this.store);\n await UtilsStore.saveDBToStore(dbName, uInt8Array, this.store);\n }\n else {\n this.PickDatabaseEnded.emit({ message: `Error: cannot overwrite ${dbName}` });\n }\n }\n this._element.removeChild(this._buttonPickEl);\n this.PickDatabaseEnded.emit({ db_name: databaseName });\n }\n catch (err) {\n const msg = err.message ? err.message : err;\n this.PickDatabaseEnded.emit({ message: msg });\n }\n }\n async saveFile() {\n try {\n await o(this._blob, [this._opts]);\n const databaseName = this._opts.fileName;\n this._element.removeChild(this._buttonSaveEl);\n this.SaveDatabaseEnded.emit({ db_name: databaseName });\n }\n catch (err) {\n const msg = err.message ? err.message : err;\n this.SaveDatabaseEnded.emit({ message: msg });\n }\n }\n async _getVersion(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`Open: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n const version = await mDB.getVersion();\n const ret = {};\n ret.version = version;\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(`Open: ${err.message}`);\n }\n }\n async _beginTransaction(database) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`BeginTransaction: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n let changes = {};\n const ret = await mDB.beginTransaction();\n changes = { changes: { changes: ret } };\n return Promise.resolve(changes);\n }\n async _commitTransaction(database) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`CommitTransaction: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n let changes = {};\n const ret = await mDB.commitTransaction();\n changes = { changes: { changes: ret } };\n return Promise.resolve(changes);\n }\n async _rollbackTransaction(database) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`RollbackTransaction: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n let changes = {};\n const ret = await mDB.rollbackTransaction();\n changes = { changes: { changes: ret } };\n return Promise.resolve(changes);\n }\n async _isTransactionActive(database) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`IsTransactionActive: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n let result = {};\n const res = mDB.isTransActive();\n result = { result: res };\n return Promise.resolve(result);\n }\n async _execute(database, statements, transaction, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`Execute: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n if (readonly) {\n return Promise.reject(`Execute: not allowed in read-only mode`);\n }\n let changes = {};\n const command = statements.substring(0, 6);\n if (this.innerAutoSave && command === \"COMMIT\" && this.innerTypeOrm) {\n // fix issue for typeORM with autosave\n changes = { changes: { changes: 0 } };\n return Promise.resolve(changes);\n }\n try {\n const ret = await mDB.executeSQL(statements, transaction);\n changes = { changes: { changes: ret } };\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(`Execute: ${err.message}`);\n }\n }\n async _executeSet(database, setOfStatements, transaction, readonly, returnMode) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`ExecuteSet: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n if (readonly) {\n return Promise.reject(`ExecuteSet: not allowed in read-only mode`);\n }\n for (const sStmt of setOfStatements) {\n if (!('statement' in sStmt) || !('values' in sStmt)) {\n return Promise.reject('ExecuteSet: Must provide a set as ' + 'Array of {statement,values}');\n }\n }\n try {\n const ret = await mDB.execSet(setOfStatements, transaction, returnMode);\n const changes = { changes: { changes: ret.changes, lastId: ret.lastId,\n values: ret.values } };\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(`ExecuteSet: ${err.message}`);\n }\n }\n async _run(database, statement, values, transaction, readonly, returnMode) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`Run: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n if (readonly) {\n return Promise.reject(`Run: not allowed in read-only mode`);\n }\n let changes = {};\n const command = statement.substring(0, 6);\n if (this.innerAutoSave && command === \"COMMIT\") {\n // fix issue for typeORM with autosave\n changes = { changes: { changes: 0 } };\n return Promise.resolve(changes);\n }\n try {\n const ret = await mDB.runSQL(statement, values, transaction, returnMode);\n changes = { changes: { changes: ret.changes, lastId: ret.lastId, values: ret.values } };\n return Promise.resolve(changes);\n }\n catch (err) {\n return Promise.reject(`Run: ${err.message}`);\n }\n }\n async _query(database, statement, values, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`Query: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n let ret = [];\n const command = statement.substring(0, 6);\n if (this.innerAutoSave && command === \"COMMIT\") {\n // fix issue for typeORM with autosave\n return Promise.resolve({ values: ret });\n }\n try {\n ret = await mDB.selectSQL(statement, values);\n return Promise.resolve({ values: ret });\n }\n catch (err) {\n return Promise.reject(`Query failed: ${err.message}`);\n }\n }\n async _getTableList(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`GetTableList: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n let ret = [];\n try {\n ret = await mDB.getTableNames();\n return Promise.resolve({ values: ret });\n }\n catch (err) {\n return Promise.reject(`GetTableList failed: ${err.message}`);\n }\n }\n async _isDBExists(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`IsDBExists: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n const ret = await mDB.isDBExists(database + 'SQLite.db');\n const result = { result: ret };\n return Promise.resolve(result);\n }\n catch (err) {\n return Promise.reject(`IsDBExists: ${err.message}`);\n }\n }\n async _isDBOpen(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`IsDBOpen: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n const ret = await mDB.isDBOpen(database + 'SQLite.db');\n const result = { result: ret };\n return Promise.resolve(result);\n }\n catch (err) {\n return Promise.reject(`IsDBOpen: ${err.message}`);\n }\n }\n async _deleteDatabase(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`DeleteDatabase: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n if (readonly) {\n return Promise.reject(`DeleteDatabase: not allowed in read-only mode`);\n }\n try {\n await mDB.deleteDB(database + 'SQLite.db');\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`DeleteDatabase: ${err.message}`);\n }\n }\n async _isTableExists(database, table, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject(`IsTableExists: No available connection for ${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n const ret = await mDB.isTable(table);\n const result = { result: ret };\n return Promise.resolve(result);\n }\n catch (err) {\n return Promise.reject(`IsTableExists: ${err.message}`);\n }\n }\n async _createSyncTable(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject('CreateSyncTable: No available connection for ' + `${database}`);\n }\n const mDB = this._dbDict[connName];\n if (readonly) {\n return Promise.reject(`CreateSyncTable: not allowed in read-only mode`);\n }\n try {\n const ret = await mDB.createSyncTable();\n return Promise.resolve({ changes: { changes: ret } });\n }\n catch (err) {\n return Promise.reject(`CreateSyncTable: ${err.message}`);\n }\n }\n async _getSyncDate(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject('GetSyncDate: No available connection for ' + `${database}`);\n }\n const mDB = this._dbDict[connName];\n try {\n const ret = await mDB.getSyncDate();\n return Promise.resolve({ syncDate: ret });\n }\n catch (err) {\n return Promise.reject(`GetSyncDate: ${err.message}`);\n }\n }\n async _setSyncDate(database, syncDate, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject('SetSyncDate: No available connection for ' + `${database}`);\n }\n const mDB = this._dbDict[connName];\n if (readonly) {\n return Promise.reject(`SetSyncDate: not allowed in read-only mode`);\n }\n try {\n const ret = await mDB.setSyncDate(syncDate);\n if (ret.result) {\n return Promise.resolve();\n }\n else {\n return Promise.reject(`SetSyncDate: ${ret.message}`);\n }\n }\n catch (err) {\n return Promise.reject(`SetSyncDate: ${err.message}`);\n }\n }\n async _isJsonValid(jsonStrObj) {\n const jsonObj = JSON.parse(jsonStrObj);\n const isValid = await UtilsJSON.isJsonSQLite(jsonObj);\n if (!isValid) {\n return Promise.reject('IsJsonValid: Stringify Json Object not Valid');\n }\n else {\n return Promise.resolve({ result: true });\n }\n }\n async _importFromJson(jsonStrObj) {\n var _a, _b;\n const jsonObj = JSON.parse(jsonStrObj);\n const isValid = await UtilsJSON.isJsonSQLite(jsonObj);\n if (!isValid) {\n return Promise.reject('ImportFromJson: Stringify Json Object not Valid');\n }\n const vJsonObj = jsonObj;\n const dbName = `${vJsonObj.database}SQLite.db`;\n const dbVersion = (_a = vJsonObj.version) !== null && _a !== void 0 ? _a : 1;\n const mode = vJsonObj.mode;\n const overwrite = (_b = vJsonObj.overwrite) !== null && _b !== void 0 ? _b : false;\n // Create the database\n const mDb = new Database(dbName, dbVersion, {}, this.store, this.innerAutoSave, this.innerWasmPath);\n try {\n if (overwrite && mode === 'full') {\n const isExists = UtilsStore.isDBInStore(dbName, this.store);\n if (isExists) {\n await UtilsStore.removeDBFromStore(dbName, this.store);\n }\n }\n // Open the database\n await mDb.open();\n const tableList = await mDb.getTableNames();\n if (mode === 'full' && tableList.length > 0) {\n const curVersion = await mDb.getVersion();\n if (dbVersion < curVersion) {\n return Promise.reject(`ImportFromJson: Cannot import a version lower than ${curVersion}`);\n }\n if (curVersion === dbVersion) {\n return Promise.resolve({ changes: { changes: 0 } });\n }\n }\n // Import the JsonSQLite Object\n const changes = await mDb.importJson(vJsonObj, this.importProgress);\n // Close the database\n await mDb.close();\n return Promise.resolve({ changes: { changes: changes } });\n }\n catch (err) {\n return Promise.reject(`ImportFromJson: ${err.message}`);\n }\n }\n async _exportToJson(database, exportMode, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = readonly ? \"RO_\" + database : \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject('ExportToJson: No available connection for ' + `${database}`);\n }\n const mDb = this._dbDict[connName];\n try {\n const ret = await mDb.exportJson(exportMode, this.exportProgress);\n const keys = Object.keys(ret);\n if (keys.includes('message')) {\n return Promise.reject(`ExportToJson: ${ret.message}`);\n }\n else {\n return Promise.resolve({ export: ret });\n }\n }\n catch (err) {\n return Promise.reject(`ExportToJson: ${err.message}`);\n }\n }\n async _deleteExportedRows(database, readonly) {\n const keys = Object.keys(this._dbDict);\n const connName = \"RW_\" + database;\n if (!keys.includes(connName)) {\n return Promise.reject('ExportToJson: No available connection for ' + `${database}`);\n }\n const mDb = this._dbDict[connName];\n if (readonly) {\n return Promise.reject(`SetSyncDate: not allowed in read-only mode`);\n }\n try {\n await mDb.deleteExportedRows();\n }\n catch (err) {\n return Promise.reject(`DeleteExportedRows: ${err.message}`);\n }\n }\n async _copyFromAssets(overwrite) {\n const res = await this.loadJSON('/assets/databases/databases.json');\n if (res != null) {\n this.databaseList = JSON.parse(res);\n const keys = Object.keys(this.databaseList);\n if (keys.includes(\"databaseList\")) {\n try {\n for (const dbName of this.databaseList.databaseList) {\n if (dbName.substring(dbName.length - 3) === \".db\") {\n await this.copyDatabase(`/assets/databases/${dbName}`, overwrite);\n }\n if (dbName.substring(dbName.length - 4) === \".zip\") {\n await this.unzipDatabase(`/assets/databases/${dbName}`, overwrite);\n }\n }\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`CopyFromAssets: ${err.message}`);\n }\n }\n else {\n return Promise.reject(`CopyFromAssets: no key databaseList in databases.json`);\n }\n }\n else {\n return Promise.reject(`CopyFromAssets: no databases.json file in /assets/databases folder`);\n }\n }\n async _getFromHTTPRequest(url, overwrite) {\n try {\n let message;\n if (url.substring(url.length - 3) === \".db\") {\n await this.copyDatabase(url, overwrite);\n message = \"db\";\n }\n if (url.substring(url.length - 4) === \".zip\") {\n await this.unzipDatabase(url, overwrite);\n message = \"zip\";\n }\n this.HTTPRequestEnded.emit({ message: message });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`GetFromHTTPRequest: ${err.message}`);\n }\n }\n async _isDatabase(database) {\n try {\n const ret = await UtilsStore.isDBInStore(database + 'SQLite.db', this.store);\n const result = { result: ret };\n return Promise.resolve(result);\n }\n catch (err) {\n return Promise.reject(`IsDatabase: ${err.message}`);\n }\n }\n async _getDatabaseList() {\n try {\n const ret = await UtilsStore.getDBListFromStore(this.store);\n const result = { values: ret };\n return Promise.resolve(result);\n }\n catch (err) {\n return Promise.reject(`GetDatabaseList: ${err.message}`);\n }\n }\n async _checkConnectionsConsistency(dbNames, openModes) {\n const ret = {};\n ret.result = false;\n const dbConns = [];\n dbNames.forEach((value, i) => {\n dbConns.push(`${openModes[i]}_${value}`);\n });\n try {\n let inConnectionsSet = new Set(Object.keys(this._dbDict));\n const outConnectionSet = new Set(dbConns);\n if (outConnectionSet.size === 0) {\n await this._resetDbDict(Object.keys(this._dbDict));\n return Promise.resolve(ret);\n }\n if (inConnectionsSet.size < outConnectionSet.size) {\n await this._resetDbDict(Object.keys(this._dbDict));\n return Promise.resolve(ret);\n }\n if (inConnectionsSet.size > outConnectionSet.size) {\n const opt = {};\n for (const key of inConnectionsSet) {\n if (!Array.from(outConnectionSet.keys()).includes(key)) {\n let readonly = false;\n if (key.substring(0, 3) === \"RO_\") {\n readonly = true;\n }\n opt.database = key.substring(3);\n opt.readonly = readonly;\n await this._closeConnection(opt.database, opt.readonly);\n }\n }\n }\n inConnectionsSet = new Set(Object.keys(this._dbDict));\n if (inConnectionsSet.size === outConnectionSet.size) {\n const symDiffSet = await this.symmetricDifference(inConnectionsSet, outConnectionSet);\n if (symDiffSet.size === 0) {\n ret.result = true;\n return Promise.resolve(ret);\n }\n else {\n await this._resetDbDict(Object.keys(this._dbDict));\n return Promise.resolve(ret);\n }\n }\n else {\n await this._resetDbDict(Object.keys(this._dbDict));\n return Promise.resolve(ret);\n }\n }\n catch (err) {\n return Promise.reject(`CheckConnectionsConsistency: ${err.message}`);\n }\n }\n async _resetDbDict(keys) {\n try {\n for (const key of keys) {\n const opt = {};\n let readonly = false;\n if (key.substring(0, 3) === \"RO_\") {\n readonly = true;\n }\n opt.database = key.substring(3);\n opt.readonly = readonly;\n await this._closeConnection(opt.database, opt.readonly);\n }\n }\n catch (err) {\n return Promise.reject(`ResetDbDict: ${err.message}`);\n }\n }\n async symmetricDifference(setA, setB) {\n let _difference = new Set();\n setA.forEach(element => {\n _difference.add(element.substring(3));\n });\n let _compare = new Set();\n setB.forEach(element => {\n _compare.add(element.substring(3));\n });\n for (const elem of _compare) {\n if (_difference.has(elem)) {\n _difference.delete(elem);\n }\n else {\n _difference.add(elem);\n }\n }\n return _difference;\n }\n async unzipDatabase(dbZipName, overwrite) {\n return new Promise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', dbZipName, true);\n xhr.responseType = 'arraybuffer';\n xhr.onerror = () => {\n reject(new Error(`unzipDatabase: failed`));\n };\n xhr.onload = () => {\n jszip_min.loadAsync(xhr.response).then(async (zip) => {\n const keys = Object.keys(zip.files);\n try {\n // loop through file in the zip\n for (const filename of keys) {\n await this.retrieveDBFromZip(zip.files, filename, overwrite);\n }\n resolve();\n }\n catch (err) {\n reject(new Error(`unzipDatabase Error: ${err.message}`));\n }\n });\n };\n xhr.send();\n });\n }\n async retrieveDBFromZip(zipFiles, fileName, overwrite) {\n return new Promise((resolve, reject) => {\n zipFiles[fileName].async('nodebuffer').then(async (fileData) => {\n try {\n const uInt8Array = new Uint8Array(fileData);\n const dbName = this.setPathSuffix(fileName);\n // check if dbName exists\n const isExist = await UtilsStore.isDBInStore(dbName, this.store);\n if (!isExist) {\n await UtilsStore.saveDBToStore(dbName, uInt8Array, this.store);\n }\n else {\n if (overwrite) {\n await UtilsStore.removeDBFromStore(dbName, this.store);\n await UtilsStore.saveDBToStore(dbName, uInt8Array, this.store);\n }\n else {\n reject(new Error(`retrieveDBFromZip: cannot overwrite ${dbName}`));\n }\n }\n resolve();\n }\n catch (err) {\n reject(new Error(`retrieveDBFromZip:: ${err.message}`));\n }\n });\n });\n }\n async copyDatabase(dbInName, overwrite) {\n return new Promise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n var uInt8Array;\n xhr.open('GET', dbInName, true);\n xhr.responseType = 'arraybuffer';\n xhr.onerror = () => {\n reject(new Error(`CopyDatabase: failed`));\n };\n xhr.onload = () => {\n uInt8Array = new Uint8Array(xhr.response);\n };\n xhr.onloadend = async () => {\n const dbName = this.setPathSuffix(dbInName);\n // check if dbName exists\n const isExist = await UtilsStore.isDBInStore(dbName, this.store);\n if (!isExist) {\n await UtilsStore.saveDBToStore(dbName, uInt8Array, this.store);\n }\n else {\n if (overwrite) {\n await UtilsStore.removeDBFromStore(dbName, this.store);\n await UtilsStore.saveDBToStore(dbName, uInt8Array, this.store);\n }\n else {\n reject(new Error(`CopyDatabase Error: cannot overwrite ${dbName}`));\n }\n }\n resolve();\n };\n xhr.send();\n });\n }\n async loadJSON(jsonFileName) {\n return new Promise((resolve, reject) => {\n var xobj = new XMLHttpRequest();\n xobj.overrideMimeType(\"application/json\");\n xobj.open('GET', jsonFileName, true);\n xobj.onerror = () => {\n reject(new Error(`LoadJSON: failed`));\n };\n xobj.onreadystatechange = function () {\n if (xobj.status == 404)\n resolve(null);\n if (xobj.readyState == 4 && xobj.status == 200) {\n // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode\n resolve(xobj.responseText);\n }\n };\n xobj.send(null);\n });\n }\n async openStore(dbName, tableName) {\n let ret = false;\n const config = this.setConfig(dbName, tableName);\n this.store = localforage.createInstance(config);\n if (this.store != null) {\n this.storeName = dbName;\n ret = true;\n }\n return ret;\n }\n setConfig(dbName, tableName) {\n const config = {\n name: dbName,\n storeName: tableName,\n driver: [localforage.INDEXEDDB],\n version: 1,\n };\n return config;\n }\n removePathSuffix(db) {\n return db.includes(\"SQLite.db\") ?\n db.split(\"SQLite.db\")[0] :\n db.substring(db.length - 3) === \".db\" ?\n db.slice(0, db.lastIndexOf(\".\")) :\n db;\n }\n setPathSuffix(db) {\n let toDb = db.slice(db.lastIndexOf(\"/\") + 1);\n const ext = \".db\";\n if (db.substring(db.length - 3) === ext) {\n if (!db.includes(\"SQLite.db\")) {\n toDb = db.slice(db.lastIndexOf(\"/\") + 1, -3) + 'SQLite.db';\n }\n }\n return toDb;\n }\n async blob2uint(blob) {\n return new Response(blob).arrayBuffer().then(buffer => {\n const uint = new Uint8Array(buffer);\n return uint;\n });\n }\n async uint2blob(uint) {\n const blob = new Blob([uint.buffer]);\n return Promise.resolve(blob);\n }\n render() {\n return;\n }\n static get assetsDirs() { return [\"assets\"]; }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"autoSave\": [\"parseAutoSave\"],\n \"typeOrm\": [\"parseTypeOrm\"],\n \"wasmPath\": [\"parseWasmPath\"],\n \"pickText\": [\"parsePickText\"],\n \"saveText\": [\"parseSaveText\"],\n \"buttonOptions\": [\"parseButtonOptions\"]\n }; }\n};\nJeepSqlite.style = jeepSqliteCss;\n\nexport { JeepSqlite as jeep_sqlite };\n\n//# sourceMappingURL=jeep-sqlite.entry.js.map"],"sourceRoot":""}