@tanstack/browser-db-sqlite-persistence 0.2.25 → 0.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"opfs-worker-accoEoax.js","sources":["../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/dist/wa-sqlite.mjs","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/sqlite-constants.js","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/sqlite-api.js","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/VFS.js","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/FacadeVFS.js","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js","../../db/dist/esm/errors.js","../../db-sqlite-persistence-core/dist/esm/errors.js","../src/opfs-worker.ts"],"sourcesContent":["async function Module(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!=\"renderer\";var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"qa\"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"wa-sqlite.wasm\")}return new URL(\"wa-sqlite.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}var tempDouble;var tempI64;class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);function getValue(ptr,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":return HEAP8[ptr];case\"i8\":return HEAP8[ptr];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":abort(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];case\"*\":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=true;function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":HEAP8[ptr]=value;break;case\"i8\":HEAP8[ptr]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":abort(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{if(!ptr)return\"\";var end=findStringEnd(HEAPU8,ptr,maxBytesToRead,ignoreNul);return UTF8Decoder.decode(HEAPU8.subarray(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"]);var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>crypto.getRandomValues(view);var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);return UTF8Decoder.decode(heapOrArray.buffer?heapOrArray.subarray(idx,endPtr):new Uint8Array(heapOrArray.slice(idx,endPtr)))};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(globalThis.window?.prompt){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>HEAPU8.fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"<generic error, no stack>\"}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}HEAP8.set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_modeStringToFlags=str=>{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=\"undefined\")Browser.init();for(var plugin of preloadPlugins){if(plugin[\"canHandle\"](fullname)){return plugin[\"handle\"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url==\"string\"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]===\".\"){continue}if(parts[i]===\"..\"){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+\"/\"+parts.slice(i+1).join(\"/\");nlinks--;continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+\"/\"+link}path=link+\"/\"+parts.slice(i+1).join(\"/\");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}if(perms.includes(\"w\")&&!(node.mode&146)){return 2}if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else if(FS.isDir(node.mode)){return 31}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}var mode=FS.flagsToPermissionString(flags);if(FS.isDir(node.mode)){if(mode!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,mode)},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){abort(`Invalid encoding type \"${opts.encoding}\"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(globalThis.XMLHttpRequest){abort(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else{try{obj.contents=readBinary(obj.url)}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)abort(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")abort(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort(\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;tempI64=[stats.blocks>>>0,(tempDouble=stats.blocks,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+8>>2]=tempI64[0],HEAP32[buf+12>>2]=tempI64[1];tempI64=[stats.bfree>>>0,(tempDouble=stats.bfree,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+16>>2]=tempI64[0],HEAP32[buf+20>>2]=tempI64[1];tempI64=[stats.bavail>>>0,(tempDouble=stats.bavail,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];tempI64=[stats.files>>>0,(tempDouble=stats.files,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+32>>2]=tempI64[0],HEAP32[buf+36>>2]=tempI64[1];tempI64=[stats.ffree>>>0,(tempDouble=stats.ffree,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return-61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);var now=Date.now(),atime,mtime;if(!times){atime=now;mtime=now}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];if(nanoseconds==1073741823){atime=now}else if(nanoseconds==1073741822){atime=null}else{atime=seconds*1e3+nanoseconds/(1e3*1e3)}times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];if(nanoseconds==1073741823){mtime=now}else if(nanoseconds==1073741822){mtime=null}else{mtime=seconds*1e3+nanoseconds/(1e3*1e3)}}if((mtime??atime)!==null){FS.utime(path,atime,mtime)}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __abort_js=()=>abort(\"\");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var timers={};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _emscripten_date_now=()=>Date.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);var rtn=stream.stream_ops?.fsync?.(stream);return rtn}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify===\"object\"?Asyncify.handleAsync.bind(Asyncify):null;Module[\"handleAsync\"]=handleAsync;const targets=new Map;Module[\"setCallback\"]=(key,target)=>targets.set(key,target);Module[\"getCallback\"]=key=>targets.get(key);Module[\"deleteCallback\"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver===\"function\"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error(\"Synchronous WebAssembly cannot call async function\")}const result=f.apply(receiver,args);if(typeof result?.then==\"function\"){console.error(\"unexpected Promise\",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i<offset+count;i++){var item=getWasmTableEntry(i);if(item){functionsInTableMap.set(item,i)}}}};var functionsInTableMap;var getFunctionAddress=func=>{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}return wasmTable[\"grow\"](1)};var setWasmTableEntry=(idx,func)=>wasmTable.set(idx,func);var uleb128EncodeWithLen=arr=>{const n=arr.length;return[n%128|128,n>>7,...arr]};var wasmTypeCodes={i:127,p:127,j:126,f:125,d:124,e:111};var generateTypePack=types=>uleb128EncodeWithLen(Array.from(types,type=>{var code=wasmTypeCodes[type];return code}));var convertJsFunctionToWasm=(func,sig)=>{var bytes=Uint8Array.of(0,97,115,109,1,0,0,0,1,...uleb128EncodeWithLen([1,96,...generateTypePack(sig.slice(1)),...generateTypePack(sig[0]===\"v\"?\"\":sig[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports[\"f\"];return wrappedFunc};var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++}HEAP32[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str=\"\";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=new TextDecoder(\"utf-16le\");var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd(HEAPU16,idx,maxBytesToRead/2,ignoreNul);return UTF16Decoder.decode(HEAPU16.subarray(idx,endIdx))};var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str=\"\";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=HEAPU32[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32)}return str};var intArrayToString=array=>{var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")};var _getTempRet0=getTempRet0;FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();adapters_support();{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"getTempRet0\"]=getTempRet0;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"addFunction\"]=addFunction;Module[\"setValue\"]=setValue;Module[\"getValue\"]=getValue;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"intArrayFromString\"]=intArrayFromString;Module[\"intArrayToString\"]=intArrayToString;Module[\"AsciiToString\"]=AsciiToString;Module[\"UTF16ToString\"]=UTF16ToString;Module[\"stringToUTF16\"]=stringToUTF16;Module[\"UTF32ToString\"]=UTF32ToString;Module[\"stringToUTF32\"]=stringToUTF32;Module[\"writeArrayToMemory\"]=writeArrayToMemory;Module[\"_getTempRet0\"]=_getTempRet0;var _powersync_init_static,_sqlite3_status64,_sqlite3_status,_sqlite3_msize,_sqlite3_db_status,_sqlite3_vfs_find,_sqlite3_vfs_register,_sqlite3_vfs_unregister,_sqlite3_release_memory,_sqlite3_soft_heap_limit64,_sqlite3_memory_used,_sqlite3_hard_heap_limit64,_sqlite3_memory_highwater,_sqlite3_malloc,_sqlite3_malloc64,_sqlite3_free,_sqlite3_realloc,_sqlite3_realloc64,_sqlite3_str_vappendf,_sqlite3_str_append,_sqlite3_str_appendchar,_sqlite3_str_appendall,_sqlite3_str_appendf,_sqlite3_str_finish,_sqlite3_str_errcode,_sqlite3_str_length,_sqlite3_str_value,_sqlite3_str_reset,_sqlite3_str_new,_sqlite3_vmprintf,_sqlite3_mprintf,_sqlite3_vsnprintf,_sqlite3_snprintf,_sqlite3_log,_sqlite3_randomness,_sqlite3_stricmp,_sqlite3_strnicmp,_sqlite3_os_init,_sqlite3_os_end,_sqlite3_serialize,_sqlite3_prepare_v2,_sqlite3_step,_sqlite3_column_int64,_sqlite3_reset,_sqlite3_exec,_sqlite3_column_int,_sqlite3_finalize,_sqlite3_deserialize,_sqlite3_database_file_object,_sqlite3_backup_init,_sqlite3_backup_step,_sqlite3_backup_finish,_sqlite3_backup_remaining,_sqlite3_backup_pagecount,_sqlite3_clear_bindings,_sqlite3_value_blob,_sqlite3_value_text,_sqlite3_value_bytes,_sqlite3_value_bytes16,_sqlite3_value_double,_sqlite3_value_int,_sqlite3_value_int64,_sqlite3_value_subtype,_sqlite3_value_pointer,_sqlite3_value_text16,_sqlite3_value_text16be,_sqlite3_value_text16le,_sqlite3_value_type,_sqlite3_value_encoding,_sqlite3_value_nochange,_sqlite3_value_frombind,_sqlite3_value_dup,_sqlite3_value_free,_sqlite3_result_blob,_sqlite3_result_blob64,_sqlite3_result_double,_sqlite3_result_error,_sqlite3_result_error16,_sqlite3_result_int,_sqlite3_result_int64,_sqlite3_result_null,_sqlite3_result_pointer,_sqlite3_result_subtype,_sqlite3_result_text,_sqlite3_result_text64,_sqlite3_result_text16,_sqlite3_result_text16be,_sqlite3_result_text16le,_sqlite3_result_value,_sqlite3_result_error_toobig,_sqlite3_result_zeroblob,_sqlite3_result_zeroblob64,_sqlite3_result_error_code,_sqlite3_result_error_nomem,_sqlite3_user_data,_sqlite3_context_db_handle,_sqlite3_vtab_nochange,_sqlite3_vtab_in_first,_sqlite3_vtab_in_next,_sqlite3_aggregate_context,_sqlite3_get_auxdata,_sqlite3_set_auxdata,_sqlite3_column_count,_sqlite3_data_count,_sqlite3_column_blob,_sqlite3_column_bytes,_sqlite3_column_bytes16,_sqlite3_column_double,_sqlite3_column_text,_sqlite3_column_value,_sqlite3_column_text16,_sqlite3_column_type,_sqlite3_column_name,_sqlite3_column_name16,_sqlite3_bind_blob,_sqlite3_bind_blob64,_sqlite3_bind_double,_sqlite3_bind_int,_sqlite3_bind_int64,_sqlite3_bind_null,_sqlite3_bind_pointer,_sqlite3_bind_text,_sqlite3_bind_text64,_sqlite3_bind_text16,_sqlite3_bind_value,_sqlite3_bind_zeroblob,_sqlite3_bind_zeroblob64,_sqlite3_bind_parameter_count,_sqlite3_bind_parameter_name,_sqlite3_bind_parameter_index,_sqlite3_db_handle,_sqlite3_stmt_readonly,_sqlite3_stmt_isexplain,_sqlite3_stmt_explain,_sqlite3_stmt_busy,_sqlite3_next_stmt,_sqlite3_stmt_status,_sqlite3_sql,_sqlite3_expanded_sql,_sqlite3_value_numeric_type,_sqlite3_blob_open,_sqlite3_blob_close,_sqlite3_blob_read,_sqlite3_blob_write,_sqlite3_blob_bytes,_sqlite3_blob_reopen,_sqlite3_set_authorizer,_sqlite3_strglob,_sqlite3_strlike,_sqlite3_errmsg,_sqlite3_load_extension,_sqlite3_enable_load_extension,_sqlite3_auto_extension,_sqlite3_cancel_auto_extension,_sqlite3_reset_auto_extension,_sqlite3_prepare,_sqlite3_prepare_v3,_sqlite3_prepare16,_sqlite3_prepare16_v2,_sqlite3_prepare16_v3,_sqlite3_get_table,_sqlite3_free_table,_sqlite3_create_module,_sqlite3_create_module_v2,_sqlite3_drop_modules,_sqlite3_declare_vtab,_sqlite3_vtab_on_conflict,_sqlite3_vtab_config,_sqlite3_vtab_collation,_sqlite3_vtab_in,_sqlite3_vtab_rhs_value,_sqlite3_vtab_distinct,_sqlite3_keyword_name,_sqlite3_keyword_count,_sqlite3_keyword_check,_sqlite3_complete,_sqlite3_complete16,_sqlite3_libversion,_sqlite3_libversion_number,_sqlite3_threadsafe,_sqlite3_initialize,_sqlite3_shutdown,_sqlite3_config,_sqlite3_db_mutex,_sqlite3_db_release_memory,_sqlite3_db_cacheflush,_sqlite3_db_config,_sqlite3_last_insert_rowid,_sqlite3_set_last_insert_rowid,_sqlite3_changes64,_sqlite3_changes,_sqlite3_total_changes64,_sqlite3_total_changes,_sqlite3_txn_state,_sqlite3_close,_sqlite3_close_v2,_sqlite3_busy_handler,_sqlite3_progress_handler,_sqlite3_busy_timeout,_sqlite3_interrupt,_sqlite3_is_interrupted,_sqlite3_create_function,_sqlite3_create_function_v2,_sqlite3_create_window_function,_sqlite3_create_function16,_sqlite3_overload_function,_sqlite3_trace_v2,_sqlite3_commit_hook,_sqlite3_update_hook,_sqlite3_rollback_hook,_sqlite3_autovacuum_pages,_sqlite3_wal_autocheckpoint,_sqlite3_wal_hook,_sqlite3_wal_checkpoint_v2,_sqlite3_wal_checkpoint,_sqlite3_error_offset,_sqlite3_errmsg16,_sqlite3_errcode,_sqlite3_extended_errcode,_sqlite3_system_errno,_sqlite3_errstr,_sqlite3_limit,_sqlite3_open,_sqlite3_open_v2,_sqlite3_open16,_sqlite3_create_collation,_sqlite3_create_collation_v2,_sqlite3_create_collation16,_sqlite3_collation_needed,_sqlite3_collation_needed16,_sqlite3_get_clientdata,_sqlite3_set_clientdata,_sqlite3_get_autocommit,_sqlite3_table_column_metadata,_sqlite3_sleep,_sqlite3_extended_result_codes,_sqlite3_file_control,_sqlite3_test_control,_sqlite3_create_filename,_sqlite3_free_filename,_sqlite3_uri_parameter,_sqlite3_uri_key,_sqlite3_uri_boolean,_sqlite3_uri_int64,_sqlite3_filename_database,_sqlite3_filename_journal,_sqlite3_filename_wal,_sqlite3_db_name,_sqlite3_db_filename,_sqlite3_db_readonly,_sqlite3_compileoption_used,_sqlite3_compileoption_get,_sqlite3_sourceid,_memcmp,_malloc,_free,_RegisterExtensionFunctions,_getSqliteFree,_main,_libauthorizer_set_authorizer,_libfunction_create_function,_libhook_commit_hook,_libhook_update_hook,_libprogress_progress_handler,_libvfs_vfs_register,_memcpy,_memset,_emscripten_builtin_memalign,__emscripten_timeout,__emscripten_tempret_get,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,dynCall_viiiij,dynCall_vijii,dynCall_iiiij,dynCall_viji,dynCall_iij,dynCall_iijii,dynCall_iiji,dynCall_iiiiiij,dynCall_iiij,dynCall_jii,dynCall_ji,dynCall_vij,dynCall_iiiiijii,dynCall_j,dynCall_jj,dynCall_jiij,dynCall_iiiiji,dynCall_iiiijii,dynCall_ij,dynCall_viiji,dynCall_viijii,dynCall_iiiijji,memory,_sqlite3_version,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_powersync_init_static=Module[\"_powersync_init_static\"]=wasmExports[\"ra\"];_sqlite3_status64=Module[\"_sqlite3_status64\"]=wasmExports[\"sa\"];_sqlite3_status=Module[\"_sqlite3_status\"]=wasmExports[\"ta\"];_sqlite3_msize=Module[\"_sqlite3_msize\"]=wasmExports[\"ua\"];_sqlite3_db_status=Module[\"_sqlite3_db_status\"]=wasmExports[\"va\"];_sqlite3_vfs_find=Module[\"_sqlite3_vfs_find\"]=wasmExports[\"wa\"];_sqlite3_vfs_register=Module[\"_sqlite3_vfs_register\"]=wasmExports[\"xa\"];_sqlite3_vfs_unregister=Module[\"_sqlite3_vfs_unregister\"]=wasmExports[\"ya\"];_sqlite3_release_memory=Module[\"_sqlite3_release_memory\"]=wasmExports[\"za\"];_sqlite3_soft_heap_limit64=Module[\"_sqlite3_soft_heap_limit64\"]=wasmExports[\"Aa\"];_sqlite3_memory_used=Module[\"_sqlite3_memory_used\"]=wasmExports[\"Ba\"];_sqlite3_hard_heap_limit64=Module[\"_sqlite3_hard_heap_limit64\"]=wasmExports[\"Ca\"];_sqlite3_memory_highwater=Module[\"_sqlite3_memory_highwater\"]=wasmExports[\"Da\"];_sqlite3_malloc=Module[\"_sqlite3_malloc\"]=wasmExports[\"Ea\"];_sqlite3_malloc64=Module[\"_sqlite3_malloc64\"]=wasmExports[\"Fa\"];_sqlite3_free=Module[\"_sqlite3_free\"]=wasmExports[\"Ga\"];_sqlite3_realloc=Module[\"_sqlite3_realloc\"]=wasmExports[\"Ha\"];_sqlite3_realloc64=Module[\"_sqlite3_realloc64\"]=wasmExports[\"Ia\"];_sqlite3_str_vappendf=Module[\"_sqlite3_str_vappendf\"]=wasmExports[\"Ja\"];_sqlite3_str_append=Module[\"_sqlite3_str_append\"]=wasmExports[\"Ka\"];_sqlite3_str_appendchar=Module[\"_sqlite3_str_appendchar\"]=wasmExports[\"La\"];_sqlite3_str_appendall=Module[\"_sqlite3_str_appendall\"]=wasmExports[\"Ma\"];_sqlite3_str_appendf=Module[\"_sqlite3_str_appendf\"]=wasmExports[\"Na\"];_sqlite3_str_finish=Module[\"_sqlite3_str_finish\"]=wasmExports[\"Oa\"];_sqlite3_str_errcode=Module[\"_sqlite3_str_errcode\"]=wasmExports[\"Pa\"];_sqlite3_str_length=Module[\"_sqlite3_str_length\"]=wasmExports[\"Qa\"];_sqlite3_str_value=Module[\"_sqlite3_str_value\"]=wasmExports[\"Ra\"];_sqlite3_str_reset=Module[\"_sqlite3_str_reset\"]=wasmExports[\"Sa\"];_sqlite3_str_new=Module[\"_sqlite3_str_new\"]=wasmExports[\"Ta\"];_sqlite3_vmprintf=Module[\"_sqlite3_vmprintf\"]=wasmExports[\"Ua\"];_sqlite3_mprintf=Module[\"_sqlite3_mprintf\"]=wasmExports[\"Va\"];_sqlite3_vsnprintf=Module[\"_sqlite3_vsnprintf\"]=wasmExports[\"Wa\"];_sqlite3_snprintf=Module[\"_sqlite3_snprintf\"]=wasmExports[\"Xa\"];_sqlite3_log=Module[\"_sqlite3_log\"]=wasmExports[\"Ya\"];_sqlite3_randomness=Module[\"_sqlite3_randomness\"]=wasmExports[\"Za\"];_sqlite3_stricmp=Module[\"_sqlite3_stricmp\"]=wasmExports[\"_a\"];_sqlite3_strnicmp=Module[\"_sqlite3_strnicmp\"]=wasmExports[\"$a\"];_sqlite3_os_init=Module[\"_sqlite3_os_init\"]=wasmExports[\"ab\"];_sqlite3_os_end=Module[\"_sqlite3_os_end\"]=wasmExports[\"bb\"];_sqlite3_serialize=Module[\"_sqlite3_serialize\"]=wasmExports[\"cb\"];_sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=wasmExports[\"db\"];_sqlite3_step=Module[\"_sqlite3_step\"]=wasmExports[\"eb\"];_sqlite3_column_int64=Module[\"_sqlite3_column_int64\"]=wasmExports[\"fb\"];_sqlite3_reset=Module[\"_sqlite3_reset\"]=wasmExports[\"gb\"];_sqlite3_exec=Module[\"_sqlite3_exec\"]=wasmExports[\"hb\"];_sqlite3_column_int=Module[\"_sqlite3_column_int\"]=wasmExports[\"ib\"];_sqlite3_finalize=Module[\"_sqlite3_finalize\"]=wasmExports[\"jb\"];_sqlite3_deserialize=Module[\"_sqlite3_deserialize\"]=wasmExports[\"kb\"];_sqlite3_database_file_object=Module[\"_sqlite3_database_file_object\"]=wasmExports[\"lb\"];_sqlite3_backup_init=Module[\"_sqlite3_backup_init\"]=wasmExports[\"mb\"];_sqlite3_backup_step=Module[\"_sqlite3_backup_step\"]=wasmExports[\"nb\"];_sqlite3_backup_finish=Module[\"_sqlite3_backup_finish\"]=wasmExports[\"ob\"];_sqlite3_backup_remaining=Module[\"_sqlite3_backup_remaining\"]=wasmExports[\"pb\"];_sqlite3_backup_pagecount=Module[\"_sqlite3_backup_pagecount\"]=wasmExports[\"qb\"];_sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=wasmExports[\"rb\"];_sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=wasmExports[\"sb\"];_sqlite3_value_text=Module[\"_sqlite3_value_text\"]=wasmExports[\"tb\"];_sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=wasmExports[\"ub\"];_sqlite3_value_bytes16=Module[\"_sqlite3_value_bytes16\"]=wasmExports[\"vb\"];_sqlite3_value_double=Module[\"_sqlite3_value_double\"]=wasmExports[\"wb\"];_sqlite3_value_int=Module[\"_sqlite3_value_int\"]=wasmExports[\"xb\"];_sqlite3_value_int64=Module[\"_sqlite3_value_int64\"]=wasmExports[\"yb\"];_sqlite3_value_subtype=Module[\"_sqlite3_value_subtype\"]=wasmExports[\"zb\"];_sqlite3_value_pointer=Module[\"_sqlite3_value_pointer\"]=wasmExports[\"Ab\"];_sqlite3_value_text16=Module[\"_sqlite3_value_text16\"]=wasmExports[\"Bb\"];_sqlite3_value_text16be=Module[\"_sqlite3_value_text16be\"]=wasmExports[\"Cb\"];_sqlite3_value_text16le=Module[\"_sqlite3_value_text16le\"]=wasmExports[\"Db\"];_sqlite3_value_type=Module[\"_sqlite3_value_type\"]=wasmExports[\"Eb\"];_sqlite3_value_encoding=Module[\"_sqlite3_value_encoding\"]=wasmExports[\"Fb\"];_sqlite3_value_nochange=Module[\"_sqlite3_value_nochange\"]=wasmExports[\"Gb\"];_sqlite3_value_frombind=Module[\"_sqlite3_value_frombind\"]=wasmExports[\"Hb\"];_sqlite3_value_dup=Module[\"_sqlite3_value_dup\"]=wasmExports[\"Ib\"];_sqlite3_value_free=Module[\"_sqlite3_value_free\"]=wasmExports[\"Jb\"];_sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=wasmExports[\"Kb\"];_sqlite3_result_blob64=Module[\"_sqlite3_result_blob64\"]=wasmExports[\"Lb\"];_sqlite3_result_double=Module[\"_sqlite3_result_double\"]=wasmExports[\"Mb\"];_sqlite3_result_error=Module[\"_sqlite3_result_error\"]=wasmExports[\"Nb\"];_sqlite3_result_error16=Module[\"_sqlite3_result_error16\"]=wasmExports[\"Ob\"];_sqlite3_result_int=Module[\"_sqlite3_result_int\"]=wasmExports[\"Pb\"];_sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=wasmExports[\"Qb\"];_sqlite3_result_null=Module[\"_sqlite3_result_null\"]=wasmExports[\"Rb\"];_sqlite3_result_pointer=Module[\"_sqlite3_result_pointer\"]=wasmExports[\"Sb\"];_sqlite3_result_subtype=Module[\"_sqlite3_result_subtype\"]=wasmExports[\"Tb\"];_sqlite3_result_text=Module[\"_sqlite3_result_text\"]=wasmExports[\"Ub\"];_sqlite3_result_text64=Module[\"_sqlite3_result_text64\"]=wasmExports[\"Vb\"];_sqlite3_result_text16=Module[\"_sqlite3_result_text16\"]=wasmExports[\"Wb\"];_sqlite3_result_text16be=Module[\"_sqlite3_result_text16be\"]=wasmExports[\"Xb\"];_sqlite3_result_text16le=Module[\"_sqlite3_result_text16le\"]=wasmExports[\"Yb\"];_sqlite3_result_value=Module[\"_sqlite3_result_value\"]=wasmExports[\"Zb\"];_sqlite3_result_error_toobig=Module[\"_sqlite3_result_error_toobig\"]=wasmExports[\"_b\"];_sqlite3_result_zeroblob=Module[\"_sqlite3_result_zeroblob\"]=wasmExports[\"$b\"];_sqlite3_result_zeroblob64=Module[\"_sqlite3_result_zeroblob64\"]=wasmExports[\"ac\"];_sqlite3_result_error_code=Module[\"_sqlite3_result_error_code\"]=wasmExports[\"bc\"];_sqlite3_result_error_nomem=Module[\"_sqlite3_result_error_nomem\"]=wasmExports[\"cc\"];_sqlite3_user_data=Module[\"_sqlite3_user_data\"]=wasmExports[\"dc\"];_sqlite3_context_db_handle=Module[\"_sqlite3_context_db_handle\"]=wasmExports[\"ec\"];_sqlite3_vtab_nochange=Module[\"_sqlite3_vtab_nochange\"]=wasmExports[\"fc\"];_sqlite3_vtab_in_first=Module[\"_sqlite3_vtab_in_first\"]=wasmExports[\"gc\"];_sqlite3_vtab_in_next=Module[\"_sqlite3_vtab_in_next\"]=wasmExports[\"hc\"];_sqlite3_aggregate_context=Module[\"_sqlite3_aggregate_context\"]=wasmExports[\"ic\"];_sqlite3_get_auxdata=Module[\"_sqlite3_get_auxdata\"]=wasmExports[\"jc\"];_sqlite3_set_auxdata=Module[\"_sqlite3_set_auxdata\"]=wasmExports[\"kc\"];_sqlite3_column_count=Module[\"_sqlite3_column_count\"]=wasmExports[\"lc\"];_sqlite3_data_count=Module[\"_sqlite3_data_count\"]=wasmExports[\"mc\"];_sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=wasmExports[\"nc\"];_sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=wasmExports[\"oc\"];_sqlite3_column_bytes16=Module[\"_sqlite3_column_bytes16\"]=wasmExports[\"pc\"];_sqlite3_column_double=Module[\"_sqlite3_column_double\"]=wasmExports[\"qc\"];_sqlite3_column_text=Module[\"_sqlite3_column_text\"]=wasmExports[\"rc\"];_sqlite3_column_value=Module[\"_sqlite3_column_value\"]=wasmExports[\"sc\"];_sqlite3_column_text16=Module[\"_sqlite3_column_text16\"]=wasmExports[\"tc\"];_sqlite3_column_type=Module[\"_sqlite3_column_type\"]=wasmExports[\"uc\"];_sqlite3_column_name=Module[\"_sqlite3_column_name\"]=wasmExports[\"vc\"];_sqlite3_column_name16=Module[\"_sqlite3_column_name16\"]=wasmExports[\"wc\"];_sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=wasmExports[\"xc\"];_sqlite3_bind_blob64=Module[\"_sqlite3_bind_blob64\"]=wasmExports[\"yc\"];_sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=wasmExports[\"zc\"];_sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=wasmExports[\"Ac\"];_sqlite3_bind_int64=Module[\"_sqlite3_bind_int64\"]=wasmExports[\"Bc\"];_sqlite3_bind_null=Module[\"_sqlite3_bind_null\"]=wasmExports[\"Cc\"];_sqlite3_bind_pointer=Module[\"_sqlite3_bind_pointer\"]=wasmExports[\"Dc\"];_sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=wasmExports[\"Ec\"];_sqlite3_bind_text64=Module[\"_sqlite3_bind_text64\"]=wasmExports[\"Fc\"];_sqlite3_bind_text16=Module[\"_sqlite3_bind_text16\"]=wasmExports[\"Gc\"];_sqlite3_bind_value=Module[\"_sqlite3_bind_value\"]=wasmExports[\"Hc\"];_sqlite3_bind_zeroblob=Module[\"_sqlite3_bind_zeroblob\"]=wasmExports[\"Ic\"];_sqlite3_bind_zeroblob64=Module[\"_sqlite3_bind_zeroblob64\"]=wasmExports[\"Jc\"];_sqlite3_bind_parameter_count=Module[\"_sqlite3_bind_parameter_count\"]=wasmExports[\"Kc\"];_sqlite3_bind_parameter_name=Module[\"_sqlite3_bind_parameter_name\"]=wasmExports[\"Lc\"];_sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=wasmExports[\"Mc\"];_sqlite3_db_handle=Module[\"_sqlite3_db_handle\"]=wasmExports[\"Nc\"];_sqlite3_stmt_readonly=Module[\"_sqlite3_stmt_readonly\"]=wasmExports[\"Oc\"];_sqlite3_stmt_isexplain=Module[\"_sqlite3_stmt_isexplain\"]=wasmExports[\"Pc\"];_sqlite3_stmt_explain=Module[\"_sqlite3_stmt_explain\"]=wasmExports[\"Qc\"];_sqlite3_stmt_busy=Module[\"_sqlite3_stmt_busy\"]=wasmExports[\"Rc\"];_sqlite3_next_stmt=Module[\"_sqlite3_next_stmt\"]=wasmExports[\"Sc\"];_sqlite3_stmt_status=Module[\"_sqlite3_stmt_status\"]=wasmExports[\"Tc\"];_sqlite3_sql=Module[\"_sqlite3_sql\"]=wasmExports[\"Uc\"];_sqlite3_expanded_sql=Module[\"_sqlite3_expanded_sql\"]=wasmExports[\"Vc\"];_sqlite3_value_numeric_type=Module[\"_sqlite3_value_numeric_type\"]=wasmExports[\"Wc\"];_sqlite3_blob_open=Module[\"_sqlite3_blob_open\"]=wasmExports[\"Xc\"];_sqlite3_blob_close=Module[\"_sqlite3_blob_close\"]=wasmExports[\"Yc\"];_sqlite3_blob_read=Module[\"_sqlite3_blob_read\"]=wasmExports[\"Zc\"];_sqlite3_blob_write=Module[\"_sqlite3_blob_write\"]=wasmExports[\"_c\"];_sqlite3_blob_bytes=Module[\"_sqlite3_blob_bytes\"]=wasmExports[\"$c\"];_sqlite3_blob_reopen=Module[\"_sqlite3_blob_reopen\"]=wasmExports[\"ad\"];_sqlite3_set_authorizer=Module[\"_sqlite3_set_authorizer\"]=wasmExports[\"bd\"];_sqlite3_strglob=Module[\"_sqlite3_strglob\"]=wasmExports[\"cd\"];_sqlite3_strlike=Module[\"_sqlite3_strlike\"]=wasmExports[\"dd\"];_sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=wasmExports[\"ed\"];_sqlite3_load_extension=Module[\"_sqlite3_load_extension\"]=wasmExports[\"fd\"];_sqlite3_enable_load_extension=Module[\"_sqlite3_enable_load_extension\"]=wasmExports[\"gd\"];_sqlite3_auto_extension=Module[\"_sqlite3_auto_extension\"]=wasmExports[\"hd\"];_sqlite3_cancel_auto_extension=Module[\"_sqlite3_cancel_auto_extension\"]=wasmExports[\"id\"];_sqlite3_reset_auto_extension=Module[\"_sqlite3_reset_auto_extension\"]=wasmExports[\"jd\"];_sqlite3_prepare=Module[\"_sqlite3_prepare\"]=wasmExports[\"kd\"];_sqlite3_prepare_v3=Module[\"_sqlite3_prepare_v3\"]=wasmExports[\"ld\"];_sqlite3_prepare16=Module[\"_sqlite3_prepare16\"]=wasmExports[\"md\"];_sqlite3_prepare16_v2=Module[\"_sqlite3_prepare16_v2\"]=wasmExports[\"nd\"];_sqlite3_prepare16_v3=Module[\"_sqlite3_prepare16_v3\"]=wasmExports[\"od\"];_sqlite3_get_table=Module[\"_sqlite3_get_table\"]=wasmExports[\"pd\"];_sqlite3_free_table=Module[\"_sqlite3_free_table\"]=wasmExports[\"qd\"];_sqlite3_create_module=Module[\"_sqlite3_create_module\"]=wasmExports[\"rd\"];_sqlite3_create_module_v2=Module[\"_sqlite3_create_module_v2\"]=wasmExports[\"sd\"];_sqlite3_drop_modules=Module[\"_sqlite3_drop_modules\"]=wasmExports[\"td\"];_sqlite3_declare_vtab=Module[\"_sqlite3_declare_vtab\"]=wasmExports[\"ud\"];_sqlite3_vtab_on_conflict=Module[\"_sqlite3_vtab_on_conflict\"]=wasmExports[\"vd\"];_sqlite3_vtab_config=Module[\"_sqlite3_vtab_config\"]=wasmExports[\"wd\"];_sqlite3_vtab_collation=Module[\"_sqlite3_vtab_collation\"]=wasmExports[\"xd\"];_sqlite3_vtab_in=Module[\"_sqlite3_vtab_in\"]=wasmExports[\"yd\"];_sqlite3_vtab_rhs_value=Module[\"_sqlite3_vtab_rhs_value\"]=wasmExports[\"zd\"];_sqlite3_vtab_distinct=Module[\"_sqlite3_vtab_distinct\"]=wasmExports[\"Ad\"];_sqlite3_keyword_name=Module[\"_sqlite3_keyword_name\"]=wasmExports[\"Bd\"];_sqlite3_keyword_count=Module[\"_sqlite3_keyword_count\"]=wasmExports[\"Cd\"];_sqlite3_keyword_check=Module[\"_sqlite3_keyword_check\"]=wasmExports[\"Dd\"];_sqlite3_complete=Module[\"_sqlite3_complete\"]=wasmExports[\"Ed\"];_sqlite3_complete16=Module[\"_sqlite3_complete16\"]=wasmExports[\"Fd\"];_sqlite3_libversion=Module[\"_sqlite3_libversion\"]=wasmExports[\"Gd\"];_sqlite3_libversion_number=Module[\"_sqlite3_libversion_number\"]=wasmExports[\"Hd\"];_sqlite3_threadsafe=Module[\"_sqlite3_threadsafe\"]=wasmExports[\"Id\"];_sqlite3_initialize=Module[\"_sqlite3_initialize\"]=wasmExports[\"Jd\"];_sqlite3_shutdown=Module[\"_sqlite3_shutdown\"]=wasmExports[\"Kd\"];_sqlite3_config=Module[\"_sqlite3_config\"]=wasmExports[\"Ld\"];_sqlite3_db_mutex=Module[\"_sqlite3_db_mutex\"]=wasmExports[\"Md\"];_sqlite3_db_release_memory=Module[\"_sqlite3_db_release_memory\"]=wasmExports[\"Nd\"];_sqlite3_db_cacheflush=Module[\"_sqlite3_db_cacheflush\"]=wasmExports[\"Od\"];_sqlite3_db_config=Module[\"_sqlite3_db_config\"]=wasmExports[\"Pd\"];_sqlite3_last_insert_rowid=Module[\"_sqlite3_last_insert_rowid\"]=wasmExports[\"Qd\"];_sqlite3_set_last_insert_rowid=Module[\"_sqlite3_set_last_insert_rowid\"]=wasmExports[\"Rd\"];_sqlite3_changes64=Module[\"_sqlite3_changes64\"]=wasmExports[\"Sd\"];_sqlite3_changes=Module[\"_sqlite3_changes\"]=wasmExports[\"Td\"];_sqlite3_total_changes64=Module[\"_sqlite3_total_changes64\"]=wasmExports[\"Ud\"];_sqlite3_total_changes=Module[\"_sqlite3_total_changes\"]=wasmExports[\"Vd\"];_sqlite3_txn_state=Module[\"_sqlite3_txn_state\"]=wasmExports[\"Wd\"];_sqlite3_close=Module[\"_sqlite3_close\"]=wasmExports[\"Xd\"];_sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=wasmExports[\"Yd\"];_sqlite3_busy_handler=Module[\"_sqlite3_busy_handler\"]=wasmExports[\"Zd\"];_sqlite3_progress_handler=Module[\"_sqlite3_progress_handler\"]=wasmExports[\"_d\"];_sqlite3_busy_timeout=Module[\"_sqlite3_busy_timeout\"]=wasmExports[\"$d\"];_sqlite3_interrupt=Module[\"_sqlite3_interrupt\"]=wasmExports[\"ae\"];_sqlite3_is_interrupted=Module[\"_sqlite3_is_interrupted\"]=wasmExports[\"be\"];_sqlite3_create_function=Module[\"_sqlite3_create_function\"]=wasmExports[\"ce\"];_sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=wasmExports[\"de\"];_sqlite3_create_window_function=Module[\"_sqlite3_create_window_function\"]=wasmExports[\"ee\"];_sqlite3_create_function16=Module[\"_sqlite3_create_function16\"]=wasmExports[\"fe\"];_sqlite3_overload_function=Module[\"_sqlite3_overload_function\"]=wasmExports[\"ge\"];_sqlite3_trace_v2=Module[\"_sqlite3_trace_v2\"]=wasmExports[\"he\"];_sqlite3_commit_hook=Module[\"_sqlite3_commit_hook\"]=wasmExports[\"ie\"];_sqlite3_update_hook=Module[\"_sqlite3_update_hook\"]=wasmExports[\"je\"];_sqlite3_rollback_hook=Module[\"_sqlite3_rollback_hook\"]=wasmExports[\"ke\"];_sqlite3_autovacuum_pages=Module[\"_sqlite3_autovacuum_pages\"]=wasmExports[\"le\"];_sqlite3_wal_autocheckpoint=Module[\"_sqlite3_wal_autocheckpoint\"]=wasmExports[\"me\"];_sqlite3_wal_hook=Module[\"_sqlite3_wal_hook\"]=wasmExports[\"ne\"];_sqlite3_wal_checkpoint_v2=Module[\"_sqlite3_wal_checkpoint_v2\"]=wasmExports[\"oe\"];_sqlite3_wal_checkpoint=Module[\"_sqlite3_wal_checkpoint\"]=wasmExports[\"pe\"];_sqlite3_error_offset=Module[\"_sqlite3_error_offset\"]=wasmExports[\"qe\"];_sqlite3_errmsg16=Module[\"_sqlite3_errmsg16\"]=wasmExports[\"re\"];_sqlite3_errcode=Module[\"_sqlite3_errcode\"]=wasmExports[\"se\"];_sqlite3_extended_errcode=Module[\"_sqlite3_extended_errcode\"]=wasmExports[\"te\"];_sqlite3_system_errno=Module[\"_sqlite3_system_errno\"]=wasmExports[\"ue\"];_sqlite3_errstr=Module[\"_sqlite3_errstr\"]=wasmExports[\"ve\"];_sqlite3_limit=Module[\"_sqlite3_limit\"]=wasmExports[\"we\"];_sqlite3_open=Module[\"_sqlite3_open\"]=wasmExports[\"xe\"];_sqlite3_open_v2=Module[\"_sqlite3_open_v2\"]=wasmExports[\"ye\"];_sqlite3_open16=Module[\"_sqlite3_open16\"]=wasmExports[\"ze\"];_sqlite3_create_collation=Module[\"_sqlite3_create_collation\"]=wasmExports[\"Ae\"];_sqlite3_create_collation_v2=Module[\"_sqlite3_create_collation_v2\"]=wasmExports[\"Be\"];_sqlite3_create_collation16=Module[\"_sqlite3_create_collation16\"]=wasmExports[\"Ce\"];_sqlite3_collation_needed=Module[\"_sqlite3_collation_needed\"]=wasmExports[\"De\"];_sqlite3_collation_needed16=Module[\"_sqlite3_collation_needed16\"]=wasmExports[\"Ee\"];_sqlite3_get_clientdata=Module[\"_sqlite3_get_clientdata\"]=wasmExports[\"Fe\"];_sqlite3_set_clientdata=Module[\"_sqlite3_set_clientdata\"]=wasmExports[\"Ge\"];_sqlite3_get_autocommit=Module[\"_sqlite3_get_autocommit\"]=wasmExports[\"He\"];_sqlite3_table_column_metadata=Module[\"_sqlite3_table_column_metadata\"]=wasmExports[\"Ie\"];_sqlite3_sleep=Module[\"_sqlite3_sleep\"]=wasmExports[\"Je\"];_sqlite3_extended_result_codes=Module[\"_sqlite3_extended_result_codes\"]=wasmExports[\"Ke\"];_sqlite3_file_control=Module[\"_sqlite3_file_control\"]=wasmExports[\"Le\"];_sqlite3_test_control=Module[\"_sqlite3_test_control\"]=wasmExports[\"Me\"];_sqlite3_create_filename=Module[\"_sqlite3_create_filename\"]=wasmExports[\"Ne\"];_sqlite3_free_filename=Module[\"_sqlite3_free_filename\"]=wasmExports[\"Oe\"];_sqlite3_uri_parameter=Module[\"_sqlite3_uri_parameter\"]=wasmExports[\"Pe\"];_sqlite3_uri_key=Module[\"_sqlite3_uri_key\"]=wasmExports[\"Qe\"];_sqlite3_uri_boolean=Module[\"_sqlite3_uri_boolean\"]=wasmExports[\"Re\"];_sqlite3_uri_int64=Module[\"_sqlite3_uri_int64\"]=wasmExports[\"Se\"];_sqlite3_filename_database=Module[\"_sqlite3_filename_database\"]=wasmExports[\"Te\"];_sqlite3_filename_journal=Module[\"_sqlite3_filename_journal\"]=wasmExports[\"Ue\"];_sqlite3_filename_wal=Module[\"_sqlite3_filename_wal\"]=wasmExports[\"Ve\"];_sqlite3_db_name=Module[\"_sqlite3_db_name\"]=wasmExports[\"We\"];_sqlite3_db_filename=Module[\"_sqlite3_db_filename\"]=wasmExports[\"Xe\"];_sqlite3_db_readonly=Module[\"_sqlite3_db_readonly\"]=wasmExports[\"Ye\"];_sqlite3_compileoption_used=Module[\"_sqlite3_compileoption_used\"]=wasmExports[\"Ze\"];_sqlite3_compileoption_get=Module[\"_sqlite3_compileoption_get\"]=wasmExports[\"_e\"];_sqlite3_sourceid=Module[\"_sqlite3_sourceid\"]=wasmExports[\"$e\"];_memcmp=Module[\"_memcmp\"]=wasmExports[\"af\"];_malloc=Module[\"_malloc\"]=wasmExports[\"bf\"];_free=Module[\"_free\"]=wasmExports[\"cf\"];_RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=wasmExports[\"ef\"];_getSqliteFree=Module[\"_getSqliteFree\"]=wasmExports[\"ff\"];_main=Module[\"_main\"]=wasmExports[\"gf\"];_libauthorizer_set_authorizer=Module[\"_libauthorizer_set_authorizer\"]=wasmExports[\"hf\"];_libfunction_create_function=Module[\"_libfunction_create_function\"]=wasmExports[\"jf\"];_libhook_commit_hook=Module[\"_libhook_commit_hook\"]=wasmExports[\"kf\"];_libhook_update_hook=Module[\"_libhook_update_hook\"]=wasmExports[\"lf\"];_libprogress_progress_handler=Module[\"_libprogress_progress_handler\"]=wasmExports[\"mf\"];_libvfs_vfs_register=Module[\"_libvfs_vfs_register\"]=wasmExports[\"nf\"];_memcpy=Module[\"_memcpy\"]=wasmExports[\"of\"];_memset=Module[\"_memset\"]=wasmExports[\"pf\"];_emscripten_builtin_memalign=wasmExports[\"rf\"];__emscripten_timeout=wasmExports[\"sf\"];__emscripten_tempret_get=wasmExports[\"tf\"];__emscripten_stack_restore=wasmExports[\"uf\"];__emscripten_stack_alloc=wasmExports[\"vf\"];_emscripten_stack_get_current=wasmExports[\"wf\"];dynCall_viiiij=wasmExports[\"dynCall_viiiij\"];dynCall_vijii=wasmExports[\"dynCall_vijii\"];dynCall_iiiij=wasmExports[\"dynCall_iiiij\"];dynCall_viji=wasmExports[\"dynCall_viji\"];dynCall_iij=wasmExports[\"dynCall_iij\"];dynCall_iijii=wasmExports[\"dynCall_iijii\"];dynCall_iiji=wasmExports[\"dynCall_iiji\"];dynCall_iiiiiij=wasmExports[\"dynCall_iiiiiij\"];dynCall_iiij=wasmExports[\"dynCall_iiij\"];dynCall_jii=wasmExports[\"dynCall_jii\"];dynCall_ji=wasmExports[\"dynCall_ji\"];dynCall_vij=wasmExports[\"dynCall_vij\"];dynCall_iiiiijii=wasmExports[\"dynCall_iiiiijii\"];dynCall_j=wasmExports[\"dynCall_j\"];dynCall_jj=wasmExports[\"dynCall_jj\"];dynCall_jiij=wasmExports[\"dynCall_jiij\"];dynCall_iiiiji=wasmExports[\"dynCall_iiiiji\"];dynCall_iiiijii=wasmExports[\"dynCall_iiiijii\"];dynCall_ij=wasmExports[\"dynCall_ij\"];dynCall_viiji=wasmExports[\"dynCall_viiji\"];dynCall_viijii=wasmExports[\"dynCall_viijii\"];dynCall_iiiijji=wasmExports[\"dynCall_iiiijji\"];memory=wasmMemory=wasmExports[\"pa\"];_sqlite3_version=Module[\"_sqlite3_version\"]=wasmExports[\"df\"].value;__indirect_function_table=wasmTable=wasmExports[\"qf\"]}var wasmImports={a:___assert_fail,aa:___syscall_chmod,da:___syscall_faccessat,ba:___syscall_fchmod,$:___syscall_fchown32,b:___syscall_fcntl64,_:___syscall_fstat64,y:___syscall_ftruncate64,U:___syscall_getcwd,Y:___syscall_lstat64,R:___syscall_mkdirat,X:___syscall_newfstatat,P:___syscall_openat,N:___syscall_readlinkat,M:___syscall_rmdir,Z:___syscall_stat64,K:___syscall_unlinkat,J:___syscall_utimensat,F:__abort_js,E:__emscripten_runtime_keepalive_clear,w:__localtime_js,u:__mmap_js,v:__munmap_js,G:__setitimer_js,Q:__tzset_js,n:_emscripten_date_now,g:_emscripten_get_now,H:_emscripten_resize_heap,S:_environ_get,T:_environ_sizes_get,o:_fd_close,I:_fd_fdstat_get,O:_fd_read,x:_fd_seek,V:_fd_sync,L:_fd_write,s:_ipp,t:_ipp_async,ka:_ippipppp,oa:_ippipppp_async,j:_ippp,k:_ippp_async,c:_ipppi,d:_ipppi_async,ga:_ipppiii,ha:_ipppiii_async,ia:_ipppiiip,ja:_ipppiiip_async,h:_ipppip,i:_ipppip_async,z:_ipppj,A:_ipppj_async,e:_ipppp,f:_ipppp_async,ea:_ippppi,fa:_ippppi_async,B:_ippppij,C:_ippppij_async,p:_ippppip,q:_ippppip_async,la:_ipppppip,ma:_ipppppip_async,D:_proc_exit,na:_vppippii,r:_vppippii_async,l:_vppp,m:_vppp_async,W:_vpppip,ca:_vpppip_async};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();var noInitialRun=Module[\"noInitialRun\"]||false;if(!noInitialRun)callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"set_authorizer\"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,\"i32\");const result=ccall(\"libauthorizer_set_authorizer\",\"number\",[\"number\",\"number\",\"number\"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module[\"setCallback\"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=[\"xFunc\",\"xStep\",\"xFinal\"];const mapFunctionNameToKey=new Map;Module[\"create_function\"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module[\"_sqlite3_malloc\"](4);const target={xFunc,xStep,xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<<i}return mask},0),\"i32\");const result=ccall(\"libfunction_create_function\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"],[db,zFunctionName,nArg,eTextRep,pAsyncFlags,xFunc?1:0,xStep?1:0,xFinal?1:0]);if(!result){if(mapFunctionNameToKey.has(zFunctionName)){const oldKey=mapFunctionNameToKey.get(zFunctionName);Module[\"deleteCallback\"](oldKey)}mapFunctionNameToKey.set(zFunctionName,pAsyncFlags);Module[\"setCallback\"](pAsyncFlags,{xFunc,xStep,xFinal})}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"update_hook\"]=function(db,xUpdateHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xUpdateHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_update_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xUpdateHook?1:0,pAsyncFlags]);if(xUpdateHook){Module[\"setCallback\"](pAsyncFlags,(_,iUpdateType,dbName,tblName,lo32,hi32)=>xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"commit_hook\"]=function(db,xCommitHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_commit_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module[\"setCallback\"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"progress_handler\"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,\"i32\");ccall(\"libprogress_progress_handler\",\"number\",[\"number\",\"number\",\"number\",\"number\"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module[\"setCallback\"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=[\"xOpen\",\"xDelete\",\"xAccess\",\"xFullPathname\",\"xRandomness\",\"xSleep\",\"xCurrentTime\",\"xGetLastError\",\"xCurrentTimeInt64\",\"xClose\",\"xRead\",\"xWrite\",\"xTruncate\",\"xSync\",\"xFileSize\",\"xLock\",\"xUnlock\",\"xCheckReservedLock\",\"xFileControl\",\"xSectorSize\",\"xDeviceCharacteristics\",\"xShmMap\",\"xShmLock\",\"xShmBarrier\",\"xShmUnmap\"];const mapVFSNameToKey=new Map;Module[\"vfs_register\"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<<i;if(vfs[\"hasAsyncMethod\"](method)){asyncMask|=1<<i}}});const vfsReturn=Module[\"_sqlite3_malloc\"](4);try{const result=ccall(\"libvfs_vfs_register\",\"number\",[\"string\",\"number\",\"number\",\"number\",\"number\",\"number\"],[vfs.name,vfs.mxPathname,methodMask,asyncMask,makeDefault?1:0,vfsReturn]);if(!result){if(mapVFSNameToKey.has(vfs.name)){const oldKey=mapVFSNameToKey.get(vfs.name);Module[\"deleteCallback\"](oldKey)}const key=getValue(vfsReturn,\"*\");mapVFSNameToKey.set(vfs.name,key);Module[\"setCallback\"](key,vfs)}return result}finally{Module[\"_sqlite3_free\"](vfsReturn)}}})();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default Module;\n","// Primary result codes.\n// https://www.sqlite.org/rescode.html\nexport const SQLITE_OK = 0;\nexport const SQLITE_ERROR = 1;\nexport const SQLITE_INTERNAL = 2;\nexport const SQLITE_PERM = 3;\nexport const SQLITE_ABORT = 4;\nexport const SQLITE_BUSY = 5;\nexport const SQLITE_LOCKED = 6;\nexport const SQLITE_NOMEM = 7;\nexport const SQLITE_READONLY = 8;\nexport const SQLITE_INTERRUPT = 9;\nexport const SQLITE_IOERR = 10;\nexport const SQLITE_CORRUPT = 11;\nexport const SQLITE_NOTFOUND = 12;\nexport const SQLITE_FULL = 13;\nexport const SQLITE_CANTOPEN = 14;\nexport const SQLITE_PROTOCOL = 15;\nexport const SQLITE_EMPTY = 16;\nexport const SQLITE_SCHEMA = 17;\nexport const SQLITE_TOOBIG = 18;\nexport const SQLITE_CONSTRAINT = 19;\nexport const SQLITE_MISMATCH = 20;\nexport const SQLITE_MISUSE = 21;\nexport const SQLITE_NOLFS = 22;\nexport const SQLITE_AUTH = 23;\nexport const SQLITE_FORMAT = 24;\nexport const SQLITE_RANGE = 25;\nexport const SQLITE_NOTADB = 26;\nexport const SQLITE_NOTICE = 27;\nexport const SQLITE_WARNING = 28;\nexport const SQLITE_ROW = 100;\nexport const SQLITE_DONE = 101;\n\n// Extended error codes.\nexport const SQLITE_IOERR_ACCESS = 3338;\nexport const SQLITE_IOERR_CHECKRESERVEDLOCK = 3594;\nexport const SQLITE_IOERR_CLOSE = 4106;\nexport const SQLITE_IOERR_DATA = 8202;\nexport const SQLITE_IOERR_DELETE = 2570;\nexport const SQLITE_IOERR_DELETE_NOENT = 5898;\nexport const SQLITE_IOERR_DIR_FSYNC = 1290;\nexport const SQLITE_IOERR_FSTAT = 1802;\nexport const SQLITE_IOERR_FSYNC = 1034;\nexport const SQLITE_IOERR_GETTEMPPATH = 6410;\nexport const SQLITE_IOERR_LOCK = 3850;\nexport const SQLITE_IOERR_NOMEM = 3082;\nexport const SQLITE_IOERR_READ = 266;\nexport const SQLITE_IOERR_RDLOCK = 2314;\nexport const SQLITE_IOERR_SEEK = 5642;\nexport const SQLITE_IOERR_SHORT_READ = 522;\nexport const SQLITE_IOERR_TRUNCATE = 1546;\nexport const SQLITE_IOERR_UNLOCK = 2058;\nexport const SQLITE_IOERR_VNODE = 6922;\nexport const SQLITE_IOERR_WRITE = 778;\nexport const SQLITE_IOERR_BEGIN_ATOMIC = 7434;\nexport const SQLITE_IOERR_COMMIT_ATOMIC = 7690;\nexport const SQLITE_IOERR_ROLLBACK_ATOMIC = 7946;\n\n// Other extended result codes.\nexport const SQLITE_CONSTRAINT_CHECK = 275;\nexport const SQLITE_CONSTRAINT_COMMITHOOK = 531;\nexport const SQLITE_CONSTRAINT_FOREIGNKEY = 787;\nexport const SQLITE_CONSTRAINT_FUNCTION = 1043;\nexport const SQLITE_CONSTRAINT_NOTNULL = 1299;\nexport const SQLITE_CONSTRAINT_PINNED = 2835;\nexport const SQLITE_CONSTRAINT_PRIMARYKEY = 1555;\nexport const SQLITE_CONSTRAINT_ROWID = 2579;\nexport const SQLITE_CONSTRAINT_TRIGGER = 1811;\nexport const SQLITE_CONSTRAINT_UNIQUE = 2067;\nexport const SQLITE_CONSTRAINT_VTAB = 2323;\n\n// Open flags.\n// https://www.sqlite.org/c3ref/c_open_autoproxy.html\nexport const SQLITE_OPEN_READONLY = 0x00000001;\nexport const SQLITE_OPEN_READWRITE = 0x00000002;\nexport const SQLITE_OPEN_CREATE = 0x00000004;\nexport const SQLITE_OPEN_DELETEONCLOSE = 0x00000008;\nexport const SQLITE_OPEN_EXCLUSIVE = 0x00000010;\nexport const SQLITE_OPEN_AUTOPROXY = 0x00000020;\nexport const SQLITE_OPEN_URI = 0x00000040;\nexport const SQLITE_OPEN_MEMORY = 0x00000080;\nexport const SQLITE_OPEN_MAIN_DB = 0x00000100;\nexport const SQLITE_OPEN_TEMP_DB = 0x00000200;\nexport const SQLITE_OPEN_TRANSIENT_DB = 0x00000400;\nexport const SQLITE_OPEN_MAIN_JOURNAL = 0x00000800;\nexport const SQLITE_OPEN_TEMP_JOURNAL = 0x00001000;\nexport const SQLITE_OPEN_SUBJOURNAL = 0x00002000;\nexport const SQLITE_OPEN_SUPER_JOURNAL = 0x00004000;\nexport const SQLITE_OPEN_NOMUTEX = 0x00008000;\nexport const SQLITE_OPEN_FULLMUTEX = 0x00010000;\nexport const SQLITE_OPEN_SHAREDCACHE = 0x00020000;\nexport const SQLITE_OPEN_PRIVATECACHE = 0x00040000;\nexport const SQLITE_OPEN_WAL = 0x00080000;\nexport const SQLITE_OPEN_NOFOLLOW = 0x01000000;\n\n// Locking levels.\n// https://www.sqlite.org/c3ref/c_lock_exclusive.html\nexport const SQLITE_LOCK_NONE = 0;\nexport const SQLITE_LOCK_SHARED = 1;\nexport const SQLITE_LOCK_RESERVED = 2;\nexport const SQLITE_LOCK_PENDING = 3;\nexport const SQLITE_LOCK_EXCLUSIVE = 4;\n\n// Device characteristics.\n// https://www.sqlite.org/c3ref/c_iocap_atomic.html\nexport const SQLITE_IOCAP_ATOMIC = 0x00000001;\nexport const SQLITE_IOCAP_ATOMIC512 = 0x00000002;\nexport const SQLITE_IOCAP_ATOMIC1K = 0x00000004;\nexport const SQLITE_IOCAP_ATOMIC2K = 0x00000008;\nexport const SQLITE_IOCAP_ATOMIC4K = 0x00000010;\nexport const SQLITE_IOCAP_ATOMIC8K = 0x00000020;\nexport const SQLITE_IOCAP_ATOMIC16K = 0x00000040;\nexport const SQLITE_IOCAP_ATOMIC32K = 0x00000080;\nexport const SQLITE_IOCAP_ATOMIC64K = 0x00000100;\nexport const SQLITE_IOCAP_SAFE_APPEND = 0x00000200;\nexport const SQLITE_IOCAP_SEQUENTIAL = 0x00000400;\nexport const SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = 0x00000800;\nexport const SQLITE_IOCAP_POWERSAFE_OVERWRITE = 0x00001000;\nexport const SQLITE_IOCAP_IMMUTABLE = 0x00002000;\nexport const SQLITE_IOCAP_BATCH_ATOMIC = 0x00004000;\n\n// xAccess flags.\n// https://www.sqlite.org/c3ref/c_access_exists.html\nexport const SQLITE_ACCESS_EXISTS = 0;\nexport const SQLITE_ACCESS_READWRITE = 1;\nexport const SQLITE_ACCESS_READ = 2;\n\n// File control opcodes\n// https://www.sqlite.org/c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbeginatomicwrite\nexport const SQLITE_FCNTL_LOCKSTATE = 1; \nexport const SQLITE_FCNTL_GET_LOCKPROXYFILE = 2; \nexport const SQLITE_FCNTL_SET_LOCKPROXYFILE = 3; \nexport const SQLITE_FCNTL_LAST_ERRNO = 4; \nexport const SQLITE_FCNTL_SIZE_HINT = 5; \nexport const SQLITE_FCNTL_CHUNK_SIZE = 6; \nexport const SQLITE_FCNTL_FILE_POINTER = 7; \nexport const SQLITE_FCNTL_SYNC_OMITTED = 8; \nexport const SQLITE_FCNTL_WIN32_AV_RETRY = 9; \nexport const SQLITE_FCNTL_PERSIST_WAL = 10; \nexport const SQLITE_FCNTL_OVERWRITE = 11; \nexport const SQLITE_FCNTL_VFSNAME = 12; \nexport const SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13; \nexport const SQLITE_FCNTL_PRAGMA = 14; \nexport const SQLITE_FCNTL_BUSYHANDLER = 15; \nexport const SQLITE_FCNTL_TEMPFILENAME = 16; \nexport const SQLITE_FCNTL_MMAP_SIZE = 18; \nexport const SQLITE_FCNTL_TRACE = 19; \nexport const SQLITE_FCNTL_HAS_MOVED = 20; \nexport const SQLITE_FCNTL_SYNC = 21; \nexport const SQLITE_FCNTL_COMMIT_PHASETWO = 22; \nexport const SQLITE_FCNTL_WIN32_SET_HANDLE = 23; \nexport const SQLITE_FCNTL_WAL_BLOCK = 24; \nexport const SQLITE_FCNTL_ZIPVFS = 25; \nexport const SQLITE_FCNTL_RBU = 26; \nexport const SQLITE_FCNTL_VFS_POINTER = 27; \nexport const SQLITE_FCNTL_JOURNAL_POINTER = 28; \nexport const SQLITE_FCNTL_WIN32_GET_HANDLE = 29; \nexport const SQLITE_FCNTL_PDB = 30; \nexport const SQLITE_FCNTL_BEGIN_ATOMIC_WRITE = 31; \nexport const SQLITE_FCNTL_COMMIT_ATOMIC_WRITE = 32; \nexport const SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE = 33; \nexport const SQLITE_FCNTL_LOCK_TIMEOUT = 34; \nexport const SQLITE_FCNTL_DATA_VERSION = 35; \nexport const SQLITE_FCNTL_SIZE_LIMIT = 36; \nexport const SQLITE_FCNTL_CKPT_DONE = 37; \nexport const SQLITE_FCNTL_RESERVE_BYTES = 38; \nexport const SQLITE_FCNTL_CKPT_START = 39;\n\n// Fundamental datatypes.\n// https://www.sqlite.org/c3ref/c_blob.html\nexport const SQLITE_INTEGER = 1;\nexport const SQLITE_FLOAT = 2;\nexport const SQLITE_TEXT = 3;\nexport const SQLITE_BLOB = 4;\nexport const SQLITE_NULL = 5;\n\n// Special destructor behavior.\n// https://www.sqlite.org/c3ref/c_static.html\nexport const SQLITE_STATIC = 0;\nexport const SQLITE_TRANSIENT = -1;\n\n// Text encodings.\n// https://sqlite.org/c3ref/c_any.html\nexport const SQLITE_UTF8 = 1; /* IMP: R-37514-35566 */\nexport const SQLITE_UTF16LE = 2; /* IMP: R-03371-37637 */\nexport const SQLITE_UTF16BE = 3; /* IMP: R-51971-34154 */\nexport const SQLITE_UTF16 = 4; /* Use native byte order */\n\n// Module constraint ops.\nexport const SQLITE_INDEX_CONSTRAINT_EQ = 2;\nexport const SQLITE_INDEX_CONSTRAINT_GT = 4;\nexport const SQLITE_INDEX_CONSTRAINT_LE = 8;\nexport const SQLITE_INDEX_CONSTRAINT_LT = 16;\nexport const SQLITE_INDEX_CONSTRAINT_GE = 32;\nexport const SQLITE_INDEX_CONSTRAINT_MATCH = 64;\nexport const SQLITE_INDEX_CONSTRAINT_LIKE = 65;\nexport const SQLITE_INDEX_CONSTRAINT_GLOB = 66;\nexport const SQLITE_INDEX_CONSTRAINT_REGEXP = 67;\nexport const SQLITE_INDEX_CONSTRAINT_NE = 68;\nexport const SQLITE_INDEX_CONSTRAINT_ISNOT = 69;\nexport const SQLITE_INDEX_CONSTRAINT_ISNOTNULL = 70;\nexport const SQLITE_INDEX_CONSTRAINT_ISNULL = 71;\nexport const SQLITE_INDEX_CONSTRAINT_IS = 72;\nexport const SQLITE_INDEX_CONSTRAINT_FUNCTION = 150;\nexport const SQLITE_INDEX_SCAN_UNIQUE = 1; /* Scan visits at most = 1 row */\n\n// Function flags\nexport const SQLITE_DETERMINISTIC = 0x000000800;\nexport const SQLITE_DIRECTONLY = 0x000080000;\nexport const SQLITE_SUBTYPE = 0x000100000;\nexport const SQLITE_INNOCUOUS = 0x000200000;\n\n// Sync flags\nexport const SQLITE_SYNC_NORMAL = 0x00002;\nexport const SQLITE_SYNC_FULL = 0x00003;\nexport const SQLITE_SYNC_DATAONLY = 0x00010;\n\n// Authorizer action codes\nexport const SQLITE_CREATE_INDEX = 1;\nexport const SQLITE_CREATE_TABLE = 2;\nexport const SQLITE_CREATE_TEMP_INDEX = 3;\nexport const SQLITE_CREATE_TEMP_TABLE = 4;\nexport const SQLITE_CREATE_TEMP_TRIGGER = 5;\nexport const SQLITE_CREATE_TEMP_VIEW = 6;\nexport const SQLITE_CREATE_TRIGGER = 7;\nexport const SQLITE_CREATE_VIEW = 8;\nexport const SQLITE_DELETE = 9;\nexport const SQLITE_DROP_INDEX = 10;\nexport const SQLITE_DROP_TABLE = 11;\nexport const SQLITE_DROP_TEMP_INDEX = 12;\nexport const SQLITE_DROP_TEMP_TABLE = 13;\nexport const SQLITE_DROP_TEMP_TRIGGER = 14;\nexport const SQLITE_DROP_TEMP_VIEW = 15;\nexport const SQLITE_DROP_TRIGGER = 16;\nexport const SQLITE_DROP_VIEW = 17;\nexport const SQLITE_INSERT = 18;\nexport const SQLITE_PRAGMA = 19;\nexport const SQLITE_READ = 20;\nexport const SQLITE_SELECT = 21;\nexport const SQLITE_TRANSACTION = 22;\nexport const SQLITE_UPDATE = 23;\nexport const SQLITE_ATTACH = 24;\nexport const SQLITE_DETACH = 25;\nexport const SQLITE_ALTER_TABLE = 26;\nexport const SQLITE_REINDEX = 27;\nexport const SQLITE_ANALYZE = 28;\nexport const SQLITE_CREATE_VTABLE = 29;\nexport const SQLITE_DROP_VTABLE = 30;\nexport const SQLITE_FUNCTION = 31;\nexport const SQLITE_SAVEPOINT = 32;\nexport const SQLITE_COPY = 0;\nexport const SQLITE_RECURSIVE = 33;\n\n// Authorizer return codes\nexport const SQLITE_DENY = 1;\nexport const SQLITE_IGNORE = 2;\n\n// Limit categories\nexport const SQLITE_LIMIT_LENGTH = 0;\nexport const SQLITE_LIMIT_SQL_LENGTH = 1;\nexport const SQLITE_LIMIT_COLUMN = 2;\nexport const SQLITE_LIMIT_EXPR_DEPTH = 3;\nexport const SQLITE_LIMIT_COMPOUND_SELECT = 4;\nexport const SQLITE_LIMIT_VDBE_OP = 5;\nexport const SQLITE_LIMIT_FUNCTION_ARG = 6;\nexport const SQLITE_LIMIT_ATTACHED = 7;\nexport const SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8;\nexport const SQLITE_LIMIT_VARIABLE_NUMBER = 9;\nexport const SQLITE_LIMIT_TRIGGER_DEPTH = 10;\nexport const SQLITE_LIMIT_WORKER_THREADS = 11;\n\nexport const SQLITE_PREPARE_PERSISTENT = 0x01;\nexport const SQLITE_PREPARE_NORMALIZED = 0x02;\nexport const SQLITE_PREPARE_NO_VTAB = 0x04;","// Copyright 2021 Roy T. Hashimoto. All Rights Reserved.\n\nimport * as SQLite from './sqlite-constants.js';\nexport * from './sqlite-constants.js';\n\n/**\n * Need to have a serializer for bigint\n * https://github.com/GoogleChromeLabs/jsbi/issues/30\n */\nif (typeof BigInt.prototype['toJSON'] == 'undefined') {\n BigInt.prototype['toJSON'] = function() {\n return this.toString();\n };\n}\n\nconst MAX_INT64 = 0x7fffffffffffffffn;\nconst MIN_INT64 = -0x8000000000000000n;\n\nconst AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\nexport class SQLiteError extends Error {\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\n\nconst async = true;\n\n\n/**\n * Builds a Javascript API from the Emscripten module. This API is still\n * low-level and closely corresponds to the C API exported by the module,\n * but differs in some specifics like throwing exceptions on errors.\n * @param {*} Module SQLite Emscripten module\n * @returns {SQLiteAPI}\n */\nexport function Factory(Module) {\n /** @type {SQLiteAPI} */ const sqlite3 = {};\n\n Module.retryOps = [];\n const sqliteFreeAddress = Module._getSqliteFree();\n\n // Allocate some space for 32-bit returned values.\n const tmp = Module._malloc(8);\n const tmpPtr = [tmp, tmp + 4];\n\n const textEncoder = new TextEncoder();\n // Convert a JS string to a C string. sqlite3_malloc is used to allocate\n // memory (use sqlite3_free to deallocate).\n function createUTF8(s) {\n if (typeof s !== 'string') return 0;\n const utf8 = textEncoder.encode(s);\n const zts = Module._sqlite3_malloc(utf8.byteLength + 1);\n Module.HEAPU8.set(utf8, zts);\n Module.HEAPU8[zts + utf8.byteLength] = 0;\n return zts;\n }\n\n /**\n * Concatenate 32-bit numbers into a 64-bit (signed) BigInt.\n * @param {number} lo32\n * @param {number} hi32\n * @returns {bigint}\n */\n function cvt32x2ToBigInt(lo32, hi32) {\n return (BigInt(hi32) << 32n) | (BigInt(lo32) & 0xffffffffn);\n }\n\n // /**\n // * Setup table change update callback\n // */\n // var onTableChangedFunctionPointer = Module.addFunction(onTableUpdate);\n // var passFnPointer = Module.cwrap('passFnPointer', 'undefined', ['number']);\n // passFnPointer(onTableChangedFunctionPointer);\n /**\n * Concatenate 32-bit numbers and return as number or BigInt, depending\n * on the value.\n * @param {number} lo32\n * @param {number} hi32\n * @returns {number|bigint}\n */\n const cvt32x2AsSafe = (function() {\n const hiMax = BigInt(Number.MAX_SAFE_INTEGER) >> 32n;\n const hiMin = BigInt(Number.MIN_SAFE_INTEGER) >> 32n;\n\n return function(lo32, hi32) {\n if (hi32 > hiMax || hi32 < hiMin) {\n // Can't be expressed as a Number so use BigInt.\n return cvt32x2ToBigInt(lo32, hi32);\n } else {\n // Combine the upper and lower 32-bit numbers. The complication is\n // that lo32 is a signed integer which makes manipulating its bits\n // a little tricky - the sign bit gets handled separately.\n return hi32 * 0x100000000 + (lo32 & 0x7fffffff) - (lo32 & 0x80000000);\n }\n };\n })();\n\n const databases = new Set();\n function verifyDatabase(db) {\n if (!databases.has(db)) {\n throw new SQLiteError('not a database', SQLite.SQLITE_MISUSE);\n }\n }\n\n const mapStmtToDB = new Map();\n function verifyStatement(stmt) {\n if (!mapStmtToDB.has(stmt)) {\n throw new SQLiteError('not a statement', SQLite.SQLITE_MISUSE);\n }\n }\n\n sqlite3.bind_collection = function(stmt, bindings) {\n verifyStatement(stmt);\n const isArray = Array.isArray(bindings);\n const nBindings = sqlite3.bind_parameter_count(stmt);\n for (let i = 1; i <= nBindings; ++i) {\n const key = isArray ? i - 1 : sqlite3.bind_parameter_name(stmt, i);\n const value = bindings[key];\n if (value !== undefined) {\n sqlite3.bind(stmt, i, value);\n }\n }\n return SQLite.SQLITE_OK;\n };\n\n sqlite3.bind = function(stmt, i, value) {\n verifyStatement(stmt);\n switch (typeof value) {\n case 'number':\n if (value === (value | 0)) {\n return sqlite3.bind_int(stmt, i, value);\n } else {\n return sqlite3.bind_double(stmt, i, value);\n }\n case 'string':\n return sqlite3.bind_text(stmt, i, value);\n case \"boolean\":\n return sqlite3.bind_int(stmt, i, value ? 1 : 0);\n default:\n if (value instanceof Uint8Array || Array.isArray(value)) {\n return sqlite3.bind_blob(stmt, i, value);\n } else if (value === null) {\n return sqlite3.bind_null(stmt, i);\n } else if (typeof value === 'bigint') {\n return sqlite3.bind_int64(stmt, i, value);\n } else if (value === undefined) {\n // Existing binding (or NULL) will be used.\n return SQLite.SQLITE_NOTICE;\n } else {\n console.warn('unknown binding converted to null', value);\n return sqlite3.bind_null(stmt, i);\n }\n }\n };\n\n sqlite3.bind_blob = (function() {\n const fname = 'sqlite3_bind_blob';\n const f = Module.cwrap(fname, ...decl('nnnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n // @ts-ignore\n const byteLength = value.byteLength ?? value.length;\n const ptr = Module._sqlite3_malloc(byteLength);\n Module.HEAPU8.subarray(ptr).set(value);\n const result = f(stmt, i, ptr, byteLength, sqliteFreeAddress);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_parameter_count = (function() {\n const fname = 'sqlite3_bind_parameter_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.bind_double = (function() {\n const fname = 'sqlite3_bind_double';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n const result = f(stmt, i, value);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_int = (function() {\n const fname = 'sqlite3_bind_int';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n if (value > 0x7fffffff || value < -0x80000000) return SQLite.SQLITE_RANGE;\n\n const result = f(stmt, i, value);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_int64 = (function() {\n const fname = 'sqlite3_bind_int64';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n if (value > MAX_INT64 || value < MIN_INT64) return SQLite.SQLITE_RANGE;\n\n const lo32 = value & 0xffffffffn;\n const hi32 = value >> 32n;\n const result = f(stmt, i, Number(lo32), Number(hi32));\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_null = (function() {\n const fname = 'sqlite3_bind_null';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, i) {\n verifyStatement(stmt);\n const result = f(stmt, i);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_parameter_name = (function() {\n const fname = 'sqlite3_bind_parameter_name';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(stmt, i) {\n verifyStatement(stmt);\n const result = f(stmt, i);\n return result;\n };\n })();\n\n sqlite3.bind_text = (function() {\n const fname = 'sqlite3_bind_text';\n const f = Module.cwrap(fname, ...decl('nnnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n const ptr = createUTF8(value);\n const result = f(stmt, i, ptr, -1, sqliteFreeAddress);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.changes = (function() {\n const fname = 'sqlite3_changes';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(db) {\n verifyDatabase(db);\n const result = f(db);\n return result;\n };\n })();\n\n sqlite3.clear_bindings = (function() {\n const fname = 'sqlite3_clear_bindings';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.last_insert_id = (function() {\n const fname = 'sqlite3_last_insert_rowid';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(db) {\n verifyDatabase(db);\n const result = f(db);\n // trace(fname, result);\n return result;\n };\n })();\n \n sqlite3.close = (function() {\n const fname = 'sqlite3_close';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(db) {\n verifyDatabase(db);\n const result = await f(db);\n databases.delete(db);\n return check(fname, result, db);\n };\n })();\n\n sqlite3.column = function(stmt, iCol) {\n verifyStatement(stmt);\n const type = sqlite3.column_type(stmt, iCol);\n switch (type) {\n case SQLite.SQLITE_BLOB:\n return sqlite3.column_blob(stmt, iCol);\n case SQLite.SQLITE_FLOAT:\n return sqlite3.column_double(stmt, iCol);\n case SQLite.SQLITE_INTEGER:\n const lo32 = sqlite3.column_int(stmt, iCol);\n const hi32 = Module.getTempRet0();\n return cvt32x2AsSafe(lo32, hi32);\n case SQLite.SQLITE_NULL:\n return null;\n case SQLite.SQLITE_TEXT:\n return sqlite3.column_text(stmt, iCol);\n default:\n throw new SQLiteError('unknown type', type);\n }\n };\n\n sqlite3.column_blob = (function() {\n const fname = 'sqlite3_column_blob';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const nBytes = sqlite3.column_bytes(stmt, iCol);\n const address = f(stmt, iCol);\n const result = Module.HEAPU8.subarray(address, address + nBytes);\n return result;\n };\n })();\n\n sqlite3.column_bytes = (function() {\n const fname = 'sqlite3_column_bytes';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_count = (function() {\n const fname = 'sqlite3_column_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.column_double = (function() {\n const fname = 'sqlite3_column_double';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_int = (function() {\n // Retrieve int64 but use only the lower 32 bits. The upper 32-bits are\n // accessible with Module.getTempRet0().\n const fname = 'sqlite3_column_int64';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_int64 = (function() {\n const fname = 'sqlite3_column_int64';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const lo32 = f(stmt, iCol);\n const hi32 = Module.getTempRet0();\n const result = cvt32x2ToBigInt(lo32, hi32);\n return result;\n };\n })();\n\n sqlite3.column_name = (function() {\n const fname = 'sqlite3_column_name';\n const f = Module.cwrap(fname, ...decl('nn:s'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_names = function(stmt) {\n const columns = [];\n const nColumns = sqlite3.column_count(stmt);\n for (let i = 0; i < nColumns; ++i) {\n columns.push(sqlite3.column_name(stmt, i));\n }\n return columns;\n };\n\n sqlite3.column_text = (function() {\n const fname = 'sqlite3_column_text';\n const f = Module.cwrap(fname, ...decl('nn:s'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_type = (function() {\n const fname = 'sqlite3_column_type';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.create_function = function(db, zFunctionName, nArg, eTextRep, pApp, xFunc, xStep, xFinal) {\n verifyDatabase(db);\n \n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (ctx, n, values) => f(ctx, Module.HEAP32.subarray(values / 4, values / 4 + n))) :\n ((ctx, n, values) => f(ctx, Module.HEAP32.subarray(values / 4, values / 4 + n)));\n }\n\n const result = Module.create_function(\n db,\n zFunctionName,\n nArg,\n eTextRep,\n pApp,\n xFunc && adapt(xFunc),\n xStep && adapt(xStep),\n xFinal);\n return check('sqlite3_create_function', result, db);\n };\n\n sqlite3.data_count = (function() {\n const fname = 'sqlite3_data_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.exec = async function(db, sql, callback) {\n for await (const stmt of sqlite3.statements(db, sql)) {\n let columns;\n while ((await sqlite3.step(stmt)) === SQLite.SQLITE_ROW) {\n if (callback) {\n columns = columns ?? sqlite3.column_names(stmt);\n const row = sqlite3.row(stmt);\n await callback(row, columns);\n }\n }\n }\n return SQLite.SQLITE_OK;\n };\n\n sqlite3.finalize = (function() {\n const fname = 'sqlite3_finalize';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n const result = await f(stmt);\n mapStmtToDB.delete(stmt)\n\n // Don't throw on error here. Typically the error has already been\n // thrown and finalize() is part of the cleanup.\n return result;\n };\n })();\n\n sqlite3.get_autocommit = (function() {\n const fname = 'sqlite3_get_autocommit';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(db) {\n const result = f(db);\n return result;\n };\n })();\n\n sqlite3.libversion = (function() {\n const fname = 'sqlite3_libversion';\n const f = Module.cwrap(fname, ...decl(':s'));\n return function() {\n const result = f();\n return result;\n };\n })();\n\n sqlite3.libversion_number = (function() {\n const fname = 'sqlite3_libversion_number';\n const f = Module.cwrap(fname, ...decl(':n'));\n return function() {\n const result = f();\n return result;\n };\n })();\n\n sqlite3.limit = (function() {\n const fname = 'sqlite3_limit';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(db, id, newVal) {\n const result = f(db, id, newVal);\n return result;\n };\n })();\n\n sqlite3.open_v2 = (function() {\n const fname = 'sqlite3_open_v2';\n const f = Module.cwrap(fname, ...decl('snnn:n'), { async });\n return async function(zFilename, flags, zVfs) {\n flags = flags || SQLite.SQLITE_OPEN_CREATE | SQLite.SQLITE_OPEN_READWRITE;\n zVfs = createUTF8(zVfs);\n try {\n // Allow retry operations.\n const rc = await retry(() => f(zFilename, tmpPtr[0], flags, zVfs));\n\n const db = Module.getValue(tmpPtr[0], '*');\n databases.add(db);\n\n Module.ccall('RegisterExtensionFunctions', 'number', ['number'], [db]);\n check(fname, rc);\n return db;\n } finally {\n Module._sqlite3_free(zVfs);\n }\n };\n })();\n\n sqlite3.progress_handler = function(db, nProgressOps, handler, userData) {\n verifyDatabase(db);\n Module.progress_handler(db, nProgressOps, handler, userData);\n };;\n\n sqlite3.reset = (function() {\n const fname = 'sqlite3_reset';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n verifyStatement(stmt);\n const result = await f(stmt);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.result = function(context, value) {\n switch (typeof value) {\n case 'number':\n if (value === (value | 0)) {\n sqlite3.result_int(context, value);\n } else {\n sqlite3.result_double(context, value);\n }\n break;\n case 'string':\n sqlite3.result_text(context, value);\n break;\n default:\n if (value instanceof Uint8Array || Array.isArray(value)) {\n sqlite3.result_blob(context, value);\n } else if (value === null) {\n sqlite3.result_null(context);\n } else if (typeof value === 'bigint') {\n return sqlite3.result_int64(context, value);\n } else {\n console.warn('unknown result converted to null', value);\n sqlite3.result_null(context);\n }\n break;\n }\n };\n\n sqlite3.result_blob = (function() {\n const fname = 'sqlite3_result_blob';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(context, value) {\n // @ts-ignore\n const byteLength = value.byteLength ?? value.length;\n const ptr = Module._sqlite3_malloc(byteLength);\n Module.HEAPU8.subarray(ptr).set(value);\n f(context, ptr, byteLength, sqliteFreeAddress); // void return\n };\n })();\n\n sqlite3.result_double = (function() {\n const fname = 'sqlite3_result_double';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(context, value) {\n f(context, value); // void return\n };\n })();\n\n sqlite3.result_int = (function() {\n const fname = 'sqlite3_result_int';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(context, value) {\n f(context, value); // void return\n };\n })();\n\n sqlite3.result_int64 = (function() {\n const fname = 'sqlite3_result_int64';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(context, value) {\n if (value > MAX_INT64 || value < MIN_INT64) return SQLite.SQLITE_RANGE;\n\n const lo32 = value & 0xffffffffn;\n const hi32 = value >> 32n;\n f(context, Number(lo32), Number(hi32)); // void return\n };\n })();\n\n sqlite3.result_null = (function() {\n const fname = 'sqlite3_result_null';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(context) {\n f(context); // void return\n };\n })();\n\n sqlite3.result_text = (function() {\n const fname = 'sqlite3_result_text';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(context, value) {\n const ptr = createUTF8(value);\n f(context, ptr, -1, sqliteFreeAddress); // void return\n };\n })();\n\n sqlite3.row = function(stmt) {\n const row = [];\n const nColumns = sqlite3.data_count(stmt);\n for (let i = 0; i < nColumns; ++i) {\n const value = sqlite3.column(stmt, i);\n\n // Copy blob if aliasing volatile WebAssembly memory. This avoids an\n // unnecessary copy if users monkey patch column_blob to copy.\n // @ts-ignore\n row.push(value?.buffer === Module.HEAPU8.buffer ? value.slice() : value);\n }\n return row;\n };\n\n sqlite3.set_authorizer = function(db, xAuth, pApp) {\n verifyDatabase(db);\n\n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function cvtArgs(_, iAction, p3, p4, p5, p6) {\n return [\n _,\n iAction,\n Module.UTF8ToString(p3),\n Module.UTF8ToString(p4),\n Module.UTF8ToString(p5),\n Module.UTF8ToString(p6)\n ];\n };\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (_, iAction, p3, p4, p5, p6) => f(...cvtArgs(_, iAction, p3, p4, p5, p6))) :\n ((_, iAction, p3, p4, p5, p6) => f(...cvtArgs(_, iAction, p3, p4, p5, p6)));\n }\n\n const result = Module.set_authorizer(db, adapt(xAuth), pApp);\n return check('sqlite3_set_authorizer', result, db);\n };\n\n sqlite3.sql = (function() {\n const fname = 'sqlite3_sql';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.statements = function(db, sql, options = {}) {\n const prepare = Module.cwrap(\n 'sqlite3_prepare_v3',\n 'number',\n ['number', 'number', 'number', 'number', 'number', 'number'],\n { async: true });\n\n return (async function*() {\n const onFinally = [];\n try {\n // Encode SQL string to UTF-8.\n const utf8 = textEncoder.encode(sql);\n\n // Copy encoded string to WebAssembly memory. The SQLite docs say\n // zero-termination is a minor optimization so add room for that.\n // Also add space for the statement handle and SQL tail pointer.\n const allocSize = utf8.byteLength - (utf8.byteLength % 4) + 12;\n const pzHead = Module._sqlite3_malloc(allocSize);\n const pzEnd = pzHead + utf8.byteLength + 1;\n onFinally.push(() => Module._sqlite3_free(pzHead));\n Module.HEAPU8.set(utf8, pzHead);\n Module.HEAPU8[pzEnd - 1] = 0;\n \n // Use extra space for the statement handle and SQL tail pointer.\n const pStmt = pzHead + allocSize - 8;\n const pzTail = pzHead + allocSize - 4;\n\n // Ensure that statement handles are not leaked.\n let stmt;\n function maybeFinalize() {\n if (stmt && !options.unscoped) {\n sqlite3.finalize(stmt);\n }\n stmt = 0;\n }\n onFinally.push(maybeFinalize);\n \n // Loop over statements.\n Module.setValue(pzTail, pzHead, '*');\n do {\n // Reclaim resources for the previous iteration.\n maybeFinalize();\n\n // Call sqlite3_prepare_v3() for the next statement.\n // Allow retry operations.\n const zTail = Module.getValue(pzTail, '*');\n const rc = await retry(() => {\n return prepare(\n db,\n zTail,\n pzEnd - pzTail,\n options.flags || 0,\n pStmt,\n pzTail);\n });\n\n if (rc !== SQLite.SQLITE_OK) {\n check('sqlite3_prepare_v3', rc, db);\n }\n \n stmt = Module.getValue(pStmt, '*');\n if (stmt) {\n mapStmtToDB.set(stmt, db);\n yield stmt;\n }\n } while (stmt);\n } finally {\n while (onFinally.length) {\n onFinally.pop()();\n }\n }\n })();\n };\n\n sqlite3.step = (function() {\n const fname = 'sqlite3_step';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n verifyStatement(stmt);\n\n // Allow retry operations.\n const rc = await retry(() => f(stmt));\n\n return check(fname, rc, mapStmtToDB.get(stmt), [SQLite.SQLITE_ROW, SQLite.SQLITE_DONE]);\n };\n })();\n\n sqlite3.commit_hook = function(db, xCommitHook) {\n verifyDatabase(db);\n Module.commit_hook(db, xCommitHook);\n };\n\n sqlite3.update_hook = function(db, xUpdateHook) {\n verifyDatabase(db);\n\n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function cvtArgs(iUpdateType, dbName, tblName, lo32, hi32) {\n return [\n iUpdateType,\n Module.UTF8ToString(dbName),\n Module.UTF8ToString(tblName),\n\t\tcvt32x2ToBigInt(lo32, hi32)\n ];\n };\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (iUpdateType, dbName, tblName, lo32, hi32) => f(...cvtArgs(iUpdateType, dbName, tblName, lo32, hi32))) :\n ((iUpdateType, dbName, tblName, lo32, hi32) => f(...cvtArgs(iUpdateType, dbName, tblName, lo32, hi32)));\n }\n\n Module.update_hook(db, adapt(xUpdateHook));\n };;\n\n sqlite3.value = function(pValue) {\n const type = sqlite3.value_type(pValue);\n switch (type) {\n case SQLite.SQLITE_BLOB:\n return sqlite3.value_blob(pValue);\n case SQLite.SQLITE_FLOAT:\n return sqlite3.value_double(pValue);\n case SQLite.SQLITE_INTEGER:\n const lo32 = sqlite3.value_int(pValue);\n const hi32 = Module.getTempRet0();\n return cvt32x2AsSafe(lo32, hi32);\n case SQLite.SQLITE_NULL:\n return null;\n case SQLite.SQLITE_TEXT:\n return sqlite3.value_text(pValue);\n default:\n throw new SQLiteError('unknown type', type);\n }\n };\n\n sqlite3.value_blob = (function() {\n const fname = 'sqlite3_value_blob';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const nBytes = sqlite3.value_bytes(pValue);\n const address = f(pValue);\n const result = Module.HEAPU8.subarray(address, address + nBytes);\n return result;\n };\n })();\n\n sqlite3.value_bytes = (function() {\n const fname = 'sqlite3_value_bytes';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_double = (function() {\n const fname = 'sqlite3_value_double';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_int = (function() {\n const fname = 'sqlite3_value_int64';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_int64 = (function() {\n const fname = 'sqlite3_value_int64';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const lo32 = f(pValue);\n const hi32 = Module.getTempRet0();\n const result = cvt32x2ToBigInt(lo32, hi32);\n return result;\n };\n })();\n\n sqlite3.value_text = (function() {\n const fname = 'sqlite3_value_text';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_type = (function() {\n const fname = 'sqlite3_value_type';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.vfs_register = function(vfs, makeDefault) {\n const result = Module.vfs_register(vfs, makeDefault);\n return check('sqlite3_vfs_register', result);\n };\n\n function check(fname, result, db = null, allowed = [SQLite.SQLITE_OK]) {\n if (allowed.includes(result)) return result;\n const message = db ? Module.ccall('sqlite3_errmsg', 'string', ['number'], [db]) : fname;\n throw new SQLiteError(message, result);\n }\n\n // This function is used to automatically retry failed calls that\n // have pending retry operations that should allow the retry to\n // succeed.\n async function retry(f) {\n let rc;\n do {\n // Wait for all pending retry operations to complete. This is\n // normally empty on the first loop iteration.\n if (Module.retryOps.length) {\n try {\n await Promise.all(Module.retryOps);\n } finally {\n Module.retryOps = [];\n }\n }\n \n rc = await f();\n\n // Retry on failure with new pending retry operations.\n } while (rc && Module.retryOps.length);\n return rc;\n }\n\n return sqlite3;\n}\n\n// Helper function to use a more compact signature specification.\nfunction decl(s) {\n const result = [];\n const m = s.match(/([ns@]*):([nsv@])/);\n switch (m[2]) {\n case 'n':\n result.push('number');\n break;\n case 's':\n result.push('string');\n break;\n case 'v':\n result.push(null);\n break;\n }\n\n const args = [];\n for (let c of m[1]) {\n switch (c) {\n case 'n':\n args.push('number');\n break;\n case 's':\n args.push('string');\n break;\n }\n }\n result.push(args);\n return result;\n}\n","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport * as VFS from './sqlite-constants.js';\nexport * from './sqlite-constants.js';\n\nconst DEFAULT_SECTOR_SIZE = 512;\n\n// Base class for a VFS.\nexport class Base {\n name;\n mxPathname = 64;\n _module;\n\n /**\n * @param {string} name \n * @param {object} module \n */\n constructor(name, module) {\n this.name = name;\n this._module = module;\n }\n\n /**\n * @returns {void|Promise<void>} \n */\n close() {\n }\n\n /**\n * @returns {boolean|Promise<boolean>}\n */\n isReady() {\n return true;\n }\n\n /**\n * Overload in subclasses to indicate which methods are asynchronous.\n * @param {string} methodName \n * @returns {boolean}\n */\n hasAsyncMethod(methodName) {\n return false;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} pFile \n * @param {number} flags \n * @param {number} pOutFlags \n * @returns {number|Promise<number>}\n */\n xOpen(pVfs, zName, pFile, flags, pOutFlags) {\n return VFS.SQLITE_CANTOPEN;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n xDelete(pVfs, zName, syncDir) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} flags \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xAccess(pVfs, zName, flags, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} nOut \n * @param {number} zOut \n * @returns {number|Promise<number>}\n */\n xFullPathname(pVfs, zName, nOut, zOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} nBuf \n * @param {number} zBuf \n * @returns {number|Promise<number>}\n */\n xGetLastError(pVfs, nBuf, zBuf) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xClose(pFile) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} sizeLo \n * @param {number} sizeHi \n * @returns {number|Promise<number>}\n */\n xTruncate(pFile, sizeLo, sizeHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n xSync(pFile, flags) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * \n * @param {number} pFile \n * @param {number} pSize \n * @returns {number|Promise<number>}\n */\n xFileSize(pFile, pSize) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xLock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xUnlock(pFile, lockType) {\n return VFS.SQLITE_OK;\n } \n\n /**\n * @param {number} pFile \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xCheckReservedLock(pFile, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} op \n * @param {number} pArg \n * @returns {number|Promise<number>}\n */\n xFileControl(pFile, op, pArg) {\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xSectorSize(pFile) {\n return DEFAULT_SECTOR_SIZE;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xDeviceCharacteristics(pFile) {\n return 0;\n }\n}\n\nexport const FILE_TYPE_MASK = [\n VFS.SQLITE_OPEN_MAIN_DB,\n VFS.SQLITE_OPEN_MAIN_JOURNAL,\n VFS.SQLITE_OPEN_TEMP_DB,\n VFS.SQLITE_OPEN_TEMP_JOURNAL,\n VFS.SQLITE_OPEN_TRANSIENT_DB,\n VFS.SQLITE_OPEN_SUBJOURNAL,\n VFS.SQLITE_OPEN_SUPER_JOURNAL,\n VFS.SQLITE_OPEN_WAL\n].reduce((mask, element) => mask | element);","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport * as VFS from './VFS.js';\n\nconst AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n// Milliseconds since Julian epoch as a BigInt.\n// https://github.com/sqlite/sqlite/blob/e57527c14f7b7cfa6e32eeab5c549d50c4fa3674/src/os_unix.c#L6872-L6882\nconst UNIX_EPOCH = 24405875n * 8640000n;\n\n// Convenience base class for a JavaScript VFS.\n// The raw xOpen, xRead, etc. function signatures receive only C primitives\n// which aren't easy to work with. This class provides corresponding calls\n// like jOpen, jRead, etc., which receive JavaScript-friendlier arguments\n// such as string, Uint8Array, and DataView.\nexport class FacadeVFS extends VFS.Base {\n /**\n * @param {string} name \n * @param {object} module \n */\n constructor(name, module) {\n super(name, module);\n }\n\n /**\n * Override to indicate which methods are asynchronous.\n * @param {string} methodName \n * @returns {boolean}\n */\n hasAsyncMethod(methodName) {\n // The input argument is a string like \"xOpen\", so convert to \"jOpen\".\n // Then check if the method exists and is async.\n const jMethodName = `j${methodName.slice(1)}`;\n return this[jMethodName] instanceof AsyncFunction;\n }\n \n /**\n * Return the filename for a file id for use by mixins.\n * @param {number} pFile \n * @returns {string}\n */\n getFilename(pFile) {\n throw new Error('unimplemented');\n }\n\n /**\n * @param {string?} filename \n * @param {number} pFile \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number|Promise<number>}\n */\n jOpen(filename, pFile, flags, pOutFlags) {\n return VFS.SQLITE_CANTOPEN;\n }\n\n /**\n * @param {string} filename \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n jDelete(filename, syncDir) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} filename \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number|Promise<number>}\n */\n jAccess(filename, flags, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} filename \n * @param {Uint8Array} zOut \n * @returns {number|Promise<number>}\n */\n jFullPathname(filename, zOut) {\n // Copy the filename to the output buffer.\n const { read, written } = new TextEncoder().encodeInto(filename, zOut);\n if (read < filename.length) return VFS.SQLITE_IOERR;\n if (written >= zOut.length) return VFS.SQLITE_IOERR;\n zOut[written] = 0;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns {number|Promise<number>}\n */\n jGetLastError(zBuf) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n jClose(pFile) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {Uint8Array} pData \n * @param {number} iOffset \n * @returns {number|Promise<number>}\n */\n jRead(pFile, pData, iOffset) {\n pData.fill(0);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n\n /**\n * @param {number} pFile \n * @param {Uint8Array} pData \n * @param {number} iOffset \n * @returns {number|Promise<number>}\n */\n jWrite(pFile, pData, iOffset) {\n return VFS.SQLITE_IOERR_WRITE;\n }\n\n /**\n * @param {number} pFile \n * @param {number} size \n * @returns {number|Promise<number>}\n */\n jTruncate(pFile, size) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n jSync(pFile, flags) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {DataView} pSize\n * @returns {number|Promise<number>}\n */\n jFileSize(pFile, pSize) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n jLock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n jUnlock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {DataView} pResOut \n * @returns {number|Promise<number>}\n */\n jCheckReservedLock(pFile, pResOut) {\n pResOut.setInt32(0, 0, true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(pFile, op, pArg) {\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {number} pFile\n * @returns {number|Promise<number>}\n */\n jSectorSize(pFile) {\n return super.xSectorSize(pFile);\n }\n\n /**\n * @param {number} pFile\n * @returns {number|Promise<number>}\n */\n jDeviceCharacteristics(pFile) {\n return 0;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} pFile \n * @param {number} flags \n * @param {number} pOutFlags \n * @returns {number|Promise<number>}\n */\n xOpen(pVfs, zName, pFile, flags, pOutFlags) {\n const filename = this.#decodeFilename(zName, flags);\n const pOutFlagsView = this.#makeTypedDataView('Int32', pOutFlags);\n this['log']?.('jOpen', filename, pFile, '0x' + flags.toString(16));\n return this.jOpen(filename, pFile, flags, pOutFlagsView);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} nByte \n * @param {number} pCharOut\n * @returns {number|Promise<number>}\n */\n xRandomness(pVfs, nByte, pCharOut) {\n const randomArray = new Uint8Array(nByte);\n crypto.getRandomValues(randomArray);\n // Copy randomArray to the WebAssembly memory\n const buffer = pCharOut; // Pointer to memory in WebAssembly\n this._module.HEAPU8.set(randomArray, buffer); // Copy randomArray into memory starting at buffer\n return nByte;\n }\n\n /**\n * Gets the current time as milliseconds since Unix epoch\n * @param {number} pVfs pointer to the VFS\n * @param {number} pTime pointer to write the time value\n * @returns {number} SQLite error code\n */\n xCurrentTimeInt64(pVfs, pTime) {\n // Create a DataView to write the current time\n const timeView = this.#makeTypedDataView('BigInt64', pTime);\n \n const currentTime = BigInt(Date.now());\n // Convert the current time to milliseconds since Unix epoch\n const value = UNIX_EPOCH + currentTime;\n \n // Write the time value to the pointer location\n timeView.setBigInt64(0, value, true);\n \n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n xDelete(pVfs, zName, syncDir) {\n const filename = this._module.UTF8ToString(zName);\n this['log']?.('jDelete', filename, syncDir);\n return this.jDelete(filename, syncDir);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} flags \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xAccess(pVfs, zName, flags, pResOut) {\n const filename = this._module.UTF8ToString(zName);\n const pResOutView = this.#makeTypedDataView('Int32', pResOut);\n this['log']?.('jAccess', filename, flags);\n return this.jAccess(filename, flags, pResOutView);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} nOut \n * @param {number} zOut \n * @returns {number|Promise<number>}\n */\n xFullPathname(pVfs, zName, nOut, zOut) {\n const filename = this._module.UTF8ToString(zName);\n const zOutArray = this._module.HEAPU8.subarray(zOut, zOut + nOut);\n this['log']?.('jFullPathname', filename, nOut);\n return this.jFullPathname(filename, zOutArray);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} nBuf \n * @param {number} zBuf \n * @returns {number|Promise<number>}\n */\n xGetLastError(pVfs, nBuf, zBuf) {\n const zBufArray = this._module.HEAPU8.subarray(zBuf, zBuf + nBuf);\n this['log']?.('jGetLastError', nBuf);\n return this.jGetLastError(zBufArray);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xClose(pFile) {\n this['log']?.('jClose', pFile);\n return this.jClose(pFile);\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n const pDataArray = this.#makeDataArray(pData, iAmt);\n const iOffset = delegalize(iOffsetLo, iOffsetHi);\n this['log']?.('jRead', pFile, iAmt, iOffset);\n return this.jRead(pFile, pDataArray, iOffset);\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n const pDataArray = this.#makeDataArray(pData, iAmt);\n const iOffset = delegalize(iOffsetLo, iOffsetHi);\n this['log']?.('jWrite', pFile, pDataArray, iOffset);\n return this.jWrite(pFile, pDataArray, iOffset);\n }\n\n /**\n * @param {number} pFile \n * @param {number} sizeLo \n * @param {number} sizeHi \n * @returns {number|Promise<number>}\n */\n xTruncate(pFile, sizeLo, sizeHi) {\n const size = delegalize(sizeLo, sizeHi);\n this['log']?.('jTruncate', pFile, size);\n return this.jTruncate(pFile, size);\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n xSync(pFile, flags) {\n this['log']?.('jSync', pFile, flags);\n return this.jSync(pFile, flags);\n }\n\n /**\n * \n * @param {number} pFile \n * @param {number} pSize \n * @returns {number|Promise<number>}\n */\n xFileSize(pFile, pSize) {\n const pSizeView = this.#makeTypedDataView('BigInt64', pSize);\n this['log']?.('jFileSize', pFile);\n return this.jFileSize(pFile, pSizeView);\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xLock(pFile, lockType) {\n this['log']?.('jLock', pFile, lockType);\n return this.jLock(pFile, lockType);\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xUnlock(pFile, lockType) {\n this['log']?.('jUnlock', pFile, lockType);\n return this.jUnlock(pFile, lockType);\n } \n\n /**\n * @param {number} pFile \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xCheckReservedLock(pFile, pResOut) {\n const pResOutView = this.#makeTypedDataView('Int32', pResOut);\n this['log']?.('jCheckReservedLock', pFile);\n return this.jCheckReservedLock(pFile, pResOutView);\n }\n\n /**\n * @param {number} pFile \n * @param {number} op \n * @param {number} pArg \n * @returns {number|Promise<number>}\n */\n xFileControl(pFile, op, pArg) {\n const pArgView = new DataView(\n this._module.HEAPU8.buffer,\n this._module.HEAPU8.byteOffset + pArg);\n this['log']?.('jFileControl', pFile, op, pArgView);\n return this.jFileControl(pFile, op, pArgView);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xSectorSize(pFile) {\n this['log']?.('jSectorSize', pFile);\n return this.jSectorSize(pFile);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xDeviceCharacteristics(pFile) {\n this['log']?.('jDeviceCharacteristics', pFile);\n return this.jDeviceCharacteristics(pFile);\n }\n\n /**\n * Wrapped DataView for pointer arguments.\n * Pointers to a single value are passed using a DataView-like class.\n * This wrapper class prevents use of incorrect type or endianness, and\n * reacquires the underlying buffer when the WebAssembly memory is resized.\n * @param {'Int32'|'BigInt64'} type \n * @param {number} byteOffset \n * @returns {DataView}\n */\n #makeTypedDataView(type, byteOffset) {\n // @ts-ignore\n return new DataViewProxy(this._module, byteOffset, type);\n }\n\n /**\n * Wrapped Uint8Array for buffer arguments.\n * Memory blocks are passed as a Uint8Array-like class. This wrapper\n * class reacquires the underlying buffer when the WebAssembly memory\n * is resized.\n * @param {number} byteOffset \n * @param {number} byteLength \n * @returns {Uint8Array}\n */\n #makeDataArray(byteOffset, byteLength) {\n // @ts-ignore\n return new Uint8ArrayProxy(this._module, byteOffset, byteLength);\n }\n\n #decodeFilename(zName, flags) {\n if (flags & VFS.SQLITE_OPEN_URI) {\n // The first null-terminated string is the URI path. Subsequent\n // strings are query parameter keys and values.\n // https://www.sqlite.org/c3ref/open.html#urifilenamesinsqlite3open\n let pName = zName;\n let state = 1;\n const charCodes = [];\n while (state) {\n const charCode = this._module.HEAPU8[pName++];\n if (charCode) {\n charCodes.push(charCode);\n } else {\n if (!this._module.HEAPU8[pName]) state = null;\n switch (state) {\n case 1: // path\n charCodes.push('?'.charCodeAt(0));\n state = 2;\n break;\n case 2: // key\n charCodes.push('='.charCodeAt(0));\n state = 3;\n break;\n case 3: // value\n charCodes.push('&'.charCodeAt(0));\n state = 2;\n break;\n }\n }\n }\n return new TextDecoder().decode(new Uint8Array(charCodes));\n }\n return zName ? this._module.UTF8ToString(zName) : null;\n }\n}\n\n// Emscripten \"legalizes\" 64-bit integer arguments by passing them as\n// two 32-bit signed integers.\nfunction delegalize(lo32, hi32) {\n return (hi32 * 0x100000000) + lo32 + (lo32 < 0 ? 2**32 : 0);\n}\n\n// This class provides a Uint8Array-like interface for a WebAssembly memory\n// buffer. It is used to access memory blocks passed as arguments to\n// xRead, xWrite, etc. The class reacquires the underlying buffer when the\n// WebAssembly memory is resized, which can happen when the memory is\n// detached and resized by the WebAssembly module.\n//\n// Note that although this class implements the same methods as Uint8Array,\n// it is not a real Uint8Array and passing it to functions that expect\n// a Uint8Array may not work. Use subarray() to get a real Uint8Array\n// if needed.\nclass Uint8ArrayProxy {\n #module;\n\n #_array = new Uint8Array()\n get #array() {\n if (this.#_array.buffer.byteLength === 0) {\n // WebAssembly memory resize detached the buffer so re-create the\n // array with the new buffer.\n this.#_array = this.#module.HEAPU8.subarray(\n this.byteOffset,\n this.byteOffset + this.byteLength);\n }\n return this.#_array;\n }\n\n /**\n * @param {*} module\n * @param {number} byteOffset \n * @param {number} byteLength \n */\n constructor(module, byteOffset, byteLength) {\n this.#module = module;\n this.byteOffset = byteOffset;\n this.length = this.byteLength = byteLength;\n }\n\n get buffer() {\n return this.#array.buffer;\n }\n\n at(index) {\n return this.#array.at(index);\n }\n copyWithin(target, start, end) {\n this.#array.copyWithin(target, start, end);\n }\n entries() {\n return this.#array.entries();\n }\n every(predicate) {\n return this.#array.every(predicate);\n }\n fill(value, start, end) {\n this.#array.fill(value, start, end);\n }\n filter(predicate) {\n return this.#array.filter(predicate);\n }\n find(predicate) {\n return this.#array.find(predicate);\n }\n findIndex(predicate) {\n return this.#array.findIndex(predicate);\n }\n findLast(predicate) {\n return this.#array.findLast(predicate);\n }\n findLastIndex(predicate) {\n return this.#array.findLastIndex(predicate);\n }\n forEach(callback) {\n this.#array.forEach(callback);\n }\n includes(value, start) {\n return this.#array.includes(value, start);\n }\n indexOf(value, start) {\n return this.#array.indexOf(value, start);\n }\n join(separator) {\n return this.#array.join(separator);\n }\n keys() {\n return this.#array.keys();\n }\n lastIndexOf(value, start) {\n return this.#array.lastIndexOf(value, start);\n }\n map(callback) {\n return this.#array.map(callback);\n }\n reduce(callback, initialValue) {\n return this.#array.reduce(callback, initialValue);\n }\n reduceRight(callback, initialValue) {\n return this.#array.reduceRight(callback, initialValue);\n }\n reverse() {\n this.#array.reverse();\n }\n set(array, offset) {\n this.#array.set(array, offset);\n }\n slice(start, end) {\n return this.#array.slice(start, end);\n }\n some(predicate) {\n return this.#array.some(predicate);\n }\n sort(compareFn) {\n this.#array.sort(compareFn);\n }\n subarray(begin, end) {\n return this.#array.subarray(begin, end);\n }\n toLocaleString(locales, options) {\n // @ts-ignore\n return this.#array.toLocaleString(locales, options);\n }\n toReversed() {\n return this.#array.toReversed();\n }\n toSorted(compareFn) {\n return this.#array.toSorted(compareFn);\n }\n toString() {\n return this.#array.toString();\n }\n values() {\n return this.#array.values();\n }\n with(index, value) {\n return this.#array.with(index, value);\n }\n [Symbol.iterator]() {\n return this.#array[Symbol.iterator]();\n }\n}\n\n// This class provides a DataView-like interface for a WebAssembly memory\n// buffer, restricted to either Int32 or BigInt64 types. It also reacquires\n// the underlying buffer when the WebAssembly memory is resized, which can\n// happen when the memory is detached and resized by the WebAssembly module.\nclass DataViewProxy {\n #module;\n #type;\n\n #_view = new DataView(new ArrayBuffer(0));\n get #view() {\n if (this.#_view.buffer.byteLength === 0) {\n // WebAssembly memory resize detached the buffer so re-create the\n // view with the new buffer.\n this.#_view = new DataView(\n this.#module.HEAPU8.buffer,\n this.#module.HEAPU8.byteOffset + this.byteOffset);\n }\n return this.#_view;\n }\n\n /**\n * @param {*} module\n * @param {number} byteOffset \n * @param {'Int32'|'BigInt64'} type\n */\n constructor(module, byteOffset, type) {\n this.#module = module;\n this.byteOffset = byteOffset;\n this.#type = type;\n }\n\n get buffer() {\n return this.#view.buffer;\n }\n get byteLength() {\n return this.#type === 'Int32' ? 4 : 8;\n }\n\n getInt32(byteOffset, littleEndian) {\n if (this.#type !== 'Int32') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n return this.#view.getInt32(byteOffset, littleEndian);\n }\n setInt32(byteOffset, value, littleEndian) {\n if (this.#type !== 'Int32') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n this.#view.setInt32(byteOffset, value, littleEndian);\n }\n getBigInt64(byteOffset, littleEndian) {\n if (this.#type !== 'BigInt64') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n return this.#view.getBigInt64(byteOffset, littleEndian);\n }\n setBigInt64(byteOffset, value, littleEndian) {\n if (this.#type !== 'BigInt64') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n this.#view.setBigInt64(byteOffset, value, littleEndian);\n }\n}","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\n\nconst DEFAULT_TEMPORARY_FILES = 10;\nconst LOCK_NOTIFY_INTERVAL = 1000;\n\nconst DB_RELATED_FILE_SUFFIXES = ['', '-journal', '-wal'];\n\nconst finalizationRegistry = new FinalizationRegistry(releaser => releaser());\n\nclass File {\n /** @type {string} */ path\n /** @type {number} */ flags;\n /** @type {FileSystemSyncAccessHandle} */ accessHandle;\n\n /** @type {PersistentFile?} */ persistentFile;\n\n constructor(path, flags) {\n this.path = path;\n this.flags = flags;\n }\n}\n\nclass PersistentFile {\n /** @type {FileSystemFileHandle} */ fileHandle\n /** @type {FileSystemSyncAccessHandle} */ accessHandle = null\n\n // The following properties are for main database files.\n\n /** @type {boolean} */ isLockBusy = false;\n /** @type {boolean} */ isFileLocked = false;\n /** @type {boolean} */ isRequestInProgress = false;\n /** @type {function} */ handleLockReleaser = null;\n\n /** @type {BroadcastChannel} */ handleRequestChannel;\n /** @type {boolean} */ isHandleRequested = false;\n\n constructor(fileHandle) {\n this.fileHandle = fileHandle;\n }\n}\n\nexport class OPFSCoopSyncVFS extends FacadeVFS {\n /** @type {Map<number, File>} */ mapIdToFile = new Map();\n\n lastError = null;\n log = null; //function(...args) { console.log(`[${contextName}]`, ...args) };\n \n /** @type {Map<string, PersistentFile>} */ persistentFiles = new Map();\n /** @type {Map<string, FileSystemSyncAccessHandle>} */ boundAccessHandles = new Map();\n /** @type {Set<FileSystemSyncAccessHandle>} */ unboundAccessHandles = new Set();\n /** @type {Set<string>} */ accessiblePaths = new Set();\n releaser = null;\n\n static async create(name, module) {\n const vfs = new OPFSCoopSyncVFS(name, module);\n await Promise.all([\n vfs.isReady(),\n vfs.#initialize(DEFAULT_TEMPORARY_FILES),\n ]);\n return vfs;\n }\n\n constructor(name, module) {\n super(name, module);\n }\n\n async #initialize(nTemporaryFiles) {\n // Delete temporary directories no longer in use.\n const root = await navigator.storage.getDirectory();\n // @ts-ignore\n for await (const entry of root.values()) {\n if (entry.kind === 'directory' && entry.name.startsWith('.ahp-')) {\n // A lock with the same name as the directory protects it from\n // being deleted.\n await navigator.locks.request(entry.name, { ifAvailable: true }, async lock => {\n if (lock) {\n this.log?.(`Deleting temporary directory ${entry.name}`);\n await root.removeEntry(entry.name, { recursive: true });\n } else {\n this.log?.(`Temporary directory ${entry.name} is in use`);\n }\n });\n }\n }\n\n // Create our temporary directory.\n const tmpDirName = `.ahp-${Math.random().toString(36).slice(2)}`;\n this.releaser = await new Promise(resolve => {\n navigator.locks.request(tmpDirName, () => {\n return new Promise(release => {\n resolve(release);\n });\n });\n });\n finalizationRegistry.register(this, this.releaser);\n const tmpDir = await root.getDirectoryHandle(tmpDirName, { create: true });\n\n // Populate temporary directory.\n for (let i = 0; i < nTemporaryFiles; i++) {\n const tmpFile = await tmpDir.getFileHandle(`${i}.tmp`, { create: true });\n const tmpAccessHandle = await tmpFile.createSyncAccessHandle();\n this.unboundAccessHandles.add(tmpAccessHandle);\n }\n }\n\n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number}\n */\n jOpen(zName, fileId, flags, pOutFlags) {\n try {\n const url = new URL(zName || Math.random().toString(36).slice(2), 'file://');\n const path = url.pathname;\n\n if (flags & VFS.SQLITE_OPEN_MAIN_DB) {\n const persistentFile = this.persistentFiles.get(path);\n if (persistentFile?.isRequestInProgress) {\n // Should not reach here unless SQLite itself retries an open.\n // Otherwise, asynchronous operations started on a previous\n // open try should have completed.\n return VFS.SQLITE_BUSY;\n } else if (!persistentFile) {\n // This is the usual starting point for opening a database.\n // Register a Promise that resolves when the database and related\n // files are ready to be used.\n this.log?.(`creating persistent file for ${path}`);\n const create = !!(flags & VFS.SQLITE_OPEN_CREATE);\n this._module.retryOps.push((async () => {\n try {\n // Get the path directory handle.\n let dirHandle = await navigator.storage.getDirectory();\n const directories = path.split('/').filter(d => d);\n const filename = directories.pop();\n for (const directory of directories) {\n dirHandle = await dirHandle.getDirectoryHandle(directory, { create });\n }\n\n // Get file handles for the database and related files,\n // and create persistent file instances.\n for (const suffix of DB_RELATED_FILE_SUFFIXES) {\n const fileHandle = await dirHandle.getFileHandle(filename + suffix, { create });\n await this.#createPersistentFile(fileHandle);\n }\n\n // Get access handles for the files.\n const file = new File(path, flags);\n file.persistentFile = this.persistentFiles.get(path);\n await this.#requestAccessHandle(file);\n } catch (e) {\n // Use an invalid persistent file to signal this error\n // for the retried open.\n const persistentFile = new PersistentFile(null);\n this.persistentFiles.set(path, persistentFile);\n console.error(e);\n }\n })());\n return VFS.SQLITE_BUSY;\n } else if (!persistentFile.fileHandle) {\n // The asynchronous open operation failed.\n this.persistentFiles.delete(path);\n return VFS.SQLITE_CANTOPEN;\n } else if (!persistentFile.accessHandle) {\n // This branch is reached if the database was previously opened\n // and closed.\n this._module.retryOps.push((async () => {\n const file = new File(path, flags);\n file.persistentFile = this.persistentFiles.get(path);\n await this.#requestAccessHandle(file);\n })());\n return VFS.SQLITE_BUSY;\n }\n }\n\n if (!this.accessiblePaths.has(path) &&\n !(flags & VFS.SQLITE_OPEN_CREATE)) {\n throw new Error(`File ${path} not found`);\n }\n\n const file = new File(path, flags);\n this.mapIdToFile.set(fileId, file);\n\n if (this.persistentFiles.has(path)) {\n file.persistentFile = this.persistentFiles.get(path);\n } else if (this.boundAccessHandles.has(path)) {\n // This temporary file was previously created and closed. Reopen\n // the same access handle.\n file.accessHandle = this.boundAccessHandles.get(path);\n } else if (this.unboundAccessHandles.size) {\n // Associate an unbound access handle to this file.\n file.accessHandle = this.unboundAccessHandles.values().next().value;\n file.accessHandle.truncate(0);\n this.unboundAccessHandles.delete(file.accessHandle);\n this.boundAccessHandles.set(path, file.accessHandle);\n }\n this.accessiblePaths.add(path);\n \n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {number}\n */\n jDelete(zName, syncDir) {\n try {\n const url = new URL(zName, 'file://');\n const path = url.pathname;\n if (this.persistentFiles.has(path)) {\n const persistentFile = this.persistentFiles.get(path);\n persistentFile.accessHandle.truncate(0);\n } else {\n this.boundAccessHandles.get(path)?.truncate(0);\n }\n this.accessiblePaths.delete(path);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number}\n */\n jAccess(zName, flags, pResOut) {\n try {\n const url = new URL(zName, 'file://');\n const path = url.pathname;\n pResOut.setInt32(0, this.accessiblePaths.has(path) ? 1 : 0, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_ACCESS;\n } \n }\n\n /**\n * @param {number} fileId \n * @returns {number}\n */\n jClose(fileId) {\n try {\n const file = this.mapIdToFile.get(fileId);\n this.mapIdToFile.delete(fileId);\n\n if (file?.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n if (file.persistentFile?.handleLockReleaser) {\n this.#releaseAccessHandle(file);\n }\n } else if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n file.accessHandle.truncate(0);\n this.accessiblePaths.delete(file.path);\n if (!this.persistentFiles.has(file.path)) {\n this.boundAccessHandles.delete(file.path);\n this.unboundAccessHandles.add(file.accessHandle);\n }\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_CLOSE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jRead(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n // On Chrome (at least), passing pData to accessHandle.read() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const bytesRead = accessHandle.read(pData.subarray(), { at: iOffset });\n\n // Opening a database file performs one read without a xLock call.\n if ((file.flags & VFS.SQLITE_OPEN_MAIN_DB) && !file.persistentFile.isFileLocked) {\n this.#releaseAccessHandle(file);\n }\n\n if (bytesRead < pData.byteLength) {\n pData.fill(0, bytesRead);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_READ;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jWrite(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n // On Chrome (at least), passing pData to accessHandle.write() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const nBytes = accessHandle.write(pData.subarray(), { at: iOffset });\n if (nBytes !== pData.byteLength) throw new Error('short write');\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_WRITE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number}\n */\n jTruncate(fileId, iSize) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n accessHandle.truncate(iSize);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_TRUNCATE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} flags \n * @returns {number}\n */\n jSync(fileId, flags) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n accessHandle.flush();\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSYNC;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number}\n */\n jFileSize(fileId, pSize64) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const size = accessHandle.getSize();\n pSize64.setBigInt64(0, BigInt(size), true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSTAT;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {number}\n */\n jLock(fileId, lockType) {\n const file = this.mapIdToFile.get(fileId);\n if (file.persistentFile.isRequestInProgress) {\n file.persistentFile.isLockBusy = true;\n return VFS.SQLITE_BUSY;\n }\n\n file.persistentFile.isFileLocked = true;\n if (!file.persistentFile.handleLockReleaser) {\n // Start listening for notifications from other connections.\n // This is before we actually get access handles, but waiting to\n // listen until then allows a race condition where notifications\n // are missed. \n file.persistentFile.handleRequestChannel.onmessage = () => {\n this.log?.(`received notification for ${file.path}`);\n if (file.persistentFile.isFileLocked) {\n // We're still using the access handle, so mark it to be\n // released when we're done.\n file.persistentFile.isHandleRequested = true;\n } else {\n // Release the access handles immediately.\n this.#releaseAccessHandle(file);\n }\n file.persistentFile.handleRequestChannel.onmessage = null;\n };\n\n this.#requestAccessHandle(file);\n this.log?.('returning SQLITE_BUSY');\n file.persistentFile.isLockBusy = true;\n return VFS.SQLITE_BUSY;\n }\n file.persistentFile.isLockBusy = false;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {number}\n */\n jUnlock(fileId, lockType) {\n const file = this.mapIdToFile.get(fileId);\n if (lockType === VFS.SQLITE_LOCK_NONE) {\n // Don't change any state if this unlock is because xLock returned\n // SQLITE_BUSY.\n if (!file.persistentFile.isLockBusy) {\n if (file.persistentFile.isHandleRequested) {\n // Another connection wants the access handle.\n this.#releaseAccessHandle(file);\n file.persistentFile.isHandleRequested = false;\n }\n file.persistentFile.isFileLocked = false;\n }\n }\n return VFS.SQLITE_OK;\n }\n \n /**\n * @param {number} fileId\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(fileId, op, pArg) {\n try {\n const file = this.mapIdToFile.get(fileId);\n switch (op) {\n case VFS.SQLITE_FCNTL_PRAGMA:\n const key = extractString(pArg, 4);\n const value = extractString(pArg, 8);\n this.log?.('xFileControl', file.path, 'PRAGMA', key, value);\n switch (key.toLowerCase()) {\n case 'journal_mode':\n if (value &&\n !['off', 'memory', 'delete', 'wal'].includes(value.toLowerCase())) {\n throw new Error('journal_mode must be \"off\", \"memory\", \"delete\", or \"wal\"');\n }\n break;\n }\n break;\n }\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR;\n }\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns \n */\n jGetLastError(zBuf) {\n if (this.lastError) {\n console.error(this.lastError);\n const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);\n const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray);\n zBuf[written] = 0;\n }\n return VFS.SQLITE_OK\n }\n\n /**\n * @param {FileSystemFileHandle} fileHandle \n * @returns {Promise<PersistentFile>}\n */\n async #createPersistentFile(fileHandle) {\n const persistentFile = new PersistentFile(fileHandle);\n const root = await navigator.storage.getDirectory();\n const relativePath = await root.resolve(fileHandle);\n const path = `/${relativePath.join('/')}`;\n persistentFile.handleRequestChannel = new BroadcastChannel(`ahp:${path}`);\n this.persistentFiles.set(path, persistentFile);\n\n const f = await fileHandle.getFile();\n if (f.size) {\n this.accessiblePaths.add(path);\n }\n return persistentFile;\n }\n\n /**\n * @param {File} file \n */\n #requestAccessHandle(file) {\n console.assert(!file.persistentFile.handleLockReleaser);\n if (!file.persistentFile.isRequestInProgress) {\n file.persistentFile.isRequestInProgress = true;\n this._module.retryOps.push((async () => {\n // Acquire the Web Lock.\n file.persistentFile.handleLockReleaser = await this.#acquireLock(file.persistentFile);\n try {\n // Get access handles for the database and releated files in parallel.\n this.log?.(`creating access handles for ${file.path}`)\n await Promise.all(DB_RELATED_FILE_SUFFIXES.map(async suffix => {\n const persistentFile = this.persistentFiles.get(file.path + suffix);\n if (persistentFile) {\n persistentFile.accessHandle =\n await persistentFile.fileHandle.createSyncAccessHandle();\n }\n }));\n } catch (e) {\n this.log?.(`failed to create access handles for ${file.path}`, e);\n // Close any of the potentially opened access handles\n this.#releaseAccessHandle(file);\n throw e;\n } finally {\n file.persistentFile.isRequestInProgress = false;\n }\n })());\n return this._module.retryOps.at(-1);\n }\n return Promise.resolve();\n }\n\n /**\n * @param {File} file \n */\n async #releaseAccessHandle(file) {\n DB_RELATED_FILE_SUFFIXES.forEach(async suffix => {\n const persistentFile = this.persistentFiles.get(file.path + suffix);\n if (persistentFile) {\n persistentFile.accessHandle?.close();\n persistentFile.accessHandle = null;\n }\n });\n this.log?.(`access handles closed for ${file.path}`)\n\n file.persistentFile.handleLockReleaser?.();\n file.persistentFile.handleLockReleaser = null;\n this.log?.(`lock released for ${file.path}`)\n }\n\n /**\n * @param {PersistentFile} persistentFile \n * @returns {Promise<function>} lock releaser\n */\n #acquireLock(persistentFile) {\n return new Promise(resolve => {\n // Tell other connections we want the access handle.\n const lockName = persistentFile.handleRequestChannel.name;\n const notify = () => {\n this.log?.(`notifying for ${lockName}`);\n persistentFile.handleRequestChannel.postMessage(null);\n }\n const notifyId = setInterval(notify, LOCK_NOTIFY_INTERVAL);\n setTimeout(notify);\n\n this.log?.(`lock requested: ${lockName}`)\n navigator.locks.request(lockName, lock => {\n // We have the lock. Stop asking other connections for it.\n this.log?.(`lock acquired: ${lockName}`, lock);\n clearInterval(notifyId);\n return new Promise(resolve);\n });\n });\n }\n}\n\nfunction extractString(dataView, offset) {\n const p = dataView.getUint32(offset, true);\n if (p) {\n const chars = new Uint8Array(dataView.buffer, p);\n return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0)));\n }\n return null;\n}","class TanStackDBError extends Error {\n constructor(message) {\n super(message);\n this.name = `TanStackDBError`;\n }\n}\nclass NonRetriableError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `NonRetriableError`;\n }\n}\nclass SchemaValidationError extends TanStackDBError {\n constructor(type, issues, message) {\n const defaultMessage = `${type === `insert` ? `Insert` : `Update`} validation failed: ${issues.map((issue) => `\n- ${issue.message} - path: ${issue.path}`).join(``)}`;\n super(message || defaultMessage);\n this.name = `SchemaValidationError`;\n this.type = type;\n this.issues = issues;\n }\n}\nclass DuplicateDbInstanceError extends TanStackDBError {\n constructor() {\n super(\n `Multiple instances of @tanstack/db detected!\n\nThis causes transaction context to be lost because each instance maintains its own transaction stack.\n\nCommon causes:\n1. Different versions of @tanstack/db installed\n2. Incompatible peer dependency versions in packages\n3. Module resolution issues in bundler configuration\n\nTo fix:\n1. Check installed versions: npm list @tanstack/db (or pnpm/yarn list)\n2. Force a single version using package manager overrides:\n - npm: \"overrides\" in package.json\n - pnpm: \"pnpm.overrides\" in package.json\n - yarn: \"resolutions\" in package.json\n3. Clear node_modules and lockfile, then reinstall\n\nTo temporarily disable this check (not recommended):\nSet environment variable: TANSTACK_DB_DISABLE_DUP_CHECK=1\n\nSee: https://tanstack.com/db/latest/docs/troubleshooting#duplicate-instances`\n );\n this.name = `DuplicateDbInstanceError`;\n }\n}\nclass CollectionConfigurationError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `CollectionConfigurationError`;\n }\n}\nclass InvalidSyncPersistenceCapabilityError extends CollectionConfigurationError {\n constructor(reason) {\n super(\n `Invalid sync persistence capability at metadata.persistence: ${reason}. Custom sync wrappers must forward metadata.persistence unchanged.`\n );\n this.name = `InvalidSyncPersistenceCapabilityError`;\n }\n}\nclass CollectionRequiresConfigError extends CollectionConfigurationError {\n constructor() {\n super(`Collection requires a config`);\n }\n}\nclass CollectionRequiresSyncConfigError extends CollectionConfigurationError {\n constructor() {\n super(`Collection requires a sync config`);\n }\n}\nclass InvalidSchemaError extends CollectionConfigurationError {\n constructor() {\n super(`Schema must implement the standard-schema interface`);\n }\n}\nclass SchemaMustBeSynchronousError extends CollectionConfigurationError {\n constructor() {\n super(`Schema validation must be synchronous`);\n }\n}\nclass CollectionStateError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `CollectionStateError`;\n }\n}\nclass CollectionInErrorStateError extends CollectionStateError {\n constructor(operation, collectionId) {\n super(\n `Cannot perform ${operation} on collection \"${collectionId}\" - collection is in error state. Try calling cleanup() and restarting the collection.`\n );\n }\n}\nclass InvalidCollectionStatusTransitionError extends CollectionStateError {\n constructor(from, to, collectionId) {\n super(\n `Invalid collection status transition from \"${from}\" to \"${to}\" for collection \"${collectionId}\"`\n );\n }\n}\nclass CollectionIsInErrorStateError extends CollectionStateError {\n constructor() {\n super(`Collection is in error state`);\n }\n}\nclass NegativeActiveSubscribersError extends CollectionStateError {\n constructor() {\n super(`Active subscribers count is negative - this should never happen`);\n }\n}\nclass LiveQueryObserverDisposedError extends CollectionStateError {\n constructor() {\n super(`Cannot subscribe to a disposed LiveQueryObserver`);\n }\n}\nclass LiveQueryWindowControllerDisposedError extends CollectionStateError {\n constructor() {\n super(`Cannot subscribe to a disposed LiveQueryWindowController`);\n }\n}\nclass CollectionOperationError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `CollectionOperationError`;\n }\n}\nclass UndefinedKeyError extends CollectionOperationError {\n constructor(item) {\n super(\n `An object was created without a defined key: ${JSON.stringify(item)}`\n );\n }\n}\nclass InvalidKeyError extends CollectionOperationError {\n constructor(key, item) {\n const keyType = key === null ? `null` : typeof key;\n super(\n `getKey returned an invalid key type. Expected string or number, but got ${keyType}: ${JSON.stringify(key)}. Item: ${JSON.stringify(item)}`\n );\n }\n}\nclass DuplicateKeyError extends CollectionOperationError {\n constructor(key) {\n super(\n `Cannot insert document with ID \"${key}\" because it already exists in the collection`\n );\n }\n}\nclass DuplicateKeySyncError extends CollectionOperationError {\n constructor(key, collectionId, options) {\n const baseMessage = `Cannot insert document with key \"${key}\" from sync because it already exists in the collection \"${collectionId}\"`;\n if (options?.hasCustomGetKey && options.hasDistinct) {\n super(\n `${baseMessage}. This collection uses a custom getKey with .distinct(). The .distinct() operator deduplicates by the ENTIRE selected object (standard SQL behavior), but your custom getKey extracts only a subset of fields. This causes multiple distinct rows (with different values in non-key fields) to receive the same key. To fix this, either: (1) ensure your SELECT only includes fields that uniquely identify each row, (2) use .groupBy() with min()/max() aggregates to select one value per group, or (3) remove the custom getKey to use the default key behavior.`\n );\n } else if (options?.hasCustomGetKey && options.hasJoins) {\n super(\n `${baseMessage}. This collection uses a custom getKey with joined queries. Joined queries can produce multiple rows with the same key when relationships are not 1:1. Consider: (1) using a composite key in your getKey function (e.g., \\`\\${item.key1}-\\${item.key2}\\`), (2) ensuring your join produces unique rows per key, or (3) removing the custom getKey to use the default composite key behavior.`\n );\n } else {\n super(baseMessage);\n }\n }\n}\nclass MissingUpdateArgumentError extends CollectionOperationError {\n constructor() {\n super(`The first argument to update is missing`);\n }\n}\nclass NoKeysPassedToUpdateError extends CollectionOperationError {\n constructor() {\n super(`No keys were passed to update`);\n }\n}\nclass UpdateKeyNotFoundError extends CollectionOperationError {\n constructor(key) {\n super(\n `The key \"${key}\" was passed to update but an object for this key was not found in the collection`\n );\n }\n}\nclass KeyUpdateNotAllowedError extends CollectionOperationError {\n constructor(originalKey, newKey) {\n super(\n `Updating the key of an item is not allowed. Original key: \"${originalKey}\", Attempted new key: \"${newKey}\". Please delete the old item and create a new one if a key change is necessary.`\n );\n }\n}\nclass NoKeysPassedToDeleteError extends CollectionOperationError {\n constructor() {\n super(`No keys were passed to delete`);\n }\n}\nclass DeleteKeyNotFoundError extends CollectionOperationError {\n constructor(key) {\n super(\n `Collection.delete was called with key '${key}' but there is no item in the collection with this key`\n );\n }\n}\nclass MissingHandlerError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `MissingHandlerError`;\n }\n}\nclass MissingInsertHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.insert called directly (not within an explicit transaction) but no 'onInsert' handler is configured.`\n );\n }\n}\nclass MissingUpdateHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.update called directly (not within an explicit transaction) but no 'onUpdate' handler is configured.`\n );\n }\n}\nclass MissingDeleteHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.delete called directly (not within an explicit transaction) but no 'onDelete' handler is configured.`\n );\n }\n}\nclass TransactionError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `TransactionError`;\n }\n}\nclass QueueCapacityExceededError extends TransactionError {\n constructor() {\n super(`Queue capacity exceeded; the mutation was not admitted`);\n this.name = `QueueCapacityExceededError`;\n }\n}\nclass QueueDisposedError extends TransactionError {\n constructor() {\n super(`Queue has been cleaned up; the mutation was not admitted`);\n this.name = `QueueDisposedError`;\n }\n}\nclass ThrottleCallDroppedError extends TransactionError {\n constructor() {\n super(`Throttle call was dropped because trailing execution is disabled`);\n this.name = `ThrottleCallDroppedError`;\n }\n}\nclass DebounceCallDroppedError extends TransactionError {\n constructor() {\n super(`Debounce call was dropped because trailing execution is disabled`);\n this.name = `DebounceCallDroppedError`;\n }\n}\nclass MissingMutationFunctionError extends TransactionError {\n constructor() {\n super(`mutationFn is required when creating a transaction`);\n }\n}\nclass OnMutateMustBeSynchronousError extends TransactionError {\n constructor() {\n super(\n `onMutate must be synchronous and cannot return a promise. Remove async/await or returned promises from onMutate.`\n );\n this.name = `OnMutateMustBeSynchronousError`;\n }\n}\nclass TransactionNotPendingMutateError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .mutate() as the transaction is no longer pending`\n );\n }\n}\nclass TransactionAlreadyCompletedRollbackError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .rollback() as the transaction is already completed`\n );\n }\n}\nclass TransactionNotPendingCommitError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .commit() as the transaction is no longer pending`\n );\n }\n}\nclass NoPendingSyncTransactionWriteError extends TransactionError {\n constructor() {\n super(`No pending sync transaction to write to`);\n }\n}\nclass SyncTransactionAlreadyCommittedWriteError extends TransactionError {\n constructor() {\n super(\n `The pending sync transaction is already committed, you can't still write to it.`\n );\n }\n}\nclass NoPendingSyncTransactionCommitError extends TransactionError {\n constructor() {\n super(`No pending sync transaction to commit`);\n }\n}\nclass SyncTransactionAlreadyCommittedError extends TransactionError {\n constructor() {\n super(\n `The pending sync transaction is already committed, you can't commit it again.`\n );\n }\n}\nclass QueryBuilderError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `QueryBuilderError`;\n }\n}\nclass OnlyOneSourceAllowedError extends QueryBuilderError {\n constructor(context) {\n super(`Only one source is allowed in the ${context}`);\n }\n}\nclass SubQueryMustHaveFromClauseError extends QueryBuilderError {\n constructor(context) {\n super(`A sub query passed to a ${context} must have a from clause itself`);\n }\n}\nclass InvalidSourceError extends QueryBuilderError {\n constructor(alias) {\n super(\n `Invalid source for live query: The value provided for alias \"${alias}\" is not a Collection or subquery. Live queries only accept Collection instances or subqueries. Please ensure you're passing a valid Collection or QueryBuilder, not a plain array or other data type.`\n );\n }\n}\nclass InvalidSourceTypeError extends QueryBuilderError {\n constructor(context, type) {\n const expected = context === `unionAll clause` ? `an object with one or more key-value pairs like { alias: collection }` : `an object with a single key-value pair like { alias: collection }`;\n const example = context === `unionAll clause` ? `.unionAll({ todos: todosCollection, events: eventsCollection })` : context === `join clause` ? `.join({ todos: todosCollection }, ({ todo, todos }) => eq(todo.id, todos.id))` : `.from({ todos: todosCollection })`;\n super(\n `Invalid source for ${context}: Expected ${expected}. For example: ${example}. Got: ${type}`\n );\n }\n}\nclass JoinConditionMustBeEqualityError extends QueryBuilderError {\n constructor() {\n super(`Join condition must be an equality expression`);\n }\n}\nclass QueryMustHaveFromClauseError extends QueryBuilderError {\n constructor() {\n super(`Query must have a from clause`);\n }\n}\nclass InvalidWhereExpressionError extends QueryBuilderError {\n constructor(valueType) {\n super(\n `Invalid where() expression: Expected a query expression, but received a ${valueType}. This usually happens when using JavaScript's comparison operators (===, !==, <, >, etc.) directly. Instead, use the query builder functions:\n\n ❌ .where(({ user }) => user.id === 'abc')\n ✅ .where(({ user }) => eq(user.id, 'abc'))\n\nAvailable comparison functions: eq, gt, gte, lt, lte, and, or, not, like, ilike, isNull, isUndefined`\n );\n }\n}\nclass QueryCompilationError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `QueryCompilationError`;\n }\n}\nclass UnsafeAliasPathError extends QueryCompilationError {\n constructor(segment) {\n super(\n `Unsafe alias path segment \"${segment}\" is not allowed in .select(). Aliases must not contain \"__proto__\", \"prototype\", or \"constructor\".`\n );\n this.name = `UnsafeAliasPathError`;\n }\n}\nclass DistinctRequiresSelectError extends QueryCompilationError {\n constructor() {\n super(`DISTINCT requires a SELECT clause.`);\n }\n}\nclass FnSelectWithGroupByError extends QueryCompilationError {\n constructor() {\n super(\n `fn.select() cannot be used with groupBy(). groupBy requires the compiler to statically analyze aggregate functions (count, sum, max, etc.) in the SELECT clause, which is not possible with fn.select() since it is an opaque function. Use .select() instead of .fn.select() when combining with groupBy().`\n );\n }\n}\nclass UnsupportedFnSelectResultError extends QueryCompilationError {\n constructor(valueDescription) {\n super(\n `fn.select() cannot return ${valueDescription}. Child query builders, query expressions, and helpers such as eq(), toArray(), materialize(), concat(toArray()), and caseWhen() are query-construction values. Use them as direct fields in .select() instead.`\n );\n }\n}\nclass UnsupportedRootScalarSelectError extends QueryCompilationError {\n constructor() {\n super(\n `Top-level scalar select() is not supported by createLiveQueryCollection() or queryOnce(). Return an object from .select(), or use the scalar query inside toArray(...) or concat(toArray(...)).`\n );\n }\n}\nclass HavingRequiresGroupByError extends QueryCompilationError {\n constructor() {\n super(`HAVING clause requires GROUP BY clause`);\n }\n}\nclass LimitOffsetRequireOrderByError extends QueryCompilationError {\n constructor() {\n super(\n `LIMIT and OFFSET require an ORDER BY clause to ensure deterministic results`\n );\n }\n}\nclass CollectionInputNotFoundError extends QueryCompilationError {\n constructor(alias, collectionId, availableKeys) {\n const details = collectionId ? `alias \"${alias}\" (collection \"${collectionId}\")` : `collection \"${alias}\"`;\n const availableKeysMsg = availableKeys?.length ? `. Available keys: ${availableKeys.join(`, `)}` : ``;\n super(`Input for ${details} not found in inputs map${availableKeysMsg}`);\n }\n}\nclass DuplicateAliasInSubqueryError extends QueryCompilationError {\n constructor(alias, parentAliases) {\n super(\n `Subquery uses alias \"${alias}\" which is already used in the parent query. Each alias must be unique across parent and subquery contexts. Parent query aliases: ${parentAliases.join(`, `)}. Please rename \"${alias}\" in either the parent query or subquery to avoid conflicts.`\n );\n }\n}\nclass UnsupportedFromTypeError extends QueryCompilationError {\n constructor(type) {\n super(`Unsupported FROM type: ${type}`);\n }\n}\nclass UnknownExpressionTypeError extends QueryCompilationError {\n constructor(type) {\n super(`Unknown expression type: ${type}`);\n }\n}\nclass EmptyReferencePathError extends QueryCompilationError {\n constructor() {\n super(`Reference path cannot be empty`);\n }\n}\nclass UnknownFunctionError extends QueryCompilationError {\n constructor(functionName) {\n super(`Unknown function: ${functionName}`);\n }\n}\nclass JoinCollectionNotFoundError extends QueryCompilationError {\n constructor(collectionId) {\n super(`Collection \"${collectionId}\" not found during compilation of join`);\n }\n}\nclass JoinError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `JoinError`;\n }\n}\nclass UnsupportedJoinTypeError extends JoinError {\n constructor(joinType) {\n super(`Unsupported join type: ${joinType}`);\n }\n}\nclass InvalidJoinConditionSameSourceError extends JoinError {\n constructor(sourceAlias) {\n super(\n `Invalid join condition: both expressions refer to the same source \"${sourceAlias}\"`\n );\n }\n}\nclass InvalidJoinConditionSourceMismatchError extends JoinError {\n constructor() {\n super(`Invalid join condition: expressions must reference source aliases`);\n }\n}\nclass InvalidJoinConditionLeftSourceError extends JoinError {\n constructor(sourceAlias) {\n super(\n `Invalid join condition: left expression refers to an unavailable source \"${sourceAlias}\"`\n );\n }\n}\nclass InvalidJoinConditionRightSourceError extends JoinError {\n constructor(sourceAlias) {\n super(\n `Invalid join condition: right expression does not refer to the joined source \"${sourceAlias}\"`\n );\n }\n}\nclass InvalidJoinCondition extends JoinError {\n constructor() {\n super(`Invalid join condition`);\n }\n}\nclass UnsupportedJoinSourceTypeError extends JoinError {\n constructor(type) {\n super(`Unsupported join source type: ${type}`);\n }\n}\nclass GroupByError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `GroupByError`;\n }\n}\nclass NonAggregateExpressionNotInGroupByError extends GroupByError {\n constructor(alias) {\n super(\n `Non-aggregate expression '${alias}' in SELECT must also appear in GROUP BY clause`\n );\n }\n}\nclass UnsupportedAggregateFunctionError extends GroupByError {\n constructor(functionName) {\n super(`Unsupported aggregate function: ${functionName}`);\n }\n}\nclass AggregateFunctionNotInSelectError extends GroupByError {\n constructor(functionName) {\n super(\n `Aggregate function in HAVING clause must also be in SELECT clause: ${functionName}`\n );\n }\n}\nclass UnknownHavingExpressionTypeError extends GroupByError {\n constructor(type) {\n super(`Unknown expression type in HAVING clause: ${type}`);\n }\n}\nclass StorageError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `StorageError`;\n }\n}\nclass SerializationError extends StorageError {\n constructor(operation, originalError) {\n super(\n `Cannot ${operation} item because it cannot be JSON serialized: ${originalError}`\n );\n }\n}\nclass LocalStorageCollectionError extends StorageError {\n constructor(message) {\n super(message);\n this.name = `LocalStorageCollectionError`;\n }\n}\nclass StorageKeyRequiredError extends LocalStorageCollectionError {\n constructor() {\n super(`[LocalStorageCollection] storageKey must be provided.`);\n }\n}\nclass InvalidStorageDataFormatError extends LocalStorageCollectionError {\n constructor(storageKey, key) {\n super(\n `[LocalStorageCollection] Invalid data format in storage key \"${storageKey}\" for key \"${key}\".`\n );\n }\n}\nclass InvalidStorageObjectFormatError extends LocalStorageCollectionError {\n constructor(storageKey) {\n super(\n `[LocalStorageCollection] Invalid data format in storage key \"${storageKey}\". Expected object format.`\n );\n }\n}\nclass SyncCleanupError extends TanStackDBError {\n constructor(collectionId, error) {\n const message = error instanceof Error ? error.message : String(error);\n super(\n `Collection \"${collectionId}\" sync cleanup function threw an error: ${message}`\n );\n this.name = `SyncCleanupError`;\n }\n}\nclass SyncTransactionAbortedError extends Error {\n constructor() {\n super(`Sync transaction was aborted before application`);\n this.name = `AbortError`;\n }\n}\nclass CollectionPreloadAbortedError extends Error {\n constructor() {\n super(`Collection preload was abandoned during cleanup`);\n this.name = `AbortError`;\n }\n}\nclass LoadSubsetOperationAbortedError extends Error {\n constructor() {\n super(`Load subset operation was aborted before its result became visible`);\n this.name = `AbortError`;\n }\n}\nclass QueryOptimizerError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `QueryOptimizerError`;\n }\n}\nclass CannotCombineEmptyExpressionListError extends QueryOptimizerError {\n constructor() {\n super(`Cannot combine empty expression list`);\n }\n}\nclass MissingAliasInputsError extends QueryCompilationError {\n constructor(missingAliases) {\n super(\n `Internal error: compiler returned aliases without inputs: ${missingAliases.join(`, `)}. This indicates a bug in query compilation. Please report this issue.`\n );\n }\n}\nclass SetWindowRequiresOrderByError extends QueryCompilationError {\n constructor() {\n super(\n `setWindow() can only be called on collections with an ORDER BY clause. Add .orderBy() to your query to enable window movement.`\n );\n }\n}\nclass SetWindowReentrancyError extends TanStackDBError {\n constructor() {\n super(\n `setWindow() cannot run reentrantly. Wait for the current window operation to return before starting another one.`\n );\n this.name = `SetWindowReentrancyError`;\n }\n}\nexport {\n AggregateFunctionNotInSelectError,\n CannotCombineEmptyExpressionListError,\n CollectionConfigurationError,\n CollectionInErrorStateError,\n CollectionInputNotFoundError,\n CollectionIsInErrorStateError,\n CollectionOperationError,\n CollectionPreloadAbortedError,\n CollectionRequiresConfigError,\n CollectionRequiresSyncConfigError,\n CollectionStateError,\n DebounceCallDroppedError,\n DeleteKeyNotFoundError,\n DistinctRequiresSelectError,\n DuplicateAliasInSubqueryError,\n DuplicateDbInstanceError,\n DuplicateKeyError,\n DuplicateKeySyncError,\n EmptyReferencePathError,\n FnSelectWithGroupByError,\n GroupByError,\n HavingRequiresGroupByError,\n InvalidCollectionStatusTransitionError,\n InvalidJoinCondition,\n InvalidJoinConditionLeftSourceError,\n InvalidJoinConditionRightSourceError,\n InvalidJoinConditionSameSourceError,\n InvalidJoinConditionSourceMismatchError,\n InvalidKeyError,\n InvalidSchemaError,\n InvalidSourceError,\n InvalidSourceTypeError,\n InvalidStorageDataFormatError,\n InvalidStorageObjectFormatError,\n InvalidSyncPersistenceCapabilityError,\n InvalidWhereExpressionError,\n JoinCollectionNotFoundError,\n JoinConditionMustBeEqualityError,\n JoinError,\n KeyUpdateNotAllowedError,\n LimitOffsetRequireOrderByError,\n LiveQueryObserverDisposedError,\n LiveQueryWindowControllerDisposedError,\n LoadSubsetOperationAbortedError,\n LocalStorageCollectionError,\n MissingAliasInputsError,\n MissingDeleteHandlerError,\n MissingHandlerError,\n MissingInsertHandlerError,\n MissingMutationFunctionError,\n MissingUpdateArgumentError,\n MissingUpdateHandlerError,\n NegativeActiveSubscribersError,\n NoKeysPassedToDeleteError,\n NoKeysPassedToUpdateError,\n NoPendingSyncTransactionCommitError,\n NoPendingSyncTransactionWriteError,\n NonAggregateExpressionNotInGroupByError,\n NonRetriableError,\n OnMutateMustBeSynchronousError,\n OnlyOneSourceAllowedError,\n QueryBuilderError,\n QueryCompilationError,\n QueryMustHaveFromClauseError,\n QueryOptimizerError,\n QueueCapacityExceededError,\n QueueDisposedError,\n SchemaMustBeSynchronousError,\n SchemaValidationError,\n SerializationError,\n SetWindowReentrancyError,\n SetWindowRequiresOrderByError,\n StorageError,\n StorageKeyRequiredError,\n SubQueryMustHaveFromClauseError,\n SyncCleanupError,\n SyncTransactionAbortedError,\n SyncTransactionAlreadyCommittedError,\n SyncTransactionAlreadyCommittedWriteError,\n TanStackDBError,\n ThrottleCallDroppedError,\n TransactionAlreadyCompletedRollbackError,\n TransactionError,\n TransactionNotPendingCommitError,\n TransactionNotPendingMutateError,\n UndefinedKeyError,\n UnknownExpressionTypeError,\n UnknownFunctionError,\n UnknownHavingExpressionTypeError,\n UnsafeAliasPathError,\n UnsupportedAggregateFunctionError,\n UnsupportedFnSelectResultError,\n UnsupportedFromTypeError,\n UnsupportedJoinSourceTypeError,\n UnsupportedJoinTypeError,\n UnsupportedRootScalarSelectError,\n UpdateKeyNotFoundError\n};\n//# sourceMappingURL=errors.js.map\n","import { TanStackDBError } from \"@tanstack/db\";\nclass PersistedCollectionCoreError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `PersistedCollectionCoreError`;\n }\n}\nclass InvalidPersistedCollectionConfigError extends PersistedCollectionCoreError {\n constructor(message) {\n super(message);\n this.name = `InvalidPersistedCollectionConfigError`;\n }\n}\nclass InvalidSyncConfigError extends InvalidPersistedCollectionConfigError {\n constructor(details) {\n super(\n details ? `Invalid sync config: ${details}` : `Invalid sync config: expected an object with a callable sync function`\n );\n this.name = `InvalidSyncConfigError`;\n }\n}\nclass InvalidPersistedCollectionCoordinatorError extends InvalidPersistedCollectionConfigError {\n constructor(methodName) {\n super(\n `Invalid persisted collection coordinator: missing required \"${methodName}\" method`\n );\n this.name = `InvalidPersistedCollectionCoordinatorError`;\n }\n}\nclass InvalidPersistenceAdapterError extends InvalidPersistedCollectionConfigError {\n constructor(methodName) {\n super(\n `Invalid persistence adapter: missing required \"${methodName}\" method`\n );\n this.name = `InvalidPersistenceAdapterError`;\n }\n}\nclass PersistedCollectionDurabilityError extends PersistedCollectionCoreError {\n constructor(message, options = {}) {\n super(message);\n this.name = `PersistedCollectionDurabilityError`;\n this.cause = options.cause;\n this.code = options.code;\n this.path = options.path;\n }\n}\nfunction toPersistedCollectionDurabilityError(collectionId, cause) {\n if (cause instanceof PersistedCollectionDurabilityError) {\n return cause;\n }\n const details = typeof cause === `object` && cause !== null ? cause : void 0;\n const message = cause instanceof Error ? cause.message : String(cause);\n return new PersistedCollectionDurabilityError(\n `Failed to durably persist collection \"${collectionId}\": ${message}`,\n {\n cause,\n code: details?.code,\n path: details?.path\n }\n );\n}\nclass IndeterminateCommitError extends PersistedCollectionCoreError {\n constructor(options) {\n super(\n `Commit outcome is indeterminate for collection \"${options.collectionId}\": ${options.requestType} crossed leadership from ${formatLeader(options.previousLeaderId, options.previousTerm)} to ${formatLeader(options.currentLeaderId, options.currentTerm)}`\n );\n this.code = `INDETERMINATE_COMMIT`;\n this.name = `IndeterminateCommitError`;\n this.collectionId = options.collectionId;\n this.requestType = options.requestType;\n this.previousLeaderId = options.previousLeaderId;\n this.previousTerm = options.previousTerm;\n this.currentLeaderId = options.currentLeaderId;\n this.currentTerm = options.currentTerm;\n this.cause = options.cause;\n }\n}\nfunction formatLeader(leaderId, term) {\n return `${leaderId ?? `unknown leader`} (term ${term ?? `unknown`})`;\n}\nclass DuplicateRemoteSubsetOwnerError extends PersistedCollectionCoreError {\n constructor(collectionId) {\n super(\n `A remote subset owner is already registered for collection \"${collectionId}\"`\n );\n this.name = `DuplicateRemoteSubsetOwnerError`;\n this.collectionId = collectionId;\n }\n}\nclass RetryableRemoteSubsetAcquisitionError extends PersistedCollectionCoreError {\n constructor(message, cause) {\n super(message);\n this.name = `RetryableRemoteSubsetAcquisitionError`;\n this.cause = cause;\n }\n}\nclass InvalidPersistedStorageKeyError extends InvalidPersistedCollectionConfigError {\n constructor(key) {\n super(\n `Invalid persisted storage key \"${String(key)}\": numeric keys must be finite`\n );\n this.name = `InvalidPersistedStorageKeyError`;\n }\n}\nclass InvalidPersistedStorageKeyEncodingError extends InvalidPersistedCollectionConfigError {\n constructor(encoded) {\n super(\n `Invalid persisted storage key encoding \"${encoded}\": expected prefix \"n:\" or \"s:\"`\n );\n this.name = `InvalidPersistedStorageKeyEncodingError`;\n }\n}\nclass SQLiteBigIntOutOfRangeError extends PersistedCollectionCoreError {\n constructor(value, minimum, maximum) {\n super(\n `SQLite BigInt value ${value} is outside the signed 64-bit range [${minimum}, ${maximum}]`\n );\n this.name = `SQLiteBigIntOutOfRangeError`;\n }\n}\nclass PersistenceUnavailableError extends PersistedCollectionCoreError {\n constructor(details) {\n super(\n details ? `Persistence unavailable: ${details}` : `Persistence unavailable in this runtime`\n );\n this.name = `PersistenceUnavailableError`;\n }\n}\nexport {\n DuplicateRemoteSubsetOwnerError,\n IndeterminateCommitError,\n InvalidPersistedCollectionConfigError,\n InvalidPersistedCollectionCoordinatorError,\n InvalidPersistedStorageKeyEncodingError,\n InvalidPersistedStorageKeyError,\n InvalidPersistenceAdapterError,\n InvalidSyncConfigError,\n PersistedCollectionCoreError,\n PersistedCollectionDurabilityError,\n PersistenceUnavailableError,\n RetryableRemoteSubsetAcquisitionError,\n SQLiteBigIntOutOfRangeError,\n toPersistedCollectionDurabilityError\n};\n//# sourceMappingURL=errors.js.map\n","import SQLiteESMFactory from '@journeyapps/wa-sqlite/dist/wa-sqlite.mjs'\nimport * as SQLite from '@journeyapps/wa-sqlite'\nimport { OPFSCoopSyncVFS } from '@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js'\nimport {\n InvalidPersistedCollectionConfigError,\n PersistenceUnavailableError,\n} from '@tanstack/db-sqlite-persistence-core'\nimport type {\n BrowserOPFSWorkerErrorCode,\n BrowserOPFSWorkerRequest,\n BrowserOPFSWorkerResponse,\n} from './opfs-worker-protocol'\n\nconst workerGlobal = globalThis as typeof globalThis & {\n postMessage: (message: BrowserOPFSWorkerResponse) => void\n addEventListener: (\n type: `message`,\n listener: (event: MessageEvent<BrowserOPFSWorkerRequest>) => void,\n ) => void\n}\n\nconst SQLITE_ROW = 100\nconst SQLITE_DONE = 101\n\ntype SQLiteCompatibleBinding =\n | null\n | string\n | number\n | bigint\n | Uint8Array\n | Array<number>\n\ntype WorkerOPFSGlobal = {\n navigator?: {\n storage?: {\n getDirectory?: () => Promise<unknown>\n }\n }\n FileSystemFileHandle?: {\n prototype?: {\n createSyncAccessHandle?: () => Promise<unknown>\n }\n }\n}\n\nlet sqlite3Instance: ReturnType<typeof SQLite.Factory> | null = null\nlet sqliteDatabaseHandle: number | null = null\nlet opfsVfsInstance: { close?: () => Promise<void> | void } | null = null\n\nfunction hasWorkerOPFSSyncAccessSupport(globalObject: unknown): boolean {\n const candidate = globalObject as WorkerOPFSGlobal\n const getDirectory = candidate.navigator?.storage?.getDirectory\n const createSyncAccessHandle =\n candidate.FileSystemFileHandle?.prototype?.createSyncAccessHandle\n\n return (\n typeof getDirectory === `function` &&\n typeof createSyncAccessHandle === `function`\n )\n}\n\nfunction toBindableValue(value: unknown): SQLiteCompatibleBinding {\n if (value === null || value === undefined) {\n return null\n }\n\n if (typeof value === `string`) {\n return value\n }\n\n if (typeof value === `number`) {\n return Number.isFinite(value) ? value : null\n }\n\n if (typeof value === `bigint`) {\n return value\n }\n\n if (typeof value === `boolean`) {\n return value ? 1 : 0\n }\n\n if (value instanceof Date) {\n return value.toISOString()\n }\n\n if (value instanceof Uint8Array) {\n return value\n }\n\n if (\n Array.isArray(value) &&\n value.every((entry) => typeof entry === `number` && Number.isFinite(entry))\n ) {\n return [...value]\n }\n\n throw new InvalidPersistedCollectionConfigError(\n `Unsupported parameter type for wa-sqlite binding`,\n )\n}\n\nfunction toErrorCode(error: unknown): BrowserOPFSWorkerErrorCode {\n if (error instanceof PersistenceUnavailableError) {\n return `PERSISTENCE_UNAVAILABLE`\n }\n if (error instanceof InvalidPersistedCollectionConfigError) {\n return `INVALID_CONFIG`\n }\n return `INTERNAL`\n}\n\nasync function closeWorkerDatabase(): Promise<void> {\n const sqlite3 = sqlite3Instance\n const dbHandle = sqliteDatabaseHandle\n const vfs = opfsVfsInstance\n\n sqlite3Instance = null\n sqliteDatabaseHandle = null\n opfsVfsInstance = null\n\n let closeError: unknown\n if (sqlite3 && dbHandle !== null) {\n try {\n await sqlite3.close(dbHandle)\n } catch (error) {\n closeError = error\n }\n }\n\n try {\n await Promise.resolve(vfs?.close?.())\n } catch (error) {\n closeError ??= error\n }\n\n if (closeError) {\n throw closeError\n }\n}\n\nasync function initializeWorkerDatabase(request: {\n databaseName: string\n vfsName: string\n}): Promise<void> {\n if (!hasWorkerOPFSSyncAccessSupport(workerGlobal)) {\n throw new PersistenceUnavailableError(\n `Browser OPFS sync access is not available in this worker runtime`,\n )\n }\n\n await closeWorkerDatabase()\n\n const sqliteModule = await SQLiteESMFactory()\n const sqlite3 = SQLite.Factory(sqliteModule)\n const opfsVfs = await OPFSCoopSyncVFS.create(request.vfsName, sqliteModule)\n sqlite3.vfs_register(opfsVfs as never, true)\n\n const openFlags =\n SQLite.SQLITE_OPEN_CREATE |\n SQLite.SQLITE_OPEN_READWRITE |\n SQLite.SQLITE_OPEN_URI\n const databaseFileUri = `file:${request.databaseName}?vfs=${encodeURIComponent(request.vfsName)}`\n let dbHandle: number\n try {\n dbHandle = await sqlite3.open_v2(\n databaseFileUri,\n openFlags,\n request.vfsName,\n )\n } catch (error) {\n const cause = opfsVfs.lastError\n if (error instanceof Error && cause instanceof Error) {\n throw new Error(`${error.message}: ${cause.name}: ${cause.message}`, {\n cause,\n })\n }\n throw error\n }\n\n sqlite3Instance = sqlite3\n sqliteDatabaseHandle = dbHandle\n opfsVfsInstance = opfsVfs\n}\n\nfunction getInitializedDatabaseState(): {\n sqlite3: ReturnType<typeof SQLite.Factory>\n dbHandle: number\n} {\n if (!sqlite3Instance || sqliteDatabaseHandle === null) {\n throw new InvalidPersistedCollectionConfigError(\n `OPFS worker database has not been initialized`,\n )\n }\n\n return {\n sqlite3: sqlite3Instance,\n dbHandle: sqliteDatabaseHandle,\n }\n}\n\nasync function executeSqlInWorker(\n sql: string,\n params: ReadonlyArray<unknown>,\n): Promise<ReadonlyArray<Record<string, unknown>>> {\n const { sqlite3, dbHandle } = getInitializedDatabaseState()\n const rows = new Array<Record<string, unknown>>()\n let parametersBound = false\n\n for await (const statement of sqlite3.statements(dbHandle, sql)) {\n if (params.length > 0) {\n if (parametersBound) {\n throw new InvalidPersistedCollectionConfigError(\n `wa-sqlite worker only supports parameter binding for a single SQL statement`,\n )\n }\n\n sqlite3.bind_collection(\n statement,\n params.map((param) => toBindableValue(param)),\n )\n parametersBound = true\n }\n\n let columns = [...sqlite3.column_names(statement)]\n for (;;) {\n const stepResult = await sqlite3.step(statement)\n\n if (stepResult === SQLITE_ROW) {\n if (columns.length === 0) {\n columns = [...sqlite3.column_names(statement)]\n }\n const values = sqlite3.row(statement)\n const row: Record<string, unknown> = {}\n for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {\n const columnName = columns[columnIndex]\n if (!columnName) {\n continue\n }\n row[columnName] = values[columnIndex]\n }\n rows.push(row)\n continue\n }\n\n if (stepResult === SQLITE_DONE) {\n break\n }\n\n throw new InvalidPersistedCollectionConfigError(\n `wa-sqlite step returned unexpected result code: ${String(stepResult)}`,\n )\n }\n }\n\n if (params.length > 0 && !parametersBound) {\n throw new InvalidPersistedCollectionConfigError(\n `SQL query parameters were provided but no statement accepted bindings`,\n )\n }\n\n return rows\n}\n\nasync function handleWorkerRequest(\n request: BrowserOPFSWorkerRequest,\n): Promise<BrowserOPFSWorkerResponse> {\n try {\n switch (request.type) {\n case `init`:\n await initializeWorkerDatabase({\n databaseName: request.databaseName,\n vfsName: request.vfsName,\n })\n return {\n type: `response`,\n requestId: request.requestId,\n ok: true,\n }\n case `execute`: {\n const rows = await executeSqlInWorker(request.sql, request.params)\n return {\n type: `response`,\n requestId: request.requestId,\n ok: true,\n rows,\n }\n }\n case `close`:\n await closeWorkerDatabase()\n return {\n type: `response`,\n requestId: request.requestId,\n ok: true,\n }\n default:\n throw new InvalidPersistedCollectionConfigError(\n `Unknown OPFS worker request type`,\n )\n }\n } catch (error) {\n return {\n type: `response`,\n requestId: request.requestId,\n ok: false,\n code: toErrorCode(error),\n error: (error as Error).message,\n }\n }\n}\n\nworkerGlobal.addEventListener(`message`, (event) => {\n void handleWorkerRequest(event.data).then((response) => {\n workerGlobal.postMessage(response)\n })\n})\n"],"names":["Module","result","err","xhr","lazyArray","ret","wasmExports","AsyncFunction","SQLITE_ROW","SQLITE_DONE","SQLite.SQLITE_MISUSE","SQLite.SQLITE_OK","SQLite.SQLITE_NOTICE","SQLite.SQLITE_RANGE","SQLite.SQLITE_BLOB","SQLite.SQLITE_FLOAT","SQLite.SQLITE_INTEGER","SQLite.SQLITE_NULL","SQLite.SQLITE_TEXT","SQLite.SQLITE_ROW","SQLite.SQLITE_OPEN_CREATE","SQLite.SQLITE_OPEN_READWRITE","SQLite.SQLITE_DONE","VFS.SQLITE_CANTOPEN","VFS.SQLITE_OK","VFS.SQLITE_NOTFOUND","VFS.Base","VFS.SQLITE_IOERR","VFS.SQLITE_IOERR_SHORT_READ","VFS.SQLITE_IOERR_WRITE","VFS.SQLITE_OPEN_URI","VFS.SQLITE_OPEN_MAIN_DB","VFS.SQLITE_BUSY","VFS.SQLITE_OPEN_CREATE","file","persistentFile","VFS.SQLITE_IOERR_DELETE","VFS.SQLITE_IOERR_ACCESS","VFS.SQLITE_OPEN_DELETEONCLOSE","VFS.SQLITE_IOERR_CLOSE","VFS.SQLITE_IOERR_READ","VFS.SQLITE_IOERR_TRUNCATE","VFS.SQLITE_IOERR_FSYNC","VFS.SQLITE_IOERR_FSTAT","VFS.SQLITE_LOCK_NONE","VFS.SQLITE_FCNTL_PRAGMA","SQLiteESMFactory","SQLite.Factory","SQLite.SQLITE_OPEN_URI"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
1
+ {"version":3,"file":"opfs-worker-accoEoax.js","sources":["../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/dist/wa-sqlite.mjs","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/sqlite-constants.js","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/sqlite-api.js","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/VFS.js","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/FacadeVFS.js","../../../node_modules/.pnpm/@journeyapps+wa-sqlite@1.5.0/node_modules/@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js","../../db/dist/esm/errors.js","../../db-sqlite-persistence-core/dist/esm/errors.js","../src/opfs-worker.ts"],"sourcesContent":["async function Module(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!=\"renderer\";var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"qa\"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"wa-sqlite.wasm\")}return new URL(\"wa-sqlite.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}var tempDouble;var tempI64;class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);function getValue(ptr,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":return HEAP8[ptr];case\"i8\":return HEAP8[ptr];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":abort(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];case\"*\":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=true;function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":HEAP8[ptr]=value;break;case\"i8\":HEAP8[ptr]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":abort(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{if(!ptr)return\"\";var end=findStringEnd(HEAPU8,ptr,maxBytesToRead,ignoreNul);return UTF8Decoder.decode(HEAPU8.subarray(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"]);var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>crypto.getRandomValues(view);var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);return UTF8Decoder.decode(heapOrArray.buffer?heapOrArray.subarray(idx,endPtr):new Uint8Array(heapOrArray.slice(idx,endPtr)))};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(globalThis.window?.prompt){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>HEAPU8.fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"<generic error, no stack>\"}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}HEAP8.set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_modeStringToFlags=str=>{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=\"undefined\")Browser.init();for(var plugin of preloadPlugins){if(plugin[\"canHandle\"](fullname)){return plugin[\"handle\"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url==\"string\"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]===\".\"){continue}if(parts[i]===\"..\"){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+\"/\"+parts.slice(i+1).join(\"/\");nlinks--;continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+\"/\"+link}path=link+\"/\"+parts.slice(i+1).join(\"/\");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}if(perms.includes(\"w\")&&!(node.mode&146)){return 2}if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else if(FS.isDir(node.mode)){return 31}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}var mode=FS.flagsToPermissionString(flags);if(FS.isDir(node.mode)){if(mode!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,mode)},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){abort(`Invalid encoding type \"${opts.encoding}\"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(globalThis.XMLHttpRequest){abort(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else{try{obj.contents=readBinary(obj.url)}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)abort(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")abort(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort(\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;tempI64=[stats.blocks>>>0,(tempDouble=stats.blocks,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+8>>2]=tempI64[0],HEAP32[buf+12>>2]=tempI64[1];tempI64=[stats.bfree>>>0,(tempDouble=stats.bfree,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+16>>2]=tempI64[0],HEAP32[buf+20>>2]=tempI64[1];tempI64=[stats.bavail>>>0,(tempDouble=stats.bavail,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];tempI64=[stats.files>>>0,(tempDouble=stats.files,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+32>>2]=tempI64[0],HEAP32[buf+36>>2]=tempI64[1];tempI64=[stats.ffree>>>0,(tempDouble=stats.ffree,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return-61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);var now=Date.now(),atime,mtime;if(!times){atime=now;mtime=now}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];if(nanoseconds==1073741823){atime=now}else if(nanoseconds==1073741822){atime=null}else{atime=seconds*1e3+nanoseconds/(1e3*1e3)}times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];if(nanoseconds==1073741823){mtime=now}else if(nanoseconds==1073741822){mtime=null}else{mtime=seconds*1e3+nanoseconds/(1e3*1e3)}}if((mtime??atime)!==null){FS.utime(path,atime,mtime)}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __abort_js=()=>abort(\"\");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var timers={};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _emscripten_date_now=()=>Date.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);var rtn=stream.stream_ops?.fsync?.(stream);return rtn}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify===\"object\"?Asyncify.handleAsync.bind(Asyncify):null;Module[\"handleAsync\"]=handleAsync;const targets=new Map;Module[\"setCallback\"]=(key,target)=>targets.set(key,target);Module[\"getCallback\"]=key=>targets.get(key);Module[\"deleteCallback\"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver===\"function\"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error(\"Synchronous WebAssembly cannot call async function\")}const result=f.apply(receiver,args);if(typeof result?.then==\"function\"){console.error(\"unexpected Promise\",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i<offset+count;i++){var item=getWasmTableEntry(i);if(item){functionsInTableMap.set(item,i)}}}};var functionsInTableMap;var getFunctionAddress=func=>{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}return wasmTable[\"grow\"](1)};var setWasmTableEntry=(idx,func)=>wasmTable.set(idx,func);var uleb128EncodeWithLen=arr=>{const n=arr.length;return[n%128|128,n>>7,...arr]};var wasmTypeCodes={i:127,p:127,j:126,f:125,d:124,e:111};var generateTypePack=types=>uleb128EncodeWithLen(Array.from(types,type=>{var code=wasmTypeCodes[type];return code}));var convertJsFunctionToWasm=(func,sig)=>{var bytes=Uint8Array.of(0,97,115,109,1,0,0,0,1,...uleb128EncodeWithLen([1,96,...generateTypePack(sig.slice(1)),...generateTypePack(sig[0]===\"v\"?\"\":sig[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports[\"f\"];return wrappedFunc};var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++}HEAP32[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str=\"\";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=new TextDecoder(\"utf-16le\");var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd(HEAPU16,idx,maxBytesToRead/2,ignoreNul);return UTF16Decoder.decode(HEAPU16.subarray(idx,endIdx))};var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str=\"\";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=HEAPU32[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32)}return str};var intArrayToString=array=>{var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")};var _getTempRet0=getTempRet0;FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();adapters_support();{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"getTempRet0\"]=getTempRet0;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"addFunction\"]=addFunction;Module[\"setValue\"]=setValue;Module[\"getValue\"]=getValue;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"intArrayFromString\"]=intArrayFromString;Module[\"intArrayToString\"]=intArrayToString;Module[\"AsciiToString\"]=AsciiToString;Module[\"UTF16ToString\"]=UTF16ToString;Module[\"stringToUTF16\"]=stringToUTF16;Module[\"UTF32ToString\"]=UTF32ToString;Module[\"stringToUTF32\"]=stringToUTF32;Module[\"writeArrayToMemory\"]=writeArrayToMemory;Module[\"_getTempRet0\"]=_getTempRet0;var _powersync_init_static,_sqlite3_status64,_sqlite3_status,_sqlite3_msize,_sqlite3_db_status,_sqlite3_vfs_find,_sqlite3_vfs_register,_sqlite3_vfs_unregister,_sqlite3_release_memory,_sqlite3_soft_heap_limit64,_sqlite3_memory_used,_sqlite3_hard_heap_limit64,_sqlite3_memory_highwater,_sqlite3_malloc,_sqlite3_malloc64,_sqlite3_free,_sqlite3_realloc,_sqlite3_realloc64,_sqlite3_str_vappendf,_sqlite3_str_append,_sqlite3_str_appendchar,_sqlite3_str_appendall,_sqlite3_str_appendf,_sqlite3_str_finish,_sqlite3_str_errcode,_sqlite3_str_length,_sqlite3_str_value,_sqlite3_str_reset,_sqlite3_str_new,_sqlite3_vmprintf,_sqlite3_mprintf,_sqlite3_vsnprintf,_sqlite3_snprintf,_sqlite3_log,_sqlite3_randomness,_sqlite3_stricmp,_sqlite3_strnicmp,_sqlite3_os_init,_sqlite3_os_end,_sqlite3_serialize,_sqlite3_prepare_v2,_sqlite3_step,_sqlite3_column_int64,_sqlite3_reset,_sqlite3_exec,_sqlite3_column_int,_sqlite3_finalize,_sqlite3_deserialize,_sqlite3_database_file_object,_sqlite3_backup_init,_sqlite3_backup_step,_sqlite3_backup_finish,_sqlite3_backup_remaining,_sqlite3_backup_pagecount,_sqlite3_clear_bindings,_sqlite3_value_blob,_sqlite3_value_text,_sqlite3_value_bytes,_sqlite3_value_bytes16,_sqlite3_value_double,_sqlite3_value_int,_sqlite3_value_int64,_sqlite3_value_subtype,_sqlite3_value_pointer,_sqlite3_value_text16,_sqlite3_value_text16be,_sqlite3_value_text16le,_sqlite3_value_type,_sqlite3_value_encoding,_sqlite3_value_nochange,_sqlite3_value_frombind,_sqlite3_value_dup,_sqlite3_value_free,_sqlite3_result_blob,_sqlite3_result_blob64,_sqlite3_result_double,_sqlite3_result_error,_sqlite3_result_error16,_sqlite3_result_int,_sqlite3_result_int64,_sqlite3_result_null,_sqlite3_result_pointer,_sqlite3_result_subtype,_sqlite3_result_text,_sqlite3_result_text64,_sqlite3_result_text16,_sqlite3_result_text16be,_sqlite3_result_text16le,_sqlite3_result_value,_sqlite3_result_error_toobig,_sqlite3_result_zeroblob,_sqlite3_result_zeroblob64,_sqlite3_result_error_code,_sqlite3_result_error_nomem,_sqlite3_user_data,_sqlite3_context_db_handle,_sqlite3_vtab_nochange,_sqlite3_vtab_in_first,_sqlite3_vtab_in_next,_sqlite3_aggregate_context,_sqlite3_get_auxdata,_sqlite3_set_auxdata,_sqlite3_column_count,_sqlite3_data_count,_sqlite3_column_blob,_sqlite3_column_bytes,_sqlite3_column_bytes16,_sqlite3_column_double,_sqlite3_column_text,_sqlite3_column_value,_sqlite3_column_text16,_sqlite3_column_type,_sqlite3_column_name,_sqlite3_column_name16,_sqlite3_bind_blob,_sqlite3_bind_blob64,_sqlite3_bind_double,_sqlite3_bind_int,_sqlite3_bind_int64,_sqlite3_bind_null,_sqlite3_bind_pointer,_sqlite3_bind_text,_sqlite3_bind_text64,_sqlite3_bind_text16,_sqlite3_bind_value,_sqlite3_bind_zeroblob,_sqlite3_bind_zeroblob64,_sqlite3_bind_parameter_count,_sqlite3_bind_parameter_name,_sqlite3_bind_parameter_index,_sqlite3_db_handle,_sqlite3_stmt_readonly,_sqlite3_stmt_isexplain,_sqlite3_stmt_explain,_sqlite3_stmt_busy,_sqlite3_next_stmt,_sqlite3_stmt_status,_sqlite3_sql,_sqlite3_expanded_sql,_sqlite3_value_numeric_type,_sqlite3_blob_open,_sqlite3_blob_close,_sqlite3_blob_read,_sqlite3_blob_write,_sqlite3_blob_bytes,_sqlite3_blob_reopen,_sqlite3_set_authorizer,_sqlite3_strglob,_sqlite3_strlike,_sqlite3_errmsg,_sqlite3_load_extension,_sqlite3_enable_load_extension,_sqlite3_auto_extension,_sqlite3_cancel_auto_extension,_sqlite3_reset_auto_extension,_sqlite3_prepare,_sqlite3_prepare_v3,_sqlite3_prepare16,_sqlite3_prepare16_v2,_sqlite3_prepare16_v3,_sqlite3_get_table,_sqlite3_free_table,_sqlite3_create_module,_sqlite3_create_module_v2,_sqlite3_drop_modules,_sqlite3_declare_vtab,_sqlite3_vtab_on_conflict,_sqlite3_vtab_config,_sqlite3_vtab_collation,_sqlite3_vtab_in,_sqlite3_vtab_rhs_value,_sqlite3_vtab_distinct,_sqlite3_keyword_name,_sqlite3_keyword_count,_sqlite3_keyword_check,_sqlite3_complete,_sqlite3_complete16,_sqlite3_libversion,_sqlite3_libversion_number,_sqlite3_threadsafe,_sqlite3_initialize,_sqlite3_shutdown,_sqlite3_config,_sqlite3_db_mutex,_sqlite3_db_release_memory,_sqlite3_db_cacheflush,_sqlite3_db_config,_sqlite3_last_insert_rowid,_sqlite3_set_last_insert_rowid,_sqlite3_changes64,_sqlite3_changes,_sqlite3_total_changes64,_sqlite3_total_changes,_sqlite3_txn_state,_sqlite3_close,_sqlite3_close_v2,_sqlite3_busy_handler,_sqlite3_progress_handler,_sqlite3_busy_timeout,_sqlite3_interrupt,_sqlite3_is_interrupted,_sqlite3_create_function,_sqlite3_create_function_v2,_sqlite3_create_window_function,_sqlite3_create_function16,_sqlite3_overload_function,_sqlite3_trace_v2,_sqlite3_commit_hook,_sqlite3_update_hook,_sqlite3_rollback_hook,_sqlite3_autovacuum_pages,_sqlite3_wal_autocheckpoint,_sqlite3_wal_hook,_sqlite3_wal_checkpoint_v2,_sqlite3_wal_checkpoint,_sqlite3_error_offset,_sqlite3_errmsg16,_sqlite3_errcode,_sqlite3_extended_errcode,_sqlite3_system_errno,_sqlite3_errstr,_sqlite3_limit,_sqlite3_open,_sqlite3_open_v2,_sqlite3_open16,_sqlite3_create_collation,_sqlite3_create_collation_v2,_sqlite3_create_collation16,_sqlite3_collation_needed,_sqlite3_collation_needed16,_sqlite3_get_clientdata,_sqlite3_set_clientdata,_sqlite3_get_autocommit,_sqlite3_table_column_metadata,_sqlite3_sleep,_sqlite3_extended_result_codes,_sqlite3_file_control,_sqlite3_test_control,_sqlite3_create_filename,_sqlite3_free_filename,_sqlite3_uri_parameter,_sqlite3_uri_key,_sqlite3_uri_boolean,_sqlite3_uri_int64,_sqlite3_filename_database,_sqlite3_filename_journal,_sqlite3_filename_wal,_sqlite3_db_name,_sqlite3_db_filename,_sqlite3_db_readonly,_sqlite3_compileoption_used,_sqlite3_compileoption_get,_sqlite3_sourceid,_memcmp,_malloc,_free,_RegisterExtensionFunctions,_getSqliteFree,_main,_libauthorizer_set_authorizer,_libfunction_create_function,_libhook_commit_hook,_libhook_update_hook,_libprogress_progress_handler,_libvfs_vfs_register,_memcpy,_memset,_emscripten_builtin_memalign,__emscripten_timeout,__emscripten_tempret_get,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,dynCall_viiiij,dynCall_vijii,dynCall_iiiij,dynCall_viji,dynCall_iij,dynCall_iijii,dynCall_iiji,dynCall_iiiiiij,dynCall_iiij,dynCall_jii,dynCall_ji,dynCall_vij,dynCall_iiiiijii,dynCall_j,dynCall_jj,dynCall_jiij,dynCall_iiiiji,dynCall_iiiijii,dynCall_ij,dynCall_viiji,dynCall_viijii,dynCall_iiiijji,memory,_sqlite3_version,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_powersync_init_static=Module[\"_powersync_init_static\"]=wasmExports[\"ra\"];_sqlite3_status64=Module[\"_sqlite3_status64\"]=wasmExports[\"sa\"];_sqlite3_status=Module[\"_sqlite3_status\"]=wasmExports[\"ta\"];_sqlite3_msize=Module[\"_sqlite3_msize\"]=wasmExports[\"ua\"];_sqlite3_db_status=Module[\"_sqlite3_db_status\"]=wasmExports[\"va\"];_sqlite3_vfs_find=Module[\"_sqlite3_vfs_find\"]=wasmExports[\"wa\"];_sqlite3_vfs_register=Module[\"_sqlite3_vfs_register\"]=wasmExports[\"xa\"];_sqlite3_vfs_unregister=Module[\"_sqlite3_vfs_unregister\"]=wasmExports[\"ya\"];_sqlite3_release_memory=Module[\"_sqlite3_release_memory\"]=wasmExports[\"za\"];_sqlite3_soft_heap_limit64=Module[\"_sqlite3_soft_heap_limit64\"]=wasmExports[\"Aa\"];_sqlite3_memory_used=Module[\"_sqlite3_memory_used\"]=wasmExports[\"Ba\"];_sqlite3_hard_heap_limit64=Module[\"_sqlite3_hard_heap_limit64\"]=wasmExports[\"Ca\"];_sqlite3_memory_highwater=Module[\"_sqlite3_memory_highwater\"]=wasmExports[\"Da\"];_sqlite3_malloc=Module[\"_sqlite3_malloc\"]=wasmExports[\"Ea\"];_sqlite3_malloc64=Module[\"_sqlite3_malloc64\"]=wasmExports[\"Fa\"];_sqlite3_free=Module[\"_sqlite3_free\"]=wasmExports[\"Ga\"];_sqlite3_realloc=Module[\"_sqlite3_realloc\"]=wasmExports[\"Ha\"];_sqlite3_realloc64=Module[\"_sqlite3_realloc64\"]=wasmExports[\"Ia\"];_sqlite3_str_vappendf=Module[\"_sqlite3_str_vappendf\"]=wasmExports[\"Ja\"];_sqlite3_str_append=Module[\"_sqlite3_str_append\"]=wasmExports[\"Ka\"];_sqlite3_str_appendchar=Module[\"_sqlite3_str_appendchar\"]=wasmExports[\"La\"];_sqlite3_str_appendall=Module[\"_sqlite3_str_appendall\"]=wasmExports[\"Ma\"];_sqlite3_str_appendf=Module[\"_sqlite3_str_appendf\"]=wasmExports[\"Na\"];_sqlite3_str_finish=Module[\"_sqlite3_str_finish\"]=wasmExports[\"Oa\"];_sqlite3_str_errcode=Module[\"_sqlite3_str_errcode\"]=wasmExports[\"Pa\"];_sqlite3_str_length=Module[\"_sqlite3_str_length\"]=wasmExports[\"Qa\"];_sqlite3_str_value=Module[\"_sqlite3_str_value\"]=wasmExports[\"Ra\"];_sqlite3_str_reset=Module[\"_sqlite3_str_reset\"]=wasmExports[\"Sa\"];_sqlite3_str_new=Module[\"_sqlite3_str_new\"]=wasmExports[\"Ta\"];_sqlite3_vmprintf=Module[\"_sqlite3_vmprintf\"]=wasmExports[\"Ua\"];_sqlite3_mprintf=Module[\"_sqlite3_mprintf\"]=wasmExports[\"Va\"];_sqlite3_vsnprintf=Module[\"_sqlite3_vsnprintf\"]=wasmExports[\"Wa\"];_sqlite3_snprintf=Module[\"_sqlite3_snprintf\"]=wasmExports[\"Xa\"];_sqlite3_log=Module[\"_sqlite3_log\"]=wasmExports[\"Ya\"];_sqlite3_randomness=Module[\"_sqlite3_randomness\"]=wasmExports[\"Za\"];_sqlite3_stricmp=Module[\"_sqlite3_stricmp\"]=wasmExports[\"_a\"];_sqlite3_strnicmp=Module[\"_sqlite3_strnicmp\"]=wasmExports[\"$a\"];_sqlite3_os_init=Module[\"_sqlite3_os_init\"]=wasmExports[\"ab\"];_sqlite3_os_end=Module[\"_sqlite3_os_end\"]=wasmExports[\"bb\"];_sqlite3_serialize=Module[\"_sqlite3_serialize\"]=wasmExports[\"cb\"];_sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=wasmExports[\"db\"];_sqlite3_step=Module[\"_sqlite3_step\"]=wasmExports[\"eb\"];_sqlite3_column_int64=Module[\"_sqlite3_column_int64\"]=wasmExports[\"fb\"];_sqlite3_reset=Module[\"_sqlite3_reset\"]=wasmExports[\"gb\"];_sqlite3_exec=Module[\"_sqlite3_exec\"]=wasmExports[\"hb\"];_sqlite3_column_int=Module[\"_sqlite3_column_int\"]=wasmExports[\"ib\"];_sqlite3_finalize=Module[\"_sqlite3_finalize\"]=wasmExports[\"jb\"];_sqlite3_deserialize=Module[\"_sqlite3_deserialize\"]=wasmExports[\"kb\"];_sqlite3_database_file_object=Module[\"_sqlite3_database_file_object\"]=wasmExports[\"lb\"];_sqlite3_backup_init=Module[\"_sqlite3_backup_init\"]=wasmExports[\"mb\"];_sqlite3_backup_step=Module[\"_sqlite3_backup_step\"]=wasmExports[\"nb\"];_sqlite3_backup_finish=Module[\"_sqlite3_backup_finish\"]=wasmExports[\"ob\"];_sqlite3_backup_remaining=Module[\"_sqlite3_backup_remaining\"]=wasmExports[\"pb\"];_sqlite3_backup_pagecount=Module[\"_sqlite3_backup_pagecount\"]=wasmExports[\"qb\"];_sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=wasmExports[\"rb\"];_sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=wasmExports[\"sb\"];_sqlite3_value_text=Module[\"_sqlite3_value_text\"]=wasmExports[\"tb\"];_sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=wasmExports[\"ub\"];_sqlite3_value_bytes16=Module[\"_sqlite3_value_bytes16\"]=wasmExports[\"vb\"];_sqlite3_value_double=Module[\"_sqlite3_value_double\"]=wasmExports[\"wb\"];_sqlite3_value_int=Module[\"_sqlite3_value_int\"]=wasmExports[\"xb\"];_sqlite3_value_int64=Module[\"_sqlite3_value_int64\"]=wasmExports[\"yb\"];_sqlite3_value_subtype=Module[\"_sqlite3_value_subtype\"]=wasmExports[\"zb\"];_sqlite3_value_pointer=Module[\"_sqlite3_value_pointer\"]=wasmExports[\"Ab\"];_sqlite3_value_text16=Module[\"_sqlite3_value_text16\"]=wasmExports[\"Bb\"];_sqlite3_value_text16be=Module[\"_sqlite3_value_text16be\"]=wasmExports[\"Cb\"];_sqlite3_value_text16le=Module[\"_sqlite3_value_text16le\"]=wasmExports[\"Db\"];_sqlite3_value_type=Module[\"_sqlite3_value_type\"]=wasmExports[\"Eb\"];_sqlite3_value_encoding=Module[\"_sqlite3_value_encoding\"]=wasmExports[\"Fb\"];_sqlite3_value_nochange=Module[\"_sqlite3_value_nochange\"]=wasmExports[\"Gb\"];_sqlite3_value_frombind=Module[\"_sqlite3_value_frombind\"]=wasmExports[\"Hb\"];_sqlite3_value_dup=Module[\"_sqlite3_value_dup\"]=wasmExports[\"Ib\"];_sqlite3_value_free=Module[\"_sqlite3_value_free\"]=wasmExports[\"Jb\"];_sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=wasmExports[\"Kb\"];_sqlite3_result_blob64=Module[\"_sqlite3_result_blob64\"]=wasmExports[\"Lb\"];_sqlite3_result_double=Module[\"_sqlite3_result_double\"]=wasmExports[\"Mb\"];_sqlite3_result_error=Module[\"_sqlite3_result_error\"]=wasmExports[\"Nb\"];_sqlite3_result_error16=Module[\"_sqlite3_result_error16\"]=wasmExports[\"Ob\"];_sqlite3_result_int=Module[\"_sqlite3_result_int\"]=wasmExports[\"Pb\"];_sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=wasmExports[\"Qb\"];_sqlite3_result_null=Module[\"_sqlite3_result_null\"]=wasmExports[\"Rb\"];_sqlite3_result_pointer=Module[\"_sqlite3_result_pointer\"]=wasmExports[\"Sb\"];_sqlite3_result_subtype=Module[\"_sqlite3_result_subtype\"]=wasmExports[\"Tb\"];_sqlite3_result_text=Module[\"_sqlite3_result_text\"]=wasmExports[\"Ub\"];_sqlite3_result_text64=Module[\"_sqlite3_result_text64\"]=wasmExports[\"Vb\"];_sqlite3_result_text16=Module[\"_sqlite3_result_text16\"]=wasmExports[\"Wb\"];_sqlite3_result_text16be=Module[\"_sqlite3_result_text16be\"]=wasmExports[\"Xb\"];_sqlite3_result_text16le=Module[\"_sqlite3_result_text16le\"]=wasmExports[\"Yb\"];_sqlite3_result_value=Module[\"_sqlite3_result_value\"]=wasmExports[\"Zb\"];_sqlite3_result_error_toobig=Module[\"_sqlite3_result_error_toobig\"]=wasmExports[\"_b\"];_sqlite3_result_zeroblob=Module[\"_sqlite3_result_zeroblob\"]=wasmExports[\"$b\"];_sqlite3_result_zeroblob64=Module[\"_sqlite3_result_zeroblob64\"]=wasmExports[\"ac\"];_sqlite3_result_error_code=Module[\"_sqlite3_result_error_code\"]=wasmExports[\"bc\"];_sqlite3_result_error_nomem=Module[\"_sqlite3_result_error_nomem\"]=wasmExports[\"cc\"];_sqlite3_user_data=Module[\"_sqlite3_user_data\"]=wasmExports[\"dc\"];_sqlite3_context_db_handle=Module[\"_sqlite3_context_db_handle\"]=wasmExports[\"ec\"];_sqlite3_vtab_nochange=Module[\"_sqlite3_vtab_nochange\"]=wasmExports[\"fc\"];_sqlite3_vtab_in_first=Module[\"_sqlite3_vtab_in_first\"]=wasmExports[\"gc\"];_sqlite3_vtab_in_next=Module[\"_sqlite3_vtab_in_next\"]=wasmExports[\"hc\"];_sqlite3_aggregate_context=Module[\"_sqlite3_aggregate_context\"]=wasmExports[\"ic\"];_sqlite3_get_auxdata=Module[\"_sqlite3_get_auxdata\"]=wasmExports[\"jc\"];_sqlite3_set_auxdata=Module[\"_sqlite3_set_auxdata\"]=wasmExports[\"kc\"];_sqlite3_column_count=Module[\"_sqlite3_column_count\"]=wasmExports[\"lc\"];_sqlite3_data_count=Module[\"_sqlite3_data_count\"]=wasmExports[\"mc\"];_sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=wasmExports[\"nc\"];_sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=wasmExports[\"oc\"];_sqlite3_column_bytes16=Module[\"_sqlite3_column_bytes16\"]=wasmExports[\"pc\"];_sqlite3_column_double=Module[\"_sqlite3_column_double\"]=wasmExports[\"qc\"];_sqlite3_column_text=Module[\"_sqlite3_column_text\"]=wasmExports[\"rc\"];_sqlite3_column_value=Module[\"_sqlite3_column_value\"]=wasmExports[\"sc\"];_sqlite3_column_text16=Module[\"_sqlite3_column_text16\"]=wasmExports[\"tc\"];_sqlite3_column_type=Module[\"_sqlite3_column_type\"]=wasmExports[\"uc\"];_sqlite3_column_name=Module[\"_sqlite3_column_name\"]=wasmExports[\"vc\"];_sqlite3_column_name16=Module[\"_sqlite3_column_name16\"]=wasmExports[\"wc\"];_sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=wasmExports[\"xc\"];_sqlite3_bind_blob64=Module[\"_sqlite3_bind_blob64\"]=wasmExports[\"yc\"];_sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=wasmExports[\"zc\"];_sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=wasmExports[\"Ac\"];_sqlite3_bind_int64=Module[\"_sqlite3_bind_int64\"]=wasmExports[\"Bc\"];_sqlite3_bind_null=Module[\"_sqlite3_bind_null\"]=wasmExports[\"Cc\"];_sqlite3_bind_pointer=Module[\"_sqlite3_bind_pointer\"]=wasmExports[\"Dc\"];_sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=wasmExports[\"Ec\"];_sqlite3_bind_text64=Module[\"_sqlite3_bind_text64\"]=wasmExports[\"Fc\"];_sqlite3_bind_text16=Module[\"_sqlite3_bind_text16\"]=wasmExports[\"Gc\"];_sqlite3_bind_value=Module[\"_sqlite3_bind_value\"]=wasmExports[\"Hc\"];_sqlite3_bind_zeroblob=Module[\"_sqlite3_bind_zeroblob\"]=wasmExports[\"Ic\"];_sqlite3_bind_zeroblob64=Module[\"_sqlite3_bind_zeroblob64\"]=wasmExports[\"Jc\"];_sqlite3_bind_parameter_count=Module[\"_sqlite3_bind_parameter_count\"]=wasmExports[\"Kc\"];_sqlite3_bind_parameter_name=Module[\"_sqlite3_bind_parameter_name\"]=wasmExports[\"Lc\"];_sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=wasmExports[\"Mc\"];_sqlite3_db_handle=Module[\"_sqlite3_db_handle\"]=wasmExports[\"Nc\"];_sqlite3_stmt_readonly=Module[\"_sqlite3_stmt_readonly\"]=wasmExports[\"Oc\"];_sqlite3_stmt_isexplain=Module[\"_sqlite3_stmt_isexplain\"]=wasmExports[\"Pc\"];_sqlite3_stmt_explain=Module[\"_sqlite3_stmt_explain\"]=wasmExports[\"Qc\"];_sqlite3_stmt_busy=Module[\"_sqlite3_stmt_busy\"]=wasmExports[\"Rc\"];_sqlite3_next_stmt=Module[\"_sqlite3_next_stmt\"]=wasmExports[\"Sc\"];_sqlite3_stmt_status=Module[\"_sqlite3_stmt_status\"]=wasmExports[\"Tc\"];_sqlite3_sql=Module[\"_sqlite3_sql\"]=wasmExports[\"Uc\"];_sqlite3_expanded_sql=Module[\"_sqlite3_expanded_sql\"]=wasmExports[\"Vc\"];_sqlite3_value_numeric_type=Module[\"_sqlite3_value_numeric_type\"]=wasmExports[\"Wc\"];_sqlite3_blob_open=Module[\"_sqlite3_blob_open\"]=wasmExports[\"Xc\"];_sqlite3_blob_close=Module[\"_sqlite3_blob_close\"]=wasmExports[\"Yc\"];_sqlite3_blob_read=Module[\"_sqlite3_blob_read\"]=wasmExports[\"Zc\"];_sqlite3_blob_write=Module[\"_sqlite3_blob_write\"]=wasmExports[\"_c\"];_sqlite3_blob_bytes=Module[\"_sqlite3_blob_bytes\"]=wasmExports[\"$c\"];_sqlite3_blob_reopen=Module[\"_sqlite3_blob_reopen\"]=wasmExports[\"ad\"];_sqlite3_set_authorizer=Module[\"_sqlite3_set_authorizer\"]=wasmExports[\"bd\"];_sqlite3_strglob=Module[\"_sqlite3_strglob\"]=wasmExports[\"cd\"];_sqlite3_strlike=Module[\"_sqlite3_strlike\"]=wasmExports[\"dd\"];_sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=wasmExports[\"ed\"];_sqlite3_load_extension=Module[\"_sqlite3_load_extension\"]=wasmExports[\"fd\"];_sqlite3_enable_load_extension=Module[\"_sqlite3_enable_load_extension\"]=wasmExports[\"gd\"];_sqlite3_auto_extension=Module[\"_sqlite3_auto_extension\"]=wasmExports[\"hd\"];_sqlite3_cancel_auto_extension=Module[\"_sqlite3_cancel_auto_extension\"]=wasmExports[\"id\"];_sqlite3_reset_auto_extension=Module[\"_sqlite3_reset_auto_extension\"]=wasmExports[\"jd\"];_sqlite3_prepare=Module[\"_sqlite3_prepare\"]=wasmExports[\"kd\"];_sqlite3_prepare_v3=Module[\"_sqlite3_prepare_v3\"]=wasmExports[\"ld\"];_sqlite3_prepare16=Module[\"_sqlite3_prepare16\"]=wasmExports[\"md\"];_sqlite3_prepare16_v2=Module[\"_sqlite3_prepare16_v2\"]=wasmExports[\"nd\"];_sqlite3_prepare16_v3=Module[\"_sqlite3_prepare16_v3\"]=wasmExports[\"od\"];_sqlite3_get_table=Module[\"_sqlite3_get_table\"]=wasmExports[\"pd\"];_sqlite3_free_table=Module[\"_sqlite3_free_table\"]=wasmExports[\"qd\"];_sqlite3_create_module=Module[\"_sqlite3_create_module\"]=wasmExports[\"rd\"];_sqlite3_create_module_v2=Module[\"_sqlite3_create_module_v2\"]=wasmExports[\"sd\"];_sqlite3_drop_modules=Module[\"_sqlite3_drop_modules\"]=wasmExports[\"td\"];_sqlite3_declare_vtab=Module[\"_sqlite3_declare_vtab\"]=wasmExports[\"ud\"];_sqlite3_vtab_on_conflict=Module[\"_sqlite3_vtab_on_conflict\"]=wasmExports[\"vd\"];_sqlite3_vtab_config=Module[\"_sqlite3_vtab_config\"]=wasmExports[\"wd\"];_sqlite3_vtab_collation=Module[\"_sqlite3_vtab_collation\"]=wasmExports[\"xd\"];_sqlite3_vtab_in=Module[\"_sqlite3_vtab_in\"]=wasmExports[\"yd\"];_sqlite3_vtab_rhs_value=Module[\"_sqlite3_vtab_rhs_value\"]=wasmExports[\"zd\"];_sqlite3_vtab_distinct=Module[\"_sqlite3_vtab_distinct\"]=wasmExports[\"Ad\"];_sqlite3_keyword_name=Module[\"_sqlite3_keyword_name\"]=wasmExports[\"Bd\"];_sqlite3_keyword_count=Module[\"_sqlite3_keyword_count\"]=wasmExports[\"Cd\"];_sqlite3_keyword_check=Module[\"_sqlite3_keyword_check\"]=wasmExports[\"Dd\"];_sqlite3_complete=Module[\"_sqlite3_complete\"]=wasmExports[\"Ed\"];_sqlite3_complete16=Module[\"_sqlite3_complete16\"]=wasmExports[\"Fd\"];_sqlite3_libversion=Module[\"_sqlite3_libversion\"]=wasmExports[\"Gd\"];_sqlite3_libversion_number=Module[\"_sqlite3_libversion_number\"]=wasmExports[\"Hd\"];_sqlite3_threadsafe=Module[\"_sqlite3_threadsafe\"]=wasmExports[\"Id\"];_sqlite3_initialize=Module[\"_sqlite3_initialize\"]=wasmExports[\"Jd\"];_sqlite3_shutdown=Module[\"_sqlite3_shutdown\"]=wasmExports[\"Kd\"];_sqlite3_config=Module[\"_sqlite3_config\"]=wasmExports[\"Ld\"];_sqlite3_db_mutex=Module[\"_sqlite3_db_mutex\"]=wasmExports[\"Md\"];_sqlite3_db_release_memory=Module[\"_sqlite3_db_release_memory\"]=wasmExports[\"Nd\"];_sqlite3_db_cacheflush=Module[\"_sqlite3_db_cacheflush\"]=wasmExports[\"Od\"];_sqlite3_db_config=Module[\"_sqlite3_db_config\"]=wasmExports[\"Pd\"];_sqlite3_last_insert_rowid=Module[\"_sqlite3_last_insert_rowid\"]=wasmExports[\"Qd\"];_sqlite3_set_last_insert_rowid=Module[\"_sqlite3_set_last_insert_rowid\"]=wasmExports[\"Rd\"];_sqlite3_changes64=Module[\"_sqlite3_changes64\"]=wasmExports[\"Sd\"];_sqlite3_changes=Module[\"_sqlite3_changes\"]=wasmExports[\"Td\"];_sqlite3_total_changes64=Module[\"_sqlite3_total_changes64\"]=wasmExports[\"Ud\"];_sqlite3_total_changes=Module[\"_sqlite3_total_changes\"]=wasmExports[\"Vd\"];_sqlite3_txn_state=Module[\"_sqlite3_txn_state\"]=wasmExports[\"Wd\"];_sqlite3_close=Module[\"_sqlite3_close\"]=wasmExports[\"Xd\"];_sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=wasmExports[\"Yd\"];_sqlite3_busy_handler=Module[\"_sqlite3_busy_handler\"]=wasmExports[\"Zd\"];_sqlite3_progress_handler=Module[\"_sqlite3_progress_handler\"]=wasmExports[\"_d\"];_sqlite3_busy_timeout=Module[\"_sqlite3_busy_timeout\"]=wasmExports[\"$d\"];_sqlite3_interrupt=Module[\"_sqlite3_interrupt\"]=wasmExports[\"ae\"];_sqlite3_is_interrupted=Module[\"_sqlite3_is_interrupted\"]=wasmExports[\"be\"];_sqlite3_create_function=Module[\"_sqlite3_create_function\"]=wasmExports[\"ce\"];_sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=wasmExports[\"de\"];_sqlite3_create_window_function=Module[\"_sqlite3_create_window_function\"]=wasmExports[\"ee\"];_sqlite3_create_function16=Module[\"_sqlite3_create_function16\"]=wasmExports[\"fe\"];_sqlite3_overload_function=Module[\"_sqlite3_overload_function\"]=wasmExports[\"ge\"];_sqlite3_trace_v2=Module[\"_sqlite3_trace_v2\"]=wasmExports[\"he\"];_sqlite3_commit_hook=Module[\"_sqlite3_commit_hook\"]=wasmExports[\"ie\"];_sqlite3_update_hook=Module[\"_sqlite3_update_hook\"]=wasmExports[\"je\"];_sqlite3_rollback_hook=Module[\"_sqlite3_rollback_hook\"]=wasmExports[\"ke\"];_sqlite3_autovacuum_pages=Module[\"_sqlite3_autovacuum_pages\"]=wasmExports[\"le\"];_sqlite3_wal_autocheckpoint=Module[\"_sqlite3_wal_autocheckpoint\"]=wasmExports[\"me\"];_sqlite3_wal_hook=Module[\"_sqlite3_wal_hook\"]=wasmExports[\"ne\"];_sqlite3_wal_checkpoint_v2=Module[\"_sqlite3_wal_checkpoint_v2\"]=wasmExports[\"oe\"];_sqlite3_wal_checkpoint=Module[\"_sqlite3_wal_checkpoint\"]=wasmExports[\"pe\"];_sqlite3_error_offset=Module[\"_sqlite3_error_offset\"]=wasmExports[\"qe\"];_sqlite3_errmsg16=Module[\"_sqlite3_errmsg16\"]=wasmExports[\"re\"];_sqlite3_errcode=Module[\"_sqlite3_errcode\"]=wasmExports[\"se\"];_sqlite3_extended_errcode=Module[\"_sqlite3_extended_errcode\"]=wasmExports[\"te\"];_sqlite3_system_errno=Module[\"_sqlite3_system_errno\"]=wasmExports[\"ue\"];_sqlite3_errstr=Module[\"_sqlite3_errstr\"]=wasmExports[\"ve\"];_sqlite3_limit=Module[\"_sqlite3_limit\"]=wasmExports[\"we\"];_sqlite3_open=Module[\"_sqlite3_open\"]=wasmExports[\"xe\"];_sqlite3_open_v2=Module[\"_sqlite3_open_v2\"]=wasmExports[\"ye\"];_sqlite3_open16=Module[\"_sqlite3_open16\"]=wasmExports[\"ze\"];_sqlite3_create_collation=Module[\"_sqlite3_create_collation\"]=wasmExports[\"Ae\"];_sqlite3_create_collation_v2=Module[\"_sqlite3_create_collation_v2\"]=wasmExports[\"Be\"];_sqlite3_create_collation16=Module[\"_sqlite3_create_collation16\"]=wasmExports[\"Ce\"];_sqlite3_collation_needed=Module[\"_sqlite3_collation_needed\"]=wasmExports[\"De\"];_sqlite3_collation_needed16=Module[\"_sqlite3_collation_needed16\"]=wasmExports[\"Ee\"];_sqlite3_get_clientdata=Module[\"_sqlite3_get_clientdata\"]=wasmExports[\"Fe\"];_sqlite3_set_clientdata=Module[\"_sqlite3_set_clientdata\"]=wasmExports[\"Ge\"];_sqlite3_get_autocommit=Module[\"_sqlite3_get_autocommit\"]=wasmExports[\"He\"];_sqlite3_table_column_metadata=Module[\"_sqlite3_table_column_metadata\"]=wasmExports[\"Ie\"];_sqlite3_sleep=Module[\"_sqlite3_sleep\"]=wasmExports[\"Je\"];_sqlite3_extended_result_codes=Module[\"_sqlite3_extended_result_codes\"]=wasmExports[\"Ke\"];_sqlite3_file_control=Module[\"_sqlite3_file_control\"]=wasmExports[\"Le\"];_sqlite3_test_control=Module[\"_sqlite3_test_control\"]=wasmExports[\"Me\"];_sqlite3_create_filename=Module[\"_sqlite3_create_filename\"]=wasmExports[\"Ne\"];_sqlite3_free_filename=Module[\"_sqlite3_free_filename\"]=wasmExports[\"Oe\"];_sqlite3_uri_parameter=Module[\"_sqlite3_uri_parameter\"]=wasmExports[\"Pe\"];_sqlite3_uri_key=Module[\"_sqlite3_uri_key\"]=wasmExports[\"Qe\"];_sqlite3_uri_boolean=Module[\"_sqlite3_uri_boolean\"]=wasmExports[\"Re\"];_sqlite3_uri_int64=Module[\"_sqlite3_uri_int64\"]=wasmExports[\"Se\"];_sqlite3_filename_database=Module[\"_sqlite3_filename_database\"]=wasmExports[\"Te\"];_sqlite3_filename_journal=Module[\"_sqlite3_filename_journal\"]=wasmExports[\"Ue\"];_sqlite3_filename_wal=Module[\"_sqlite3_filename_wal\"]=wasmExports[\"Ve\"];_sqlite3_db_name=Module[\"_sqlite3_db_name\"]=wasmExports[\"We\"];_sqlite3_db_filename=Module[\"_sqlite3_db_filename\"]=wasmExports[\"Xe\"];_sqlite3_db_readonly=Module[\"_sqlite3_db_readonly\"]=wasmExports[\"Ye\"];_sqlite3_compileoption_used=Module[\"_sqlite3_compileoption_used\"]=wasmExports[\"Ze\"];_sqlite3_compileoption_get=Module[\"_sqlite3_compileoption_get\"]=wasmExports[\"_e\"];_sqlite3_sourceid=Module[\"_sqlite3_sourceid\"]=wasmExports[\"$e\"];_memcmp=Module[\"_memcmp\"]=wasmExports[\"af\"];_malloc=Module[\"_malloc\"]=wasmExports[\"bf\"];_free=Module[\"_free\"]=wasmExports[\"cf\"];_RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=wasmExports[\"ef\"];_getSqliteFree=Module[\"_getSqliteFree\"]=wasmExports[\"ff\"];_main=Module[\"_main\"]=wasmExports[\"gf\"];_libauthorizer_set_authorizer=Module[\"_libauthorizer_set_authorizer\"]=wasmExports[\"hf\"];_libfunction_create_function=Module[\"_libfunction_create_function\"]=wasmExports[\"jf\"];_libhook_commit_hook=Module[\"_libhook_commit_hook\"]=wasmExports[\"kf\"];_libhook_update_hook=Module[\"_libhook_update_hook\"]=wasmExports[\"lf\"];_libprogress_progress_handler=Module[\"_libprogress_progress_handler\"]=wasmExports[\"mf\"];_libvfs_vfs_register=Module[\"_libvfs_vfs_register\"]=wasmExports[\"nf\"];_memcpy=Module[\"_memcpy\"]=wasmExports[\"of\"];_memset=Module[\"_memset\"]=wasmExports[\"pf\"];_emscripten_builtin_memalign=wasmExports[\"rf\"];__emscripten_timeout=wasmExports[\"sf\"];__emscripten_tempret_get=wasmExports[\"tf\"];__emscripten_stack_restore=wasmExports[\"uf\"];__emscripten_stack_alloc=wasmExports[\"vf\"];_emscripten_stack_get_current=wasmExports[\"wf\"];dynCall_viiiij=wasmExports[\"dynCall_viiiij\"];dynCall_vijii=wasmExports[\"dynCall_vijii\"];dynCall_iiiij=wasmExports[\"dynCall_iiiij\"];dynCall_viji=wasmExports[\"dynCall_viji\"];dynCall_iij=wasmExports[\"dynCall_iij\"];dynCall_iijii=wasmExports[\"dynCall_iijii\"];dynCall_iiji=wasmExports[\"dynCall_iiji\"];dynCall_iiiiiij=wasmExports[\"dynCall_iiiiiij\"];dynCall_iiij=wasmExports[\"dynCall_iiij\"];dynCall_jii=wasmExports[\"dynCall_jii\"];dynCall_ji=wasmExports[\"dynCall_ji\"];dynCall_vij=wasmExports[\"dynCall_vij\"];dynCall_iiiiijii=wasmExports[\"dynCall_iiiiijii\"];dynCall_j=wasmExports[\"dynCall_j\"];dynCall_jj=wasmExports[\"dynCall_jj\"];dynCall_jiij=wasmExports[\"dynCall_jiij\"];dynCall_iiiiji=wasmExports[\"dynCall_iiiiji\"];dynCall_iiiijii=wasmExports[\"dynCall_iiiijii\"];dynCall_ij=wasmExports[\"dynCall_ij\"];dynCall_viiji=wasmExports[\"dynCall_viiji\"];dynCall_viijii=wasmExports[\"dynCall_viijii\"];dynCall_iiiijji=wasmExports[\"dynCall_iiiijji\"];memory=wasmMemory=wasmExports[\"pa\"];_sqlite3_version=Module[\"_sqlite3_version\"]=wasmExports[\"df\"].value;__indirect_function_table=wasmTable=wasmExports[\"qf\"]}var wasmImports={a:___assert_fail,aa:___syscall_chmod,da:___syscall_faccessat,ba:___syscall_fchmod,$:___syscall_fchown32,b:___syscall_fcntl64,_:___syscall_fstat64,y:___syscall_ftruncate64,U:___syscall_getcwd,Y:___syscall_lstat64,R:___syscall_mkdirat,X:___syscall_newfstatat,P:___syscall_openat,N:___syscall_readlinkat,M:___syscall_rmdir,Z:___syscall_stat64,K:___syscall_unlinkat,J:___syscall_utimensat,F:__abort_js,E:__emscripten_runtime_keepalive_clear,w:__localtime_js,u:__mmap_js,v:__munmap_js,G:__setitimer_js,Q:__tzset_js,n:_emscripten_date_now,g:_emscripten_get_now,H:_emscripten_resize_heap,S:_environ_get,T:_environ_sizes_get,o:_fd_close,I:_fd_fdstat_get,O:_fd_read,x:_fd_seek,V:_fd_sync,L:_fd_write,s:_ipp,t:_ipp_async,ka:_ippipppp,oa:_ippipppp_async,j:_ippp,k:_ippp_async,c:_ipppi,d:_ipppi_async,ga:_ipppiii,ha:_ipppiii_async,ia:_ipppiiip,ja:_ipppiiip_async,h:_ipppip,i:_ipppip_async,z:_ipppj,A:_ipppj_async,e:_ipppp,f:_ipppp_async,ea:_ippppi,fa:_ippppi_async,B:_ippppij,C:_ippppij_async,p:_ippppip,q:_ippppip_async,la:_ipppppip,ma:_ipppppip_async,D:_proc_exit,na:_vppippii,r:_vppippii_async,l:_vppp,m:_vppp_async,W:_vpppip,ca:_vpppip_async};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();var noInitialRun=Module[\"noInitialRun\"]||false;if(!noInitialRun)callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"set_authorizer\"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,\"i32\");const result=ccall(\"libauthorizer_set_authorizer\",\"number\",[\"number\",\"number\",\"number\"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module[\"setCallback\"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=[\"xFunc\",\"xStep\",\"xFinal\"];const mapFunctionNameToKey=new Map;Module[\"create_function\"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module[\"_sqlite3_malloc\"](4);const target={xFunc,xStep,xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<<i}return mask},0),\"i32\");const result=ccall(\"libfunction_create_function\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"],[db,zFunctionName,nArg,eTextRep,pAsyncFlags,xFunc?1:0,xStep?1:0,xFinal?1:0]);if(!result){if(mapFunctionNameToKey.has(zFunctionName)){const oldKey=mapFunctionNameToKey.get(zFunctionName);Module[\"deleteCallback\"](oldKey)}mapFunctionNameToKey.set(zFunctionName,pAsyncFlags);Module[\"setCallback\"](pAsyncFlags,{xFunc,xStep,xFinal})}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"update_hook\"]=function(db,xUpdateHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xUpdateHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_update_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xUpdateHook?1:0,pAsyncFlags]);if(xUpdateHook){Module[\"setCallback\"](pAsyncFlags,(_,iUpdateType,dbName,tblName,lo32,hi32)=>xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"commit_hook\"]=function(db,xCommitHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_commit_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module[\"setCallback\"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"progress_handler\"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,\"i32\");ccall(\"libprogress_progress_handler\",\"number\",[\"number\",\"number\",\"number\",\"number\"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module[\"setCallback\"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=[\"xOpen\",\"xDelete\",\"xAccess\",\"xFullPathname\",\"xRandomness\",\"xSleep\",\"xCurrentTime\",\"xGetLastError\",\"xCurrentTimeInt64\",\"xClose\",\"xRead\",\"xWrite\",\"xTruncate\",\"xSync\",\"xFileSize\",\"xLock\",\"xUnlock\",\"xCheckReservedLock\",\"xFileControl\",\"xSectorSize\",\"xDeviceCharacteristics\",\"xShmMap\",\"xShmLock\",\"xShmBarrier\",\"xShmUnmap\"];const mapVFSNameToKey=new Map;Module[\"vfs_register\"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<<i;if(vfs[\"hasAsyncMethod\"](method)){asyncMask|=1<<i}}});const vfsReturn=Module[\"_sqlite3_malloc\"](4);try{const result=ccall(\"libvfs_vfs_register\",\"number\",[\"string\",\"number\",\"number\",\"number\",\"number\",\"number\"],[vfs.name,vfs.mxPathname,methodMask,asyncMask,makeDefault?1:0,vfsReturn]);if(!result){if(mapVFSNameToKey.has(vfs.name)){const oldKey=mapVFSNameToKey.get(vfs.name);Module[\"deleteCallback\"](oldKey)}const key=getValue(vfsReturn,\"*\");mapVFSNameToKey.set(vfs.name,key);Module[\"setCallback\"](key,vfs)}return result}finally{Module[\"_sqlite3_free\"](vfsReturn)}}})();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default Module;\n","// Primary result codes.\n// https://www.sqlite.org/rescode.html\nexport const SQLITE_OK = 0;\nexport const SQLITE_ERROR = 1;\nexport const SQLITE_INTERNAL = 2;\nexport const SQLITE_PERM = 3;\nexport const SQLITE_ABORT = 4;\nexport const SQLITE_BUSY = 5;\nexport const SQLITE_LOCKED = 6;\nexport const SQLITE_NOMEM = 7;\nexport const SQLITE_READONLY = 8;\nexport const SQLITE_INTERRUPT = 9;\nexport const SQLITE_IOERR = 10;\nexport const SQLITE_CORRUPT = 11;\nexport const SQLITE_NOTFOUND = 12;\nexport const SQLITE_FULL = 13;\nexport const SQLITE_CANTOPEN = 14;\nexport const SQLITE_PROTOCOL = 15;\nexport const SQLITE_EMPTY = 16;\nexport const SQLITE_SCHEMA = 17;\nexport const SQLITE_TOOBIG = 18;\nexport const SQLITE_CONSTRAINT = 19;\nexport const SQLITE_MISMATCH = 20;\nexport const SQLITE_MISUSE = 21;\nexport const SQLITE_NOLFS = 22;\nexport const SQLITE_AUTH = 23;\nexport const SQLITE_FORMAT = 24;\nexport const SQLITE_RANGE = 25;\nexport const SQLITE_NOTADB = 26;\nexport const SQLITE_NOTICE = 27;\nexport const SQLITE_WARNING = 28;\nexport const SQLITE_ROW = 100;\nexport const SQLITE_DONE = 101;\n\n// Extended error codes.\nexport const SQLITE_IOERR_ACCESS = 3338;\nexport const SQLITE_IOERR_CHECKRESERVEDLOCK = 3594;\nexport const SQLITE_IOERR_CLOSE = 4106;\nexport const SQLITE_IOERR_DATA = 8202;\nexport const SQLITE_IOERR_DELETE = 2570;\nexport const SQLITE_IOERR_DELETE_NOENT = 5898;\nexport const SQLITE_IOERR_DIR_FSYNC = 1290;\nexport const SQLITE_IOERR_FSTAT = 1802;\nexport const SQLITE_IOERR_FSYNC = 1034;\nexport const SQLITE_IOERR_GETTEMPPATH = 6410;\nexport const SQLITE_IOERR_LOCK = 3850;\nexport const SQLITE_IOERR_NOMEM = 3082;\nexport const SQLITE_IOERR_READ = 266;\nexport const SQLITE_IOERR_RDLOCK = 2314;\nexport const SQLITE_IOERR_SEEK = 5642;\nexport const SQLITE_IOERR_SHORT_READ = 522;\nexport const SQLITE_IOERR_TRUNCATE = 1546;\nexport const SQLITE_IOERR_UNLOCK = 2058;\nexport const SQLITE_IOERR_VNODE = 6922;\nexport const SQLITE_IOERR_WRITE = 778;\nexport const SQLITE_IOERR_BEGIN_ATOMIC = 7434;\nexport const SQLITE_IOERR_COMMIT_ATOMIC = 7690;\nexport const SQLITE_IOERR_ROLLBACK_ATOMIC = 7946;\n\n// Other extended result codes.\nexport const SQLITE_CONSTRAINT_CHECK = 275;\nexport const SQLITE_CONSTRAINT_COMMITHOOK = 531;\nexport const SQLITE_CONSTRAINT_FOREIGNKEY = 787;\nexport const SQLITE_CONSTRAINT_FUNCTION = 1043;\nexport const SQLITE_CONSTRAINT_NOTNULL = 1299;\nexport const SQLITE_CONSTRAINT_PINNED = 2835;\nexport const SQLITE_CONSTRAINT_PRIMARYKEY = 1555;\nexport const SQLITE_CONSTRAINT_ROWID = 2579;\nexport const SQLITE_CONSTRAINT_TRIGGER = 1811;\nexport const SQLITE_CONSTRAINT_UNIQUE = 2067;\nexport const SQLITE_CONSTRAINT_VTAB = 2323;\n\n// Open flags.\n// https://www.sqlite.org/c3ref/c_open_autoproxy.html\nexport const SQLITE_OPEN_READONLY = 0x00000001;\nexport const SQLITE_OPEN_READWRITE = 0x00000002;\nexport const SQLITE_OPEN_CREATE = 0x00000004;\nexport const SQLITE_OPEN_DELETEONCLOSE = 0x00000008;\nexport const SQLITE_OPEN_EXCLUSIVE = 0x00000010;\nexport const SQLITE_OPEN_AUTOPROXY = 0x00000020;\nexport const SQLITE_OPEN_URI = 0x00000040;\nexport const SQLITE_OPEN_MEMORY = 0x00000080;\nexport const SQLITE_OPEN_MAIN_DB = 0x00000100;\nexport const SQLITE_OPEN_TEMP_DB = 0x00000200;\nexport const SQLITE_OPEN_TRANSIENT_DB = 0x00000400;\nexport const SQLITE_OPEN_MAIN_JOURNAL = 0x00000800;\nexport const SQLITE_OPEN_TEMP_JOURNAL = 0x00001000;\nexport const SQLITE_OPEN_SUBJOURNAL = 0x00002000;\nexport const SQLITE_OPEN_SUPER_JOURNAL = 0x00004000;\nexport const SQLITE_OPEN_NOMUTEX = 0x00008000;\nexport const SQLITE_OPEN_FULLMUTEX = 0x00010000;\nexport const SQLITE_OPEN_SHAREDCACHE = 0x00020000;\nexport const SQLITE_OPEN_PRIVATECACHE = 0x00040000;\nexport const SQLITE_OPEN_WAL = 0x00080000;\nexport const SQLITE_OPEN_NOFOLLOW = 0x01000000;\n\n// Locking levels.\n// https://www.sqlite.org/c3ref/c_lock_exclusive.html\nexport const SQLITE_LOCK_NONE = 0;\nexport const SQLITE_LOCK_SHARED = 1;\nexport const SQLITE_LOCK_RESERVED = 2;\nexport const SQLITE_LOCK_PENDING = 3;\nexport const SQLITE_LOCK_EXCLUSIVE = 4;\n\n// Device characteristics.\n// https://www.sqlite.org/c3ref/c_iocap_atomic.html\nexport const SQLITE_IOCAP_ATOMIC = 0x00000001;\nexport const SQLITE_IOCAP_ATOMIC512 = 0x00000002;\nexport const SQLITE_IOCAP_ATOMIC1K = 0x00000004;\nexport const SQLITE_IOCAP_ATOMIC2K = 0x00000008;\nexport const SQLITE_IOCAP_ATOMIC4K = 0x00000010;\nexport const SQLITE_IOCAP_ATOMIC8K = 0x00000020;\nexport const SQLITE_IOCAP_ATOMIC16K = 0x00000040;\nexport const SQLITE_IOCAP_ATOMIC32K = 0x00000080;\nexport const SQLITE_IOCAP_ATOMIC64K = 0x00000100;\nexport const SQLITE_IOCAP_SAFE_APPEND = 0x00000200;\nexport const SQLITE_IOCAP_SEQUENTIAL = 0x00000400;\nexport const SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = 0x00000800;\nexport const SQLITE_IOCAP_POWERSAFE_OVERWRITE = 0x00001000;\nexport const SQLITE_IOCAP_IMMUTABLE = 0x00002000;\nexport const SQLITE_IOCAP_BATCH_ATOMIC = 0x00004000;\n\n// xAccess flags.\n// https://www.sqlite.org/c3ref/c_access_exists.html\nexport const SQLITE_ACCESS_EXISTS = 0;\nexport const SQLITE_ACCESS_READWRITE = 1;\nexport const SQLITE_ACCESS_READ = 2;\n\n// File control opcodes\n// https://www.sqlite.org/c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbeginatomicwrite\nexport const SQLITE_FCNTL_LOCKSTATE = 1; \nexport const SQLITE_FCNTL_GET_LOCKPROXYFILE = 2; \nexport const SQLITE_FCNTL_SET_LOCKPROXYFILE = 3; \nexport const SQLITE_FCNTL_LAST_ERRNO = 4; \nexport const SQLITE_FCNTL_SIZE_HINT = 5; \nexport const SQLITE_FCNTL_CHUNK_SIZE = 6; \nexport const SQLITE_FCNTL_FILE_POINTER = 7; \nexport const SQLITE_FCNTL_SYNC_OMITTED = 8; \nexport const SQLITE_FCNTL_WIN32_AV_RETRY = 9; \nexport const SQLITE_FCNTL_PERSIST_WAL = 10; \nexport const SQLITE_FCNTL_OVERWRITE = 11; \nexport const SQLITE_FCNTL_VFSNAME = 12; \nexport const SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13; \nexport const SQLITE_FCNTL_PRAGMA = 14; \nexport const SQLITE_FCNTL_BUSYHANDLER = 15; \nexport const SQLITE_FCNTL_TEMPFILENAME = 16; \nexport const SQLITE_FCNTL_MMAP_SIZE = 18; \nexport const SQLITE_FCNTL_TRACE = 19; \nexport const SQLITE_FCNTL_HAS_MOVED = 20; \nexport const SQLITE_FCNTL_SYNC = 21; \nexport const SQLITE_FCNTL_COMMIT_PHASETWO = 22; \nexport const SQLITE_FCNTL_WIN32_SET_HANDLE = 23; \nexport const SQLITE_FCNTL_WAL_BLOCK = 24; \nexport const SQLITE_FCNTL_ZIPVFS = 25; \nexport const SQLITE_FCNTL_RBU = 26; \nexport const SQLITE_FCNTL_VFS_POINTER = 27; \nexport const SQLITE_FCNTL_JOURNAL_POINTER = 28; \nexport const SQLITE_FCNTL_WIN32_GET_HANDLE = 29; \nexport const SQLITE_FCNTL_PDB = 30; \nexport const SQLITE_FCNTL_BEGIN_ATOMIC_WRITE = 31; \nexport const SQLITE_FCNTL_COMMIT_ATOMIC_WRITE = 32; \nexport const SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE = 33; \nexport const SQLITE_FCNTL_LOCK_TIMEOUT = 34; \nexport const SQLITE_FCNTL_DATA_VERSION = 35; \nexport const SQLITE_FCNTL_SIZE_LIMIT = 36; \nexport const SQLITE_FCNTL_CKPT_DONE = 37; \nexport const SQLITE_FCNTL_RESERVE_BYTES = 38; \nexport const SQLITE_FCNTL_CKPT_START = 39;\n\n// Fundamental datatypes.\n// https://www.sqlite.org/c3ref/c_blob.html\nexport const SQLITE_INTEGER = 1;\nexport const SQLITE_FLOAT = 2;\nexport const SQLITE_TEXT = 3;\nexport const SQLITE_BLOB = 4;\nexport const SQLITE_NULL = 5;\n\n// Special destructor behavior.\n// https://www.sqlite.org/c3ref/c_static.html\nexport const SQLITE_STATIC = 0;\nexport const SQLITE_TRANSIENT = -1;\n\n// Text encodings.\n// https://sqlite.org/c3ref/c_any.html\nexport const SQLITE_UTF8 = 1; /* IMP: R-37514-35566 */\nexport const SQLITE_UTF16LE = 2; /* IMP: R-03371-37637 */\nexport const SQLITE_UTF16BE = 3; /* IMP: R-51971-34154 */\nexport const SQLITE_UTF16 = 4; /* Use native byte order */\n\n// Module constraint ops.\nexport const SQLITE_INDEX_CONSTRAINT_EQ = 2;\nexport const SQLITE_INDEX_CONSTRAINT_GT = 4;\nexport const SQLITE_INDEX_CONSTRAINT_LE = 8;\nexport const SQLITE_INDEX_CONSTRAINT_LT = 16;\nexport const SQLITE_INDEX_CONSTRAINT_GE = 32;\nexport const SQLITE_INDEX_CONSTRAINT_MATCH = 64;\nexport const SQLITE_INDEX_CONSTRAINT_LIKE = 65;\nexport const SQLITE_INDEX_CONSTRAINT_GLOB = 66;\nexport const SQLITE_INDEX_CONSTRAINT_REGEXP = 67;\nexport const SQLITE_INDEX_CONSTRAINT_NE = 68;\nexport const SQLITE_INDEX_CONSTRAINT_ISNOT = 69;\nexport const SQLITE_INDEX_CONSTRAINT_ISNOTNULL = 70;\nexport const SQLITE_INDEX_CONSTRAINT_ISNULL = 71;\nexport const SQLITE_INDEX_CONSTRAINT_IS = 72;\nexport const SQLITE_INDEX_CONSTRAINT_FUNCTION = 150;\nexport const SQLITE_INDEX_SCAN_UNIQUE = 1; /* Scan visits at most = 1 row */\n\n// Function flags\nexport const SQLITE_DETERMINISTIC = 0x000000800;\nexport const SQLITE_DIRECTONLY = 0x000080000;\nexport const SQLITE_SUBTYPE = 0x000100000;\nexport const SQLITE_INNOCUOUS = 0x000200000;\n\n// Sync flags\nexport const SQLITE_SYNC_NORMAL = 0x00002;\nexport const SQLITE_SYNC_FULL = 0x00003;\nexport const SQLITE_SYNC_DATAONLY = 0x00010;\n\n// Authorizer action codes\nexport const SQLITE_CREATE_INDEX = 1;\nexport const SQLITE_CREATE_TABLE = 2;\nexport const SQLITE_CREATE_TEMP_INDEX = 3;\nexport const SQLITE_CREATE_TEMP_TABLE = 4;\nexport const SQLITE_CREATE_TEMP_TRIGGER = 5;\nexport const SQLITE_CREATE_TEMP_VIEW = 6;\nexport const SQLITE_CREATE_TRIGGER = 7;\nexport const SQLITE_CREATE_VIEW = 8;\nexport const SQLITE_DELETE = 9;\nexport const SQLITE_DROP_INDEX = 10;\nexport const SQLITE_DROP_TABLE = 11;\nexport const SQLITE_DROP_TEMP_INDEX = 12;\nexport const SQLITE_DROP_TEMP_TABLE = 13;\nexport const SQLITE_DROP_TEMP_TRIGGER = 14;\nexport const SQLITE_DROP_TEMP_VIEW = 15;\nexport const SQLITE_DROP_TRIGGER = 16;\nexport const SQLITE_DROP_VIEW = 17;\nexport const SQLITE_INSERT = 18;\nexport const SQLITE_PRAGMA = 19;\nexport const SQLITE_READ = 20;\nexport const SQLITE_SELECT = 21;\nexport const SQLITE_TRANSACTION = 22;\nexport const SQLITE_UPDATE = 23;\nexport const SQLITE_ATTACH = 24;\nexport const SQLITE_DETACH = 25;\nexport const SQLITE_ALTER_TABLE = 26;\nexport const SQLITE_REINDEX = 27;\nexport const SQLITE_ANALYZE = 28;\nexport const SQLITE_CREATE_VTABLE = 29;\nexport const SQLITE_DROP_VTABLE = 30;\nexport const SQLITE_FUNCTION = 31;\nexport const SQLITE_SAVEPOINT = 32;\nexport const SQLITE_COPY = 0;\nexport const SQLITE_RECURSIVE = 33;\n\n// Authorizer return codes\nexport const SQLITE_DENY = 1;\nexport const SQLITE_IGNORE = 2;\n\n// Limit categories\nexport const SQLITE_LIMIT_LENGTH = 0;\nexport const SQLITE_LIMIT_SQL_LENGTH = 1;\nexport const SQLITE_LIMIT_COLUMN = 2;\nexport const SQLITE_LIMIT_EXPR_DEPTH = 3;\nexport const SQLITE_LIMIT_COMPOUND_SELECT = 4;\nexport const SQLITE_LIMIT_VDBE_OP = 5;\nexport const SQLITE_LIMIT_FUNCTION_ARG = 6;\nexport const SQLITE_LIMIT_ATTACHED = 7;\nexport const SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8;\nexport const SQLITE_LIMIT_VARIABLE_NUMBER = 9;\nexport const SQLITE_LIMIT_TRIGGER_DEPTH = 10;\nexport const SQLITE_LIMIT_WORKER_THREADS = 11;\n\nexport const SQLITE_PREPARE_PERSISTENT = 0x01;\nexport const SQLITE_PREPARE_NORMALIZED = 0x02;\nexport const SQLITE_PREPARE_NO_VTAB = 0x04;","// Copyright 2021 Roy T. Hashimoto. All Rights Reserved.\n\nimport * as SQLite from './sqlite-constants.js';\nexport * from './sqlite-constants.js';\n\n/**\n * Need to have a serializer for bigint\n * https://github.com/GoogleChromeLabs/jsbi/issues/30\n */\nif (typeof BigInt.prototype['toJSON'] == 'undefined') {\n BigInt.prototype['toJSON'] = function() {\n return this.toString();\n };\n}\n\nconst MAX_INT64 = 0x7fffffffffffffffn;\nconst MIN_INT64 = -0x8000000000000000n;\n\nconst AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\nexport class SQLiteError extends Error {\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\n\nconst async = true;\n\n\n/**\n * Builds a Javascript API from the Emscripten module. This API is still\n * low-level and closely corresponds to the C API exported by the module,\n * but differs in some specifics like throwing exceptions on errors.\n * @param {*} Module SQLite Emscripten module\n * @returns {SQLiteAPI}\n */\nexport function Factory(Module) {\n /** @type {SQLiteAPI} */ const sqlite3 = {};\n\n Module.retryOps = [];\n const sqliteFreeAddress = Module._getSqliteFree();\n\n // Allocate some space for 32-bit returned values.\n const tmp = Module._malloc(8);\n const tmpPtr = [tmp, tmp + 4];\n\n const textEncoder = new TextEncoder();\n // Convert a JS string to a C string. sqlite3_malloc is used to allocate\n // memory (use sqlite3_free to deallocate).\n function createUTF8(s) {\n if (typeof s !== 'string') return 0;\n const utf8 = textEncoder.encode(s);\n const zts = Module._sqlite3_malloc(utf8.byteLength + 1);\n Module.HEAPU8.set(utf8, zts);\n Module.HEAPU8[zts + utf8.byteLength] = 0;\n return zts;\n }\n\n /**\n * Concatenate 32-bit numbers into a 64-bit (signed) BigInt.\n * @param {number} lo32\n * @param {number} hi32\n * @returns {bigint}\n */\n function cvt32x2ToBigInt(lo32, hi32) {\n return (BigInt(hi32) << 32n) | (BigInt(lo32) & 0xffffffffn);\n }\n\n // /**\n // * Setup table change update callback\n // */\n // var onTableChangedFunctionPointer = Module.addFunction(onTableUpdate);\n // var passFnPointer = Module.cwrap('passFnPointer', 'undefined', ['number']);\n // passFnPointer(onTableChangedFunctionPointer);\n /**\n * Concatenate 32-bit numbers and return as number or BigInt, depending\n * on the value.\n * @param {number} lo32\n * @param {number} hi32\n * @returns {number|bigint}\n */\n const cvt32x2AsSafe = (function() {\n const hiMax = BigInt(Number.MAX_SAFE_INTEGER) >> 32n;\n const hiMin = BigInt(Number.MIN_SAFE_INTEGER) >> 32n;\n\n return function(lo32, hi32) {\n if (hi32 > hiMax || hi32 < hiMin) {\n // Can't be expressed as a Number so use BigInt.\n return cvt32x2ToBigInt(lo32, hi32);\n } else {\n // Combine the upper and lower 32-bit numbers. The complication is\n // that lo32 is a signed integer which makes manipulating its bits\n // a little tricky - the sign bit gets handled separately.\n return hi32 * 0x100000000 + (lo32 & 0x7fffffff) - (lo32 & 0x80000000);\n }\n };\n })();\n\n const databases = new Set();\n function verifyDatabase(db) {\n if (!databases.has(db)) {\n throw new SQLiteError('not a database', SQLite.SQLITE_MISUSE);\n }\n }\n\n const mapStmtToDB = new Map();\n function verifyStatement(stmt) {\n if (!mapStmtToDB.has(stmt)) {\n throw new SQLiteError('not a statement', SQLite.SQLITE_MISUSE);\n }\n }\n\n sqlite3.bind_collection = function(stmt, bindings) {\n verifyStatement(stmt);\n const isArray = Array.isArray(bindings);\n const nBindings = sqlite3.bind_parameter_count(stmt);\n for (let i = 1; i <= nBindings; ++i) {\n const key = isArray ? i - 1 : sqlite3.bind_parameter_name(stmt, i);\n const value = bindings[key];\n if (value !== undefined) {\n sqlite3.bind(stmt, i, value);\n }\n }\n return SQLite.SQLITE_OK;\n };\n\n sqlite3.bind = function(stmt, i, value) {\n verifyStatement(stmt);\n switch (typeof value) {\n case 'number':\n if (value === (value | 0)) {\n return sqlite3.bind_int(stmt, i, value);\n } else {\n return sqlite3.bind_double(stmt, i, value);\n }\n case 'string':\n return sqlite3.bind_text(stmt, i, value);\n case \"boolean\":\n return sqlite3.bind_int(stmt, i, value ? 1 : 0);\n default:\n if (value instanceof Uint8Array || Array.isArray(value)) {\n return sqlite3.bind_blob(stmt, i, value);\n } else if (value === null) {\n return sqlite3.bind_null(stmt, i);\n } else if (typeof value === 'bigint') {\n return sqlite3.bind_int64(stmt, i, value);\n } else if (value === undefined) {\n // Existing binding (or NULL) will be used.\n return SQLite.SQLITE_NOTICE;\n } else {\n console.warn('unknown binding converted to null', value);\n return sqlite3.bind_null(stmt, i);\n }\n }\n };\n\n sqlite3.bind_blob = (function() {\n const fname = 'sqlite3_bind_blob';\n const f = Module.cwrap(fname, ...decl('nnnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n // @ts-ignore\n const byteLength = value.byteLength ?? value.length;\n const ptr = Module._sqlite3_malloc(byteLength);\n Module.HEAPU8.subarray(ptr).set(value);\n const result = f(stmt, i, ptr, byteLength, sqliteFreeAddress);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_parameter_count = (function() {\n const fname = 'sqlite3_bind_parameter_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.bind_double = (function() {\n const fname = 'sqlite3_bind_double';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n const result = f(stmt, i, value);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_int = (function() {\n const fname = 'sqlite3_bind_int';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n if (value > 0x7fffffff || value < -0x80000000) return SQLite.SQLITE_RANGE;\n\n const result = f(stmt, i, value);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_int64 = (function() {\n const fname = 'sqlite3_bind_int64';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n if (value > MAX_INT64 || value < MIN_INT64) return SQLite.SQLITE_RANGE;\n\n const lo32 = value & 0xffffffffn;\n const hi32 = value >> 32n;\n const result = f(stmt, i, Number(lo32), Number(hi32));\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_null = (function() {\n const fname = 'sqlite3_bind_null';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, i) {\n verifyStatement(stmt);\n const result = f(stmt, i);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_parameter_name = (function() {\n const fname = 'sqlite3_bind_parameter_name';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(stmt, i) {\n verifyStatement(stmt);\n const result = f(stmt, i);\n return result;\n };\n })();\n\n sqlite3.bind_text = (function() {\n const fname = 'sqlite3_bind_text';\n const f = Module.cwrap(fname, ...decl('nnnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n const ptr = createUTF8(value);\n const result = f(stmt, i, ptr, -1, sqliteFreeAddress);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.changes = (function() {\n const fname = 'sqlite3_changes';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(db) {\n verifyDatabase(db);\n const result = f(db);\n return result;\n };\n })();\n\n sqlite3.clear_bindings = (function() {\n const fname = 'sqlite3_clear_bindings';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.last_insert_id = (function() {\n const fname = 'sqlite3_last_insert_rowid';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(db) {\n verifyDatabase(db);\n const result = f(db);\n // trace(fname, result);\n return result;\n };\n })();\n \n sqlite3.close = (function() {\n const fname = 'sqlite3_close';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(db) {\n verifyDatabase(db);\n const result = await f(db);\n databases.delete(db);\n return check(fname, result, db);\n };\n })();\n\n sqlite3.column = function(stmt, iCol) {\n verifyStatement(stmt);\n const type = sqlite3.column_type(stmt, iCol);\n switch (type) {\n case SQLite.SQLITE_BLOB:\n return sqlite3.column_blob(stmt, iCol);\n case SQLite.SQLITE_FLOAT:\n return sqlite3.column_double(stmt, iCol);\n case SQLite.SQLITE_INTEGER:\n const lo32 = sqlite3.column_int(stmt, iCol);\n const hi32 = Module.getTempRet0();\n return cvt32x2AsSafe(lo32, hi32);\n case SQLite.SQLITE_NULL:\n return null;\n case SQLite.SQLITE_TEXT:\n return sqlite3.column_text(stmt, iCol);\n default:\n throw new SQLiteError('unknown type', type);\n }\n };\n\n sqlite3.column_blob = (function() {\n const fname = 'sqlite3_column_blob';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const nBytes = sqlite3.column_bytes(stmt, iCol);\n const address = f(stmt, iCol);\n const result = Module.HEAPU8.subarray(address, address + nBytes);\n return result;\n };\n })();\n\n sqlite3.column_bytes = (function() {\n const fname = 'sqlite3_column_bytes';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_count = (function() {\n const fname = 'sqlite3_column_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.column_double = (function() {\n const fname = 'sqlite3_column_double';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_int = (function() {\n // Retrieve int64 but use only the lower 32 bits. The upper 32-bits are\n // accessible with Module.getTempRet0().\n const fname = 'sqlite3_column_int64';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_int64 = (function() {\n const fname = 'sqlite3_column_int64';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const lo32 = f(stmt, iCol);\n const hi32 = Module.getTempRet0();\n const result = cvt32x2ToBigInt(lo32, hi32);\n return result;\n };\n })();\n\n sqlite3.column_name = (function() {\n const fname = 'sqlite3_column_name';\n const f = Module.cwrap(fname, ...decl('nn:s'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_names = function(stmt) {\n const columns = [];\n const nColumns = sqlite3.column_count(stmt);\n for (let i = 0; i < nColumns; ++i) {\n columns.push(sqlite3.column_name(stmt, i));\n }\n return columns;\n };\n\n sqlite3.column_text = (function() {\n const fname = 'sqlite3_column_text';\n const f = Module.cwrap(fname, ...decl('nn:s'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_type = (function() {\n const fname = 'sqlite3_column_type';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.create_function = function(db, zFunctionName, nArg, eTextRep, pApp, xFunc, xStep, xFinal) {\n verifyDatabase(db);\n \n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (ctx, n, values) => f(ctx, Module.HEAP32.subarray(values / 4, values / 4 + n))) :\n ((ctx, n, values) => f(ctx, Module.HEAP32.subarray(values / 4, values / 4 + n)));\n }\n\n const result = Module.create_function(\n db,\n zFunctionName,\n nArg,\n eTextRep,\n pApp,\n xFunc && adapt(xFunc),\n xStep && adapt(xStep),\n xFinal);\n return check('sqlite3_create_function', result, db);\n };\n\n sqlite3.data_count = (function() {\n const fname = 'sqlite3_data_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.exec = async function(db, sql, callback) {\n for await (const stmt of sqlite3.statements(db, sql)) {\n let columns;\n while ((await sqlite3.step(stmt)) === SQLite.SQLITE_ROW) {\n if (callback) {\n columns = columns ?? sqlite3.column_names(stmt);\n const row = sqlite3.row(stmt);\n await callback(row, columns);\n }\n }\n }\n return SQLite.SQLITE_OK;\n };\n\n sqlite3.finalize = (function() {\n const fname = 'sqlite3_finalize';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n const result = await f(stmt);\n mapStmtToDB.delete(stmt)\n\n // Don't throw on error here. Typically the error has already been\n // thrown and finalize() is part of the cleanup.\n return result;\n };\n })();\n\n sqlite3.get_autocommit = (function() {\n const fname = 'sqlite3_get_autocommit';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(db) {\n const result = f(db);\n return result;\n };\n })();\n\n sqlite3.libversion = (function() {\n const fname = 'sqlite3_libversion';\n const f = Module.cwrap(fname, ...decl(':s'));\n return function() {\n const result = f();\n return result;\n };\n })();\n\n sqlite3.libversion_number = (function() {\n const fname = 'sqlite3_libversion_number';\n const f = Module.cwrap(fname, ...decl(':n'));\n return function() {\n const result = f();\n return result;\n };\n })();\n\n sqlite3.limit = (function() {\n const fname = 'sqlite3_limit';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(db, id, newVal) {\n const result = f(db, id, newVal);\n return result;\n };\n })();\n\n sqlite3.open_v2 = (function() {\n const fname = 'sqlite3_open_v2';\n const f = Module.cwrap(fname, ...decl('snnn:n'), { async });\n return async function(zFilename, flags, zVfs) {\n flags = flags || SQLite.SQLITE_OPEN_CREATE | SQLite.SQLITE_OPEN_READWRITE;\n zVfs = createUTF8(zVfs);\n try {\n // Allow retry operations.\n const rc = await retry(() => f(zFilename, tmpPtr[0], flags, zVfs));\n\n const db = Module.getValue(tmpPtr[0], '*');\n databases.add(db);\n\n Module.ccall('RegisterExtensionFunctions', 'number', ['number'], [db]);\n check(fname, rc);\n return db;\n } finally {\n Module._sqlite3_free(zVfs);\n }\n };\n })();\n\n sqlite3.progress_handler = function(db, nProgressOps, handler, userData) {\n verifyDatabase(db);\n Module.progress_handler(db, nProgressOps, handler, userData);\n };;\n\n sqlite3.reset = (function() {\n const fname = 'sqlite3_reset';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n verifyStatement(stmt);\n const result = await f(stmt);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.result = function(context, value) {\n switch (typeof value) {\n case 'number':\n if (value === (value | 0)) {\n sqlite3.result_int(context, value);\n } else {\n sqlite3.result_double(context, value);\n }\n break;\n case 'string':\n sqlite3.result_text(context, value);\n break;\n default:\n if (value instanceof Uint8Array || Array.isArray(value)) {\n sqlite3.result_blob(context, value);\n } else if (value === null) {\n sqlite3.result_null(context);\n } else if (typeof value === 'bigint') {\n return sqlite3.result_int64(context, value);\n } else {\n console.warn('unknown result converted to null', value);\n sqlite3.result_null(context);\n }\n break;\n }\n };\n\n sqlite3.result_blob = (function() {\n const fname = 'sqlite3_result_blob';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(context, value) {\n // @ts-ignore\n const byteLength = value.byteLength ?? value.length;\n const ptr = Module._sqlite3_malloc(byteLength);\n Module.HEAPU8.subarray(ptr).set(value);\n f(context, ptr, byteLength, sqliteFreeAddress); // void return\n };\n })();\n\n sqlite3.result_double = (function() {\n const fname = 'sqlite3_result_double';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(context, value) {\n f(context, value); // void return\n };\n })();\n\n sqlite3.result_int = (function() {\n const fname = 'sqlite3_result_int';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(context, value) {\n f(context, value); // void return\n };\n })();\n\n sqlite3.result_int64 = (function() {\n const fname = 'sqlite3_result_int64';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(context, value) {\n if (value > MAX_INT64 || value < MIN_INT64) return SQLite.SQLITE_RANGE;\n\n const lo32 = value & 0xffffffffn;\n const hi32 = value >> 32n;\n f(context, Number(lo32), Number(hi32)); // void return\n };\n })();\n\n sqlite3.result_null = (function() {\n const fname = 'sqlite3_result_null';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(context) {\n f(context); // void return\n };\n })();\n\n sqlite3.result_text = (function() {\n const fname = 'sqlite3_result_text';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(context, value) {\n const ptr = createUTF8(value);\n f(context, ptr, -1, sqliteFreeAddress); // void return\n };\n })();\n\n sqlite3.row = function(stmt) {\n const row = [];\n const nColumns = sqlite3.data_count(stmt);\n for (let i = 0; i < nColumns; ++i) {\n const value = sqlite3.column(stmt, i);\n\n // Copy blob if aliasing volatile WebAssembly memory. This avoids an\n // unnecessary copy if users monkey patch column_blob to copy.\n // @ts-ignore\n row.push(value?.buffer === Module.HEAPU8.buffer ? value.slice() : value);\n }\n return row;\n };\n\n sqlite3.set_authorizer = function(db, xAuth, pApp) {\n verifyDatabase(db);\n\n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function cvtArgs(_, iAction, p3, p4, p5, p6) {\n return [\n _,\n iAction,\n Module.UTF8ToString(p3),\n Module.UTF8ToString(p4),\n Module.UTF8ToString(p5),\n Module.UTF8ToString(p6)\n ];\n };\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (_, iAction, p3, p4, p5, p6) => f(...cvtArgs(_, iAction, p3, p4, p5, p6))) :\n ((_, iAction, p3, p4, p5, p6) => f(...cvtArgs(_, iAction, p3, p4, p5, p6)));\n }\n\n const result = Module.set_authorizer(db, adapt(xAuth), pApp);\n return check('sqlite3_set_authorizer', result, db);\n };\n\n sqlite3.sql = (function() {\n const fname = 'sqlite3_sql';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.statements = function(db, sql, options = {}) {\n const prepare = Module.cwrap(\n 'sqlite3_prepare_v3',\n 'number',\n ['number', 'number', 'number', 'number', 'number', 'number'],\n { async: true });\n\n return (async function*() {\n const onFinally = [];\n try {\n // Encode SQL string to UTF-8.\n const utf8 = textEncoder.encode(sql);\n\n // Copy encoded string to WebAssembly memory. The SQLite docs say\n // zero-termination is a minor optimization so add room for that.\n // Also add space for the statement handle and SQL tail pointer.\n const allocSize = utf8.byteLength - (utf8.byteLength % 4) + 12;\n const pzHead = Module._sqlite3_malloc(allocSize);\n const pzEnd = pzHead + utf8.byteLength + 1;\n onFinally.push(() => Module._sqlite3_free(pzHead));\n Module.HEAPU8.set(utf8, pzHead);\n Module.HEAPU8[pzEnd - 1] = 0;\n \n // Use extra space for the statement handle and SQL tail pointer.\n const pStmt = pzHead + allocSize - 8;\n const pzTail = pzHead + allocSize - 4;\n\n // Ensure that statement handles are not leaked.\n let stmt;\n function maybeFinalize() {\n if (stmt && !options.unscoped) {\n sqlite3.finalize(stmt);\n }\n stmt = 0;\n }\n onFinally.push(maybeFinalize);\n \n // Loop over statements.\n Module.setValue(pzTail, pzHead, '*');\n do {\n // Reclaim resources for the previous iteration.\n maybeFinalize();\n\n // Call sqlite3_prepare_v3() for the next statement.\n // Allow retry operations.\n const zTail = Module.getValue(pzTail, '*');\n const rc = await retry(() => {\n return prepare(\n db,\n zTail,\n pzEnd - pzTail,\n options.flags || 0,\n pStmt,\n pzTail);\n });\n\n if (rc !== SQLite.SQLITE_OK) {\n check('sqlite3_prepare_v3', rc, db);\n }\n \n stmt = Module.getValue(pStmt, '*');\n if (stmt) {\n mapStmtToDB.set(stmt, db);\n yield stmt;\n }\n } while (stmt);\n } finally {\n while (onFinally.length) {\n onFinally.pop()();\n }\n }\n })();\n };\n\n sqlite3.step = (function() {\n const fname = 'sqlite3_step';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n verifyStatement(stmt);\n\n // Allow retry operations.\n const rc = await retry(() => f(stmt));\n\n return check(fname, rc, mapStmtToDB.get(stmt), [SQLite.SQLITE_ROW, SQLite.SQLITE_DONE]);\n };\n })();\n\n sqlite3.commit_hook = function(db, xCommitHook) {\n verifyDatabase(db);\n Module.commit_hook(db, xCommitHook);\n };\n\n sqlite3.update_hook = function(db, xUpdateHook) {\n verifyDatabase(db);\n\n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function cvtArgs(iUpdateType, dbName, tblName, lo32, hi32) {\n return [\n iUpdateType,\n Module.UTF8ToString(dbName),\n Module.UTF8ToString(tblName),\n\t\tcvt32x2ToBigInt(lo32, hi32)\n ];\n };\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (iUpdateType, dbName, tblName, lo32, hi32) => f(...cvtArgs(iUpdateType, dbName, tblName, lo32, hi32))) :\n ((iUpdateType, dbName, tblName, lo32, hi32) => f(...cvtArgs(iUpdateType, dbName, tblName, lo32, hi32)));\n }\n\n Module.update_hook(db, adapt(xUpdateHook));\n };;\n\n sqlite3.value = function(pValue) {\n const type = sqlite3.value_type(pValue);\n switch (type) {\n case SQLite.SQLITE_BLOB:\n return sqlite3.value_blob(pValue);\n case SQLite.SQLITE_FLOAT:\n return sqlite3.value_double(pValue);\n case SQLite.SQLITE_INTEGER:\n const lo32 = sqlite3.value_int(pValue);\n const hi32 = Module.getTempRet0();\n return cvt32x2AsSafe(lo32, hi32);\n case SQLite.SQLITE_NULL:\n return null;\n case SQLite.SQLITE_TEXT:\n return sqlite3.value_text(pValue);\n default:\n throw new SQLiteError('unknown type', type);\n }\n };\n\n sqlite3.value_blob = (function() {\n const fname = 'sqlite3_value_blob';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const nBytes = sqlite3.value_bytes(pValue);\n const address = f(pValue);\n const result = Module.HEAPU8.subarray(address, address + nBytes);\n return result;\n };\n })();\n\n sqlite3.value_bytes = (function() {\n const fname = 'sqlite3_value_bytes';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_double = (function() {\n const fname = 'sqlite3_value_double';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_int = (function() {\n const fname = 'sqlite3_value_int64';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_int64 = (function() {\n const fname = 'sqlite3_value_int64';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const lo32 = f(pValue);\n const hi32 = Module.getTempRet0();\n const result = cvt32x2ToBigInt(lo32, hi32);\n return result;\n };\n })();\n\n sqlite3.value_text = (function() {\n const fname = 'sqlite3_value_text';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_type = (function() {\n const fname = 'sqlite3_value_type';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.vfs_register = function(vfs, makeDefault) {\n const result = Module.vfs_register(vfs, makeDefault);\n return check('sqlite3_vfs_register', result);\n };\n\n function check(fname, result, db = null, allowed = [SQLite.SQLITE_OK]) {\n if (allowed.includes(result)) return result;\n const message = db ? Module.ccall('sqlite3_errmsg', 'string', ['number'], [db]) : fname;\n throw new SQLiteError(message, result);\n }\n\n // This function is used to automatically retry failed calls that\n // have pending retry operations that should allow the retry to\n // succeed.\n async function retry(f) {\n let rc;\n do {\n // Wait for all pending retry operations to complete. This is\n // normally empty on the first loop iteration.\n if (Module.retryOps.length) {\n try {\n await Promise.all(Module.retryOps);\n } finally {\n Module.retryOps = [];\n }\n }\n \n rc = await f();\n\n // Retry on failure with new pending retry operations.\n } while (rc && Module.retryOps.length);\n return rc;\n }\n\n return sqlite3;\n}\n\n// Helper function to use a more compact signature specification.\nfunction decl(s) {\n const result = [];\n const m = s.match(/([ns@]*):([nsv@])/);\n switch (m[2]) {\n case 'n':\n result.push('number');\n break;\n case 's':\n result.push('string');\n break;\n case 'v':\n result.push(null);\n break;\n }\n\n const args = [];\n for (let c of m[1]) {\n switch (c) {\n case 'n':\n args.push('number');\n break;\n case 's':\n args.push('string');\n break;\n }\n }\n result.push(args);\n return result;\n}\n","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport * as VFS from './sqlite-constants.js';\nexport * from './sqlite-constants.js';\n\nconst DEFAULT_SECTOR_SIZE = 512;\n\n// Base class for a VFS.\nexport class Base {\n name;\n mxPathname = 64;\n _module;\n\n /**\n * @param {string} name \n * @param {object} module \n */\n constructor(name, module) {\n this.name = name;\n this._module = module;\n }\n\n /**\n * @returns {void|Promise<void>} \n */\n close() {\n }\n\n /**\n * @returns {boolean|Promise<boolean>}\n */\n isReady() {\n return true;\n }\n\n /**\n * Overload in subclasses to indicate which methods are asynchronous.\n * @param {string} methodName \n * @returns {boolean}\n */\n hasAsyncMethod(methodName) {\n return false;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} pFile \n * @param {number} flags \n * @param {number} pOutFlags \n * @returns {number|Promise<number>}\n */\n xOpen(pVfs, zName, pFile, flags, pOutFlags) {\n return VFS.SQLITE_CANTOPEN;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n xDelete(pVfs, zName, syncDir) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} flags \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xAccess(pVfs, zName, flags, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} nOut \n * @param {number} zOut \n * @returns {number|Promise<number>}\n */\n xFullPathname(pVfs, zName, nOut, zOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} nBuf \n * @param {number} zBuf \n * @returns {number|Promise<number>}\n */\n xGetLastError(pVfs, nBuf, zBuf) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xClose(pFile) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} sizeLo \n * @param {number} sizeHi \n * @returns {number|Promise<number>}\n */\n xTruncate(pFile, sizeLo, sizeHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n xSync(pFile, flags) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * \n * @param {number} pFile \n * @param {number} pSize \n * @returns {number|Promise<number>}\n */\n xFileSize(pFile, pSize) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xLock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xUnlock(pFile, lockType) {\n return VFS.SQLITE_OK;\n } \n\n /**\n * @param {number} pFile \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xCheckReservedLock(pFile, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} op \n * @param {number} pArg \n * @returns {number|Promise<number>}\n */\n xFileControl(pFile, op, pArg) {\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xSectorSize(pFile) {\n return DEFAULT_SECTOR_SIZE;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xDeviceCharacteristics(pFile) {\n return 0;\n }\n}\n\nexport const FILE_TYPE_MASK = [\n VFS.SQLITE_OPEN_MAIN_DB,\n VFS.SQLITE_OPEN_MAIN_JOURNAL,\n VFS.SQLITE_OPEN_TEMP_DB,\n VFS.SQLITE_OPEN_TEMP_JOURNAL,\n VFS.SQLITE_OPEN_TRANSIENT_DB,\n VFS.SQLITE_OPEN_SUBJOURNAL,\n VFS.SQLITE_OPEN_SUPER_JOURNAL,\n VFS.SQLITE_OPEN_WAL\n].reduce((mask, element) => mask | element);","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport * as VFS from './VFS.js';\n\nconst AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n// Milliseconds since Julian epoch as a BigInt.\n// https://github.com/sqlite/sqlite/blob/e57527c14f7b7cfa6e32eeab5c549d50c4fa3674/src/os_unix.c#L6872-L6882\nconst UNIX_EPOCH = 24405875n * 8640000n;\n\n// Convenience base class for a JavaScript VFS.\n// The raw xOpen, xRead, etc. function signatures receive only C primitives\n// which aren't easy to work with. This class provides corresponding calls\n// like jOpen, jRead, etc., which receive JavaScript-friendlier arguments\n// such as string, Uint8Array, and DataView.\nexport class FacadeVFS extends VFS.Base {\n /**\n * @param {string} name \n * @param {object} module \n */\n constructor(name, module) {\n super(name, module);\n }\n\n /**\n * Override to indicate which methods are asynchronous.\n * @param {string} methodName \n * @returns {boolean}\n */\n hasAsyncMethod(methodName) {\n // The input argument is a string like \"xOpen\", so convert to \"jOpen\".\n // Then check if the method exists and is async.\n const jMethodName = `j${methodName.slice(1)}`;\n return this[jMethodName] instanceof AsyncFunction;\n }\n \n /**\n * Return the filename for a file id for use by mixins.\n * @param {number} pFile \n * @returns {string}\n */\n getFilename(pFile) {\n throw new Error('unimplemented');\n }\n\n /**\n * @param {string?} filename \n * @param {number} pFile \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number|Promise<number>}\n */\n jOpen(filename, pFile, flags, pOutFlags) {\n return VFS.SQLITE_CANTOPEN;\n }\n\n /**\n * @param {string} filename \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n jDelete(filename, syncDir) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} filename \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number|Promise<number>}\n */\n jAccess(filename, flags, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} filename \n * @param {Uint8Array} zOut \n * @returns {number|Promise<number>}\n */\n jFullPathname(filename, zOut) {\n // Copy the filename to the output buffer.\n const { read, written } = new TextEncoder().encodeInto(filename, zOut);\n if (read < filename.length) return VFS.SQLITE_IOERR;\n if (written >= zOut.length) return VFS.SQLITE_IOERR;\n zOut[written] = 0;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns {number|Promise<number>}\n */\n jGetLastError(zBuf) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n jClose(pFile) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {Uint8Array} pData \n * @param {number} iOffset \n * @returns {number|Promise<number>}\n */\n jRead(pFile, pData, iOffset) {\n pData.fill(0);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n\n /**\n * @param {number} pFile \n * @param {Uint8Array} pData \n * @param {number} iOffset \n * @returns {number|Promise<number>}\n */\n jWrite(pFile, pData, iOffset) {\n return VFS.SQLITE_IOERR_WRITE;\n }\n\n /**\n * @param {number} pFile \n * @param {number} size \n * @returns {number|Promise<number>}\n */\n jTruncate(pFile, size) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n jSync(pFile, flags) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {DataView} pSize\n * @returns {number|Promise<number>}\n */\n jFileSize(pFile, pSize) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n jLock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n jUnlock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {DataView} pResOut \n * @returns {number|Promise<number>}\n */\n jCheckReservedLock(pFile, pResOut) {\n pResOut.setInt32(0, 0, true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(pFile, op, pArg) {\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {number} pFile\n * @returns {number|Promise<number>}\n */\n jSectorSize(pFile) {\n return super.xSectorSize(pFile);\n }\n\n /**\n * @param {number} pFile\n * @returns {number|Promise<number>}\n */\n jDeviceCharacteristics(pFile) {\n return 0;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} pFile \n * @param {number} flags \n * @param {number} pOutFlags \n * @returns {number|Promise<number>}\n */\n xOpen(pVfs, zName, pFile, flags, pOutFlags) {\n const filename = this.#decodeFilename(zName, flags);\n const pOutFlagsView = this.#makeTypedDataView('Int32', pOutFlags);\n this['log']?.('jOpen', filename, pFile, '0x' + flags.toString(16));\n return this.jOpen(filename, pFile, flags, pOutFlagsView);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} nByte \n * @param {number} pCharOut\n * @returns {number|Promise<number>}\n */\n xRandomness(pVfs, nByte, pCharOut) {\n const randomArray = new Uint8Array(nByte);\n crypto.getRandomValues(randomArray);\n // Copy randomArray to the WebAssembly memory\n const buffer = pCharOut; // Pointer to memory in WebAssembly\n this._module.HEAPU8.set(randomArray, buffer); // Copy randomArray into memory starting at buffer\n return nByte;\n }\n\n /**\n * Gets the current time as milliseconds since Unix epoch\n * @param {number} pVfs pointer to the VFS\n * @param {number} pTime pointer to write the time value\n * @returns {number} SQLite error code\n */\n xCurrentTimeInt64(pVfs, pTime) {\n // Create a DataView to write the current time\n const timeView = this.#makeTypedDataView('BigInt64', pTime);\n \n const currentTime = BigInt(Date.now());\n // Convert the current time to milliseconds since Unix epoch\n const value = UNIX_EPOCH + currentTime;\n \n // Write the time value to the pointer location\n timeView.setBigInt64(0, value, true);\n \n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n xDelete(pVfs, zName, syncDir) {\n const filename = this._module.UTF8ToString(zName);\n this['log']?.('jDelete', filename, syncDir);\n return this.jDelete(filename, syncDir);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} flags \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xAccess(pVfs, zName, flags, pResOut) {\n const filename = this._module.UTF8ToString(zName);\n const pResOutView = this.#makeTypedDataView('Int32', pResOut);\n this['log']?.('jAccess', filename, flags);\n return this.jAccess(filename, flags, pResOutView);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} nOut \n * @param {number} zOut \n * @returns {number|Promise<number>}\n */\n xFullPathname(pVfs, zName, nOut, zOut) {\n const filename = this._module.UTF8ToString(zName);\n const zOutArray = this._module.HEAPU8.subarray(zOut, zOut + nOut);\n this['log']?.('jFullPathname', filename, nOut);\n return this.jFullPathname(filename, zOutArray);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} nBuf \n * @param {number} zBuf \n * @returns {number|Promise<number>}\n */\n xGetLastError(pVfs, nBuf, zBuf) {\n const zBufArray = this._module.HEAPU8.subarray(zBuf, zBuf + nBuf);\n this['log']?.('jGetLastError', nBuf);\n return this.jGetLastError(zBufArray);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xClose(pFile) {\n this['log']?.('jClose', pFile);\n return this.jClose(pFile);\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n const pDataArray = this.#makeDataArray(pData, iAmt);\n const iOffset = delegalize(iOffsetLo, iOffsetHi);\n this['log']?.('jRead', pFile, iAmt, iOffset);\n return this.jRead(pFile, pDataArray, iOffset);\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n const pDataArray = this.#makeDataArray(pData, iAmt);\n const iOffset = delegalize(iOffsetLo, iOffsetHi);\n this['log']?.('jWrite', pFile, pDataArray, iOffset);\n return this.jWrite(pFile, pDataArray, iOffset);\n }\n\n /**\n * @param {number} pFile \n * @param {number} sizeLo \n * @param {number} sizeHi \n * @returns {number|Promise<number>}\n */\n xTruncate(pFile, sizeLo, sizeHi) {\n const size = delegalize(sizeLo, sizeHi);\n this['log']?.('jTruncate', pFile, size);\n return this.jTruncate(pFile, size);\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n xSync(pFile, flags) {\n this['log']?.('jSync', pFile, flags);\n return this.jSync(pFile, flags);\n }\n\n /**\n * \n * @param {number} pFile \n * @param {number} pSize \n * @returns {number|Promise<number>}\n */\n xFileSize(pFile, pSize) {\n const pSizeView = this.#makeTypedDataView('BigInt64', pSize);\n this['log']?.('jFileSize', pFile);\n return this.jFileSize(pFile, pSizeView);\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xLock(pFile, lockType) {\n this['log']?.('jLock', pFile, lockType);\n return this.jLock(pFile, lockType);\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xUnlock(pFile, lockType) {\n this['log']?.('jUnlock', pFile, lockType);\n return this.jUnlock(pFile, lockType);\n } \n\n /**\n * @param {number} pFile \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xCheckReservedLock(pFile, pResOut) {\n const pResOutView = this.#makeTypedDataView('Int32', pResOut);\n this['log']?.('jCheckReservedLock', pFile);\n return this.jCheckReservedLock(pFile, pResOutView);\n }\n\n /**\n * @param {number} pFile \n * @param {number} op \n * @param {number} pArg \n * @returns {number|Promise<number>}\n */\n xFileControl(pFile, op, pArg) {\n const pArgView = new DataView(\n this._module.HEAPU8.buffer,\n this._module.HEAPU8.byteOffset + pArg);\n this['log']?.('jFileControl', pFile, op, pArgView);\n return this.jFileControl(pFile, op, pArgView);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xSectorSize(pFile) {\n this['log']?.('jSectorSize', pFile);\n return this.jSectorSize(pFile);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xDeviceCharacteristics(pFile) {\n this['log']?.('jDeviceCharacteristics', pFile);\n return this.jDeviceCharacteristics(pFile);\n }\n\n /**\n * Wrapped DataView for pointer arguments.\n * Pointers to a single value are passed using a DataView-like class.\n * This wrapper class prevents use of incorrect type or endianness, and\n * reacquires the underlying buffer when the WebAssembly memory is resized.\n * @param {'Int32'|'BigInt64'} type \n * @param {number} byteOffset \n * @returns {DataView}\n */\n #makeTypedDataView(type, byteOffset) {\n // @ts-ignore\n return new DataViewProxy(this._module, byteOffset, type);\n }\n\n /**\n * Wrapped Uint8Array for buffer arguments.\n * Memory blocks are passed as a Uint8Array-like class. This wrapper\n * class reacquires the underlying buffer when the WebAssembly memory\n * is resized.\n * @param {number} byteOffset \n * @param {number} byteLength \n * @returns {Uint8Array}\n */\n #makeDataArray(byteOffset, byteLength) {\n // @ts-ignore\n return new Uint8ArrayProxy(this._module, byteOffset, byteLength);\n }\n\n #decodeFilename(zName, flags) {\n if (flags & VFS.SQLITE_OPEN_URI) {\n // The first null-terminated string is the URI path. Subsequent\n // strings are query parameter keys and values.\n // https://www.sqlite.org/c3ref/open.html#urifilenamesinsqlite3open\n let pName = zName;\n let state = 1;\n const charCodes = [];\n while (state) {\n const charCode = this._module.HEAPU8[pName++];\n if (charCode) {\n charCodes.push(charCode);\n } else {\n if (!this._module.HEAPU8[pName]) state = null;\n switch (state) {\n case 1: // path\n charCodes.push('?'.charCodeAt(0));\n state = 2;\n break;\n case 2: // key\n charCodes.push('='.charCodeAt(0));\n state = 3;\n break;\n case 3: // value\n charCodes.push('&'.charCodeAt(0));\n state = 2;\n break;\n }\n }\n }\n return new TextDecoder().decode(new Uint8Array(charCodes));\n }\n return zName ? this._module.UTF8ToString(zName) : null;\n }\n}\n\n// Emscripten \"legalizes\" 64-bit integer arguments by passing them as\n// two 32-bit signed integers.\nfunction delegalize(lo32, hi32) {\n return (hi32 * 0x100000000) + lo32 + (lo32 < 0 ? 2**32 : 0);\n}\n\n// This class provides a Uint8Array-like interface for a WebAssembly memory\n// buffer. It is used to access memory blocks passed as arguments to\n// xRead, xWrite, etc. The class reacquires the underlying buffer when the\n// WebAssembly memory is resized, which can happen when the memory is\n// detached and resized by the WebAssembly module.\n//\n// Note that although this class implements the same methods as Uint8Array,\n// it is not a real Uint8Array and passing it to functions that expect\n// a Uint8Array may not work. Use subarray() to get a real Uint8Array\n// if needed.\nclass Uint8ArrayProxy {\n #module;\n\n #_array = new Uint8Array()\n get #array() {\n if (this.#_array.buffer.byteLength === 0) {\n // WebAssembly memory resize detached the buffer so re-create the\n // array with the new buffer.\n this.#_array = this.#module.HEAPU8.subarray(\n this.byteOffset,\n this.byteOffset + this.byteLength);\n }\n return this.#_array;\n }\n\n /**\n * @param {*} module\n * @param {number} byteOffset \n * @param {number} byteLength \n */\n constructor(module, byteOffset, byteLength) {\n this.#module = module;\n this.byteOffset = byteOffset;\n this.length = this.byteLength = byteLength;\n }\n\n get buffer() {\n return this.#array.buffer;\n }\n\n at(index) {\n return this.#array.at(index);\n }\n copyWithin(target, start, end) {\n this.#array.copyWithin(target, start, end);\n }\n entries() {\n return this.#array.entries();\n }\n every(predicate) {\n return this.#array.every(predicate);\n }\n fill(value, start, end) {\n this.#array.fill(value, start, end);\n }\n filter(predicate) {\n return this.#array.filter(predicate);\n }\n find(predicate) {\n return this.#array.find(predicate);\n }\n findIndex(predicate) {\n return this.#array.findIndex(predicate);\n }\n findLast(predicate) {\n return this.#array.findLast(predicate);\n }\n findLastIndex(predicate) {\n return this.#array.findLastIndex(predicate);\n }\n forEach(callback) {\n this.#array.forEach(callback);\n }\n includes(value, start) {\n return this.#array.includes(value, start);\n }\n indexOf(value, start) {\n return this.#array.indexOf(value, start);\n }\n join(separator) {\n return this.#array.join(separator);\n }\n keys() {\n return this.#array.keys();\n }\n lastIndexOf(value, start) {\n return this.#array.lastIndexOf(value, start);\n }\n map(callback) {\n return this.#array.map(callback);\n }\n reduce(callback, initialValue) {\n return this.#array.reduce(callback, initialValue);\n }\n reduceRight(callback, initialValue) {\n return this.#array.reduceRight(callback, initialValue);\n }\n reverse() {\n this.#array.reverse();\n }\n set(array, offset) {\n this.#array.set(array, offset);\n }\n slice(start, end) {\n return this.#array.slice(start, end);\n }\n some(predicate) {\n return this.#array.some(predicate);\n }\n sort(compareFn) {\n this.#array.sort(compareFn);\n }\n subarray(begin, end) {\n return this.#array.subarray(begin, end);\n }\n toLocaleString(locales, options) {\n // @ts-ignore\n return this.#array.toLocaleString(locales, options);\n }\n toReversed() {\n return this.#array.toReversed();\n }\n toSorted(compareFn) {\n return this.#array.toSorted(compareFn);\n }\n toString() {\n return this.#array.toString();\n }\n values() {\n return this.#array.values();\n }\n with(index, value) {\n return this.#array.with(index, value);\n }\n [Symbol.iterator]() {\n return this.#array[Symbol.iterator]();\n }\n}\n\n// This class provides a DataView-like interface for a WebAssembly memory\n// buffer, restricted to either Int32 or BigInt64 types. It also reacquires\n// the underlying buffer when the WebAssembly memory is resized, which can\n// happen when the memory is detached and resized by the WebAssembly module.\nclass DataViewProxy {\n #module;\n #type;\n\n #_view = new DataView(new ArrayBuffer(0));\n get #view() {\n if (this.#_view.buffer.byteLength === 0) {\n // WebAssembly memory resize detached the buffer so re-create the\n // view with the new buffer.\n this.#_view = new DataView(\n this.#module.HEAPU8.buffer,\n this.#module.HEAPU8.byteOffset + this.byteOffset);\n }\n return this.#_view;\n }\n\n /**\n * @param {*} module\n * @param {number} byteOffset \n * @param {'Int32'|'BigInt64'} type\n */\n constructor(module, byteOffset, type) {\n this.#module = module;\n this.byteOffset = byteOffset;\n this.#type = type;\n }\n\n get buffer() {\n return this.#view.buffer;\n }\n get byteLength() {\n return this.#type === 'Int32' ? 4 : 8;\n }\n\n getInt32(byteOffset, littleEndian) {\n if (this.#type !== 'Int32') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n return this.#view.getInt32(byteOffset, littleEndian);\n }\n setInt32(byteOffset, value, littleEndian) {\n if (this.#type !== 'Int32') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n this.#view.setInt32(byteOffset, value, littleEndian);\n }\n getBigInt64(byteOffset, littleEndian) {\n if (this.#type !== 'BigInt64') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n return this.#view.getBigInt64(byteOffset, littleEndian);\n }\n setBigInt64(byteOffset, value, littleEndian) {\n if (this.#type !== 'BigInt64') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n this.#view.setBigInt64(byteOffset, value, littleEndian);\n }\n}","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\n\nconst DEFAULT_TEMPORARY_FILES = 10;\nconst LOCK_NOTIFY_INTERVAL = 1000;\n\nconst DB_RELATED_FILE_SUFFIXES = ['', '-journal', '-wal'];\n\nconst finalizationRegistry = new FinalizationRegistry(releaser => releaser());\n\nclass File {\n /** @type {string} */ path\n /** @type {number} */ flags;\n /** @type {FileSystemSyncAccessHandle} */ accessHandle;\n\n /** @type {PersistentFile?} */ persistentFile;\n\n constructor(path, flags) {\n this.path = path;\n this.flags = flags;\n }\n}\n\nclass PersistentFile {\n /** @type {FileSystemFileHandle} */ fileHandle\n /** @type {FileSystemSyncAccessHandle} */ accessHandle = null\n\n // The following properties are for main database files.\n\n /** @type {boolean} */ isLockBusy = false;\n /** @type {boolean} */ isFileLocked = false;\n /** @type {boolean} */ isRequestInProgress = false;\n /** @type {function} */ handleLockReleaser = null;\n\n /** @type {BroadcastChannel} */ handleRequestChannel;\n /** @type {boolean} */ isHandleRequested = false;\n\n constructor(fileHandle) {\n this.fileHandle = fileHandle;\n }\n}\n\nexport class OPFSCoopSyncVFS extends FacadeVFS {\n /** @type {Map<number, File>} */ mapIdToFile = new Map();\n\n lastError = null;\n log = null; //function(...args) { console.log(`[${contextName}]`, ...args) };\n \n /** @type {Map<string, PersistentFile>} */ persistentFiles = new Map();\n /** @type {Map<string, FileSystemSyncAccessHandle>} */ boundAccessHandles = new Map();\n /** @type {Set<FileSystemSyncAccessHandle>} */ unboundAccessHandles = new Set();\n /** @type {Set<string>} */ accessiblePaths = new Set();\n releaser = null;\n\n static async create(name, module) {\n const vfs = new OPFSCoopSyncVFS(name, module);\n await Promise.all([\n vfs.isReady(),\n vfs.#initialize(DEFAULT_TEMPORARY_FILES),\n ]);\n return vfs;\n }\n\n constructor(name, module) {\n super(name, module);\n }\n\n async #initialize(nTemporaryFiles) {\n // Delete temporary directories no longer in use.\n const root = await navigator.storage.getDirectory();\n // @ts-ignore\n for await (const entry of root.values()) {\n if (entry.kind === 'directory' && entry.name.startsWith('.ahp-')) {\n // A lock with the same name as the directory protects it from\n // being deleted.\n await navigator.locks.request(entry.name, { ifAvailable: true }, async lock => {\n if (lock) {\n this.log?.(`Deleting temporary directory ${entry.name}`);\n await root.removeEntry(entry.name, { recursive: true });\n } else {\n this.log?.(`Temporary directory ${entry.name} is in use`);\n }\n });\n }\n }\n\n // Create our temporary directory.\n const tmpDirName = `.ahp-${Math.random().toString(36).slice(2)}`;\n this.releaser = await new Promise(resolve => {\n navigator.locks.request(tmpDirName, () => {\n return new Promise(release => {\n resolve(release);\n });\n });\n });\n finalizationRegistry.register(this, this.releaser);\n const tmpDir = await root.getDirectoryHandle(tmpDirName, { create: true });\n\n // Populate temporary directory.\n for (let i = 0; i < nTemporaryFiles; i++) {\n const tmpFile = await tmpDir.getFileHandle(`${i}.tmp`, { create: true });\n const tmpAccessHandle = await tmpFile.createSyncAccessHandle();\n this.unboundAccessHandles.add(tmpAccessHandle);\n }\n }\n\n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number}\n */\n jOpen(zName, fileId, flags, pOutFlags) {\n try {\n const url = new URL(zName || Math.random().toString(36).slice(2), 'file://');\n const path = url.pathname;\n\n if (flags & VFS.SQLITE_OPEN_MAIN_DB) {\n const persistentFile = this.persistentFiles.get(path);\n if (persistentFile?.isRequestInProgress) {\n // Should not reach here unless SQLite itself retries an open.\n // Otherwise, asynchronous operations started on a previous\n // open try should have completed.\n return VFS.SQLITE_BUSY;\n } else if (!persistentFile) {\n // This is the usual starting point for opening a database.\n // Register a Promise that resolves when the database and related\n // files are ready to be used.\n this.log?.(`creating persistent file for ${path}`);\n const create = !!(flags & VFS.SQLITE_OPEN_CREATE);\n this._module.retryOps.push((async () => {\n try {\n // Get the path directory handle.\n let dirHandle = await navigator.storage.getDirectory();\n const directories = path.split('/').filter(d => d);\n const filename = directories.pop();\n for (const directory of directories) {\n dirHandle = await dirHandle.getDirectoryHandle(directory, { create });\n }\n\n // Get file handles for the database and related files,\n // and create persistent file instances.\n for (const suffix of DB_RELATED_FILE_SUFFIXES) {\n const fileHandle = await dirHandle.getFileHandle(filename + suffix, { create });\n await this.#createPersistentFile(fileHandle);\n }\n\n // Get access handles for the files.\n const file = new File(path, flags);\n file.persistentFile = this.persistentFiles.get(path);\n await this.#requestAccessHandle(file);\n } catch (e) {\n // Use an invalid persistent file to signal this error\n // for the retried open.\n const persistentFile = new PersistentFile(null);\n this.persistentFiles.set(path, persistentFile);\n console.error(e);\n }\n })());\n return VFS.SQLITE_BUSY;\n } else if (!persistentFile.fileHandle) {\n // The asynchronous open operation failed.\n this.persistentFiles.delete(path);\n return VFS.SQLITE_CANTOPEN;\n } else if (!persistentFile.accessHandle) {\n // This branch is reached if the database was previously opened\n // and closed.\n this._module.retryOps.push((async () => {\n const file = new File(path, flags);\n file.persistentFile = this.persistentFiles.get(path);\n await this.#requestAccessHandle(file);\n })());\n return VFS.SQLITE_BUSY;\n }\n }\n\n if (!this.accessiblePaths.has(path) &&\n !(flags & VFS.SQLITE_OPEN_CREATE)) {\n throw new Error(`File ${path} not found`);\n }\n\n const file = new File(path, flags);\n this.mapIdToFile.set(fileId, file);\n\n if (this.persistentFiles.has(path)) {\n file.persistentFile = this.persistentFiles.get(path);\n } else if (this.boundAccessHandles.has(path)) {\n // This temporary file was previously created and closed. Reopen\n // the same access handle.\n file.accessHandle = this.boundAccessHandles.get(path);\n } else if (this.unboundAccessHandles.size) {\n // Associate an unbound access handle to this file.\n file.accessHandle = this.unboundAccessHandles.values().next().value;\n file.accessHandle.truncate(0);\n this.unboundAccessHandles.delete(file.accessHandle);\n this.boundAccessHandles.set(path, file.accessHandle);\n }\n this.accessiblePaths.add(path);\n \n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {number}\n */\n jDelete(zName, syncDir) {\n try {\n const url = new URL(zName, 'file://');\n const path = url.pathname;\n if (this.persistentFiles.has(path)) {\n const persistentFile = this.persistentFiles.get(path);\n persistentFile.accessHandle.truncate(0);\n } else {\n this.boundAccessHandles.get(path)?.truncate(0);\n }\n this.accessiblePaths.delete(path);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number}\n */\n jAccess(zName, flags, pResOut) {\n try {\n const url = new URL(zName, 'file://');\n const path = url.pathname;\n pResOut.setInt32(0, this.accessiblePaths.has(path) ? 1 : 0, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_ACCESS;\n } \n }\n\n /**\n * @param {number} fileId \n * @returns {number}\n */\n jClose(fileId) {\n try {\n const file = this.mapIdToFile.get(fileId);\n this.mapIdToFile.delete(fileId);\n\n if (file?.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n if (file.persistentFile?.handleLockReleaser) {\n this.#releaseAccessHandle(file);\n }\n } else if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n file.accessHandle.truncate(0);\n this.accessiblePaths.delete(file.path);\n if (!this.persistentFiles.has(file.path)) {\n this.boundAccessHandles.delete(file.path);\n this.unboundAccessHandles.add(file.accessHandle);\n }\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_CLOSE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jRead(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n // On Chrome (at least), passing pData to accessHandle.read() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const bytesRead = accessHandle.read(pData.subarray(), { at: iOffset });\n\n // Opening a database file performs one read without a xLock call.\n if ((file.flags & VFS.SQLITE_OPEN_MAIN_DB) && !file.persistentFile.isFileLocked) {\n this.#releaseAccessHandle(file);\n }\n\n if (bytesRead < pData.byteLength) {\n pData.fill(0, bytesRead);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_READ;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jWrite(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n // On Chrome (at least), passing pData to accessHandle.write() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const nBytes = accessHandle.write(pData.subarray(), { at: iOffset });\n if (nBytes !== pData.byteLength) throw new Error('short write');\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_WRITE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number}\n */\n jTruncate(fileId, iSize) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n accessHandle.truncate(iSize);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_TRUNCATE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} flags \n * @returns {number}\n */\n jSync(fileId, flags) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n accessHandle.flush();\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSYNC;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number}\n */\n jFileSize(fileId, pSize64) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const size = accessHandle.getSize();\n pSize64.setBigInt64(0, BigInt(size), true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSTAT;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {number}\n */\n jLock(fileId, lockType) {\n const file = this.mapIdToFile.get(fileId);\n if (file.persistentFile.isRequestInProgress) {\n file.persistentFile.isLockBusy = true;\n return VFS.SQLITE_BUSY;\n }\n\n file.persistentFile.isFileLocked = true;\n if (!file.persistentFile.handleLockReleaser) {\n // Start listening for notifications from other connections.\n // This is before we actually get access handles, but waiting to\n // listen until then allows a race condition where notifications\n // are missed. \n file.persistentFile.handleRequestChannel.onmessage = () => {\n this.log?.(`received notification for ${file.path}`);\n if (file.persistentFile.isFileLocked) {\n // We're still using the access handle, so mark it to be\n // released when we're done.\n file.persistentFile.isHandleRequested = true;\n } else {\n // Release the access handles immediately.\n this.#releaseAccessHandle(file);\n }\n file.persistentFile.handleRequestChannel.onmessage = null;\n };\n\n this.#requestAccessHandle(file);\n this.log?.('returning SQLITE_BUSY');\n file.persistentFile.isLockBusy = true;\n return VFS.SQLITE_BUSY;\n }\n file.persistentFile.isLockBusy = false;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {number}\n */\n jUnlock(fileId, lockType) {\n const file = this.mapIdToFile.get(fileId);\n if (lockType === VFS.SQLITE_LOCK_NONE) {\n // Don't change any state if this unlock is because xLock returned\n // SQLITE_BUSY.\n if (!file.persistentFile.isLockBusy) {\n if (file.persistentFile.isHandleRequested) {\n // Another connection wants the access handle.\n this.#releaseAccessHandle(file);\n file.persistentFile.isHandleRequested = false;\n }\n file.persistentFile.isFileLocked = false;\n }\n }\n return VFS.SQLITE_OK;\n }\n \n /**\n * @param {number} fileId\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(fileId, op, pArg) {\n try {\n const file = this.mapIdToFile.get(fileId);\n switch (op) {\n case VFS.SQLITE_FCNTL_PRAGMA:\n const key = extractString(pArg, 4);\n const value = extractString(pArg, 8);\n this.log?.('xFileControl', file.path, 'PRAGMA', key, value);\n switch (key.toLowerCase()) {\n case 'journal_mode':\n if (value &&\n !['off', 'memory', 'delete', 'wal'].includes(value.toLowerCase())) {\n throw new Error('journal_mode must be \"off\", \"memory\", \"delete\", or \"wal\"');\n }\n break;\n }\n break;\n }\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR;\n }\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns \n */\n jGetLastError(zBuf) {\n if (this.lastError) {\n console.error(this.lastError);\n const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);\n const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray);\n zBuf[written] = 0;\n }\n return VFS.SQLITE_OK\n }\n\n /**\n * @param {FileSystemFileHandle} fileHandle \n * @returns {Promise<PersistentFile>}\n */\n async #createPersistentFile(fileHandle) {\n const persistentFile = new PersistentFile(fileHandle);\n const root = await navigator.storage.getDirectory();\n const relativePath = await root.resolve(fileHandle);\n const path = `/${relativePath.join('/')}`;\n persistentFile.handleRequestChannel = new BroadcastChannel(`ahp:${path}`);\n this.persistentFiles.set(path, persistentFile);\n\n const f = await fileHandle.getFile();\n if (f.size) {\n this.accessiblePaths.add(path);\n }\n return persistentFile;\n }\n\n /**\n * @param {File} file \n */\n #requestAccessHandle(file) {\n console.assert(!file.persistentFile.handleLockReleaser);\n if (!file.persistentFile.isRequestInProgress) {\n file.persistentFile.isRequestInProgress = true;\n this._module.retryOps.push((async () => {\n // Acquire the Web Lock.\n file.persistentFile.handleLockReleaser = await this.#acquireLock(file.persistentFile);\n try {\n // Get access handles for the database and releated files in parallel.\n this.log?.(`creating access handles for ${file.path}`)\n await Promise.all(DB_RELATED_FILE_SUFFIXES.map(async suffix => {\n const persistentFile = this.persistentFiles.get(file.path + suffix);\n if (persistentFile) {\n persistentFile.accessHandle =\n await persistentFile.fileHandle.createSyncAccessHandle();\n }\n }));\n } catch (e) {\n this.log?.(`failed to create access handles for ${file.path}`, e);\n // Close any of the potentially opened access handles\n this.#releaseAccessHandle(file);\n throw e;\n } finally {\n file.persistentFile.isRequestInProgress = false;\n }\n })());\n return this._module.retryOps.at(-1);\n }\n return Promise.resolve();\n }\n\n /**\n * @param {File} file \n */\n async #releaseAccessHandle(file) {\n DB_RELATED_FILE_SUFFIXES.forEach(async suffix => {\n const persistentFile = this.persistentFiles.get(file.path + suffix);\n if (persistentFile) {\n persistentFile.accessHandle?.close();\n persistentFile.accessHandle = null;\n }\n });\n this.log?.(`access handles closed for ${file.path}`)\n\n file.persistentFile.handleLockReleaser?.();\n file.persistentFile.handleLockReleaser = null;\n this.log?.(`lock released for ${file.path}`)\n }\n\n /**\n * @param {PersistentFile} persistentFile \n * @returns {Promise<function>} lock releaser\n */\n #acquireLock(persistentFile) {\n return new Promise(resolve => {\n // Tell other connections we want the access handle.\n const lockName = persistentFile.handleRequestChannel.name;\n const notify = () => {\n this.log?.(`notifying for ${lockName}`);\n persistentFile.handleRequestChannel.postMessage(null);\n }\n const notifyId = setInterval(notify, LOCK_NOTIFY_INTERVAL);\n setTimeout(notify);\n\n this.log?.(`lock requested: ${lockName}`)\n navigator.locks.request(lockName, lock => {\n // We have the lock. Stop asking other connections for it.\n this.log?.(`lock acquired: ${lockName}`, lock);\n clearInterval(notifyId);\n return new Promise(resolve);\n });\n });\n }\n}\n\nfunction extractString(dataView, offset) {\n const p = dataView.getUint32(offset, true);\n if (p) {\n const chars = new Uint8Array(dataView.buffer, p);\n return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0)));\n }\n return null;\n}","class TanStackDBError extends Error {\n constructor(message) {\n super(message);\n this.name = `TanStackDBError`;\n }\n}\nclass NonRetriableError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `NonRetriableError`;\n }\n}\nclass SchemaValidationError extends TanStackDBError {\n constructor(type, issues, message) {\n const defaultMessage = `${type === `insert` ? `Insert` : `Update`} validation failed: ${issues.map((issue) => `\n- ${issue.message} - path: ${issue.path}`).join(``)}`;\n super(message || defaultMessage);\n this.name = `SchemaValidationError`;\n this.type = type;\n this.issues = issues;\n }\n}\nclass DuplicateDbInstanceError extends TanStackDBError {\n constructor() {\n super(\n `Multiple instances of @tanstack/db detected!\n\nThis causes transaction context to be lost because each instance maintains its own transaction stack.\n\nCommon causes:\n1. Different versions of @tanstack/db installed\n2. Incompatible peer dependency versions in packages\n3. Module resolution issues in bundler configuration\n\nTo fix:\n1. Check installed versions: npm list @tanstack/db (or pnpm/yarn list)\n2. Force a single version using package manager overrides:\n - npm: \"overrides\" in package.json\n - pnpm: \"pnpm.overrides\" in package.json\n - yarn: \"resolutions\" in package.json\n3. Clear node_modules and lockfile, then reinstall\n\nTo temporarily disable this check (not recommended):\nSet environment variable: TANSTACK_DB_DISABLE_DUP_CHECK=1\n\nSee: https://tanstack.com/db/latest/docs/troubleshooting#duplicate-instances`\n );\n this.name = `DuplicateDbInstanceError`;\n }\n}\nclass CollectionConfigurationError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `CollectionConfigurationError`;\n }\n}\nclass InvalidSyncPersistenceCapabilityError extends CollectionConfigurationError {\n constructor(reason) {\n super(\n `Invalid sync persistence capability at metadata.persistence: ${reason}. Custom sync wrappers must forward metadata.persistence unchanged.`\n );\n this.name = `InvalidSyncPersistenceCapabilityError`;\n }\n}\nclass CollectionRequiresConfigError extends CollectionConfigurationError {\n constructor() {\n super(`Collection requires a config`);\n }\n}\nclass CollectionRequiresSyncConfigError extends CollectionConfigurationError {\n constructor() {\n super(`Collection requires a sync config`);\n }\n}\nclass InvalidSchemaError extends CollectionConfigurationError {\n constructor() {\n super(`Schema must implement the standard-schema interface`);\n }\n}\nclass SchemaMustBeSynchronousError extends CollectionConfigurationError {\n constructor() {\n super(`Schema validation must be synchronous`);\n }\n}\nclass CollectionStateError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `CollectionStateError`;\n }\n}\nclass CollectionInErrorStateError extends CollectionStateError {\n constructor(operation, collectionId) {\n super(\n `Cannot perform ${operation} on collection \"${collectionId}\" - collection is in error state. Try calling cleanup() and restarting the collection.`\n );\n }\n}\nclass InvalidCollectionStatusTransitionError extends CollectionStateError {\n constructor(from, to, collectionId) {\n super(\n `Invalid collection status transition from \"${from}\" to \"${to}\" for collection \"${collectionId}\"`\n );\n }\n}\nclass CollectionIsInErrorStateError extends CollectionStateError {\n constructor() {\n super(`Collection is in error state`);\n }\n}\nclass NegativeActiveSubscribersError extends CollectionStateError {\n constructor() {\n super(`Active subscribers count is negative - this should never happen`);\n }\n}\nclass LiveQueryObserverDisposedError extends CollectionStateError {\n constructor() {\n super(`Cannot subscribe to a disposed LiveQueryObserver`);\n }\n}\nclass LiveQueryWindowControllerDisposedError extends CollectionStateError {\n constructor() {\n super(`Cannot subscribe to a disposed LiveQueryWindowController`);\n }\n}\nclass CollectionOperationError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `CollectionOperationError`;\n }\n}\nclass UndefinedKeyError extends CollectionOperationError {\n constructor(item) {\n super(\n `An object was created without a defined key: ${JSON.stringify(item)}`\n );\n }\n}\nclass InvalidKeyError extends CollectionOperationError {\n constructor(key, item) {\n const keyType = key === null ? `null` : typeof key;\n super(\n `getKey returned an invalid key type. Expected string or number, but got ${keyType}: ${JSON.stringify(key)}. Item: ${JSON.stringify(item)}`\n );\n }\n}\nclass DuplicateKeyError extends CollectionOperationError {\n constructor(key) {\n super(\n `Cannot insert document with ID \"${key}\" because it already exists in the collection`\n );\n }\n}\nclass DuplicateKeySyncError extends CollectionOperationError {\n constructor(key, collectionId, options) {\n const baseMessage = `Cannot insert document with key \"${key}\" from sync because it already exists in the collection \"${collectionId}\"`;\n if (options?.hasCustomGetKey && options.hasDistinct) {\n super(\n `${baseMessage}. This collection uses a custom getKey with .distinct(). The .distinct() operator deduplicates by the ENTIRE selected object (standard SQL behavior), but your custom getKey extracts only a subset of fields. This causes multiple distinct rows (with different values in non-key fields) to receive the same key. To fix this, either: (1) ensure your SELECT only includes fields that uniquely identify each row, (2) use .groupBy() with min()/max() aggregates to select one value per group, or (3) remove the custom getKey to use the default key behavior.`\n );\n } else if (options?.hasCustomGetKey && options.hasJoins) {\n super(\n `${baseMessage}. This collection uses a custom getKey with joined queries. Joined queries can produce multiple rows with the same key when relationships are not 1:1. Consider: (1) using a composite key in your getKey function (e.g., \\`\\${item.key1}-\\${item.key2}\\`), (2) ensuring your join produces unique rows per key, or (3) removing the custom getKey to use the default composite key behavior.`\n );\n } else {\n super(baseMessage);\n }\n }\n}\nclass MissingUpdateArgumentError extends CollectionOperationError {\n constructor() {\n super(`The first argument to update is missing`);\n }\n}\nclass NoKeysPassedToUpdateError extends CollectionOperationError {\n constructor() {\n super(`No keys were passed to update`);\n }\n}\nclass UpdateKeyNotFoundError extends CollectionOperationError {\n constructor(key) {\n super(\n `The key \"${key}\" was passed to update but an object for this key was not found in the collection`\n );\n }\n}\nclass KeyUpdateNotAllowedError extends CollectionOperationError {\n constructor(originalKey, newKey) {\n super(\n `Updating the key of an item is not allowed. Original key: \"${originalKey}\", Attempted new key: \"${newKey}\". Please delete the old item and create a new one if a key change is necessary.`\n );\n }\n}\nclass NoKeysPassedToDeleteError extends CollectionOperationError {\n constructor() {\n super(`No keys were passed to delete`);\n }\n}\nclass DeleteKeyNotFoundError extends CollectionOperationError {\n constructor(key) {\n super(\n `Collection.delete was called with key '${key}' but there is no item in the collection with this key`\n );\n }\n}\nclass MissingHandlerError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `MissingHandlerError`;\n }\n}\nclass MissingInsertHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.insert called directly (not within an explicit transaction) but no 'onInsert' handler is configured.`\n );\n }\n}\nclass MissingUpdateHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.update called directly (not within an explicit transaction) but no 'onUpdate' handler is configured.`\n );\n }\n}\nclass MissingDeleteHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.delete called directly (not within an explicit transaction) but no 'onDelete' handler is configured.`\n );\n }\n}\nclass TransactionError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `TransactionError`;\n }\n}\nclass QueueCapacityExceededError extends TransactionError {\n constructor() {\n super(`Queue capacity exceeded; the mutation was not admitted`);\n this.name = `QueueCapacityExceededError`;\n }\n}\nclass QueueDisposedError extends TransactionError {\n constructor() {\n super(`Queue has been cleaned up; the mutation was not admitted`);\n this.name = `QueueDisposedError`;\n }\n}\nclass ThrottleCallDroppedError extends TransactionError {\n constructor() {\n super(`Throttle call was dropped because trailing execution is disabled`);\n this.name = `ThrottleCallDroppedError`;\n }\n}\nclass DebounceCallDroppedError extends TransactionError {\n constructor() {\n super(`Debounce call was dropped because trailing execution is disabled`);\n this.name = `DebounceCallDroppedError`;\n }\n}\nclass MissingMutationFunctionError extends TransactionError {\n constructor() {\n super(`mutationFn is required when creating a transaction`);\n }\n}\nclass OnMutateMustBeSynchronousError extends TransactionError {\n constructor() {\n super(\n `onMutate must be synchronous and cannot return a promise. Remove async/await or returned promises from onMutate.`\n );\n this.name = `OnMutateMustBeSynchronousError`;\n }\n}\nclass TransactionNotPendingMutateError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .mutate() as the transaction is no longer pending`\n );\n }\n}\nclass TransactionAlreadyCompletedRollbackError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .rollback() as the transaction is already completed`\n );\n }\n}\nclass TransactionNotPendingCommitError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .commit() as the transaction is no longer pending`\n );\n }\n}\nclass NoPendingSyncTransactionWriteError extends TransactionError {\n constructor() {\n super(`No pending sync transaction to write to`);\n }\n}\nclass SyncTransactionAlreadyCommittedWriteError extends TransactionError {\n constructor() {\n super(\n `The pending sync transaction is already committed, you can't still write to it.`\n );\n }\n}\nclass SyncRowReusedWithoutPreviousValueError extends TransactionError {\n constructor(key) {\n super(\n `A sync update for key \"${key}\" wrote a row object that changed in place since it was last written. The change overwrote the row's previous value. Write a new object, or pass the row's previous value as \\`previousValue\\`.`\n );\n }\n}\nclass NoPendingSyncTransactionCommitError extends TransactionError {\n constructor() {\n super(`No pending sync transaction to commit`);\n }\n}\nclass SyncTransactionAlreadyCommittedError extends TransactionError {\n constructor() {\n super(\n `The pending sync transaction is already committed, you can't commit it again.`\n );\n }\n}\nclass QueryBuilderError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `QueryBuilderError`;\n }\n}\nclass OnlyOneSourceAllowedError extends QueryBuilderError {\n constructor(context) {\n super(`Only one source is allowed in the ${context}`);\n }\n}\nclass SubQueryMustHaveFromClauseError extends QueryBuilderError {\n constructor(context) {\n super(`A sub query passed to a ${context} must have a from clause itself`);\n }\n}\nclass InvalidSourceError extends QueryBuilderError {\n constructor(alias) {\n super(\n `Invalid source for live query: The value provided for alias \"${alias}\" is not a Collection or subquery. Live queries only accept Collection instances or subqueries. Please ensure you're passing a valid Collection or QueryBuilder, not a plain array or other data type.`\n );\n }\n}\nclass InvalidSourceTypeError extends QueryBuilderError {\n constructor(context, type) {\n const expected = context === `unionAll clause` ? `an object with one or more key-value pairs like { alias: collection }` : `an object with a single key-value pair like { alias: collection }`;\n const example = context === `unionAll clause` ? `.unionAll({ todos: todosCollection, events: eventsCollection })` : context === `join clause` ? `.join({ todos: todosCollection }, ({ todo, todos }) => eq(todo.id, todos.id))` : `.from({ todos: todosCollection })`;\n super(\n `Invalid source for ${context}: Expected ${expected}. For example: ${example}. Got: ${type}`\n );\n }\n}\nclass JoinConditionMustBeEqualityError extends QueryBuilderError {\n constructor() {\n super(`Join condition must be an equality expression`);\n }\n}\nclass QueryMustHaveFromClauseError extends QueryBuilderError {\n constructor() {\n super(`Query must have a from clause`);\n }\n}\nclass InvalidWhereExpressionError extends QueryBuilderError {\n constructor(valueType) {\n super(\n `Invalid where() expression: Expected a query expression, but received a ${valueType}. This usually happens when using JavaScript's comparison operators (===, !==, <, >, etc.) directly. Instead, use the query builder functions:\n\n ❌ .where(({ user }) => user.id === 'abc')\n ✅ .where(({ user }) => eq(user.id, 'abc'))\n\nAvailable comparison functions: eq, gt, gte, lt, lte, and, or, not, like, ilike, isNull, isUndefined`\n );\n }\n}\nclass QueryCompilationError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `QueryCompilationError`;\n }\n}\nclass UnsafeAliasPathError extends QueryCompilationError {\n constructor(segment) {\n super(\n `Unsafe alias path segment \"${segment}\" is not allowed in .select(). Aliases must not contain \"__proto__\", \"prototype\", or \"constructor\".`\n );\n this.name = `UnsafeAliasPathError`;\n }\n}\nclass DistinctRequiresSelectError extends QueryCompilationError {\n constructor() {\n super(`DISTINCT requires a SELECT clause.`);\n }\n}\nclass FnSelectWithGroupByError extends QueryCompilationError {\n constructor() {\n super(\n `fn.select() cannot be used with groupBy(). groupBy requires the compiler to statically analyze aggregate functions (count, sum, max, etc.) in the SELECT clause, which is not possible with fn.select() since it is an opaque function. Use .select() instead of .fn.select() when combining with groupBy().`\n );\n }\n}\nclass UnsupportedFnSelectResultError extends QueryCompilationError {\n constructor(valueDescription) {\n super(\n `fn.select() cannot return ${valueDescription}. Child query builders, query expressions, and helpers such as eq(), toArray(), materialize(), concat(toArray()), and caseWhen() are query-construction values. Use them as direct fields in .select() instead.`\n );\n }\n}\nclass UnsupportedRootScalarSelectError extends QueryCompilationError {\n constructor() {\n super(\n `Top-level scalar select() is not supported by createLiveQueryCollection() or queryOnce(). Return an object from .select(), or use the scalar query inside toArray(...) or concat(toArray(...)).`\n );\n }\n}\nclass HavingRequiresGroupByError extends QueryCompilationError {\n constructor() {\n super(`HAVING clause requires GROUP BY clause`);\n }\n}\nclass LimitOffsetRequireOrderByError extends QueryCompilationError {\n constructor() {\n super(\n `LIMIT and OFFSET require an ORDER BY clause to ensure deterministic results`\n );\n }\n}\nclass CollectionInputNotFoundError extends QueryCompilationError {\n constructor(alias, collectionId, availableKeys) {\n const details = collectionId ? `alias \"${alias}\" (collection \"${collectionId}\")` : `collection \"${alias}\"`;\n const availableKeysMsg = availableKeys?.length ? `. Available keys: ${availableKeys.join(`, `)}` : ``;\n super(`Input for ${details} not found in inputs map${availableKeysMsg}`);\n }\n}\nclass DuplicateAliasInSubqueryError extends QueryCompilationError {\n constructor(alias, parentAliases) {\n super(\n `Subquery uses alias \"${alias}\" which is already used in the parent query. Each alias must be unique across parent and subquery contexts. Parent query aliases: ${parentAliases.join(`, `)}. Please rename \"${alias}\" in either the parent query or subquery to avoid conflicts.`\n );\n }\n}\nclass UnsupportedFromTypeError extends QueryCompilationError {\n constructor(type) {\n super(`Unsupported FROM type: ${type}`);\n }\n}\nclass UnknownExpressionTypeError extends QueryCompilationError {\n constructor(type) {\n super(`Unknown expression type: ${type}`);\n }\n}\nclass EmptyReferencePathError extends QueryCompilationError {\n constructor() {\n super(`Reference path cannot be empty`);\n }\n}\nclass UnknownFunctionError extends QueryCompilationError {\n constructor(functionName) {\n super(`Unknown function: ${functionName}`);\n }\n}\nclass JoinCollectionNotFoundError extends QueryCompilationError {\n constructor(collectionId) {\n super(`Collection \"${collectionId}\" not found during compilation of join`);\n }\n}\nclass JoinError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `JoinError`;\n }\n}\nclass UnsupportedJoinTypeError extends JoinError {\n constructor(joinType) {\n super(`Unsupported join type: ${joinType}`);\n }\n}\nclass InvalidJoinConditionSameSourceError extends JoinError {\n constructor(sourceAlias) {\n super(\n `Invalid join condition: both expressions refer to the same source \"${sourceAlias}\"`\n );\n }\n}\nclass InvalidJoinConditionSourceMismatchError extends JoinError {\n constructor() {\n super(`Invalid join condition: expressions must reference source aliases`);\n }\n}\nclass InvalidJoinConditionLeftSourceError extends JoinError {\n constructor(sourceAlias) {\n super(\n `Invalid join condition: left expression refers to an unavailable source \"${sourceAlias}\"`\n );\n }\n}\nclass InvalidJoinConditionRightSourceError extends JoinError {\n constructor(sourceAlias) {\n super(\n `Invalid join condition: right expression does not refer to the joined source \"${sourceAlias}\"`\n );\n }\n}\nclass InvalidJoinCondition extends JoinError {\n constructor() {\n super(`Invalid join condition`);\n }\n}\nclass UnsupportedJoinSourceTypeError extends JoinError {\n constructor(type) {\n super(`Unsupported join source type: ${type}`);\n }\n}\nclass GroupByError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `GroupByError`;\n }\n}\nclass NonAggregateExpressionNotInGroupByError extends GroupByError {\n constructor(alias) {\n super(\n `Non-aggregate expression '${alias}' in SELECT must also appear in GROUP BY clause`\n );\n }\n}\nclass UnsupportedAggregateFunctionError extends GroupByError {\n constructor(functionName) {\n super(`Unsupported aggregate function: ${functionName}`);\n }\n}\nclass AggregateFunctionNotInSelectError extends GroupByError {\n constructor(functionName) {\n super(\n `Aggregate function in HAVING clause must also be in SELECT clause: ${functionName}`\n );\n }\n}\nclass UnknownHavingExpressionTypeError extends GroupByError {\n constructor(type) {\n super(`Unknown expression type in HAVING clause: ${type}`);\n }\n}\nclass StorageError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `StorageError`;\n }\n}\nclass SerializationError extends StorageError {\n constructor(operation, originalError) {\n super(\n `Cannot ${operation} item because it cannot be JSON serialized: ${originalError}`\n );\n }\n}\nclass LocalStorageCollectionError extends StorageError {\n constructor(message) {\n super(message);\n this.name = `LocalStorageCollectionError`;\n }\n}\nclass StorageKeyRequiredError extends LocalStorageCollectionError {\n constructor() {\n super(`[LocalStorageCollection] storageKey must be provided.`);\n }\n}\nclass InvalidStorageDataFormatError extends LocalStorageCollectionError {\n constructor(storageKey, key) {\n super(\n `[LocalStorageCollection] Invalid data format in storage key \"${storageKey}\" for key \"${key}\".`\n );\n }\n}\nclass InvalidStorageObjectFormatError extends LocalStorageCollectionError {\n constructor(storageKey) {\n super(\n `[LocalStorageCollection] Invalid data format in storage key \"${storageKey}\". Expected object format.`\n );\n }\n}\nclass SyncCleanupError extends TanStackDBError {\n constructor(collectionId, error) {\n const message = error instanceof Error ? error.message : String(error);\n super(\n `Collection \"${collectionId}\" sync cleanup function threw an error: ${message}`\n );\n this.name = `SyncCleanupError`;\n }\n}\nclass SyncTransactionAbortedError extends Error {\n constructor() {\n super(`Sync transaction was aborted before application`);\n this.name = `AbortError`;\n }\n}\nclass CollectionPreloadAbortedError extends Error {\n constructor() {\n super(`Collection preload was abandoned during cleanup`);\n this.name = `AbortError`;\n }\n}\nclass LoadSubsetOperationAbortedError extends Error {\n constructor() {\n super(`Load subset operation was aborted before its result became visible`);\n this.name = `AbortError`;\n }\n}\nclass QueryOptimizerError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `QueryOptimizerError`;\n }\n}\nclass CannotCombineEmptyExpressionListError extends QueryOptimizerError {\n constructor() {\n super(`Cannot combine empty expression list`);\n }\n}\nclass MissingAliasInputsError extends QueryCompilationError {\n constructor(missingAliases) {\n super(\n `Internal error: compiler returned aliases without inputs: ${missingAliases.join(`, `)}. This indicates a bug in query compilation. Please report this issue.`\n );\n }\n}\nclass SetWindowRequiresOrderByError extends QueryCompilationError {\n constructor() {\n super(\n `setWindow() can only be called on collections with an ORDER BY clause. Add .orderBy() to your query to enable window movement.`\n );\n }\n}\nclass SetWindowReentrancyError extends TanStackDBError {\n constructor() {\n super(\n `setWindow() cannot run reentrantly. Wait for the current window operation to return before starting another one.`\n );\n this.name = `SetWindowReentrancyError`;\n }\n}\nexport {\n AggregateFunctionNotInSelectError,\n CannotCombineEmptyExpressionListError,\n CollectionConfigurationError,\n CollectionInErrorStateError,\n CollectionInputNotFoundError,\n CollectionIsInErrorStateError,\n CollectionOperationError,\n CollectionPreloadAbortedError,\n CollectionRequiresConfigError,\n CollectionRequiresSyncConfigError,\n CollectionStateError,\n DebounceCallDroppedError,\n DeleteKeyNotFoundError,\n DistinctRequiresSelectError,\n DuplicateAliasInSubqueryError,\n DuplicateDbInstanceError,\n DuplicateKeyError,\n DuplicateKeySyncError,\n EmptyReferencePathError,\n FnSelectWithGroupByError,\n GroupByError,\n HavingRequiresGroupByError,\n InvalidCollectionStatusTransitionError,\n InvalidJoinCondition,\n InvalidJoinConditionLeftSourceError,\n InvalidJoinConditionRightSourceError,\n InvalidJoinConditionSameSourceError,\n InvalidJoinConditionSourceMismatchError,\n InvalidKeyError,\n InvalidSchemaError,\n InvalidSourceError,\n InvalidSourceTypeError,\n InvalidStorageDataFormatError,\n InvalidStorageObjectFormatError,\n InvalidSyncPersistenceCapabilityError,\n InvalidWhereExpressionError,\n JoinCollectionNotFoundError,\n JoinConditionMustBeEqualityError,\n JoinError,\n KeyUpdateNotAllowedError,\n LimitOffsetRequireOrderByError,\n LiveQueryObserverDisposedError,\n LiveQueryWindowControllerDisposedError,\n LoadSubsetOperationAbortedError,\n LocalStorageCollectionError,\n MissingAliasInputsError,\n MissingDeleteHandlerError,\n MissingHandlerError,\n MissingInsertHandlerError,\n MissingMutationFunctionError,\n MissingUpdateArgumentError,\n MissingUpdateHandlerError,\n NegativeActiveSubscribersError,\n NoKeysPassedToDeleteError,\n NoKeysPassedToUpdateError,\n NoPendingSyncTransactionCommitError,\n NoPendingSyncTransactionWriteError,\n NonAggregateExpressionNotInGroupByError,\n NonRetriableError,\n OnMutateMustBeSynchronousError,\n OnlyOneSourceAllowedError,\n QueryBuilderError,\n QueryCompilationError,\n QueryMustHaveFromClauseError,\n QueryOptimizerError,\n QueueCapacityExceededError,\n QueueDisposedError,\n SchemaMustBeSynchronousError,\n SchemaValidationError,\n SerializationError,\n SetWindowReentrancyError,\n SetWindowRequiresOrderByError,\n StorageError,\n StorageKeyRequiredError,\n SubQueryMustHaveFromClauseError,\n SyncCleanupError,\n SyncRowReusedWithoutPreviousValueError,\n SyncTransactionAbortedError,\n SyncTransactionAlreadyCommittedError,\n SyncTransactionAlreadyCommittedWriteError,\n TanStackDBError,\n ThrottleCallDroppedError,\n TransactionAlreadyCompletedRollbackError,\n TransactionError,\n TransactionNotPendingCommitError,\n TransactionNotPendingMutateError,\n UndefinedKeyError,\n UnknownExpressionTypeError,\n UnknownFunctionError,\n UnknownHavingExpressionTypeError,\n UnsafeAliasPathError,\n UnsupportedAggregateFunctionError,\n UnsupportedFnSelectResultError,\n UnsupportedFromTypeError,\n UnsupportedJoinSourceTypeError,\n UnsupportedJoinTypeError,\n UnsupportedRootScalarSelectError,\n UpdateKeyNotFoundError\n};\n//# sourceMappingURL=errors.js.map\n","import { TanStackDBError } from \"@tanstack/db\";\nclass PersistedCollectionCoreError extends TanStackDBError {\n constructor(message) {\n super(message);\n this.name = `PersistedCollectionCoreError`;\n }\n}\nclass InvalidPersistedCollectionConfigError extends PersistedCollectionCoreError {\n constructor(message) {\n super(message);\n this.name = `InvalidPersistedCollectionConfigError`;\n }\n}\nclass InvalidSyncConfigError extends InvalidPersistedCollectionConfigError {\n constructor(details) {\n super(\n details ? `Invalid sync config: ${details}` : `Invalid sync config: expected an object with a callable sync function`\n );\n this.name = `InvalidSyncConfigError`;\n }\n}\nclass InvalidPersistedCollectionCoordinatorError extends InvalidPersistedCollectionConfigError {\n constructor(methodName) {\n super(\n `Invalid persisted collection coordinator: missing required \"${methodName}\" method`\n );\n this.name = `InvalidPersistedCollectionCoordinatorError`;\n }\n}\nclass InvalidPersistenceAdapterError extends InvalidPersistedCollectionConfigError {\n constructor(methodName) {\n super(\n `Invalid persistence adapter: missing required \"${methodName}\" method`\n );\n this.name = `InvalidPersistenceAdapterError`;\n }\n}\nclass PersistedCollectionDurabilityError extends PersistedCollectionCoreError {\n constructor(message, options = {}) {\n super(message);\n this.name = `PersistedCollectionDurabilityError`;\n this.cause = options.cause;\n this.code = options.code;\n this.path = options.path;\n }\n}\nfunction toPersistedCollectionDurabilityError(collectionId, cause) {\n if (cause instanceof PersistedCollectionDurabilityError) {\n return cause;\n }\n const details = typeof cause === `object` && cause !== null ? cause : void 0;\n const message = cause instanceof Error ? cause.message : String(cause);\n return new PersistedCollectionDurabilityError(\n `Failed to durably persist collection \"${collectionId}\": ${message}`,\n {\n cause,\n code: details?.code,\n path: details?.path\n }\n );\n}\nclass IndeterminateCommitError extends PersistedCollectionCoreError {\n constructor(options) {\n super(\n `Commit outcome is indeterminate for collection \"${options.collectionId}\": ${options.requestType} crossed leadership from ${formatLeader(options.previousLeaderId, options.previousTerm)} to ${formatLeader(options.currentLeaderId, options.currentTerm)}`\n );\n this.code = `INDETERMINATE_COMMIT`;\n this.name = `IndeterminateCommitError`;\n this.collectionId = options.collectionId;\n this.requestType = options.requestType;\n this.previousLeaderId = options.previousLeaderId;\n this.previousTerm = options.previousTerm;\n this.currentLeaderId = options.currentLeaderId;\n this.currentTerm = options.currentTerm;\n this.cause = options.cause;\n }\n}\nfunction formatLeader(leaderId, term) {\n return `${leaderId ?? `unknown leader`} (term ${term ?? `unknown`})`;\n}\nclass DuplicateRemoteSubsetOwnerError extends PersistedCollectionCoreError {\n constructor(collectionId) {\n super(\n `A remote subset owner is already registered for collection \"${collectionId}\"`\n );\n this.name = `DuplicateRemoteSubsetOwnerError`;\n this.collectionId = collectionId;\n }\n}\nclass RetryableRemoteSubsetAcquisitionError extends PersistedCollectionCoreError {\n constructor(message, cause) {\n super(message);\n this.name = `RetryableRemoteSubsetAcquisitionError`;\n this.cause = cause;\n }\n}\nclass InvalidPersistedStorageKeyError extends InvalidPersistedCollectionConfigError {\n constructor(key) {\n super(\n `Invalid persisted storage key \"${String(key)}\": numeric keys must be finite`\n );\n this.name = `InvalidPersistedStorageKeyError`;\n }\n}\nclass InvalidPersistedStorageKeyEncodingError extends InvalidPersistedCollectionConfigError {\n constructor(encoded) {\n super(\n `Invalid persisted storage key encoding \"${encoded}\": expected prefix \"n:\" or \"s:\"`\n );\n this.name = `InvalidPersistedStorageKeyEncodingError`;\n }\n}\nclass SQLiteBigIntOutOfRangeError extends PersistedCollectionCoreError {\n constructor(value, minimum, maximum) {\n super(\n `SQLite BigInt value ${value} is outside the signed 64-bit range [${minimum}, ${maximum}]`\n );\n this.name = `SQLiteBigIntOutOfRangeError`;\n }\n}\nclass PersistenceUnavailableError extends PersistedCollectionCoreError {\n constructor(details) {\n super(\n details ? `Persistence unavailable: ${details}` : `Persistence unavailable in this runtime`\n );\n this.name = `PersistenceUnavailableError`;\n }\n}\nexport {\n DuplicateRemoteSubsetOwnerError,\n IndeterminateCommitError,\n InvalidPersistedCollectionConfigError,\n InvalidPersistedCollectionCoordinatorError,\n InvalidPersistedStorageKeyEncodingError,\n InvalidPersistedStorageKeyError,\n InvalidPersistenceAdapterError,\n InvalidSyncConfigError,\n PersistedCollectionCoreError,\n PersistedCollectionDurabilityError,\n PersistenceUnavailableError,\n RetryableRemoteSubsetAcquisitionError,\n SQLiteBigIntOutOfRangeError,\n toPersistedCollectionDurabilityError\n};\n//# sourceMappingURL=errors.js.map\n","import SQLiteESMFactory from '@journeyapps/wa-sqlite/dist/wa-sqlite.mjs'\nimport * as SQLite from '@journeyapps/wa-sqlite'\nimport { OPFSCoopSyncVFS } from '@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js'\nimport {\n InvalidPersistedCollectionConfigError,\n PersistenceUnavailableError,\n} from '@tanstack/db-sqlite-persistence-core'\nimport type {\n BrowserOPFSWorkerErrorCode,\n BrowserOPFSWorkerRequest,\n BrowserOPFSWorkerResponse,\n} from './opfs-worker-protocol'\n\nconst workerGlobal = globalThis as typeof globalThis & {\n postMessage: (message: BrowserOPFSWorkerResponse) => void\n addEventListener: (\n type: `message`,\n listener: (event: MessageEvent<BrowserOPFSWorkerRequest>) => void,\n ) => void\n}\n\nconst SQLITE_ROW = 100\nconst SQLITE_DONE = 101\n\ntype SQLiteCompatibleBinding =\n | null\n | string\n | number\n | bigint\n | Uint8Array\n | Array<number>\n\ntype WorkerOPFSGlobal = {\n navigator?: {\n storage?: {\n getDirectory?: () => Promise<unknown>\n }\n }\n FileSystemFileHandle?: {\n prototype?: {\n createSyncAccessHandle?: () => Promise<unknown>\n }\n }\n}\n\nlet sqlite3Instance: ReturnType<typeof SQLite.Factory> | null = null\nlet sqliteDatabaseHandle: number | null = null\nlet opfsVfsInstance: { close?: () => Promise<void> | void } | null = null\n\nfunction hasWorkerOPFSSyncAccessSupport(globalObject: unknown): boolean {\n const candidate = globalObject as WorkerOPFSGlobal\n const getDirectory = candidate.navigator?.storage?.getDirectory\n const createSyncAccessHandle =\n candidate.FileSystemFileHandle?.prototype?.createSyncAccessHandle\n\n return (\n typeof getDirectory === `function` &&\n typeof createSyncAccessHandle === `function`\n )\n}\n\nfunction toBindableValue(value: unknown): SQLiteCompatibleBinding {\n if (value === null || value === undefined) {\n return null\n }\n\n if (typeof value === `string`) {\n return value\n }\n\n if (typeof value === `number`) {\n return Number.isFinite(value) ? value : null\n }\n\n if (typeof value === `bigint`) {\n return value\n }\n\n if (typeof value === `boolean`) {\n return value ? 1 : 0\n }\n\n if (value instanceof Date) {\n return value.toISOString()\n }\n\n if (value instanceof Uint8Array) {\n return value\n }\n\n if (\n Array.isArray(value) &&\n value.every((entry) => typeof entry === `number` && Number.isFinite(entry))\n ) {\n return [...value]\n }\n\n throw new InvalidPersistedCollectionConfigError(\n `Unsupported parameter type for wa-sqlite binding`,\n )\n}\n\nfunction toErrorCode(error: unknown): BrowserOPFSWorkerErrorCode {\n if (error instanceof PersistenceUnavailableError) {\n return `PERSISTENCE_UNAVAILABLE`\n }\n if (error instanceof InvalidPersistedCollectionConfigError) {\n return `INVALID_CONFIG`\n }\n return `INTERNAL`\n}\n\nasync function closeWorkerDatabase(): Promise<void> {\n const sqlite3 = sqlite3Instance\n const dbHandle = sqliteDatabaseHandle\n const vfs = opfsVfsInstance\n\n sqlite3Instance = null\n sqliteDatabaseHandle = null\n opfsVfsInstance = null\n\n let closeError: unknown\n if (sqlite3 && dbHandle !== null) {\n try {\n await sqlite3.close(dbHandle)\n } catch (error) {\n closeError = error\n }\n }\n\n try {\n await Promise.resolve(vfs?.close?.())\n } catch (error) {\n closeError ??= error\n }\n\n if (closeError) {\n throw closeError\n }\n}\n\nasync function initializeWorkerDatabase(request: {\n databaseName: string\n vfsName: string\n}): Promise<void> {\n if (!hasWorkerOPFSSyncAccessSupport(workerGlobal)) {\n throw new PersistenceUnavailableError(\n `Browser OPFS sync access is not available in this worker runtime`,\n )\n }\n\n await closeWorkerDatabase()\n\n const sqliteModule = await SQLiteESMFactory()\n const sqlite3 = SQLite.Factory(sqliteModule)\n const opfsVfs = await OPFSCoopSyncVFS.create(request.vfsName, sqliteModule)\n sqlite3.vfs_register(opfsVfs as never, true)\n\n const openFlags =\n SQLite.SQLITE_OPEN_CREATE |\n SQLite.SQLITE_OPEN_READWRITE |\n SQLite.SQLITE_OPEN_URI\n const databaseFileUri = `file:${request.databaseName}?vfs=${encodeURIComponent(request.vfsName)}`\n let dbHandle: number\n try {\n dbHandle = await sqlite3.open_v2(\n databaseFileUri,\n openFlags,\n request.vfsName,\n )\n } catch (error) {\n const cause = opfsVfs.lastError\n if (error instanceof Error && cause instanceof Error) {\n throw new Error(`${error.message}: ${cause.name}: ${cause.message}`, {\n cause,\n })\n }\n throw error\n }\n\n sqlite3Instance = sqlite3\n sqliteDatabaseHandle = dbHandle\n opfsVfsInstance = opfsVfs\n}\n\nfunction getInitializedDatabaseState(): {\n sqlite3: ReturnType<typeof SQLite.Factory>\n dbHandle: number\n} {\n if (!sqlite3Instance || sqliteDatabaseHandle === null) {\n throw new InvalidPersistedCollectionConfigError(\n `OPFS worker database has not been initialized`,\n )\n }\n\n return {\n sqlite3: sqlite3Instance,\n dbHandle: sqliteDatabaseHandle,\n }\n}\n\nasync function executeSqlInWorker(\n sql: string,\n params: ReadonlyArray<unknown>,\n): Promise<ReadonlyArray<Record<string, unknown>>> {\n const { sqlite3, dbHandle } = getInitializedDatabaseState()\n const rows = new Array<Record<string, unknown>>()\n let parametersBound = false\n\n for await (const statement of sqlite3.statements(dbHandle, sql)) {\n if (params.length > 0) {\n if (parametersBound) {\n throw new InvalidPersistedCollectionConfigError(\n `wa-sqlite worker only supports parameter binding for a single SQL statement`,\n )\n }\n\n sqlite3.bind_collection(\n statement,\n params.map((param) => toBindableValue(param)),\n )\n parametersBound = true\n }\n\n let columns = [...sqlite3.column_names(statement)]\n for (;;) {\n const stepResult = await sqlite3.step(statement)\n\n if (stepResult === SQLITE_ROW) {\n if (columns.length === 0) {\n columns = [...sqlite3.column_names(statement)]\n }\n const values = sqlite3.row(statement)\n const row: Record<string, unknown> = {}\n for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {\n const columnName = columns[columnIndex]\n if (!columnName) {\n continue\n }\n row[columnName] = values[columnIndex]\n }\n rows.push(row)\n continue\n }\n\n if (stepResult === SQLITE_DONE) {\n break\n }\n\n throw new InvalidPersistedCollectionConfigError(\n `wa-sqlite step returned unexpected result code: ${String(stepResult)}`,\n )\n }\n }\n\n if (params.length > 0 && !parametersBound) {\n throw new InvalidPersistedCollectionConfigError(\n `SQL query parameters were provided but no statement accepted bindings`,\n )\n }\n\n return rows\n}\n\nasync function handleWorkerRequest(\n request: BrowserOPFSWorkerRequest,\n): Promise<BrowserOPFSWorkerResponse> {\n try {\n switch (request.type) {\n case `init`:\n await initializeWorkerDatabase({\n databaseName: request.databaseName,\n vfsName: request.vfsName,\n })\n return {\n type: `response`,\n requestId: request.requestId,\n ok: true,\n }\n case `execute`: {\n const rows = await executeSqlInWorker(request.sql, request.params)\n return {\n type: `response`,\n requestId: request.requestId,\n ok: true,\n rows,\n }\n }\n case `close`:\n await closeWorkerDatabase()\n return {\n type: `response`,\n requestId: request.requestId,\n ok: true,\n }\n default:\n throw new InvalidPersistedCollectionConfigError(\n `Unknown OPFS worker request type`,\n )\n }\n } catch (error) {\n return {\n type: `response`,\n requestId: request.requestId,\n ok: false,\n code: toErrorCode(error),\n error: (error as Error).message,\n }\n }\n}\n\nworkerGlobal.addEventListener(`message`, (event) => {\n void handleWorkerRequest(event.data).then((response) => {\n workerGlobal.postMessage(response)\n })\n})\n"],"names":["Module","result","err","xhr","lazyArray","ret","wasmExports","AsyncFunction","SQLITE_ROW","SQLITE_DONE","SQLite.SQLITE_MISUSE","SQLite.SQLITE_OK","SQLite.SQLITE_NOTICE","SQLite.SQLITE_RANGE","SQLite.SQLITE_BLOB","SQLite.SQLITE_FLOAT","SQLite.SQLITE_INTEGER","SQLite.SQLITE_NULL","SQLite.SQLITE_TEXT","SQLite.SQLITE_ROW","SQLite.SQLITE_OPEN_CREATE","SQLite.SQLITE_OPEN_READWRITE","SQLite.SQLITE_DONE","VFS.SQLITE_CANTOPEN","VFS.SQLITE_OK","VFS.SQLITE_NOTFOUND","VFS.Base","VFS.SQLITE_IOERR","VFS.SQLITE_IOERR_SHORT_READ","VFS.SQLITE_IOERR_WRITE","VFS.SQLITE_OPEN_URI","VFS.SQLITE_OPEN_MAIN_DB","VFS.SQLITE_BUSY","VFS.SQLITE_OPEN_CREATE","file","persistentFile","VFS.SQLITE_IOERR_DELETE","VFS.SQLITE_IOERR_ACCESS","VFS.SQLITE_OPEN_DELETEONCLOSE","VFS.SQLITE_IOERR_CLOSE","VFS.SQLITE_IOERR_READ","VFS.SQLITE_IOERR_TRUNCATE","VFS.SQLITE_IOERR_FSYNC","VFS.SQLITE_IOERR_FSTAT","VFS.SQLITE_LOCK_NONE","VFS.SQLITE_FCNTL_PRAGMA","SQLiteESMFactory","SQLite.Factory","SQLite.SQLITE_OPEN_URI"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}