flatsql 1.1.0 → 1.4.4

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.
package/wasm/flatsql.js CHANGED
@@ -1,2 +1,2 @@
1
- async function FlatSQL(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";if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("module");var require=createRequire(import.meta.url)}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_NODE){var fs=require("fs");if(_scriptName.startsWith("file:")){scriptDirectory=require("path").dirname(require("url").fileURLToPath(_scriptName))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else 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 isFileURI=filename=>filename.startsWith("file://");var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;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);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(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;wasmExports["Ea"]()}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("flatsql.wasm")}return new URL("flatsql.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&&!ENVIRONMENT_IS_NODE){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;wasmExports=applySignatureConversions(wasmExports);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}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);var noExitRuntime=true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var exceptionCaught=[];var uncaughtExceptionCount=0;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function ___cxa_begin_catch(ptr){ptr>>>=0;var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);return ___cxa_get_exception_ptr(ptr)}var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>>2>>>0]=type}get_type(){return HEAPU32[this.ptr+4>>>2>>>0]}set_destructor(destructor){HEAPU32[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12>>>0]=caught}get_caught(){return HEAP8[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>>0]=rethrown}get_rethrown(){return HEAP8[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>>2>>>0]}}var setTempRet0=val=>__emscripten_tempret_set(val);var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var caughtType of args){if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};function ___cxa_find_matching_catch_2(){return findMatchingCatch([])}function ___cxa_find_matching_catch_3(arg0){arg0>>>=0;return findMatchingCatch([arg0])}function ___cxa_find_matching_catch_4(arg0,arg1){arg0>>>=0;arg1>>>=0;return findMatchingCatch([arg0,arg1])}var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}___cxa_increment_exception_refcount(ptr);exceptionLast=ptr;throw exceptionLast};function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);___cxa_increment_exception_refcount(ptr);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;function ___resumeException(ptr){ptr>>>=0;if(!exceptionLast){exceptionLast=ptr}throw exceptionLast}function ___syscall_chmod(path,mode){path>>>=0}function ___syscall_faccessat(dirfd,path,amode,flags){path>>>=0}var ___syscall_fchmod=(fd,mode)=>{};var ___syscall_fchown32=(fd,owner,group)=>{};var UTF8Decoder=globalThis.TextDecoder&&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 UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{idx>>>=0;var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):""};var SYSCALLS={varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;return 0}function ___syscall_fstat64(fd,buf){buf>>>=0}function ___syscall_ftruncate64(fd,length){length=bigintToI53Checked(length)}function ___syscall_getcwd(buf,size){buf>>>=0;size>>>=0}function ___syscall_lstat64(path,buf){path>>>=0;buf>>>=0}function ___syscall_mkdirat(dirfd,path,mode){path>>>=0}function ___syscall_newfstatat(dirfd,path,buf,flags){path>>>=0;buf>>>=0}function ___syscall_openat(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs}function ___syscall_readlinkat(dirfd,path,buf,bufsize){path>>>=0;buf>>>=0;bufsize>>>=0}function ___syscall_rmdir(path){path>>>=0}function ___syscall_stat64(path,buf){path>>>=0;buf>>>=0}function ___syscall_unlinkat(dirfd,path,flags){path>>>=0}function ___syscall_utimensat(dirfd,path,times,flags){path>>>=0;times>>>=0}var __abort_js=()=>abort("");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,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);HEAP32[tmPtr>>>2>>>0]=date.getSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getHours();HEAP32[tmPtr+12>>>2>>>0]=date.getDate();HEAP32[tmPtr+16>>>2>>>0]=date.getMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getFullYear()-1900;HEAP32[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>>2>>>0]=yday;HEAP32[tmPtr+36>>>2>>>0]=-(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>>>0]=dst}var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;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++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63;i++}}heap[outIdx>>>0]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;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>>>0]=stdTimezoneOffset*60;HEAP32[daylight>>>2>>>0]=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_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>>3>>>0]=BigInt(nsec);return 0}var getHeapMax=()=>4294901760;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;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};function _environ_get(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}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};function _environ_sizes_get(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0}var _fd_close=fd=>52;function _fd_fdstat_get(fd,pbuf){pbuf>>>=0;var rightsBase=0;var rightsInheriting=0;var flags=0;{var type=2;if(fd==0){rightsBase=2}else if(fd==1||fd==2){rightsBase=64}flags=1}HEAP8[pbuf>>>0]=type;HEAP16[pbuf+2>>>1>>>0]=flags;HEAP64[pbuf+8>>>3>>>0]=BigInt(rightsBase);HEAP64[pbuf+16>>>3>>>0]=BigInt(rightsInheriting);return 0}function _fd_read(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;return 52}function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);newOffset>>>=0;return 70}var _fd_sync=fd=>52;var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};function _fd_write(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j>>>0])}num+=len}HEAPU32[pnum>>>2>>>0]=num;return 0}function _llvm_eh_typeid_for(type){type>>>=0;return type}var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer>>>0)};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==="pointer")return ret>>>0;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)};{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];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["ccall"]=ccall;Module["cwrap"]=cwrap;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;var _free,_malloc,_flatsql_create_db,_flatsql_destroy_db,_flatsql_register_file_id,_flatsql_enable_demo_extractors,_flatsql_ingest,_flatsql_ingest_one,_flatsql_register_source,_flatsql_create_unified_views,_flatsql_ingest_with_source,_flatsql_ingest_one_with_source,_flatsql_query,_flatsql_query_params,_flatsql_query_many,_flatsql_batch_result_count,_flatsql_select_batch_result,_flatsql_get_error,_flatsql_build_query_cache_key,_flatsql_build_response_artifact_cache_key,_flatsql_register_query_template,_flatsql_query_template,_flatsql_clear_query_cache,_flatsql_configure_query_cache,_flatsql_query_cache_hits,_flatsql_query_cache_misses,_flatsql_query_cache_size,_flatsql_query_cache_generation,_flatsql_query_cache_max_entries,_flatsql_query_cache_max_rows,_flatsql_result_column_count,_flatsql_result_row_count,_flatsql_result_column_name,_flatsql_result_cell_type,_flatsql_result_cell_number,_flatsql_result_cell_string,_flatsql_result_cell_blob,_flatsql_result_cell_blob_size,_flatsql_export_data,_flatsql_query_raw_flatbuffer_stream,_flatsql_response_artifact_data,_flatsql_response_artifact_size,_flatsql_response_artifact_cache_hit,_flatsql_configure_raw_stream_cache,_flatsql_raw_stream_cache_hits,_flatsql_raw_stream_cache_misses,_flatsql_raw_stream_cache_size,_flatsql_raw_stream_cache_total_bytes,_flatsql_response_artifact_row_count,_flatsql_response_artifact_column_count,_flatsql_export_size,_flatsql_load_and_rebuild,_flatsql_reserve_storage,_flatsql_load_from_db,_flatsql_create_test_user,_flatsql_test_buffer_size,_flatsql_create_test_post,_flatsql_create_test_mpe,_flatsql_create_test_telemetry,_flatsql_create_test_publish_event,_flatsql_get_stats_count,_flatsql_get_stat_table_name,_flatsql_get_stat_file_id,_flatsql_get_stat_record_count,_flatsql_reset_ingest_profile,_flatsql_get_ingest_profile_record_count,_flatsql_get_ingest_profile_byte_count,_flatsql_get_ingest_profile_decode_nanos,_flatsql_get_ingest_profile_append_nanos,_flatsql_get_ingest_profile_index_nanos,_flatsql_mark_deleted,_flatsql_get_deleted_count,_flatsql_clear_tombstones,_flatsql_get_sources_count,_flatsql_get_source_name,_flatsql_get_flatbuffer_by_id,_flatsql_get_flatbuffer_by_email,_flatsql_get_flatbuffer_by_index,_flatsql_get_raw_flatbuffer_size,_flatsql_get_raw_flatbuffer_sequence,_flatsql_get_storage_buffer,_flatsql_get_storage_size,_flatsql_set_encryption_key,_flatsql_is_encrypted,_flatsql_encrypt_buffer,_flatsql_decrypt_buffer,_flatsql_set_hmac_verification,_flatsql_is_hmac_enabled,_flatsql_compute_hmac,_flatsql_verify_hmac,_setThrew,__emscripten_tempret_set,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___cxa_decrement_exception_refcount,___cxa_increment_exception_refcount,___cxa_can_catch,___cxa_get_exception_ptr,dynCall_v,dynCall_ii,dynCall_iii,dynCall_viiiiii,dynCall_vii,dynCall_viii,dynCall_iiii,dynCall_iiiiii,dynCall_vi,dynCall_viiii,dynCall_jii,dynCall_viiiii,dynCall_iiiiiii,dynCall_iiiii,dynCall_iiij,dynCall_iiid,dynCall_viijij,dynCall_viiijj,dynCall_jiiiii,dynCall_viiiiiiiiii,dynCall_vij,dynCall_iiji,dynCall_iijiii,dynCall_viij,dynCall_iid,dynCall_i,dynCall_dii,dynCall_di,dynCall_viidi,dynCall_vid,dynCall_vidd,dynCall_dd,dynCall_ddd,dynCall_jiiii,dynCall_viiiiiiii,dynCall_iiiddddddddi,dynCall_iijj,dynCall_iiiij,dynCall_iij,dynCall_iijii,dynCall_iidiiii,dynCall_j,dynCall_iiiiid,dynCall_viijii,dynCall_iiiiiiii,dynCall_iiiiiiiiiii,dynCall_iiiiiiiiiiiii,dynCall_fiii,dynCall_diii,dynCall_viiiiiii,dynCall_iiiiiiiiiiii,dynCall_viiiiiiiiiiiiiii,dynCall_iiiiiiiii,dynCall_iiiiij,dynCall_iiiiijj,dynCall_iiiiiijj,memory,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_free=Module["_free"]=wasmExports["Ga"];_malloc=Module["_malloc"]=wasmExports["Ha"];_flatsql_create_db=Module["_flatsql_create_db"]=wasmExports["Ia"];_flatsql_destroy_db=Module["_flatsql_destroy_db"]=wasmExports["Ja"];_flatsql_register_file_id=Module["_flatsql_register_file_id"]=wasmExports["Ka"];_flatsql_enable_demo_extractors=Module["_flatsql_enable_demo_extractors"]=wasmExports["La"];_flatsql_ingest=Module["_flatsql_ingest"]=wasmExports["Ma"];_flatsql_ingest_one=Module["_flatsql_ingest_one"]=wasmExports["Na"];_flatsql_register_source=Module["_flatsql_register_source"]=wasmExports["Oa"];_flatsql_create_unified_views=Module["_flatsql_create_unified_views"]=wasmExports["Pa"];_flatsql_ingest_with_source=Module["_flatsql_ingest_with_source"]=wasmExports["Qa"];_flatsql_ingest_one_with_source=Module["_flatsql_ingest_one_with_source"]=wasmExports["Ra"];_flatsql_query=Module["_flatsql_query"]=wasmExports["Sa"];_flatsql_query_params=Module["_flatsql_query_params"]=wasmExports["Ta"];_flatsql_query_many=Module["_flatsql_query_many"]=wasmExports["Ua"];_flatsql_batch_result_count=Module["_flatsql_batch_result_count"]=wasmExports["Va"];_flatsql_select_batch_result=Module["_flatsql_select_batch_result"]=wasmExports["Wa"];_flatsql_get_error=Module["_flatsql_get_error"]=wasmExports["Xa"];_flatsql_build_query_cache_key=Module["_flatsql_build_query_cache_key"]=wasmExports["Ya"];_flatsql_build_response_artifact_cache_key=Module["_flatsql_build_response_artifact_cache_key"]=wasmExports["Za"];_flatsql_register_query_template=Module["_flatsql_register_query_template"]=wasmExports["_a"];_flatsql_query_template=Module["_flatsql_query_template"]=wasmExports["$a"];_flatsql_clear_query_cache=Module["_flatsql_clear_query_cache"]=wasmExports["ab"];_flatsql_configure_query_cache=Module["_flatsql_configure_query_cache"]=wasmExports["bb"];_flatsql_query_cache_hits=Module["_flatsql_query_cache_hits"]=wasmExports["cb"];_flatsql_query_cache_misses=Module["_flatsql_query_cache_misses"]=wasmExports["db"];_flatsql_query_cache_size=Module["_flatsql_query_cache_size"]=wasmExports["eb"];_flatsql_query_cache_generation=Module["_flatsql_query_cache_generation"]=wasmExports["fb"];_flatsql_query_cache_max_entries=Module["_flatsql_query_cache_max_entries"]=wasmExports["gb"];_flatsql_query_cache_max_rows=Module["_flatsql_query_cache_max_rows"]=wasmExports["hb"];_flatsql_result_column_count=Module["_flatsql_result_column_count"]=wasmExports["ib"];_flatsql_result_row_count=Module["_flatsql_result_row_count"]=wasmExports["jb"];_flatsql_result_column_name=Module["_flatsql_result_column_name"]=wasmExports["kb"];_flatsql_result_cell_type=Module["_flatsql_result_cell_type"]=wasmExports["lb"];_flatsql_result_cell_number=Module["_flatsql_result_cell_number"]=wasmExports["mb"];_flatsql_result_cell_string=Module["_flatsql_result_cell_string"]=wasmExports["nb"];_flatsql_result_cell_blob=Module["_flatsql_result_cell_blob"]=wasmExports["ob"];_flatsql_result_cell_blob_size=Module["_flatsql_result_cell_blob_size"]=wasmExports["pb"];_flatsql_export_data=Module["_flatsql_export_data"]=wasmExports["qb"];_flatsql_query_raw_flatbuffer_stream=Module["_flatsql_query_raw_flatbuffer_stream"]=wasmExports["rb"];_flatsql_response_artifact_data=Module["_flatsql_response_artifact_data"]=wasmExports["sb"];_flatsql_response_artifact_size=Module["_flatsql_response_artifact_size"]=wasmExports["tb"];_flatsql_response_artifact_cache_hit=Module["_flatsql_response_artifact_cache_hit"]=wasmExports["ub"];_flatsql_configure_raw_stream_cache=Module["_flatsql_configure_raw_stream_cache"]=wasmExports["vb"];_flatsql_raw_stream_cache_hits=Module["_flatsql_raw_stream_cache_hits"]=wasmExports["wb"];_flatsql_raw_stream_cache_misses=Module["_flatsql_raw_stream_cache_misses"]=wasmExports["xb"];_flatsql_raw_stream_cache_size=Module["_flatsql_raw_stream_cache_size"]=wasmExports["yb"];_flatsql_raw_stream_cache_total_bytes=Module["_flatsql_raw_stream_cache_total_bytes"]=wasmExports["zb"];_flatsql_response_artifact_row_count=Module["_flatsql_response_artifact_row_count"]=wasmExports["Ab"];_flatsql_response_artifact_column_count=Module["_flatsql_response_artifact_column_count"]=wasmExports["Bb"];_flatsql_export_size=Module["_flatsql_export_size"]=wasmExports["Cb"];_flatsql_load_and_rebuild=Module["_flatsql_load_and_rebuild"]=wasmExports["Db"];_flatsql_reserve_storage=Module["_flatsql_reserve_storage"]=wasmExports["Eb"];_flatsql_load_from_db=Module["_flatsql_load_from_db"]=wasmExports["Fb"];_flatsql_create_test_user=Module["_flatsql_create_test_user"]=wasmExports["Gb"];_flatsql_test_buffer_size=Module["_flatsql_test_buffer_size"]=wasmExports["Hb"];_flatsql_create_test_post=Module["_flatsql_create_test_post"]=wasmExports["Ib"];_flatsql_create_test_mpe=Module["_flatsql_create_test_mpe"]=wasmExports["Jb"];_flatsql_create_test_telemetry=Module["_flatsql_create_test_telemetry"]=wasmExports["Kb"];_flatsql_create_test_publish_event=Module["_flatsql_create_test_publish_event"]=wasmExports["Lb"];_flatsql_get_stats_count=Module["_flatsql_get_stats_count"]=wasmExports["Mb"];_flatsql_get_stat_table_name=Module["_flatsql_get_stat_table_name"]=wasmExports["Nb"];_flatsql_get_stat_file_id=Module["_flatsql_get_stat_file_id"]=wasmExports["Ob"];_flatsql_get_stat_record_count=Module["_flatsql_get_stat_record_count"]=wasmExports["Pb"];_flatsql_reset_ingest_profile=Module["_flatsql_reset_ingest_profile"]=wasmExports["Qb"];_flatsql_get_ingest_profile_record_count=Module["_flatsql_get_ingest_profile_record_count"]=wasmExports["Rb"];_flatsql_get_ingest_profile_byte_count=Module["_flatsql_get_ingest_profile_byte_count"]=wasmExports["Sb"];_flatsql_get_ingest_profile_decode_nanos=Module["_flatsql_get_ingest_profile_decode_nanos"]=wasmExports["Tb"];_flatsql_get_ingest_profile_append_nanos=Module["_flatsql_get_ingest_profile_append_nanos"]=wasmExports["Ub"];_flatsql_get_ingest_profile_index_nanos=Module["_flatsql_get_ingest_profile_index_nanos"]=wasmExports["Vb"];_flatsql_mark_deleted=Module["_flatsql_mark_deleted"]=wasmExports["Wb"];_flatsql_get_deleted_count=Module["_flatsql_get_deleted_count"]=wasmExports["Xb"];_flatsql_clear_tombstones=Module["_flatsql_clear_tombstones"]=wasmExports["Yb"];_flatsql_get_sources_count=Module["_flatsql_get_sources_count"]=wasmExports["Zb"];_flatsql_get_source_name=Module["_flatsql_get_source_name"]=wasmExports["_b"];_flatsql_get_flatbuffer_by_id=Module["_flatsql_get_flatbuffer_by_id"]=wasmExports["$b"];_flatsql_get_flatbuffer_by_email=Module["_flatsql_get_flatbuffer_by_email"]=wasmExports["ac"];_flatsql_get_flatbuffer_by_index=Module["_flatsql_get_flatbuffer_by_index"]=wasmExports["bc"];_flatsql_get_raw_flatbuffer_size=Module["_flatsql_get_raw_flatbuffer_size"]=wasmExports["cc"];_flatsql_get_raw_flatbuffer_sequence=Module["_flatsql_get_raw_flatbuffer_sequence"]=wasmExports["dc"];_flatsql_get_storage_buffer=Module["_flatsql_get_storage_buffer"]=wasmExports["ec"];_flatsql_get_storage_size=Module["_flatsql_get_storage_size"]=wasmExports["fc"];_flatsql_set_encryption_key=Module["_flatsql_set_encryption_key"]=wasmExports["gc"];_flatsql_is_encrypted=Module["_flatsql_is_encrypted"]=wasmExports["hc"];_flatsql_encrypt_buffer=Module["_flatsql_encrypt_buffer"]=wasmExports["ic"];_flatsql_decrypt_buffer=Module["_flatsql_decrypt_buffer"]=wasmExports["jc"];_flatsql_set_hmac_verification=Module["_flatsql_set_hmac_verification"]=wasmExports["kc"];_flatsql_is_hmac_enabled=Module["_flatsql_is_hmac_enabled"]=wasmExports["lc"];_flatsql_compute_hmac=Module["_flatsql_compute_hmac"]=wasmExports["mc"];_flatsql_verify_hmac=Module["_flatsql_verify_hmac"]=wasmExports["nc"];_setThrew=wasmExports["oc"];__emscripten_tempret_set=wasmExports["pc"];__emscripten_stack_restore=wasmExports["qc"];__emscripten_stack_alloc=wasmExports["rc"];_emscripten_stack_get_current=wasmExports["sc"];___cxa_decrement_exception_refcount=wasmExports["tc"];___cxa_increment_exception_refcount=wasmExports["uc"];___cxa_can_catch=wasmExports["vc"];___cxa_get_exception_ptr=wasmExports["wc"];dynCall_v=wasmExports["xc"];dynCall_ii=wasmExports["yc"];dynCall_iii=wasmExports["zc"];dynCall_viiiiii=wasmExports["Ac"];dynCall_vii=wasmExports["Bc"];dynCall_viii=wasmExports["Cc"];dynCall_iiii=wasmExports["Dc"];dynCall_iiiiii=wasmExports["Ec"];dynCall_vi=wasmExports["Fc"];dynCall_viiii=wasmExports["Gc"];dynCall_jii=wasmExports["Hc"];dynCall_viiiii=wasmExports["Ic"];dynCall_iiiiiii=wasmExports["Jc"];dynCall_iiiii=wasmExports["Kc"];dynCall_iiij=wasmExports["Lc"];dynCall_iiid=wasmExports["Mc"];dynCall_viijij=wasmExports["Nc"];dynCall_viiijj=wasmExports["Oc"];dynCall_jiiiii=wasmExports["Pc"];dynCall_viiiiiiiiii=wasmExports["Qc"];dynCall_vij=wasmExports["Rc"];dynCall_iiji=wasmExports["Sc"];dynCall_iijiii=wasmExports["Tc"];dynCall_viij=wasmExports["Uc"];dynCall_iid=wasmExports["Vc"];dynCall_i=wasmExports["Wc"];dynCall_dii=wasmExports["Xc"];dynCall_di=wasmExports["Yc"];dynCall_viidi=wasmExports["Zc"];dynCall_vid=wasmExports["_c"];dynCall_vidd=wasmExports["dynCall_vidd"];dynCall_dd=wasmExports["dynCall_dd"];dynCall_ddd=wasmExports["dynCall_ddd"];dynCall_jiiii=wasmExports["$c"];dynCall_viiiiiiii=wasmExports["ad"];dynCall_iiiddddddddi=wasmExports["bd"];dynCall_iijj=wasmExports["dynCall_iijj"];dynCall_iiiij=wasmExports["dynCall_iiiij"];dynCall_iij=wasmExports["dynCall_iij"];dynCall_iijii=wasmExports["dynCall_iijii"];dynCall_iidiiii=wasmExports["dynCall_iidiiii"];dynCall_j=wasmExports["cd"];dynCall_iiiiid=wasmExports["dd"];dynCall_viijii=wasmExports["dynCall_viijii"];dynCall_iiiiiiii=wasmExports["ed"];dynCall_iiiiiiiiiii=wasmExports["dynCall_iiiiiiiiiii"];dynCall_iiiiiiiiiiiii=wasmExports["dynCall_iiiiiiiiiiiii"];dynCall_fiii=wasmExports["fd"];dynCall_diii=wasmExports["gd"];dynCall_viiiiiii=wasmExports["hd"];dynCall_iiiiiiiiiiii=wasmExports["id"];dynCall_viiiiiiiiiiiiiii=wasmExports["jd"];dynCall_iiiiiiiii=wasmExports["dynCall_iiiiiiiii"];dynCall_iiiiij=wasmExports["dynCall_iiiiij"];dynCall_iiiiijj=wasmExports["dynCall_iiiiijj"];dynCall_iiiiiijj=wasmExports["dynCall_iiiiiijj"];memory=wasmMemory=wasmExports["Da"];__indirect_function_table=wasmTable=wasmExports["Fa"]}var wasmImports={l:___cxa_begin_catch,q:___cxa_end_catch,a:___cxa_find_matching_catch_2,g:___cxa_find_matching_catch_3,F:___cxa_find_matching_catch_4,R:___cxa_rethrow,n:___cxa_throw,X:___cxa_uncaught_exceptions,d:___resumeException,va:___syscall_chmod,xa:___syscall_faccessat,wa:___syscall_fchmod,ua:___syscall_fchown32,x:___syscall_fcntl64,ta:___syscall_fstat64,oa:___syscall_ftruncate64,na:___syscall_getcwd,qa:___syscall_lstat64,ja:___syscall_mkdirat,ra:___syscall_newfstatat,fa:___syscall_openat,da:___syscall_readlinkat,ca:___syscall_rmdir,sa:___syscall_stat64,aa:___syscall_unlinkat,$:___syscall_utimensat,V:__abort_js,ha:__localtime_js,ia:__tzset_js,ga:_clock_time_get,O:_emscripten_date_now,N:_emscripten_get_now,Z:_emscripten_resize_heap,la:_environ_get,ma:_environ_sizes_get,P:_fd_close,_:_fd_fdstat_get,ea:_fd_read,ka:_fd_seek,pa:_fd_sync,ba:_fd_write,w:invoke_di,H:invoke_dii,G:invoke_diii,L:invoke_fiii,t:invoke_i,c:invoke_ii,I:invoke_iid,e:invoke_iii,E:invoke_iiid,ya:invoke_iiiddddddddi,i:invoke_iiii,m:invoke_iiiii,W:invoke_iiiiid,o:invoke_iiiiii,s:invoke_iiiiiii,M:invoke_iiiiiiii,C:invoke_iiiiiiiiiiii,Ca:invoke_iiij,z:invoke_iiji,Aa:invoke_iijiii,Y:invoke_j,J:invoke_jii,A:invoke_jiiii,S:invoke_jiiiii,f:invoke_v,k:invoke_vi,D:invoke_vid,b:invoke_vii,Q:invoke_viidi,h:invoke_viii,j:invoke_viiii,u:invoke_viiiii,r:invoke_viiiiii,v:invoke_viiiiiii,za:invoke_viiiiiiii,y:invoke_viiiiiiiiii,B:invoke_viiiiiiiiiiiiiii,T:invoke_viiijj,U:invoke_viij,Ba:invoke_viijij,K:invoke_vij,p:_llvm_eh_typeid_for};function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2){var sp=stackSave();try{dynCall_vij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viijij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viij(index,a1,a2,a3){var sp=stackSave();try{dynCall_viij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iijiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viidi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiddddddddi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiddddddddi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;wasmExports["Ha"]=makeWrapper_pp(wasmExports["Ha"]);wasmExports["rc"]=makeWrapper_pp(wasmExports["rc"]);wasmExports["sc"]=makeWrapper_p(wasmExports["sc"]);wasmExports["wc"]=makeWrapper_pp(wasmExports["wc"]);return wasmExports}function run(){preRun();function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}
1
+ async function FlatSQL(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";if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("module");var require=createRequire(import.meta.url)}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_NODE){var fs=require("fs");if(_scriptName.startsWith("file:")){scriptDirectory=require("path").dirname(require("url").fileURLToPath(_scriptName))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else 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 isFileURI=filename=>filename.startsWith("file://");var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;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);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(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;wasmExports["Na"]()}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("flatsql.wasm")}return new URL("flatsql.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&&!ENVIRONMENT_IS_NODE){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;wasmExports=applySignatureConversions(wasmExports);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}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);var noExitRuntime=true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var exceptionCaught=[];var uncaughtExceptionCount=0;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function ___cxa_begin_catch(ptr){ptr>>>=0;var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);return ___cxa_get_exception_ptr(ptr)}var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>>2>>>0]=type}get_type(){return HEAPU32[this.ptr+4>>>2>>>0]}set_destructor(destructor){HEAPU32[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12>>>0]=caught}get_caught(){return HEAP8[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>>0]=rethrown}get_rethrown(){return HEAP8[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>>2>>>0]}}var setTempRet0=val=>__emscripten_tempret_set(val);var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var caughtType of args){if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};function ___cxa_find_matching_catch_2(){return findMatchingCatch([])}function ___cxa_find_matching_catch_3(arg0){arg0>>>=0;return findMatchingCatch([arg0])}function ___cxa_find_matching_catch_4(arg0,arg1){arg0>>>=0;arg1>>>=0;return findMatchingCatch([arg0,arg1])}var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}___cxa_increment_exception_refcount(ptr);exceptionLast=ptr;throw exceptionLast};function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);___cxa_increment_exception_refcount(ptr);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;function ___resumeException(ptr){ptr>>>=0;if(!exceptionLast){exceptionLast=ptr}throw exceptionLast}function ___syscall_chmod(path,mode){path>>>=0}function ___syscall_faccessat(dirfd,path,amode,flags){path>>>=0}var ___syscall_fchmod=(fd,mode)=>{};var ___syscall_fchown32=(fd,owner,group)=>{};var UTF8Decoder=globalThis.TextDecoder&&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 UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{idx>>>=0;var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):""};var SYSCALLS={varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;return 0}function ___syscall_fstat64(fd,buf){buf>>>=0}function ___syscall_ftruncate64(fd,length){length=bigintToI53Checked(length)}function ___syscall_getcwd(buf,size){buf>>>=0;size>>>=0}function ___syscall_lstat64(path,buf){path>>>=0;buf>>>=0}function ___syscall_mkdirat(dirfd,path,mode){path>>>=0}function ___syscall_newfstatat(dirfd,path,buf,flags){path>>>=0;buf>>>=0}function ___syscall_openat(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs}function ___syscall_readlinkat(dirfd,path,buf,bufsize){path>>>=0;buf>>>=0;bufsize>>>=0}function ___syscall_rmdir(path){path>>>=0}function ___syscall_stat64(path,buf){path>>>=0;buf>>>=0}function ___syscall_unlinkat(dirfd,path,flags){path>>>=0}function ___syscall_utimensat(dirfd,path,times,flags){path>>>=0;times>>>=0}var __abort_js=()=>abort("");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,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);HEAP32[tmPtr>>>2>>>0]=date.getSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getHours();HEAP32[tmPtr+12>>>2>>>0]=date.getDate();HEAP32[tmPtr+16>>>2>>>0]=date.getMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getFullYear()-1900;HEAP32[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>>2>>>0]=yday;HEAP32[tmPtr+36>>>2>>>0]=-(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>>>0]=dst}var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;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++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63;i++}}heap[outIdx>>>0]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;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>>>0]=stdTimezoneOffset*60;HEAP32[daylight>>>2>>>0]=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_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>>3>>>0]=BigInt(nsec);return 0}var getHeapMax=()=>4294901760;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;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};function _environ_get(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}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};function _environ_sizes_get(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0}var _fd_close=fd=>52;function _fd_fdstat_get(fd,pbuf){pbuf>>>=0;var rightsBase=0;var rightsInheriting=0;var flags=0;{var type=2;if(fd==0){rightsBase=2}else if(fd==1||fd==2){rightsBase=64}flags=1}HEAP8[pbuf>>>0]=type;HEAP16[pbuf+2>>>1>>>0]=flags;HEAP64[pbuf+8>>>3>>>0]=BigInt(rightsBase);HEAP64[pbuf+16>>>3>>>0]=BigInt(rightsInheriting);return 0}function _fd_read(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;return 52}function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);newOffset>>>=0;return 70}var _fd_sync=fd=>52;var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};function _fd_write(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j>>>0])}num+=len}HEAPU32[pnum>>>2>>>0]=num;return 0}var flatsqlIoBridge={ERR_GENERIC:-1,ERR_NOENT:-2,ERR_ACCESS:-3,ERR_BADHANDLE:-6,backend:function(){return Module["flatsqlIO"]||null},path:function(ptr,len){return UTF8ToString(ptr,len)}};function _flatsql_io_close(handle){var io=flatsqlIoBridge.backend();if(!io)return flatsqlIoBridge.ERR_ACCESS;try{return io.close(handle)|0}catch(e){return flatsqlIoBridge.ERR_GENERIC}}function _flatsql_io_open(pathPtr,pathLen,flags){var io=flatsqlIoBridge.backend();if(!io)return flatsqlIoBridge.ERR_ACCESS;try{return io.open(flatsqlIoBridge.path(pathPtr,pathLen),flags)|0}catch(e){return flatsqlIoBridge.ERR_GENERIC}}function _flatsql_io_read(handle,dstPtr,len,offset){var io=flatsqlIoBridge.backend();if(!io)return flatsqlIoBridge.ERR_ACCESS;try{return io.read(handle,HEAPU8.subarray(dstPtr>>>0,dstPtr+len>>>0),offset)|0}catch(e){return flatsqlIoBridge.ERR_GENERIC}}function _flatsql_io_size(handle){var io=flatsqlIoBridge.backend();if(!io)return flatsqlIoBridge.ERR_ACCESS;try{return io.size(handle)}catch(e){return flatsqlIoBridge.ERR_GENERIC}}function _flatsql_io_sync(handle){var io=flatsqlIoBridge.backend();if(!io)return flatsqlIoBridge.ERR_ACCESS;try{return io.sync(handle)|0}catch(e){return flatsqlIoBridge.ERR_GENERIC}}function _flatsql_io_truncate(handle,size){var io=flatsqlIoBridge.backend();if(!io)return flatsqlIoBridge.ERR_ACCESS;try{return io.truncate(handle,size)|0}catch(e){return flatsqlIoBridge.ERR_GENERIC}}function _flatsql_io_write(handle,srcPtr,len,offset){var io=flatsqlIoBridge.backend();if(!io)return flatsqlIoBridge.ERR_ACCESS;try{return io.write(handle,HEAPU8.subarray(srcPtr>>>0,srcPtr+len>>>0),offset)|0}catch(e){return flatsqlIoBridge.ERR_GENERIC}}function _llvm_eh_typeid_for(type){type>>>=0;return type}var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer>>>0)};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==="pointer")return ret>>>0;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)};{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];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["ccall"]=ccall;Module["cwrap"]=cwrap;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;var _free,_malloc,_flatsql_create_db,_flatsql_open_db,_flatsql_is_disk_backed,_flatsql_open_state,_flatsql_reindex_all,_flatsql_flush_index,_flatsql_flushed_offset,_flatsql_stream_path,_flatsql_destroy_db,_flatsql_register_file_id,_flatsql_enable_demo_extractors,_flatsql_ingest,_flatsql_ingest_one,_flatsql_register_source,_flatsql_create_unified_views,_flatsql_ingest_with_source,_flatsql_ingest_one_with_source,_flatsql_query,_flatsql_query_params,_flatsql_query_many,_flatsql_batch_result_count,_flatsql_select_batch_result,_flatsql_get_error,_flatsql_build_query_cache_key,_flatsql_build_response_artifact_cache_key,_flatsql_register_query_template,_flatsql_query_template,_flatsql_clear_query_cache,_flatsql_configure_query_cache,_flatsql_query_cache_hits,_flatsql_query_cache_misses,_flatsql_query_cache_size,_flatsql_query_cache_generation,_flatsql_query_cache_max_entries,_flatsql_query_cache_max_rows,_flatsql_result_column_count,_flatsql_result_row_count,_flatsql_result_column_name,_flatsql_result_cell_type,_flatsql_result_cell_number,_flatsql_result_cell_string,_flatsql_result_cell_blob,_flatsql_result_cell_blob_size,_flatsql_export_data,_flatsql_query_raw_flatbuffer_stream,_flatsql_query_sandboxed,_flatsql_response_artifact_data,_flatsql_response_artifact_size,_flatsql_response_artifact_cache_hit,_flatsql_configure_raw_stream_cache,_flatsql_raw_stream_cache_hits,_flatsql_raw_stream_cache_misses,_flatsql_raw_stream_cache_size,_flatsql_raw_stream_cache_total_bytes,_flatsql_response_artifact_row_count,_flatsql_response_artifact_column_count,_flatsql_export_size,_flatsql_load_and_rebuild,_flatsql_reserve_storage,_flatsql_load_from_db,_flatsql_create_test_user,_flatsql_test_buffer_size,_flatsql_create_test_post,_flatsql_create_test_mpe,_flatsql_create_test_telemetry,_flatsql_create_test_publish_event,_flatsql_get_stats_count,_flatsql_get_stat_table_name,_flatsql_get_stat_file_id,_flatsql_get_stat_record_count,_flatsql_reset_ingest_profile,_flatsql_get_ingest_profile_record_count,_flatsql_get_ingest_profile_byte_count,_flatsql_get_ingest_profile_decode_nanos,_flatsql_get_ingest_profile_append_nanos,_flatsql_get_ingest_profile_index_nanos,_flatsql_mark_deleted,_flatsql_get_deleted_count,_flatsql_clear_tombstones,_flatsql_get_sources_count,_flatsql_get_source_name,_flatsql_get_flatbuffer_by_id,_flatsql_get_flatbuffer_by_email,_flatsql_get_flatbuffer_by_index,_flatsql_get_raw_flatbuffer_size,_flatsql_get_raw_flatbuffer_sequence,_flatsql_get_storage_buffer,_flatsql_get_storage_size,_flatsql_set_encryption_key,_flatsql_is_encrypted,_flatsql_encrypt_buffer,_flatsql_decrypt_buffer,_flatsql_set_hmac_verification,_flatsql_is_hmac_enabled,_flatsql_compute_hmac,_flatsql_verify_hmac,_setThrew,__emscripten_tempret_set,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___cxa_decrement_exception_refcount,___cxa_increment_exception_refcount,___cxa_can_catch,___cxa_get_exception_ptr,dynCall_v,dynCall_ii,dynCall_iii,dynCall_viiiiii,dynCall_vii,dynCall_viii,dynCall_iiii,dynCall_iiiiii,dynCall_vi,dynCall_viiii,dynCall_jii,dynCall_viiiii,dynCall_iiiiiii,dynCall_iiiii,dynCall_iiij,dynCall_iiid,dynCall_viijij,dynCall_viiijj,dynCall_jiiiii,dynCall_viiiiiiiiii,dynCall_vij,dynCall_iiji,dynCall_iijiii,dynCall_viij,dynCall_iid,dynCall_i,dynCall_dii,dynCall_di,dynCall_iiiid,dynCall_iij,dynCall_viidi,dynCall_vid,dynCall_vidd,dynCall_dd,dynCall_ddd,dynCall_jiiii,dynCall_viiiiiiii,dynCall_iiiddddddddi,dynCall_iiiij,dynCall_iijj,dynCall_iijii,dynCall_iidiiii,dynCall_j,dynCall_iiiiid,dynCall_viijii,dynCall_iiiiiiii,dynCall_iiiiiiiiiii,dynCall_iiiiiiiiiiiii,dynCall_fiii,dynCall_diii,dynCall_viiiiiii,dynCall_iiiiiiiiiiii,dynCall_viiiiiiiiiiiiiii,dynCall_iiiiiiiii,dynCall_iiiiij,dynCall_iiiiijj,dynCall_iiiiiijj,memory,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_free=Module["_free"]=wasmExports["Pa"];_malloc=Module["_malloc"]=wasmExports["Qa"];_flatsql_create_db=Module["_flatsql_create_db"]=wasmExports["Ra"];_flatsql_open_db=Module["_flatsql_open_db"]=wasmExports["Sa"];_flatsql_is_disk_backed=Module["_flatsql_is_disk_backed"]=wasmExports["Ta"];_flatsql_open_state=Module["_flatsql_open_state"]=wasmExports["Ua"];_flatsql_reindex_all=Module["_flatsql_reindex_all"]=wasmExports["Va"];_flatsql_flush_index=Module["_flatsql_flush_index"]=wasmExports["Wa"];_flatsql_flushed_offset=Module["_flatsql_flushed_offset"]=wasmExports["Xa"];_flatsql_stream_path=Module["_flatsql_stream_path"]=wasmExports["Ya"];_flatsql_destroy_db=Module["_flatsql_destroy_db"]=wasmExports["Za"];_flatsql_register_file_id=Module["_flatsql_register_file_id"]=wasmExports["_a"];_flatsql_enable_demo_extractors=Module["_flatsql_enable_demo_extractors"]=wasmExports["$a"];_flatsql_ingest=Module["_flatsql_ingest"]=wasmExports["ab"];_flatsql_ingest_one=Module["_flatsql_ingest_one"]=wasmExports["bb"];_flatsql_register_source=Module["_flatsql_register_source"]=wasmExports["cb"];_flatsql_create_unified_views=Module["_flatsql_create_unified_views"]=wasmExports["db"];_flatsql_ingest_with_source=Module["_flatsql_ingest_with_source"]=wasmExports["eb"];_flatsql_ingest_one_with_source=Module["_flatsql_ingest_one_with_source"]=wasmExports["fb"];_flatsql_query=Module["_flatsql_query"]=wasmExports["gb"];_flatsql_query_params=Module["_flatsql_query_params"]=wasmExports["hb"];_flatsql_query_many=Module["_flatsql_query_many"]=wasmExports["ib"];_flatsql_batch_result_count=Module["_flatsql_batch_result_count"]=wasmExports["jb"];_flatsql_select_batch_result=Module["_flatsql_select_batch_result"]=wasmExports["kb"];_flatsql_get_error=Module["_flatsql_get_error"]=wasmExports["lb"];_flatsql_build_query_cache_key=Module["_flatsql_build_query_cache_key"]=wasmExports["mb"];_flatsql_build_response_artifact_cache_key=Module["_flatsql_build_response_artifact_cache_key"]=wasmExports["nb"];_flatsql_register_query_template=Module["_flatsql_register_query_template"]=wasmExports["ob"];_flatsql_query_template=Module["_flatsql_query_template"]=wasmExports["pb"];_flatsql_clear_query_cache=Module["_flatsql_clear_query_cache"]=wasmExports["qb"];_flatsql_configure_query_cache=Module["_flatsql_configure_query_cache"]=wasmExports["rb"];_flatsql_query_cache_hits=Module["_flatsql_query_cache_hits"]=wasmExports["sb"];_flatsql_query_cache_misses=Module["_flatsql_query_cache_misses"]=wasmExports["tb"];_flatsql_query_cache_size=Module["_flatsql_query_cache_size"]=wasmExports["ub"];_flatsql_query_cache_generation=Module["_flatsql_query_cache_generation"]=wasmExports["vb"];_flatsql_query_cache_max_entries=Module["_flatsql_query_cache_max_entries"]=wasmExports["wb"];_flatsql_query_cache_max_rows=Module["_flatsql_query_cache_max_rows"]=wasmExports["xb"];_flatsql_result_column_count=Module["_flatsql_result_column_count"]=wasmExports["yb"];_flatsql_result_row_count=Module["_flatsql_result_row_count"]=wasmExports["zb"];_flatsql_result_column_name=Module["_flatsql_result_column_name"]=wasmExports["Ab"];_flatsql_result_cell_type=Module["_flatsql_result_cell_type"]=wasmExports["Bb"];_flatsql_result_cell_number=Module["_flatsql_result_cell_number"]=wasmExports["Cb"];_flatsql_result_cell_string=Module["_flatsql_result_cell_string"]=wasmExports["Db"];_flatsql_result_cell_blob=Module["_flatsql_result_cell_blob"]=wasmExports["Eb"];_flatsql_result_cell_blob_size=Module["_flatsql_result_cell_blob_size"]=wasmExports["Fb"];_flatsql_export_data=Module["_flatsql_export_data"]=wasmExports["Gb"];_flatsql_query_raw_flatbuffer_stream=Module["_flatsql_query_raw_flatbuffer_stream"]=wasmExports["Hb"];_flatsql_query_sandboxed=Module["_flatsql_query_sandboxed"]=wasmExports["Ib"];_flatsql_response_artifact_data=Module["_flatsql_response_artifact_data"]=wasmExports["Jb"];_flatsql_response_artifact_size=Module["_flatsql_response_artifact_size"]=wasmExports["Kb"];_flatsql_response_artifact_cache_hit=Module["_flatsql_response_artifact_cache_hit"]=wasmExports["Lb"];_flatsql_configure_raw_stream_cache=Module["_flatsql_configure_raw_stream_cache"]=wasmExports["Mb"];_flatsql_raw_stream_cache_hits=Module["_flatsql_raw_stream_cache_hits"]=wasmExports["Nb"];_flatsql_raw_stream_cache_misses=Module["_flatsql_raw_stream_cache_misses"]=wasmExports["Ob"];_flatsql_raw_stream_cache_size=Module["_flatsql_raw_stream_cache_size"]=wasmExports["Pb"];_flatsql_raw_stream_cache_total_bytes=Module["_flatsql_raw_stream_cache_total_bytes"]=wasmExports["Qb"];_flatsql_response_artifact_row_count=Module["_flatsql_response_artifact_row_count"]=wasmExports["Rb"];_flatsql_response_artifact_column_count=Module["_flatsql_response_artifact_column_count"]=wasmExports["Sb"];_flatsql_export_size=Module["_flatsql_export_size"]=wasmExports["Tb"];_flatsql_load_and_rebuild=Module["_flatsql_load_and_rebuild"]=wasmExports["Ub"];_flatsql_reserve_storage=Module["_flatsql_reserve_storage"]=wasmExports["Vb"];_flatsql_load_from_db=Module["_flatsql_load_from_db"]=wasmExports["Wb"];_flatsql_create_test_user=Module["_flatsql_create_test_user"]=wasmExports["Xb"];_flatsql_test_buffer_size=Module["_flatsql_test_buffer_size"]=wasmExports["Yb"];_flatsql_create_test_post=Module["_flatsql_create_test_post"]=wasmExports["Zb"];_flatsql_create_test_mpe=Module["_flatsql_create_test_mpe"]=wasmExports["_b"];_flatsql_create_test_telemetry=Module["_flatsql_create_test_telemetry"]=wasmExports["$b"];_flatsql_create_test_publish_event=Module["_flatsql_create_test_publish_event"]=wasmExports["ac"];_flatsql_get_stats_count=Module["_flatsql_get_stats_count"]=wasmExports["bc"];_flatsql_get_stat_table_name=Module["_flatsql_get_stat_table_name"]=wasmExports["cc"];_flatsql_get_stat_file_id=Module["_flatsql_get_stat_file_id"]=wasmExports["dc"];_flatsql_get_stat_record_count=Module["_flatsql_get_stat_record_count"]=wasmExports["ec"];_flatsql_reset_ingest_profile=Module["_flatsql_reset_ingest_profile"]=wasmExports["fc"];_flatsql_get_ingest_profile_record_count=Module["_flatsql_get_ingest_profile_record_count"]=wasmExports["gc"];_flatsql_get_ingest_profile_byte_count=Module["_flatsql_get_ingest_profile_byte_count"]=wasmExports["hc"];_flatsql_get_ingest_profile_decode_nanos=Module["_flatsql_get_ingest_profile_decode_nanos"]=wasmExports["ic"];_flatsql_get_ingest_profile_append_nanos=Module["_flatsql_get_ingest_profile_append_nanos"]=wasmExports["jc"];_flatsql_get_ingest_profile_index_nanos=Module["_flatsql_get_ingest_profile_index_nanos"]=wasmExports["kc"];_flatsql_mark_deleted=Module["_flatsql_mark_deleted"]=wasmExports["lc"];_flatsql_get_deleted_count=Module["_flatsql_get_deleted_count"]=wasmExports["mc"];_flatsql_clear_tombstones=Module["_flatsql_clear_tombstones"]=wasmExports["nc"];_flatsql_get_sources_count=Module["_flatsql_get_sources_count"]=wasmExports["oc"];_flatsql_get_source_name=Module["_flatsql_get_source_name"]=wasmExports["pc"];_flatsql_get_flatbuffer_by_id=Module["_flatsql_get_flatbuffer_by_id"]=wasmExports["qc"];_flatsql_get_flatbuffer_by_email=Module["_flatsql_get_flatbuffer_by_email"]=wasmExports["rc"];_flatsql_get_flatbuffer_by_index=Module["_flatsql_get_flatbuffer_by_index"]=wasmExports["sc"];_flatsql_get_raw_flatbuffer_size=Module["_flatsql_get_raw_flatbuffer_size"]=wasmExports["tc"];_flatsql_get_raw_flatbuffer_sequence=Module["_flatsql_get_raw_flatbuffer_sequence"]=wasmExports["uc"];_flatsql_get_storage_buffer=Module["_flatsql_get_storage_buffer"]=wasmExports["vc"];_flatsql_get_storage_size=Module["_flatsql_get_storage_size"]=wasmExports["wc"];_flatsql_set_encryption_key=Module["_flatsql_set_encryption_key"]=wasmExports["xc"];_flatsql_is_encrypted=Module["_flatsql_is_encrypted"]=wasmExports["yc"];_flatsql_encrypt_buffer=Module["_flatsql_encrypt_buffer"]=wasmExports["zc"];_flatsql_decrypt_buffer=Module["_flatsql_decrypt_buffer"]=wasmExports["Ac"];_flatsql_set_hmac_verification=Module["_flatsql_set_hmac_verification"]=wasmExports["Bc"];_flatsql_is_hmac_enabled=Module["_flatsql_is_hmac_enabled"]=wasmExports["Cc"];_flatsql_compute_hmac=Module["_flatsql_compute_hmac"]=wasmExports["Dc"];_flatsql_verify_hmac=Module["_flatsql_verify_hmac"]=wasmExports["Ec"];_setThrew=wasmExports["Fc"];__emscripten_tempret_set=wasmExports["Gc"];__emscripten_stack_restore=wasmExports["Hc"];__emscripten_stack_alloc=wasmExports["Ic"];_emscripten_stack_get_current=wasmExports["Jc"];___cxa_decrement_exception_refcount=wasmExports["Kc"];___cxa_increment_exception_refcount=wasmExports["Lc"];___cxa_can_catch=wasmExports["Mc"];___cxa_get_exception_ptr=wasmExports["Nc"];dynCall_v=wasmExports["Oc"];dynCall_ii=wasmExports["Pc"];dynCall_iii=wasmExports["Qc"];dynCall_viiiiii=wasmExports["Rc"];dynCall_vii=wasmExports["Sc"];dynCall_viii=wasmExports["Tc"];dynCall_iiii=wasmExports["Uc"];dynCall_iiiiii=wasmExports["Vc"];dynCall_vi=wasmExports["Wc"];dynCall_viiii=wasmExports["Xc"];dynCall_jii=wasmExports["Yc"];dynCall_viiiii=wasmExports["Zc"];dynCall_iiiiiii=wasmExports["_c"];dynCall_iiiii=wasmExports["$c"];dynCall_iiij=wasmExports["ad"];dynCall_iiid=wasmExports["bd"];dynCall_viijij=wasmExports["cd"];dynCall_viiijj=wasmExports["dd"];dynCall_jiiiii=wasmExports["ed"];dynCall_viiiiiiiiii=wasmExports["fd"];dynCall_vij=wasmExports["gd"];dynCall_iiji=wasmExports["hd"];dynCall_iijiii=wasmExports["id"];dynCall_viij=wasmExports["jd"];dynCall_iid=wasmExports["kd"];dynCall_i=wasmExports["ld"];dynCall_dii=wasmExports["md"];dynCall_di=wasmExports["nd"];dynCall_iiiid=wasmExports["od"];dynCall_iij=wasmExports["pd"];dynCall_viidi=wasmExports["qd"];dynCall_vid=wasmExports["rd"];dynCall_vidd=wasmExports["dynCall_vidd"];dynCall_dd=wasmExports["dynCall_dd"];dynCall_ddd=wasmExports["dynCall_ddd"];dynCall_jiiii=wasmExports["sd"];dynCall_viiiiiiii=wasmExports["td"];dynCall_iiiddddddddi=wasmExports["ud"];dynCall_iiiij=wasmExports["dynCall_iiiij"];dynCall_iijj=wasmExports["dynCall_iijj"];dynCall_iijii=wasmExports["dynCall_iijii"];dynCall_iidiiii=wasmExports["dynCall_iidiiii"];dynCall_j=wasmExports["vd"];dynCall_iiiiid=wasmExports["wd"];dynCall_viijii=wasmExports["dynCall_viijii"];dynCall_iiiiiiii=wasmExports["xd"];dynCall_iiiiiiiiiii=wasmExports["dynCall_iiiiiiiiiii"];dynCall_iiiiiiiiiiiii=wasmExports["dynCall_iiiiiiiiiiiii"];dynCall_fiii=wasmExports["yd"];dynCall_diii=wasmExports["zd"];dynCall_viiiiiii=wasmExports["Ad"];dynCall_iiiiiiiiiiii=wasmExports["Bd"];dynCall_viiiiiiiiiiiiiii=wasmExports["Cd"];dynCall_iiiiiiiii=wasmExports["dynCall_iiiiiiiii"];dynCall_iiiiij=wasmExports["dynCall_iiiiij"];dynCall_iiiiijj=wasmExports["dynCall_iiiiijj"];dynCall_iiiiiijj=wasmExports["dynCall_iiiiiijj"];memory=wasmMemory=wasmExports["Ma"];__indirect_function_table=wasmTable=wasmExports["Oa"]}var wasmImports={k:___cxa_begin_catch,q:___cxa_end_catch,a:___cxa_find_matching_catch_2,d:___cxa_find_matching_catch_3,u:___cxa_find_matching_catch_4,Y:___cxa_rethrow,o:___cxa_throw,ca:___cxa_uncaught_exceptions,e:___resumeException,Ca:___syscall_chmod,Ea:___syscall_faccessat,Da:___syscall_fchmod,Ba:___syscall_fchown32,y:___syscall_fcntl64,Aa:___syscall_fstat64,va:___syscall_ftruncate64,ua:___syscall_getcwd,xa:___syscall_lstat64,qa:___syscall_mkdirat,ya:___syscall_newfstatat,ma:___syscall_openat,ka:___syscall_readlinkat,ja:___syscall_rmdir,za:___syscall_stat64,ha:___syscall_unlinkat,ga:___syscall_utimensat,aa:__abort_js,oa:__localtime_js,pa:__tzset_js,na:_clock_time_get,P:_emscripten_date_now,O:_emscripten_get_now,ea:_emscripten_resize_heap,sa:_environ_get,ta:_environ_sizes_get,Q:_fd_close,fa:_fd_fdstat_get,la:_fd_read,ra:_fd_seek,wa:_fd_sync,ia:_fd_write,U:_flatsql_io_close,z:_flatsql_io_open,W:_flatsql_io_read,X:_flatsql_io_size,S:_flatsql_io_sync,Fa:_flatsql_io_truncate,T:_flatsql_io_write,x:invoke_di,H:invoke_dii,K:invoke_diii,M:invoke_fiii,t:invoke_i,c:invoke_ii,L:invoke_iid,g:invoke_iii,I:invoke_iiid,Ga:invoke_iiiddddddddi,h:invoke_iiii,V:invoke_iiiid,n:invoke_iiiii,ba:invoke_iiiiid,m:invoke_iiiiii,s:invoke_iiiiiii,N:invoke_iiiiiiii,F:invoke_iiiiiiiiiiii,La:invoke_iiij,Ia:invoke_iij,C:invoke_iiji,Ja:invoke_iijiii,da:invoke_j,J:invoke_jii,D:invoke_jiiii,Z:invoke_jiiiii,f:invoke_v,l:invoke_vi,G:invoke_vid,b:invoke_vii,R:invoke_viidi,i:invoke_viii,j:invoke_viiii,v:invoke_viiiii,r:invoke_viiiiii,w:invoke_viiiiiii,Ha:invoke_viiiiiiii,A:invoke_viiiiiiiiii,E:invoke_viiiiiiiiiiiiiii,_:invoke_viiijj,$:invoke_viij,Ka:invoke_viijij,B:invoke_vij,p:_llvm_eh_typeid_for};function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2){var sp=stackSave();try{dynCall_vij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viijij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viij(index,a1,a2,a3){var sp=stackSave();try{dynCall_viij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iijiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiid(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiid(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2){var sp=stackSave();try{return dynCall_iij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viidi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiddddddddi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiddddddddi(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;wasmExports["Qa"]=makeWrapper_pp(wasmExports["Qa"]);wasmExports["Ic"]=makeWrapper_pp(wasmExports["Ic"]);wasmExports["Jc"]=makeWrapper_p(wasmExports["Jc"]);wasmExports["Nc"]=makeWrapper_pp(wasmExports["Nc"]);return wasmExports}function run(){preRun();function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}
2
2
  ;return moduleRtn}export default FlatSQL;
package/wasm/flatsql.wasm CHANGED
Binary file
package/wasm/index.d.ts CHANGED
@@ -125,6 +125,20 @@ export interface FlatSQLDatabase {
125
125
  * as a native size-prefixed response stream.
126
126
  */
127
127
  queryRawFlatBufferStream(sql: string, params?: QueryParam[]): Uint8Array;
128
+
129
+ /**
130
+ * Sandboxed public query (gateway loop G.5): one read-only SELECT under
131
+ * the engine authorizer (record tables / shadow tables / unified views
132
+ * only), single statement, statement timeout, row/byte caps (reject, not
133
+ * truncate). mode "stream" returns aligned size-prefixed frames (all
134
+ * cells must be BLOB); mode "json" returns UTF-8 bare-array JSON bytes
135
+ * with column names verbatim. Rejections throw "sandbox: <code>: ...".
136
+ */
137
+ querySandboxed(
138
+ sql: string,
139
+ params?: QueryParam[],
140
+ options?: { mode?: 'stream' | 'json'; maxRows?: number; maxBytes?: number; timeoutMs?: number }
141
+ ): { payload: Uint8Array; rows: number; columns: number };
128
142
  lastRawStreamCacheHit(): boolean;
129
143
  configureRawStreamCache(maxEntries: number, maxTotalBytes: number): void;
130
144
  getRawStreamCacheStats(): {
package/wasm/index.js CHANGED
@@ -144,6 +144,13 @@ async function loadIntegrityFile(basePath = '') {
144
144
  * // Skip integrity check (development only)
145
145
  * const flatsql = await initFlatSQL({ skipIntegrityCheck: true });
146
146
  */
147
+ let ioBackend = null;
148
+
149
+ /** The I/O backend this runtime was initialised with (null when ephemeral). */
150
+ export function getFlatSqlIoBackend() {
151
+ return ioBackend;
152
+ }
153
+
147
154
  export async function initFlatSQL(moduleFactoryOrOptions) {
148
155
  let moduleFactory = FlatSQLModule;
149
156
  let options = {};
@@ -184,6 +191,16 @@ export async function initFlatSQL(moduleFactoryOrOptions) {
184
191
  // Create module configuration
185
192
  const moduleConfig = {};
186
193
 
194
+ // The seven-import host I/O contract (cpp/include/flatsql/flatsql_io.h).
195
+ // cpp/js/flatsql_io_library.js reads this off the Module and translates
196
+ // pointers into typed arrays; everything else about storage lives in the
197
+ // backend. With no backend, disk-backed opens fail closed with an error
198
+ // value — they never quietly succeed against RAM.
199
+ ioBackend = options.io ?? null;
200
+ if (ioBackend) {
201
+ moduleConfig.flatsqlIO = ioBackend;
202
+ }
203
+
187
204
  // If we have an expected hash, use custom WASM instantiation with verification
188
205
  if (expectedIntegrity && !options.skipIntegrityCheck) {
189
206
  moduleConfig.instantiateWasm = async (imports, successCallback) => {
@@ -243,6 +260,13 @@ export async function initFlatSQL(moduleFactoryOrOptions) {
243
260
  api = {
244
261
  // Database lifecycle
245
262
  createDb: Module.cwrap('flatsql_create_db', 'number', ['string', 'string']),
263
+ openDb: Module.cwrap('flatsql_open_db', 'number', ['string', 'string', 'string', 'number']),
264
+ isDiskBacked: Module.cwrap('flatsql_is_disk_backed', 'number', ['number']),
265
+ openState: Module.cwrap('flatsql_open_state', 'number', ['number']),
266
+ reindexAll: Module.cwrap('flatsql_reindex_all', 'number', ['number']),
267
+ flushIndex: Module.cwrap('flatsql_flush_index', 'number', ['number']),
268
+ flushedOffset: Module.cwrap('flatsql_flushed_offset', 'number', ['number']),
269
+ streamPath: Module.cwrap('flatsql_stream_path', 'string', ['number']),
246
270
  destroyDb: Module.cwrap('flatsql_destroy_db', null, ['number']),
247
271
  registerFileId: Module.cwrap('flatsql_register_file_id', null, ['number', 'string', 'string']),
248
272
  enableDemoExtractors: Module.cwrap('flatsql_enable_demo_extractors', null, ['number']),
@@ -289,6 +313,7 @@ export async function initFlatSQL(moduleFactoryOrOptions) {
289
313
  resultCellBlob: Module.cwrap('flatsql_result_cell_blob', 'number', ['number', 'number']),
290
314
  resultCellBlobSize: Module.cwrap('flatsql_result_cell_blob_size', 'number', ['number', 'number']),
291
315
  queryRawFlatBufferStream: Module.cwrap('flatsql_query_raw_flatbuffer_stream', 'number', ['number', 'string', 'number', 'number', 'number']),
316
+ querySandboxed: Module.cwrap('flatsql_query_sandboxed', 'number', ['number', 'string', 'number', 'number', 'number', 'number', 'number', 'number', 'number']),
292
317
  responseArtifactData: Module.cwrap('flatsql_response_artifact_data', 'number', []),
293
318
  responseArtifactSize: Module.cwrap('flatsql_response_artifact_size', 'number', []),
294
319
  responseArtifactRowCount: Module.cwrap('flatsql_response_artifact_row_count', 'number', []),
@@ -549,6 +574,30 @@ export class FlatSQL {
549
574
  return new FlatSQLDatabase(handle);
550
575
  }
551
576
 
577
+ /**
578
+ * Disk-backed open through the I/O backend passed to initFlatSQL.
579
+ *
580
+ * `path` is a name in the BACKEND's namespace — a real path under a WASI
581
+ * preopen on the server, a key prefix in a browser store. The module never
582
+ * learns which, which is what makes one artifact work in both.
583
+ *
584
+ * journalMode: 0 DELETE, 1 WAL (not available on wasm — no xShmMap in
585
+ * either lane), 2 TRUNCATE (the wasm default, crash-safe under the single
586
+ * writer the one-daemon-per-box law guarantees), 3 MEMORY.
587
+ *
588
+ * Async backends must be hydrated BEFORE this call and flushed after
589
+ * flushIndex(); see wasm/flatsql-io.js.
590
+ */
591
+ openDatabase(schema, dbName = 'default', path = '', journalMode = 2) {
592
+ const handle = api.openDb(schema, dbName, path ?? '', journalMode);
593
+ if (!handle) {
594
+ throw new Error(
595
+ `Failed to open FlatSQL database at "${path}": ${api.getError() || 'unknown error'}`
596
+ );
597
+ }
598
+ return new FlatSQLDatabase(handle);
599
+ }
600
+
552
601
  // Create test FlatBuffers
553
602
  createTestUser(id, name, email, age) {
554
603
  const ptr = api.createTestUser(id, name, email, age);
@@ -659,6 +708,42 @@ export class FlatSQLDatabase {
659
708
  this._handle = handle;
660
709
  }
661
710
 
711
+ // ---- Durable state (docs/STORAGE-DURABILITY.md §3.3) ------------------
712
+ // Codes are VALUES, never throws:
713
+ // >=0 record count / OK -1 absent -2 format or schema mismatch
714
+ // -3 corrupt -4 torn pair (stream shorter than the mark)
715
+ // -5 no filesystem
716
+ // Every negative is recoverable with reindexAll(); none means data loss.
717
+
718
+ isDiskBacked() {
719
+ return api.isDiskBacked(this._handle) === 1;
720
+ }
721
+
722
+ /** Boot: verify persisted state, replay only the stream tail. */
723
+ openState() {
724
+ return api.openState(this._handle);
725
+ }
726
+
727
+ /** Full re-derivation from the stream. Always available. */
728
+ reindexAll() {
729
+ return api.reindexAll(this._handle);
730
+ }
731
+
732
+ /** Append new stream bytes, sync, then commit the index + high-water mark. */
733
+ flushIndex() {
734
+ return api.flushIndex(this._handle);
735
+ }
736
+
737
+ /** High-water mark a host may resume its own journal from. */
738
+ flushedOffset() {
739
+ return api.flushedOffset(this._handle);
740
+ }
741
+
742
+ /** Path of the SDS FlatBuffer stream backing this handle. */
743
+ streamPath() {
744
+ return api.streamPath(this._handle);
745
+ }
746
+
662
747
  destroy() {
663
748
  if (this._handle) {
664
749
  api.destroyDb(this._handle);
@@ -830,6 +915,38 @@ export class FlatSQLDatabase {
830
915
  return ptr && size > 0 ? copyHeapBytes(ptr, size) : new Uint8Array();
831
916
  }
832
917
 
918
+ // Sandboxed public query (gateway loop G.5): one read-only SELECT under
919
+ // the engine authorizer (record tables / shadow tables / unified views
920
+ // only), single-statement, statement timeout, row/byte caps. options:
921
+ // { mode: "stream" | "json", maxRows, maxBytes, timeoutMs }. Returns
922
+ // { payload: Uint8Array, rows, columns } — payload is the aligned frame
923
+ // stream (mode "stream") or UTF-8 bare-array JSON bytes (mode "json").
924
+ // Sandbox rejections throw with the engine's "sandbox: <code>: ..." text.
925
+ querySandboxed(sql, params = [], options = {}) {
926
+ const encodedParams = encodeQueryParams(params);
927
+ const mode = options.mode === 'json' ? 1 : 0;
928
+ const maxRows = options.maxRows > 0 ? options.maxRows : 0;
929
+ const maxBytes = options.maxBytes > 0 ? options.maxBytes : 0;
930
+ const timeoutMs = options.timeoutMs > 0 ? options.timeoutMs : 0;
931
+ const success = encodedParams.length === 0
932
+ ? api.querySandboxed(this._handle, sql, 0, 0, 0, mode, maxRows, maxBytes, timeoutMs)
933
+ : withHeapBytes(
934
+ encodedParams,
935
+ (ptr) => api.querySandboxed(this._handle, sql, ptr, encodedParams.length, params.length, mode, maxRows, maxBytes, timeoutMs)
936
+ );
937
+ if (!success) {
938
+ throw new Error(api.getError());
939
+ }
940
+
941
+ const ptr = api.responseArtifactData();
942
+ const size = api.responseArtifactSize();
943
+ return {
944
+ payload: ptr && size > 0 ? copyHeapBytes(ptr, size) : new Uint8Array(),
945
+ rows: api.responseArtifactRowCount(),
946
+ columns: api.responseArtifactColumnCount(),
947
+ };
948
+ }
949
+
833
950
  // True when the last queryRawFlatBufferStream call was served from the
834
951
  // engine's response-artifact cache (no SQL re-execution).
835
952
  lastRawStreamCacheHit() {
@@ -77,6 +77,20 @@ export class FlatSQLStandaloneDatabase {
77
77
  query(sql: string, params?: StandaloneQueryParam[]): StandaloneQueryResult;
78
78
  queryMany(queries: Array<{ sql: string; params?: StandaloneQueryParam[] }>): StandaloneQueryResult[];
79
79
  queryRawFlatBufferStream(sql: string, params?: StandaloneQueryParam[]): Uint8Array;
80
+
81
+ /**
82
+ * Sandboxed public query (gateway loop G.5): one read-only SELECT under
83
+ * the engine authorizer (record tables / shadow tables / unified views
84
+ * only), single statement, statement timeout, row/byte caps (reject, not
85
+ * truncate). mode "stream" returns aligned size-prefixed frames (all
86
+ * cells must be BLOB); mode "json" returns UTF-8 bare-array JSON bytes
87
+ * with column names verbatim. Rejections throw "sandbox: <code>: ...".
88
+ */
89
+ querySandboxed(
90
+ sql: string,
91
+ params?: StandaloneQueryParam[],
92
+ options?: { mode?: 'stream' | 'json'; maxRows?: number; maxBytes?: number; timeoutMs?: number }
93
+ ): { payload: Uint8Array; rows: number; columns: number };
80
94
  lastRawStreamCacheHit(): boolean;
81
95
  configureRawStreamCache(maxEntries: number, maxTotalBytes: number): void;
82
96
  getRawStreamCacheStats(): {
@@ -1,3 +1,5 @@
1
+ import { createFlatSqlIoImports, createMemoryBackend } from './flatsql-io.js';
2
+
1
3
  const DEFAULT_STANDALONE_URL = new URL('./flatsql-wasi.wasm', import.meta.url);
2
4
 
3
5
  const PARAM_NULL = 0;
@@ -382,10 +384,25 @@ export async function loadFlatSQLStandalone(options = {}) {
382
384
  const wasmBytes = await loadWasmBytes(options);
383
385
  const state = { memory: null };
384
386
  const imports = makeWasiImports(state, options.wasi ?? options);
387
+
388
+ // The seven-import host I/O contract (cpp/include/flatsql/flatsql_io.h).
389
+ // The module imports these unconditionally, so they are always supplied: with
390
+ // no backend the default is in-memory, which keeps the historical ephemeral
391
+ // behaviour byte-for-byte and never pretends a path is durable.
392
+ const io = options.io ?? createMemoryBackend();
393
+ imports.env = {
394
+ ...createFlatSqlIoImports(io, () => state.memory),
395
+ ...(imports.env ?? {}),
396
+ };
397
+
385
398
  const mergedImports = options.imports
386
399
  ? {
387
400
  ...imports,
388
401
  ...options.imports,
402
+ env: {
403
+ ...imports.env,
404
+ ...(options.imports.env ?? {}),
405
+ },
389
406
  wasi_snapshot_preview1: {
390
407
  ...imports.wasi_snapshot_preview1,
391
408
  ...(options.imports.wasi_snapshot_preview1 ?? {}),
@@ -399,16 +416,45 @@ export async function loadFlatSQLStandalone(options = {}) {
399
416
  instance.exports._initialize();
400
417
  }
401
418
 
402
- return new FlatSQLStandalone(createRuntime(instance.exports), module);
419
+ return new FlatSQLStandalone(createRuntime(instance.exports), module, io);
403
420
  }
404
421
 
405
422
  export const createStandaloneFlatSQL = loadFlatSQLStandalone;
406
423
 
407
424
  export class FlatSQLStandalone {
408
- constructor(runtime, module) {
425
+ constructor(runtime, module, io) {
409
426
  this._runtime = runtime;
410
427
  this.module = module;
411
428
  this.memory = runtime.memory;
429
+ // The I/O backend this instance was wired to. Callers await io.hydrate()
430
+ // before opening a disk-backed database and io.flush() after
431
+ // flushIndex(); on synchronous backends both are no-ops.
432
+ this.io = io ?? null;
433
+ }
434
+
435
+ /**
436
+ * Disk-backed open. `path` is a name in the backend's namespace — a real
437
+ * path under a WASI preopen, a key prefix in a browser store. The module
438
+ * never learns which, and that is the point.
439
+ *
440
+ * journalMode: 0 DELETE, 1 WAL (unavailable on wasm), 2 TRUNCATE, 3 MEMORY.
441
+ * TRUNCATE is the wasm default because WAL needs xShmMap shared memory that
442
+ * neither lane provides (docs/STORAGE-DURABILITY.md §3.5).
443
+ */
444
+ openDatabase(schema, dbName = 'default', path = '', journalMode = 2) {
445
+ const handle = this._runtime.withCString(schema, (schemaPtr) =>
446
+ this._runtime.withCString(dbName, (namePtr) =>
447
+ this._runtime.withCString(path ?? '', (pathPtr) =>
448
+ this._runtime.exports.flatsql_open_db(schemaPtr, namePtr, pathPtr, journalMode)
449
+ )
450
+ )
451
+ );
452
+ if (!handle) {
453
+ const errPtr = this._runtime.exports.flatsql_get_error();
454
+ const message = errPtr ? this._runtime.readCString(errPtr) : 'unknown error';
455
+ throw new Error(`Failed to open FlatSQL database at "${path}": ${message}`);
456
+ }
457
+ return new FlatSQLStandaloneDatabase(this._runtime, handle);
412
458
  }
413
459
 
414
460
  createDatabase(schema, dbName = 'default') {
@@ -533,6 +579,37 @@ export class FlatSQLStandaloneDatabase {
533
579
  }
534
580
  }
535
581
 
582
+ // ---- Durable state (docs/STORAGE-DURABILITY.md §3.3) --------------------
583
+ // Codes are values, never throws:
584
+ // >=0 record count / OK -1 absent -2 format or schema -3 corrupt
585
+ // -4 torn pair -5 no filesystem
586
+ // EVERY negative is recoverable with reindexAll(); none means data loss.
587
+
588
+ isDiskBacked() {
589
+ return this._runtime.exports.flatsql_is_disk_backed(this._handle) === 1;
590
+ }
591
+
592
+ openState() {
593
+ return this._runtime.exports.flatsql_open_state(this._handle);
594
+ }
595
+
596
+ reindexAll() {
597
+ return this._runtime.exports.flatsql_reindex_all(this._handle);
598
+ }
599
+
600
+ flushIndex() {
601
+ return this._runtime.exports.flatsql_flush_index(this._handle);
602
+ }
603
+
604
+ flushedOffset() {
605
+ return this._runtime.exports.flatsql_flushed_offset(this._handle);
606
+ }
607
+
608
+ streamPath() {
609
+ const ptr = this._runtime.exports.flatsql_stream_path(this._handle);
610
+ return ptr ? this._runtime.readCString(ptr) : '';
611
+ }
612
+
536
613
  registerFileId(fileId, tableName) {
537
614
  this._runtime.withCString(fileId, (filePtr) =>
538
615
  this._runtime.withCString(tableName, (tablePtr) =>
@@ -630,6 +707,42 @@ export class FlatSQLStandaloneDatabase {
630
707
  return ptr && size > 0 ? this._runtime.readBytes(ptr, size) : new Uint8Array();
631
708
  }
632
709
 
710
+ // Sandboxed public query (gateway loop G.5): one read-only SELECT under
711
+ // the engine authorizer (record tables / shadow tables / unified views
712
+ // only), single-statement, statement timeout, row/byte caps. options:
713
+ // { mode: "stream" | "json", maxRows, maxBytes, timeoutMs }. Returns
714
+ // { payload: Uint8Array, rows, columns } — payload is the aligned frame
715
+ // stream (mode "stream") or UTF-8 bare-array JSON bytes (mode "json").
716
+ // Sandbox rejections throw with the engine's "sandbox: <code>: ..." text.
717
+ querySandboxed(sql, params = [], options = {}) {
718
+ const paramBytes = encodeQueryParams(params);
719
+ const mode = options.mode === "json" ? 1 : 0;
720
+ const success = this._runtime.withCString(sql, (sqlPtr) =>
721
+ this._runtime.withBytes(paramBytes, (paramPtr) =>
722
+ this._runtime.exports.flatsql_query_sandboxed(
723
+ this._handle,
724
+ sqlPtr,
725
+ paramPtr,
726
+ paramBytes.length,
727
+ params.length,
728
+ mode,
729
+ options.maxRows > 0 ? options.maxRows : 0,
730
+ options.maxBytes > 0 ? options.maxBytes : 0,
731
+ options.timeoutMs > 0 ? options.timeoutMs : 0
732
+ )
733
+ )
734
+ );
735
+ this._runtime.check(success);
736
+
737
+ const ptr = this._runtime.exports.flatsql_response_artifact_data();
738
+ const size = this._runtime.exports.flatsql_response_artifact_size();
739
+ return {
740
+ payload: ptr && size > 0 ? this._runtime.readBytes(ptr, size) : new Uint8Array(),
741
+ rows: this._runtime.exports.flatsql_response_artifact_row_count(),
742
+ columns: this._runtime.exports.flatsql_response_artifact_column_count(),
743
+ };
744
+ }
745
+
633
746
  // True when the last queryRawFlatBufferStream call was served from the
634
747
  // engine's response-artifact cache (no SQL re-execution).
635
748
  lastRawStreamCacheHit() {