swarmlite 0.2.0

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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Roy T. Hashimoto
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,18 @@
1
+ # Vendored: wa-sqlite 1.0.0
2
+
3
+ Source: the `wa-sqlite` npm package, version 1.0.0
4
+ (https://github.com/rhashimoto/wa-sqlite), MIT license (see LICENSE).
5
+
6
+ Vendored subset only:
7
+
8
+ - `dist/wa-sqlite-async.mjs`, `dist/wa-sqlite-async.wasm` — the Asyncify
9
+ build (async VFS methods; no COOP/COEP or SharedArrayBuffer needed).
10
+ - `src/VFS.js`, `src/sqlite-api.js`, `src/sqlite-constants.js` — the JS
11
+ API and VFS base class.
12
+
13
+ Vendored (rather than npm-installed) because swarmlite's demo pages must
14
+ be fully self-contained to be published on Swarm: a strict page has no
15
+ CDN, no registry, only relative URLs under one immutable root.
16
+
17
+ To upgrade: `npm pack wa-sqlite`, extract, copy the same files, update
18
+ the version here, and re-run `node js/test/smoke.mjs`.
@@ -0,0 +1,115 @@
1
+
2
+ var Module = (() => {
3
+ var _scriptDir = import.meta.url;
4
+
5
+ return (
6
+ function(moduleArg = {}) {
7
+
8
+ var f=moduleArg,aa,ba;f.ready=new Promise((a,b)=>{aa=a;ba=b});var ca=Object.assign({},f),da="./this.program",ea=(a,b)=>{throw b;},fa="object"==typeof window,ia="function"==typeof importScripts,p="",ja;
9
+ if(fa||ia)ia?p=self.location.href:"undefined"!=typeof document&&document.currentScript&&(p=document.currentScript.src),_scriptDir&&(p=_scriptDir),0!==p.indexOf("blob:")?p=p.substr(0,p.replace(/[?#].*/,"").lastIndexOf("/")+1):p="",ia&&(ja=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});var ka=f.print||console.log.bind(console),t=f.printErr||console.error.bind(console);Object.assign(f,ca);ca=null;f.thisProgram&&(da=f.thisProgram);
10
+ f.quit&&(ea=f.quit);var la;f.wasmBinary&&(la=f.wasmBinary);var noExitRuntime=f.noExitRuntime||!0;"object"!=typeof WebAssembly&&u("no native wasm support detected");var ma,v=!1,na,w,y,oa,z,B,pa,qa;function ra(){var a=ma.buffer;f.HEAP8=w=new Int8Array(a);f.HEAP16=oa=new Int16Array(a);f.HEAPU8=y=new Uint8Array(a);f.HEAPU16=new Uint16Array(a);f.HEAP32=z=new Int32Array(a);f.HEAPU32=B=new Uint32Array(a);f.HEAPF32=pa=new Float32Array(a);f.HEAPF64=qa=new Float64Array(a)}var sa=[],ta=[],ua=[],va=[],wa=0;
11
+ function xa(){var a=f.preRun.shift();sa.unshift(a)}var C=0,ya=null,za=null;function u(a){if(f.onAbort)f.onAbort(a);a="Aborted("+a+")";t(a);v=!0;na=1;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ba(a);throw a;}function Aa(a){return a.startsWith("data:application/octet-stream;base64,")}var Ba;if(f.locateFile){if(Ba="wa-sqlite-async.wasm",!Aa(Ba)){var Ca=Ba;Ba=f.locateFile?f.locateFile(Ca,p):p+Ca}}else Ba=(new URL("wa-sqlite-async.wasm",import.meta.url)).href;
12
+ function Da(a){if(a==Ba&&la)return new Uint8Array(la);if(ja)return ja(a);throw"both async and sync fetching of the wasm failed";}function Ea(a){return la||!fa&&!ia||"function"!=typeof fetch?Promise.resolve().then(()=>Da(a)):fetch(a,{credentials:"same-origin"}).then(b=>{if(!b.ok)throw"failed to load wasm binary file at '"+a+"'";return b.arrayBuffer()}).catch(()=>Da(a))}
13
+ function Fa(a,b,c){return Ea(a).then(d=>WebAssembly.instantiate(d,b)).then(d=>d).then(c,d=>{t(`failed to asynchronously prepare wasm: ${d}`);u(d)})}function Ga(a,b){var c=Ba;return la||"function"!=typeof WebAssembly.instantiateStreaming||Aa(c)||"function"!=typeof fetch?Fa(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(e){t(`wasm streaming compile failed: ${e}`);t("falling back to ArrayBuffer instantiation");return Fa(c,a,b)}))}var D,F;
14
+ function Ha(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ia=a=>{for(;0<a.length;)a.shift()(f)};function I(a,b="i8"){b.endsWith("*")&&(b="*");switch(b){case "i1":return w[a>>0];case "i8":return w[a>>0];case "i16":return oa[a>>1];case "i32":return z[a>>2];case "i64":u("to do getValue(i64) use WASM_BIGINT");case "float":return pa[a>>2];case "double":return qa[a>>3];case "*":return B[a>>2];default:u(`invalid type for getValue: ${b}`)}}
15
+ function J(a,b,c="i8"){c.endsWith("*")&&(c="*");switch(c){case "i1":w[a>>0]=b;break;case "i8":w[a>>0]=b;break;case "i16":oa[a>>1]=b;break;case "i32":z[a>>2]=b;break;case "i64":u("to do setValue(i64) use WASM_BIGINT");case "float":pa[a>>2]=b;break;case "double":qa[a>>3]=b;break;case "*":B[a>>2]=b;break;default:u(`invalid type for setValue: ${c}`)}}
16
+ var Ja="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,K=(a,b,c)=>{var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.buffer&&Ja)return Ja.decode(a.subarray(b,c));for(d="";b<c;){var e=a[b++];if(e&128){var h=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|h);else{var g=a[b++]&63;e=224==(e&240)?(e&15)<<12|h<<6|g:(e&7)<<18|h<<12|g<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d},
17
+ Ka=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},M=a=>{var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=Ka(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},La=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b},Ma=a=>{if("/"===
18
+ a)return"/";a=M(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)},Na=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>crypto.getRandomValues(a);u("initRandomDevice")},Oa=a=>(Oa=Na())(a);
19
+ function Pa(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:"/";if("string"!=typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=Ka(a.split("/").filter(d=>!!d),!b).join("/");return(b?"/":"")+a||"."}
20
+ var Qa=[],Ra=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},Sa=(a,b,c,d)=>{if(!(0<d))return 0;var e=c;d=c+d-1;for(var h=0;h<a.length;++h){var g=a.charCodeAt(h);if(55296<=g&&57343>=g){var n=a.charCodeAt(++h);g=65536+((g&1023)<<10)|n&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>
21
+ 12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0;return c-e},Ta=[];function Ua(a,b){Ta[a]={input:[],Tb:[],dc:b};Va(a,Wa)}
22
+ var Wa={open(a){var b=Ta[a.node.hc];if(!b)throw new N(43);a.Ub=b;a.seekable=!1},close(a){a.Ub.dc.kc(a.Ub)},kc(a){a.Ub.dc.kc(a.Ub)},read(a,b,c,d){if(!a.Ub||!a.Ub.dc.zc)throw new N(60);for(var e=0,h=0;h<d;h++){try{var g=a.Ub.dc.zc(a.Ub)}catch(n){throw new N(29);}if(void 0===g&&0===e)throw new N(6);if(null===g||void 0===g)break;e++;b[c+h]=g}e&&(a.node.timestamp=Date.now());return e},write(a,b,c,d){if(!a.Ub||!a.Ub.dc.tc)throw new N(60);try{for(var e=0;e<d;e++)a.Ub.dc.tc(a.Ub,b[c+e])}catch(h){throw new N(29);
23
+ }d&&(a.node.timestamp=Date.now());return e}},Xa={zc(){a:{if(!Qa.length){var a=null;"undefined"!=typeof window&&"function"==typeof window.prompt?(a=window.prompt("Input: "),null!==a&&(a+="\n")):"function"==typeof readline&&(a=readline(),null!==a&&(a+="\n"));if(!a){var b=null;break a}b=Array(Ra(a)+1);a=Sa(a,b,0,b.length);b.length=a;Qa=b}b=Qa.shift()}return b},tc(a,b){null===b||10===b?(ka(K(a.Tb,0)),a.Tb=[]):0!=b&&a.Tb.push(b)},kc(a){a.Tb&&0<a.Tb.length&&(ka(K(a.Tb,0)),a.Tb=[])},$c(){return{Wc:25856,
24
+ Yc:5,Vc:191,Xc:35387,Uc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ad(){return 0},bd(){return[24,80]}},Ya={tc(a,b){null===b||10===b?(t(K(a.Tb,0)),a.Tb=[]):0!=b&&a.Tb.push(b)},kc(a){a.Tb&&0<a.Tb.length&&(t(K(a.Tb,0)),a.Tb=[])}};function Za(a,b){var c=a.Pb?a.Pb.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.Pb,a.Pb=new Uint8Array(b),0<a.Rb&&a.Pb.set(c.subarray(0,a.Rb),0))}
25
+ var O={Xb:null,Wb(){return O.createNode(null,"/",16895,0)},createNode(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new N(63);O.Xb||(O.Xb={dir:{node:{Vb:O.Eb.Vb,Sb:O.Eb.Sb,ec:O.Eb.ec,lc:O.Eb.lc,Dc:O.Eb.Dc,qc:O.Eb.qc,oc:O.Eb.oc,Cc:O.Eb.Cc,pc:O.Eb.pc},stream:{ac:O.Ob.ac}},file:{node:{Vb:O.Eb.Vb,Sb:O.Eb.Sb},stream:{ac:O.Ob.ac,read:O.Ob.read,write:O.Ob.write,wc:O.Ob.wc,mc:O.Ob.mc,nc:O.Ob.nc}},link:{node:{Vb:O.Eb.Vb,Sb:O.Eb.Sb,ic:O.Eb.ic},stream:{}},xc:{node:{Vb:O.Eb.Vb,Sb:O.Eb.Sb},stream:$a}});
26
+ c=ab(a,b,c,d);P(c.mode)?(c.Eb=O.Xb.dir.node,c.Ob=O.Xb.dir.stream,c.Pb={}):32768===(c.mode&61440)?(c.Eb=O.Xb.file.node,c.Ob=O.Xb.file.stream,c.Rb=0,c.Pb=null):40960===(c.mode&61440)?(c.Eb=O.Xb.link.node,c.Ob=O.Xb.link.stream):8192===(c.mode&61440)&&(c.Eb=O.Xb.xc.node,c.Ob=O.Xb.xc.stream);c.timestamp=Date.now();a&&(a.Pb[b]=c,a.timestamp=c.timestamp);return c},Zc(a){return a.Pb?a.Pb.subarray?a.Pb.subarray(0,a.Rb):new Uint8Array(a.Pb):new Uint8Array(0)},Eb:{Vb(a){var b={};b.Jc=8192===(a.mode&61440)?a.id:
27
+ 1;b.Ac=a.id;b.mode=a.mode;b.Pc=1;b.uid=0;b.Mc=0;b.hc=a.hc;P(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.Rb:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.Fc=new Date(a.timestamp);b.Oc=new Date(a.timestamp);b.Ic=new Date(a.timestamp);b.Gc=4096;b.Hc=Math.ceil(b.size/b.Gc);return b},Sb(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);if(void 0!==b.size&&(b=b.size,a.Rb!=b))if(0==b)a.Pb=null,a.Rb=0;else{var c=a.Pb;a.Pb=new Uint8Array(b);c&&a.Pb.set(c.subarray(0,
28
+ Math.min(b,a.Rb)));a.Rb=b}},ec(){throw bb[44];},lc(a,b,c,d){return O.createNode(a,b,c,d)},Dc(a,b,c){if(P(a.mode)){try{var d=cb(b,c)}catch(h){}if(d)for(var e in d.Pb)throw new N(55);}delete a.parent.Pb[a.name];a.parent.timestamp=Date.now();a.name=c;b.Pb[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},qc(a,b){delete a.Pb[b];a.timestamp=Date.now()},oc(a,b){var c=cb(a,b),d;for(d in c.Pb)throw new N(55);delete a.Pb[b];a.timestamp=Date.now()},Cc(a){var b=[".",".."],c;for(c in a.Pb)a.Pb.hasOwnProperty(c)&&
29
+ b.push(c);return b},pc(a,b,c){a=O.createNode(a,b,41471,0);a.link=c;return a},ic(a){if(40960!==(a.mode&61440))throw new N(28);return a.link}},Ob:{read(a,b,c,d,e){var h=a.node.Pb;if(e>=a.node.Rb)return 0;a=Math.min(a.node.Rb-e,d);if(8<a&&h.subarray)b.set(h.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=h[e+d];return a},write(a,b,c,d,e,h){b.buffer===w.buffer&&(h=!1);if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.Pb||a.Pb.subarray)){if(h)return a.Pb=b.subarray(c,c+d),a.Rb=d;if(0===
30
+ a.Rb&&0===e)return a.Pb=b.slice(c,c+d),a.Rb=d;if(e+d<=a.Rb)return a.Pb.set(b.subarray(c,c+d),e),d}Za(a,e+d);if(a.Pb.subarray&&b.subarray)a.Pb.set(b.subarray(c,c+d),e);else for(h=0;h<d;h++)a.Pb[e+h]=b[c+h];a.Rb=Math.max(a.Rb,e+d);return d},ac(a,b,c){1===c?b+=a.position:2===c&&32768===(a.node.mode&61440)&&(b+=a.node.Rb);if(0>b)throw new N(28);return b},wc(a,b,c){Za(a.node,b+c);a.node.Rb=Math.max(a.node.Rb,b+c)},mc(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new N(43);a=a.node.Pb;if(e&2||a.buffer!==
31
+ w.buffer){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,c,c+b);c=!0;b=65536*Math.ceil(b/65536);(e=db(65536,b))?(y.fill(0,e,e+b),b=e):b=0;if(!b)throw new N(48);w.set(a,b)}else c=!1,b=a.byteOffset;return{Qc:b,Ec:c}},nc(a,b,c,d){O.Ob.write(a,b,0,d,c,!1);return 0}}},eb=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},fb=null,gb={},hb=[],ib=1,Q=null,jb=!0,N=null,bb={};
32
+ function R(a,b={}){a=Pa(a);if(!a)return{path:"",node:null};b=Object.assign({yc:!0,uc:0},b);if(8<b.uc)throw new N(32);a=a.split("/").filter(g=>!!g);for(var c=fb,d="/",e=0;e<a.length;e++){var h=e===a.length-1;if(h&&b.parent)break;c=cb(c,a[e]);d=M(d+"/"+a[e]);c.bc&&(!h||h&&b.yc)&&(c=c.bc.root);if(!h||b.$b)for(h=0;40960===(c.mode&61440);)if(c=kb(d),d=Pa(La(d),c),c=R(d,{uc:b.uc+1}).node,40<h++)throw new N(32);}return{path:d,node:c}}
33
+ function lb(a){for(var b;;){if(a===a.parent)return a=a.Wb.Bc,b?"/"!==a[a.length-1]?`${a}/${b}`:a+b:a;b=b?`${a.name}/${b}`:a.name;a=a.parent}}function mb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%Q.length}function nb(a){var b=mb(a.parent.id,a.name);if(Q[b]===a)Q[b]=a.cc;else for(b=Q[b];b;){if(b.cc===a){b.cc=a.cc;break}b=b.cc}}
34
+ function cb(a,b){var c;if(c=(c=ob(a,"x"))?c:a.Eb.ec?0:2)throw new N(c,a);for(c=Q[mb(a.id,b)];c;c=c.cc){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Eb.ec(a,b)}function ab(a,b,c,d){a=new pb(a,b,c,d);b=mb(a.parent.id,a.name);a.cc=Q[b];return Q[b]=a}function P(a){return 16384===(a&61440)}function qb(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b}
35
+ function ob(a,b){if(jb)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0}function rb(a,b){try{return cb(a,b),20}catch(c){}return ob(a,"wx")}function sb(a,b,c){try{var d=cb(a,b)}catch(e){return e.Qb}if(a=ob(a,"wx"))return a;if(c){if(!P(d.mode))return 54;if(d===d.parent||"/"===lb(d))return 10}else if(P(d.mode))return 31;return 0}function tb(){for(var a=0;4096>=a;a++)if(!hb[a])return a;throw new N(33);}
36
+ function S(a){a=hb[a];if(!a)throw new N(8);return a}function ub(a,b=-1){vb||(vb=function(){this.jc={}},vb.prototype={},Object.defineProperties(vb.prototype,{object:{get(){return this.node},set(c){this.node=c}},flags:{get(){return this.jc.flags},set(c){this.jc.flags=c}},position:{get(){return this.jc.position},set(c){this.jc.position=c}}}));a=Object.assign(new vb,a);-1==b&&(b=tb());a.Yb=b;return hb[b]=a}var $a={open(a){a.Ob=gb[a.node.hc].Ob;a.Ob.open&&a.Ob.open(a)},ac(){throw new N(70);}};
37
+ function Va(a,b){gb[a]={Ob:b}}function wb(a,b){var c="/"===b,d=!b;if(c&&fb)throw new N(10);if(!c&&!d){var e=R(b,{yc:!1});b=e.path;e=e.node;if(e.bc)throw new N(10);if(!P(e.mode))throw new N(54);}b={type:a,dd:{},Bc:b,Nc:[]};a=a.Wb(b);a.Wb=b;b.root=a;c?fb=a:e&&(e.bc=b,e.Wb&&e.Wb.Nc.push(b))}function xb(a,b,c){var d=R(a,{parent:!0}).node;a=Ma(a);if(!a||"."===a||".."===a)throw new N(28);var e=rb(d,a);if(e)throw new N(e);if(!d.Eb.lc)throw new N(63);return d.Eb.lc(d,a,b,c)}
38
+ function T(a,b){return xb(a,(void 0!==b?b:511)&1023|16384,0)}function yb(a,b,c){"undefined"==typeof c&&(c=b,b=438);xb(a,b|8192,c)}function zb(a,b){if(!Pa(a))throw new N(44);var c=R(b,{parent:!0}).node;if(!c)throw new N(44);b=Ma(b);var d=rb(c,b);if(d)throw new N(d);if(!c.Eb.pc)throw new N(63);c.Eb.pc(c,b,a)}function Ab(a){var b=R(a,{parent:!0}).node;a=Ma(a);var c=cb(b,a),d=sb(b,a,!0);if(d)throw new N(d);if(!b.Eb.oc)throw new N(63);if(c.bc)throw new N(10);b.Eb.oc(b,a);nb(c)}
39
+ function kb(a){a=R(a).node;if(!a)throw new N(44);if(!a.Eb.ic)throw new N(28);return Pa(lb(a.parent),a.Eb.ic(a))}function Bb(a,b){a=R(a,{$b:!b}).node;if(!a)throw new N(44);if(!a.Eb.Vb)throw new N(63);return a.Eb.Vb(a)}function Cb(a){return Bb(a,!0)}function Db(a,b){a="string"==typeof a?R(a,{$b:!0}).node:a;if(!a.Eb.Sb)throw new N(63);a.Eb.Sb(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})}
40
+ function Eb(a,b){if(0>b)throw new N(28);a="string"==typeof a?R(a,{$b:!0}).node:a;if(!a.Eb.Sb)throw new N(63);if(P(a.mode))throw new N(31);if(32768!==(a.mode&61440))throw new N(28);var c=ob(a,"w");if(c)throw new N(c);a.Eb.Sb(a,{size:b,timestamp:Date.now()})}
41
+ function Fb(a,b,c){if(""===a)throw new N(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?("undefined"==typeof c?438:c)&4095|32768:0;if("object"==typeof a)var e=a;else{a=M(a);try{e=R(a,{$b:!(b&131072)}).node}catch(h){}}d=!1;if(b&64)if(e){if(b&128)throw new N(20);}else e=xb(a,c,0),d=!0;if(!e)throw new N(44);8192===(e.mode&61440)&&(b&=-513);if(b&65536&&!P(e.mode))throw new N(54);if(!d&&(c=
42
+ e?40960===(e.mode&61440)?32:P(e.mode)&&("r"!==qb(b)||b&512)?31:ob(e,qb(b)):44))throw new N(c);b&512&&!d&&Eb(e,0);b&=-131713;e=ub({node:e,path:lb(e),flags:b,seekable:!0,position:0,Ob:e.Ob,Tc:[],error:!1});e.Ob.open&&e.Ob.open(e);!f.logReadFiles||b&1||(Gb||(Gb={}),a in Gb||(Gb[a]=1));return e}function Hb(a,b,c){if(null===a.Yb)throw new N(8);if(!a.seekable||!a.Ob.ac)throw new N(70);if(0!=c&&1!=c&&2!=c)throw new N(28);a.position=a.Ob.ac(a,b,c);a.Tc=[]}
43
+ function Ib(){N||(N=function(a,b){this.name="ErrnoError";this.node=b;this.Rc=function(c){this.Qb=c};this.Rc(a);this.message="FS error"},N.prototype=Error(),N.prototype.constructor=N,[44].forEach(a=>{bb[a]=new N(a);bb[a].stack="<generic error, no stack>"}))}var Jb;
44
+ function Kb(a,b,c){a=M("/dev/"+a);var d=eb(!!b,!!c);Lb||(Lb=64);var e=Lb++<<8|0;Va(e,{open(h){h.seekable=!1},close(){c&&c.buffer&&c.buffer.length&&c(10)},read(h,g,n,k){for(var l=0,q=0;q<k;q++){try{var m=b()}catch(r){throw new N(29);}if(void 0===m&&0===l)throw new N(6);if(null===m||void 0===m)break;l++;g[n+q]=m}l&&(h.node.timestamp=Date.now());return l},write(h,g,n,k){for(var l=0;l<k;l++)try{c(g[n+l])}catch(q){throw new N(29);}k&&(h.node.timestamp=Date.now());return l}});yb(a,d,e)}var Lb,U={},vb,Gb;
45
+ function Mb(a,b,c){if("/"===b.charAt(0))return b;a=-100===a?"/":S(a).path;if(0==b.length){if(!c)throw new N(44);return a}return M(a+"/"+b)}
46
+ function Nb(a,b,c){try{var d=a(b)}catch(h){if(h&&h.node&&M(b)!==M(lb(h.node)))return-54;throw h;}z[c>>2]=d.Jc;z[c+4>>2]=d.mode;B[c+8>>2]=d.Pc;z[c+12>>2]=d.uid;z[c+16>>2]=d.Mc;z[c+20>>2]=d.hc;F=[d.size>>>0,(D=d.size,1<=+Math.abs(D)?0<D?+Math.floor(D/4294967296)>>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];z[c+24>>2]=F[0];z[c+28>>2]=F[1];z[c+32>>2]=4096;z[c+36>>2]=d.Hc;a=d.Fc.getTime();b=d.Oc.getTime();var e=d.Ic.getTime();F=[Math.floor(a/1E3)>>>0,(D=Math.floor(a/1E3),1<=+Math.abs(D)?0<D?+Math.floor(D/
47
+ 4294967296)>>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];z[c+40>>2]=F[0];z[c+44>>2]=F[1];B[c+48>>2]=a%1E3*1E3;F=[Math.floor(b/1E3)>>>0,(D=Math.floor(b/1E3),1<=+Math.abs(D)?0<D?+Math.floor(D/4294967296)>>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];z[c+56>>2]=F[0];z[c+60>>2]=F[1];B[c+64>>2]=b%1E3*1E3;F=[Math.floor(e/1E3)>>>0,(D=Math.floor(e/1E3),1<=+Math.abs(D)?0<D?+Math.floor(D/4294967296)>>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];z[c+72>>2]=F[0];z[c+76>>2]=F[1];B[c+80>>2]=
48
+ e%1E3*1E3;F=[d.Ac>>>0,(D=d.Ac,1<=+Math.abs(D)?0<D?+Math.floor(D/4294967296)>>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];z[c+88>>2]=F[0];z[c+92>>2]=F[1];return 0}var Ob=void 0;function Pb(){var a=z[Ob>>2];Ob+=4;return a}
49
+ var Qb=(a,b)=>b+2097152>>>0<4194305-!!a?(a>>>0)+4294967296*b:NaN,Rb=[0,31,60,91,121,152,182,213,244,274,305,335],Sb=[0,31,59,90,120,151,181,212,243,273,304,334],Ub=a=>{var b=Ra(a)+1,c=Tb(b);c&&Sa(a,y,c,b);return c},Vb={},Xb=()=>{if(!Wb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:da||"./this.program"},b;for(b in Vb)void 0===Vb[b]?delete a[b]:a[b]=Vb[b];
50
+ var c=[];for(b in a)c.push(`${b}=${a[b]}`);Wb=c}return Wb},Wb;function Yb(){}function Zb(){}function $b(){}function ac(){}function bc(){}function cc(){}function dc(){}function ec(){}function fc(){}function gc(){}function hc(){}function ic(){}function jc(){}function kc(){}function lc(){}function mc(){}function nc(){}function oc(){}function pc(){}function qc(){}function rc(){}function sc(){}function tc(){}function uc(){}function vc(){}function wc(){}function xc(){}function yc(){}function zc(){}
51
+ function Ac(){}function Bc(){}function Cc(){}function Dc(){}function Ec(){}function Fc(){}function Gc(){}function Hc(){}function Ic(){}function Jc(){}function Kc(){}var Lc=a=>{na=a;if(!(noExitRuntime||0<wa)){if(f.onExit)f.onExit(a);v=!0}ea(a,new Ha(a))},Mc=a=>{a instanceof Ha||"unwind"==a||ea(1,a)},Nc=a=>{try{a()}catch(b){u(b)}};
52
+ function Oc(a){var b={},c;for(c in a)(function(d){var e=a[d];b[d]="function"==typeof e?function(){Pc.push(d);try{return e.apply(null,arguments)}finally{v||(Pc.pop()===d||u(),V&&1===X&&0===Pc.length&&(X=0,Nc(Qc),"undefined"!=typeof Fibers&&Fibers.ed()))}}:e})(c);return b}var X=0,V=null,Rc=0,Pc=[],Sc={},Tc={},Uc=0,Vc=null,Wc=[];function Xc(){return new Promise((a,b)=>{Vc={resolve:a,reject:b}})}
53
+ function Yc(){var a=Tb(16396),b=a+12;B[a>>2]=b;B[a+4>>2]=b+16384;b=Pc[0];var c=Sc[b];void 0===c&&(c=Uc++,Sc[b]=c,Tc[c]=b);z[a+8>>2]=c;return a}
54
+ function Zc(a){if(!v){if(0===X){var b=!1,c=!1;a((d=0)=>{if(!v&&(Rc=d,b=!0,c)){X=2;Nc(()=>$c(V));"undefined"!=typeof Browser&&Browser.sc.Lc&&Browser.sc.resume();d=!1;try{var e=(0,Y[Tc[z[V+8>>2]]])()}catch(n){e=n,d=!0}var h=!1;if(!V){var g=Vc;g&&(Vc=null,(d?g.reject:g.resolve)(e),h=!0)}if(d&&!h)throw e;}});c=!0;b||(X=1,V=Yc(),"undefined"!=typeof Browser&&Browser.sc.Lc&&Browser.sc.pause(),Nc(()=>ad(V)))}else 2===X?(X=0,Nc(bd),cd(V),V=null,Wc.forEach(d=>{if(!v)try{if(d(),!(noExitRuntime||0<wa))try{na=
55
+ d=na,Lc(d)}catch(e){Mc(e)}}catch(e){Mc(e)}})):u(`invalid state: ${X}`);return Rc}}function dd(a){return Zc(b=>{a().then(b)})}
56
+ var ed={},Z=(a,b,c,d,e)=>{function h(m){--wa;0!==k&&fd(k);return"string"===b?m?K(y,m):"":"boolean"===b?!!m:m}var g={string:m=>{var r=0;if(null!==m&&void 0!==m&&0!==m){r=Ra(m)+1;var x=gd(r);Sa(m,y,x,r);r=x}return r},array:m=>{var r=gd(m.length);w.set(m,r);return r}};a=f["_"+a];var n=[],k=0;if(d)for(var l=0;l<d.length;l++){var q=g[c[l]];q?(0===k&&(k=hd()),n[l]=q(d[l])):n[l]=d[l]}c=V;d=a.apply(null,n);e=e&&e.async;wa+=1;if(V!=c)return Xc().then(h);d=h(d);return e?Promise.resolve(d):d};
57
+ function pb(a,b,c,d){a||(a=this);this.parent=a;this.Wb=a.Wb;this.bc=null;this.id=ib++;this.name=b;this.mode=c;this.Eb={};this.Ob={};this.hc=d}Object.defineProperties(pb.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}}});Ib();Q=Array(4096);wb(O,"/");T("/tmp");T("/home");T("/home/web_user");
58
+ (function(){T("/dev");Va(259,{read:()=>0,write:(d,e,h,g)=>g});yb("/dev/null",259);Ua(1280,Xa);Ua(1536,Ya);yb("/dev/tty",1280);yb("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(b=Oa(a).byteLength);return a[--b]};Kb("random",c);Kb("urandom",c);T("/dev/shm");T("/dev/shm/tmp")})();
59
+ (function(){T("/proc");var a=T("/proc/self");T("/proc/self/fd");wb({Wb(){var b=ab(a,"fd",16895,73);b.Eb={ec(c,d){var e=S(+d);c={parent:null,Wb:{Bc:"fake"},Eb:{ic:()=>e.path}};return c.parent=c}};return b}},"/proc/self/fd")})();
60
+ (function(){const a=new Map;f.setAuthorizer=function(b,c,d){c?a.set(b,{f:c,vc:d}):a.delete(b);return Z("set_authorizer","number",["number"],[b])};Yb=function(b,c,d,e,h,g){if(a.has(b)){const {f:n,vc:k}=a.get(b);return n(k,c,d?d?K(y,d):"":null,e?e?K(y,e):"":null,h?h?K(y,h):"":null,g?g?K(y,g):"":null)}return 0}})();
61
+ (function(){function a(d,e){const h=[];for(let g=0;0!=d[e+g];++g){if(1E3<g)throw Error("C-string never terminated after 1k characters");h.push(d[e+g])}return String.fromCharCode(...h)}const b=new Map,c=new Map;f.createFunction=function(d,e,h,g,n,k){const l=b.size;b.set(l,{f:k,Zb:n});return Z("create_function","number","number string number number number number".split(" "),[d,e,h,g,l,0])};f.createAggregate=function(d,e,h,g,n,k,l){const q=b.size;b.set(q,{step:k,Kc:l,Zb:n});return Z("create_function",
62
+ "number","number string number number number number".split(" "),[d,e,h,g,q,1])};f.getFunctionUserData=function(d){return c.get(d)};f.updateHook=function(d,e){const h=b.size;b.set(h,e);return Z("update_hook","void",["number","number"],[d,h])};$b=function(d,e,h,g){d=b.get(d);c.set(e,d.Zb);d.f(e,new Uint32Array(y.buffer,g,h));c.delete(e)};bc=function(d,e,h,g){d=b.get(d);c.set(e,d.Zb);d.step(e,new Uint32Array(y.buffer,g,h));c.delete(e)};Zb=function(d,e){d=b.get(d);c.set(e,d.Zb);d.Kc(e);c.delete(e)};cc=
63
+ function(d,e,h,g,n,k){d=b.get(d);const l=y;n=BigInt(k)<<32n|BigInt(n)&4294967295n;d(e,a(l,h),a(l,g),n)}})();(function(){const a=new Map;f.progressHandler=function(b,c,d,e){d?a.set(b,{f:d,vc:e}):a.delete(b);return Z("progress_handler",null,["number","number"],[b,c])};ac=function(b){if(a.has(b)){const {f:c,vc:d}=a.get(b);return c(d)}return 0}})();
64
+ (function(){function a(k,l){const q=`get${k}`,m=`set${k}`;return new Proxy(new DataView(y.buffer,l,"Int32"===k?4:8),{get(r,x){if(x===q)return function(A,G){if(!G)throw Error("must be little endian");return r[x](A,G)};if(x===m)return function(A,G,E){if(!E)throw Error("must be little endian");return r[x](A,G,E)};if("string"===typeof x&&x.match(/^(get)|(set)/))throw Error("invalid type");return r[x]}})}const b="object"===typeof ed,c=new Map,d=new Map,e=new Map,h=b?new Set:null,g=b?new Set:null,n=new Map;
65
+ tc=function(k,l,q,m){n.set(k?K(y,k):"",{size:l,fc:Array.from(new Uint32Array(y.buffer,m,q))})};f.createModule=function(k,l,q,m){b&&(q.handleAsync=dd);const r=c.size;c.set(r,{module:q,Zb:m});m=0;q.xCreate&&(m|=1);q.xConnect&&(m|=2);q.xBestIndex&&(m|=4);q.xDisconnect&&(m|=8);q.xDestroy&&(m|=16);q.xOpen&&(m|=32);q.xClose&&(m|=64);q.xFilter&&(m|=128);q.xNext&&(m|=256);q.xEof&&(m|=512);q.xColumn&&(m|=1024);q.xRowid&&(m|=2048);q.xUpdate&&(m|=4096);q.xBegin&&(m|=8192);q.xSync&&(m|=16384);q.xCommit&&(m|=
66
+ 32768);q.xRollback&&(m|=65536);q.xFindFunction&&(m|=131072);q.xRename&&(m|=262144);return Z("create_module","number",["number","string","number","number"],[k,l,r,m])};jc=function(k,l,q,m,r,x){l=c.get(l);d.set(r,l);if(b){h.delete(r);for(const A of h)d.delete(A)}m=Array.from(new Uint32Array(y.buffer,m,q)).map(A=>A?K(y,A):"");return l.module.xCreate(k,l.Zb,m,r,a("Int32",x))};ic=function(k,l,q,m,r,x){l=c.get(l);d.set(r,l);if(b){h.delete(r);for(const A of h)d.delete(A)}m=Array.from(new Uint32Array(y.buffer,
67
+ m,q)).map(A=>A?K(y,A):"");return l.module.xConnect(k,l.Zb,m,r,a("Int32",x))};ec=function(k,l){var q=d.get(k),m=n.get("sqlite3_index_info").fc;const r={};r.nConstraint=I(l+m[0],"i32");r.aConstraint=[];var x=I(l+m[1],"*"),A=n.get("sqlite3_index_constraint").size;for(var G=0;G<r.nConstraint;++G){var E=r.aConstraint,L=E.push,H=x+G*A,ha=n.get("sqlite3_index_constraint").fc,W={};W.iColumn=I(H+ha[0],"i32");W.op=I(H+ha[1],"i8");W.usable=!!I(H+ha[2],"i8");L.call(E,W)}r.nOrderBy=I(l+m[2],"i32");r.aOrderBy=
68
+ [];x=I(l+m[3],"*");A=n.get("sqlite3_index_orderby").size;for(G=0;G<r.nOrderBy;++G)E=r.aOrderBy,L=E.push,H=x+G*A,ha=n.get("sqlite3_index_orderby").fc,W={},W.iColumn=I(H+ha[0],"i32"),W.desc=!!I(H+ha[1],"i8"),L.call(E,W);r.aConstraintUsage=[];for(x=0;x<r.nConstraint;++x)r.aConstraintUsage.push({argvIndex:0,omit:!1});r.idxNum=I(l+m[5],"i32");r.idxStr=null;r.orderByConsumed=!!I(l+m[8],"i8");r.estimatedCost=I(l+m[9],"double");r.estimatedRows=I(l+m[10],"i32");r.idxFlags=I(l+m[11],"i32");r.colUsed=I(l+m[12],
69
+ "i32");k=q.module.xBestIndex(k,r);q=n.get("sqlite3_index_info").fc;m=I(l+q[4],"*");x=n.get("sqlite3_index_constraint_usage").size;for(L=0;L<r.nConstraint;++L)A=m+L*x,E=r.aConstraintUsage[L],H=n.get("sqlite3_index_constraint_usage").fc,J(A+H[0],E.argvIndex,"i32"),J(A+H[1],E.omit?1:0,"i8");J(l+q[5],r.idxNum,"i32");"string"===typeof r.idxStr&&(m=Ra(r.idxStr),x=Z("sqlite3_malloc","number",["number"],[m+1]),Sa(r.idxStr,y,x,m+1),J(l+q[6],x,"*"),J(l+q[7],1,"i32"));J(l+q[8],r.orderByConsumed,"i32");J(l+q[9],
70
+ r.estimatedCost,"double");J(l+q[10],r.estimatedRows,"i32");J(l+q[11],r.idxFlags,"i32");return k};lc=function(k){const l=d.get(k);b?h.add(k):d.delete(k);return l.module.xDisconnect(k)};kc=function(k){const l=d.get(k);b?h.add(k):d.delete(k);return l.module.xDestroy(k)};pc=function(k,l){const q=d.get(k);e.set(l,q);if(b){g.delete(l);for(const m of g)e.delete(m)}return q.module.xOpen(k,l)};fc=function(k){const l=e.get(k);b?g.add(k):e.delete(k);return l.module.xClose(k)};mc=function(k){return e.get(k).module.xEof(k)?
71
+ 1:0};nc=function(k,l,q,m,r){const x=e.get(k);q=q?q?K(y,q):"":null;r=new Uint32Array(y.buffer,r,m);return x.module.xFilter(k,l,q,r)};oc=function(k){return e.get(k).module.xNext(k)};gc=function(k,l,q){return e.get(k).module.xColumn(k,l,q)};sc=function(k,l){return e.get(k).module.xRowid(k,a("BigInt64",l))};vc=function(k,l,q,m){const r=d.get(k);q=new Uint32Array(y.buffer,q,l);return r.module.xUpdate(k,q,a("BigInt64",m))};dc=function(k){return d.get(k).module.xBegin(k)};uc=function(k){return d.get(k).module.xSync(k)};
72
+ hc=function(k){return d.get(k).module.xCommit(k)};rc=function(k){return d.get(k).module.xRollback(k)};qc=function(k,l){const q=d.get(k);l=l?K(y,l):"";return q.module.xRename(k,l)}})();
73
+ (function(){function a(g,n){const k=`get${g}`,l=`set${g}`;return new Proxy(new DataView(y.buffer,n,"Int32"===g?4:8),{get(q,m){if(m===k)return function(r,x){if(!x)throw Error("must be little endian");return q[m](r,x)};if(m===l)return function(r,x,A){if(!A)throw Error("must be little endian");return q[m](r,x,A)};if("string"===typeof m&&m.match(/^(get)|(set)/))throw Error("invalid type");return q[m]}})}function b(g){g>>=2;return B[g]+B[g+1]*2**32}const c="object"===typeof ed,d=new Map,e=new Map;f.registerVFS=
74
+ function(g,n){if(Z("sqlite3_vfs_find","number",["string"],[g.name]))throw Error(`VFS '${g.name}' already registered`);c&&(g.handleAsync=dd);var k=g.cd??64;const l=f._malloc(4);n=Z("register_vfs","number",["string","number","number","number"],[g.name,k,n?1:0,l]);n||(k=I(l,"*"),d.set(k,g));f._free(l);return n};const h=c?new Set:null;yc=function(g){const n=e.get(g);c?h.add(g):e.delete(g);return n.xClose(g)};Fc=function(g,n,k,l){return e.get(g).xRead(g,y.subarray(n,n+k),b(l))};Kc=function(g,n,k,l){return e.get(g).xWrite(g,
75
+ y.subarray(n,n+k),b(l))};Ic=function(g,n){return e.get(g).xTruncate(g,b(n))};Hc=function(g,n){return e.get(g).xSync(g,n)};Cc=function(g,n){const k=e.get(g);n=a("BigInt64",n);return k.xFileSize(g,n)};Dc=function(g,n){return e.get(g).xLock(g,n)};Jc=function(g,n){return e.get(g).xUnlock(g,n)};xc=function(g,n){const k=e.get(g);n=a("Int32",n);return k.xCheckReservedLock(g,n)};Bc=function(g,n,k){const l=e.get(g);k=new DataView(y.buffer,k);return l.xFileControl(g,n,k)};Gc=function(g){return e.get(g).xSectorSize(g)};
76
+ Ac=function(g){return e.get(g).xDeviceCharacteristics(g)};Ec=function(g,n,k,l,q){g=d.get(g);e.set(k,g);if(c){h.delete(k);for(var m of h)e.delete(m)}m=null;if(l&64){m=1;const r=[];for(;m;){const x=y[n++];if(x)r.push(x);else switch(y[n]||(m=null),m){case 1:r.push(63);m=2;break;case 2:r.push(61);m=3;break;case 3:r.push(38),m=2}}m=(new TextDecoder).decode(new Uint8Array(r))}else n&&(m=n?K(y,n):"");q=a("Int32",q);return g.xOpen(m,k,l,q)};zc=function(g,n,k){return d.get(g).xDelete(n?K(y,n):"",k)};wc=function(g,
77
+ n,k,l){g=d.get(g);l=a("Int32",l);return g.xAccess(n?K(y,n):"",k,l)}})();
78
+ var kd={a:(a,b,c,d)=>{u(`Assertion failed: ${a?K(y,a):""}, at: `+[b?b?K(y,b):"":"unknown filename",c,d?d?K(y,d):"":"unknown function"])},K:function(a,b){try{return a=a?K(y,a):"",Db(a,b),0}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;return-c.Qb}},M:function(a,b,c){try{b=b?K(y,b):"";b=Mb(a,b);if(c&-8)return-28;var d=R(b,{$b:!0}).node;if(!d)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&ob(d,a)?-2:0}catch(e){if("undefined"==typeof U||"ErrnoError"!==e.name)throw e;
79
+ return-e.Qb}},L:function(a,b){try{var c=S(a);Db(c.node,b);return 0}catch(d){if("undefined"==typeof U||"ErrnoError"!==d.name)throw d;return-d.Qb}},J:function(a){try{var b=S(a).node;var c="string"==typeof b?R(b,{$b:!0}).node:b;if(!c.Eb.Sb)throw new N(63);c.Eb.Sb(c,{timestamp:Date.now()});return 0}catch(d){if("undefined"==typeof U||"ErrnoError"!==d.name)throw d;return-d.Qb}},b:function(a,b,c){Ob=c;try{var d=S(a);switch(b){case 0:var e=Pb();if(0>e)return-28;for(;hb[e];)e++;return ub(d,e).Yb;case 1:case 2:return 0;
80
+ case 3:return d.flags;case 4:return e=Pb(),d.flags|=e,0;case 5:return e=Pb(),oa[e+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return z[jd()>>2]=28,-1;default:return-28}}catch(h){if("undefined"==typeof U||"ErrnoError"!==h.name)throw h;return-h.Qb}},I:function(a,b){try{var c=S(a);return Nb(Bb,c.path,b)}catch(d){if("undefined"==typeof U||"ErrnoError"!==d.name)throw d;return-d.Qb}},n:function(a,b,c){b=Qb(b,c);try{if(isNaN(b))return 61;var d=S(a);if(0===(d.flags&2097155))throw new N(28);
81
+ Eb(d.node,b);return 0}catch(e){if("undefined"==typeof U||"ErrnoError"!==e.name)throw e;return-e.Qb}},C:function(a,b){try{if(0===b)return-28;var c=Ra("/")+1;if(b<c)return-68;Sa("/",y,a,b);return c}catch(d){if("undefined"==typeof U||"ErrnoError"!==d.name)throw d;return-d.Qb}},F:function(a,b){try{return a=a?K(y,a):"",Nb(Cb,a,b)}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;return-c.Qb}},z:function(a,b,c){try{return b=b?K(y,b):"",b=Mb(a,b),b=M(b),"/"===b[b.length-1]&&(b=b.substr(0,
82
+ b.length-1)),T(b,c),0}catch(d){if("undefined"==typeof U||"ErrnoError"!==d.name)throw d;return-d.Qb}},E:function(a,b,c,d){try{b=b?K(y,b):"";var e=d&256;b=Mb(a,b,d&4096);return Nb(e?Cb:Bb,b,c)}catch(h){if("undefined"==typeof U||"ErrnoError"!==h.name)throw h;return-h.Qb}},y:function(a,b,c,d){Ob=d;try{b=b?K(y,b):"";b=Mb(a,b);var e=d?Pb():0;return Fb(b,c,e).Yb}catch(h){if("undefined"==typeof U||"ErrnoError"!==h.name)throw h;return-h.Qb}},v:function(a,b,c,d){try{b=b?K(y,b):"";b=Mb(a,b);if(0>=d)return-28;
83
+ var e=kb(b),h=Math.min(d,Ra(e)),g=w[c+h];Sa(e,y,c,d+1);w[c+h]=g;return h}catch(n){if("undefined"==typeof U||"ErrnoError"!==n.name)throw n;return-n.Qb}},u:function(a){try{return a=a?K(y,a):"",Ab(a),0}catch(b){if("undefined"==typeof U||"ErrnoError"!==b.name)throw b;return-b.Qb}},G:function(a,b){try{return a=a?K(y,a):"",Nb(Bb,a,b)}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;return-c.Qb}},r:function(a,b,c){try{b=b?K(y,b):"";b=Mb(a,b);if(0===c){a=b;var d=R(a,{parent:!0}).node;if(!d)throw new N(44);
84
+ var e=Ma(a),h=cb(d,e),g=sb(d,e,!1);if(g)throw new N(g);if(!d.Eb.qc)throw new N(63);if(h.bc)throw new N(10);d.Eb.qc(d,e);nb(h)}else 512===c?Ab(b):u("Invalid flags passed to unlinkat");return 0}catch(n){if("undefined"==typeof U||"ErrnoError"!==n.name)throw n;return-n.Qb}},q:function(a,b,c){try{b=b?K(y,b):"";b=Mb(a,b,!0);if(c){var d=B[c>>2]+4294967296*z[c+4>>2],e=z[c+8>>2];h=1E3*d+e/1E6;c+=16;d=B[c>>2]+4294967296*z[c+4>>2];e=z[c+8>>2];g=1E3*d+e/1E6}else var h=Date.now(),g=h;a=h;var n=R(b,{$b:!0}).node;
85
+ n.Eb.Sb(n,{timestamp:Math.max(a,g)});return 0}catch(k){if("undefined"==typeof U||"ErrnoError"!==k.name)throw k;return-k.Qb}},k:function(a,b,c){a=new Date(1E3*Qb(a,b));z[c>>2]=a.getSeconds();z[c+4>>2]=a.getMinutes();z[c+8>>2]=a.getHours();z[c+12>>2]=a.getDate();z[c+16>>2]=a.getMonth();z[c+20>>2]=a.getFullYear()-1900;z[c+24>>2]=a.getDay();b=a.getFullYear();z[c+28>>2]=(0!==b%4||0===b%100&&0!==b%400?Sb:Rb)[a.getMonth()]+a.getDate()-1|0;z[c+36>>2]=-(60*a.getTimezoneOffset());b=(new Date(a.getFullYear(),
86
+ 6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();z[c+32>>2]=(b!=d&&a.getTimezoneOffset()==Math.min(d,b))|0},i:function(a,b,c,d,e,h,g,n){e=Qb(e,h);try{if(isNaN(e))return 61;var k=S(d);if(0!==(b&2)&&0===(c&2)&&2!==(k.flags&2097155))throw new N(2);if(1===(k.flags&2097155))throw new N(2);if(!k.Ob.mc)throw new N(43);var l=k.Ob.mc(k,a,e,b,c);var q=l.Qc;z[g>>2]=l.Ec;B[n>>2]=q;return 0}catch(m){if("undefined"==typeof U||"ErrnoError"!==m.name)throw m;return-m.Qb}},j:function(a,
87
+ b,c,d,e,h,g){h=Qb(h,g);try{if(isNaN(h))return 61;var n=S(e);if(c&2){if(32768!==(n.node.mode&61440))throw new N(43);d&2||n.Ob.nc&&n.Ob.nc(n,y.slice(a,a+b),h,b,d)}}catch(k){if("undefined"==typeof U||"ErrnoError"!==k.name)throw k;return-k.Qb}},s:(a,b,c)=>{function d(k){return(k=k.toTimeString().match(/\(([A-Za-z ]+)\)$/))?k[1]:"GMT"}var e=(new Date).getFullYear(),h=new Date(e,0,1),g=new Date(e,6,1);e=h.getTimezoneOffset();var n=g.getTimezoneOffset();B[a>>2]=60*Math.max(e,n);z[b>>2]=Number(e!=n);a=d(h);
88
+ b=d(g);a=Ub(a);b=Ub(b);n<e?(B[c>>2]=a,B[c+4>>2]=b):(B[c>>2]=b,B[c+4>>2]=a)},e:()=>Date.now(),d:()=>performance.now(),o:a=>{var b=y.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var e=Math;d=Math.max(a,d);a:{e=(e.min.call(e,2147483648,d+(65536-d%65536)%65536)-ma.buffer.byteLength+65535)/65536;try{ma.grow(e);ra();var h=1;break a}catch(g){}h=void 0}if(h)return!0}return!1},A:(a,b)=>{var c=0;Xb().forEach((d,e)=>{var h=b+c;e=B[a+4*e>>2]=h;for(h=
89
+ 0;h<d.length;++h)w[e++>>0]=d.charCodeAt(h);w[e>>0]=0;c+=d.length+1});return 0},B:(a,b)=>{var c=Xb();B[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);B[b>>2]=d;return 0},f:function(a){try{var b=S(a);if(null===b.Yb)throw new N(8);b.rc&&(b.rc=null);try{b.Ob.close&&b.Ob.close(b)}catch(c){throw c;}finally{hb[b.Yb]=null}b.Yb=null;return 0}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;return c.Qb}},p:function(a,b){try{var c=S(a);w[b>>0]=c.Ub?2:P(c.mode)?3:40960===(c.mode&61440)?7:
90
+ 4;oa[b+2>>1]=0;F=[0,(D=0,1<=+Math.abs(D)?0<D?+Math.floor(D/4294967296)>>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];z[b+8>>2]=F[0];z[b+12>>2]=F[1];F=[0,(D=0,1<=+Math.abs(D)?0<D?+Math.floor(D/4294967296)>>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];z[b+16>>2]=F[0];z[b+20>>2]=F[1];return 0}catch(d){if("undefined"==typeof U||"ErrnoError"!==d.name)throw d;return d.Qb}},x:function(a,b,c,d){try{a:{var e=S(a);a=b;for(var h,g=b=0;g<c;g++){var n=B[a>>2],k=B[a+4>>2];a+=8;var l=e,q=n,m=k,r=h,x=
91
+ w;if(0>m||0>r)throw new N(28);if(null===l.Yb)throw new N(8);if(1===(l.flags&2097155))throw new N(8);if(P(l.node.mode))throw new N(31);if(!l.Ob.read)throw new N(28);var A="undefined"!=typeof r;if(!A)r=l.position;else if(!l.seekable)throw new N(70);var G=l.Ob.read(l,x,q,m,r);A||(l.position+=G);var E=G;if(0>E){var L=-1;break a}b+=E;if(E<k)break;"undefined"!==typeof h&&(h+=E)}L=b}B[d>>2]=L;return 0}catch(H){if("undefined"==typeof U||"ErrnoError"!==H.name)throw H;return H.Qb}},m:function(a,b,c,d,e){b=
92
+ Qb(b,c);try{if(isNaN(b))return 61;var h=S(a);Hb(h,b,d);F=[h.position>>>0,(D=h.position,1<=+Math.abs(D)?0<D?+Math.floor(D/4294967296)>>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];z[e>>2]=F[0];z[e+4>>2]=F[1];h.rc&&0===b&&0===d&&(h.rc=null);return 0}catch(g){if("undefined"==typeof U||"ErrnoError"!==g.name)throw g;return g.Qb}},D:function(a){try{var b=S(a);return Zc(c=>{var d=b.node.Wb;d.type.Sc?d.type.Sc(d,!1,e=>{e?c(29):c(0)}):c(0)})}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;
93
+ return c.Qb}},t:function(a,b,c,d){try{a:{var e=S(a);a=b;for(var h,g=b=0;g<c;g++){var n=B[a>>2],k=B[a+4>>2];a+=8;var l=e,q=n,m=k,r=h,x=w;if(0>m||0>r)throw new N(28);if(null===l.Yb)throw new N(8);if(0===(l.flags&2097155))throw new N(8);if(P(l.node.mode))throw new N(31);if(!l.Ob.write)throw new N(28);l.seekable&&l.flags&1024&&Hb(l,0,2);var A="undefined"!=typeof r;if(!A)r=l.position;else if(!l.seekable)throw new N(70);var G=l.Ob.write(l,x,q,m,r,void 0);A||(l.position+=G);var E=G;if(0>E){var L=-1;break a}b+=
94
+ E;"undefined"!==typeof h&&(h+=E)}L=b}B[d>>2]=L;return 0}catch(H){if("undefined"==typeof U||"ErrnoError"!==H.name)throw H;return H.Qb}},sa:Yb,O:Zb,ha:$b,ca:ac,Z:bc,H:cc,la:dc,w:ec,g:fc,oa:gc,ja:hc,ea:ic,fa:jc,h:kc,l:lc,pa:mc,ra:nc,qa:oc,da:pc,ga:qc,ia:rc,na:sc,c:tc,ka:uc,ma:vc,aa:wc,V:xc,$:yc,ba:zc,S:Ac,U:Bc,Y:Cc,X:Dc,R:Ec,Q:Fc,T:Gc,_:Hc,N:Ic,W:Jc,P:Kc},Y=function(){function a(c){c=c.exports;Y=c=Oc(c);ma=Y.ta;ra();ta.unshift(Y.ua);C--;f.monitorRunDependencies&&f.monitorRunDependencies(C);if(0==C&&
95
+ (null!==ya&&(clearInterval(ya),ya=null),za)){var d=za;za=null;d()}return c}var b={a:kd};C++;f.monitorRunDependencies&&f.monitorRunDependencies(C);if(f.instantiateWasm)try{return f.instantiateWasm(b,a)}catch(c){t(`Module.instantiateWasm callback failed with error: ${c}`),ba(c)}Ga(b,function(c){a(c.instance)}).catch(ba);return{}}();f._sqlite3_vfs_find=a=>(f._sqlite3_vfs_find=Y.va)(a);f._sqlite3_malloc=a=>(f._sqlite3_malloc=Y.wa)(a);f._sqlite3_free=a=>(f._sqlite3_free=Y.xa)(a);
96
+ f._sqlite3_prepare_v2=(a,b,c,d,e)=>(f._sqlite3_prepare_v2=Y.ya)(a,b,c,d,e);f._sqlite3_step=a=>(f._sqlite3_step=Y.za)(a);f._sqlite3_column_int64=(a,b)=>(f._sqlite3_column_int64=Y.Aa)(a,b);f._sqlite3_column_int=(a,b)=>(f._sqlite3_column_int=Y.Ba)(a,b);f._sqlite3_finalize=a=>(f._sqlite3_finalize=Y.Ca)(a);f._sqlite3_reset=a=>(f._sqlite3_reset=Y.Da)(a);f._sqlite3_clear_bindings=a=>(f._sqlite3_clear_bindings=Y.Ea)(a);f._sqlite3_value_blob=a=>(f._sqlite3_value_blob=Y.Fa)(a);
97
+ f._sqlite3_value_text=a=>(f._sqlite3_value_text=Y.Ga)(a);f._sqlite3_value_bytes=a=>(f._sqlite3_value_bytes=Y.Ha)(a);f._sqlite3_value_double=a=>(f._sqlite3_value_double=Y.Ia)(a);f._sqlite3_value_int=a=>(f._sqlite3_value_int=Y.Ja)(a);f._sqlite3_value_int64=a=>(f._sqlite3_value_int64=Y.Ka)(a);f._sqlite3_value_type=a=>(f._sqlite3_value_type=Y.La)(a);f._sqlite3_result_blob=(a,b,c,d)=>(f._sqlite3_result_blob=Y.Ma)(a,b,c,d);f._sqlite3_result_double=(a,b)=>(f._sqlite3_result_double=Y.Na)(a,b);
98
+ f._sqlite3_result_error=(a,b,c)=>(f._sqlite3_result_error=Y.Oa)(a,b,c);f._sqlite3_result_int=(a,b)=>(f._sqlite3_result_int=Y.Pa)(a,b);f._sqlite3_result_int64=(a,b,c)=>(f._sqlite3_result_int64=Y.Qa)(a,b,c);f._sqlite3_result_null=a=>(f._sqlite3_result_null=Y.Ra)(a);f._sqlite3_result_text=(a,b,c,d)=>(f._sqlite3_result_text=Y.Sa)(a,b,c,d);f._sqlite3_column_count=a=>(f._sqlite3_column_count=Y.Ta)(a);f._sqlite3_data_count=a=>(f._sqlite3_data_count=Y.Ua)(a);
99
+ f._sqlite3_column_blob=(a,b)=>(f._sqlite3_column_blob=Y.Va)(a,b);f._sqlite3_column_bytes=(a,b)=>(f._sqlite3_column_bytes=Y.Wa)(a,b);f._sqlite3_column_double=(a,b)=>(f._sqlite3_column_double=Y.Xa)(a,b);f._sqlite3_column_text=(a,b)=>(f._sqlite3_column_text=Y.Ya)(a,b);f._sqlite3_column_type=(a,b)=>(f._sqlite3_column_type=Y.Za)(a,b);f._sqlite3_column_name=(a,b)=>(f._sqlite3_column_name=Y._a)(a,b);f._sqlite3_bind_blob=(a,b,c,d,e)=>(f._sqlite3_bind_blob=Y.$a)(a,b,c,d,e);
100
+ f._sqlite3_bind_double=(a,b,c)=>(f._sqlite3_bind_double=Y.ab)(a,b,c);f._sqlite3_bind_int=(a,b,c)=>(f._sqlite3_bind_int=Y.bb)(a,b,c);f._sqlite3_bind_int64=(a,b,c,d)=>(f._sqlite3_bind_int64=Y.cb)(a,b,c,d);f._sqlite3_bind_null=(a,b)=>(f._sqlite3_bind_null=Y.db)(a,b);f._sqlite3_bind_text=(a,b,c,d,e)=>(f._sqlite3_bind_text=Y.eb)(a,b,c,d,e);f._sqlite3_bind_parameter_count=a=>(f._sqlite3_bind_parameter_count=Y.fb)(a);f._sqlite3_bind_parameter_name=(a,b)=>(f._sqlite3_bind_parameter_name=Y.gb)(a,b);
101
+ f._sqlite3_sql=a=>(f._sqlite3_sql=Y.hb)(a);f._sqlite3_exec=(a,b,c,d,e)=>(f._sqlite3_exec=Y.ib)(a,b,c,d,e);f._sqlite3_errmsg=a=>(f._sqlite3_errmsg=Y.jb)(a);f._sqlite3_declare_vtab=(a,b)=>(f._sqlite3_declare_vtab=Y.kb)(a,b);f._sqlite3_libversion=()=>(f._sqlite3_libversion=Y.lb)();f._sqlite3_libversion_number=()=>(f._sqlite3_libversion_number=Y.mb)();f._sqlite3_changes=a=>(f._sqlite3_changes=Y.nb)(a);f._sqlite3_close=a=>(f._sqlite3_close=Y.ob)(a);
102
+ f._sqlite3_limit=(a,b,c)=>(f._sqlite3_limit=Y.pb)(a,b,c);f._sqlite3_open_v2=(a,b,c,d)=>(f._sqlite3_open_v2=Y.qb)(a,b,c,d);f._sqlite3_get_autocommit=a=>(f._sqlite3_get_autocommit=Y.rb)(a);var jd=()=>(jd=Y.sb)(),Tb=f._malloc=a=>(Tb=f._malloc=Y.tb)(a),cd=f._free=a=>(cd=f._free=Y.ub)(a);f._RegisterExtensionFunctions=a=>(f._RegisterExtensionFunctions=Y.vb)(a);f._set_authorizer=a=>(f._set_authorizer=Y.wb)(a);f._create_function=(a,b,c,d,e,h)=>(f._create_function=Y.xb)(a,b,c,d,e,h);
103
+ f._update_hook=(a,b)=>(f._update_hook=Y.yb)(a,b);f._create_module=(a,b,c,d)=>(f._create_module=Y.zb)(a,b,c,d);f._progress_handler=(a,b)=>(f._progress_handler=Y.Ab)(a,b);f._register_vfs=(a,b,c,d)=>(f._register_vfs=Y.Bb)(a,b,c,d);f._getSqliteFree=()=>(f._getSqliteFree=Y.Cb)();var ld=f._main=(a,b)=>(ld=f._main=Y.Db)(a,b),db=(a,b)=>(db=Y.Fb)(a,b),md=()=>(md=Y.Gb)(),hd=()=>(hd=Y.Hb)(),fd=a=>(fd=Y.Ib)(a),gd=a=>(gd=Y.Jb)(a),ad=a=>(ad=Y.Kb)(a),Qc=()=>(Qc=Y.Lb)(),$c=a=>($c=Y.Mb)(a),bd=()=>(bd=Y.Nb)();
104
+ f.getTempRet0=md;f.ccall=Z;f.cwrap=(a,b,c,d)=>{var e=!c||c.every(h=>"number"===h||"boolean"===h);return"string"!==b&&e&&!d?f["_"+a]:function(){return Z(a,b,c,arguments,d)}};f.setValue=J;f.getValue=I;f.UTF8ToString=(a,b)=>a?K(y,a,b):"";f.stringToUTF8=(a,b,c)=>Sa(a,y,b,c);f.lengthBytesUTF8=Ra;var nd;za=function od(){nd||pd();nd||(za=od)};
105
+ function pd(){function a(){if(!nd&&(nd=!0,f.calledRun=!0,!v)){f.noFSInit||Jb||(Jb=!0,Ib(),f.stdin=f.stdin,f.stdout=f.stdout,f.stderr=f.stderr,f.stdin?Kb("stdin",f.stdin):zb("/dev/tty","/dev/stdin"),f.stdout?Kb("stdout",null,f.stdout):zb("/dev/tty","/dev/stdout"),f.stderr?Kb("stderr",null,f.stderr):zb("/dev/tty1","/dev/stderr"),Fb("/dev/stdin",0),Fb("/dev/stdout",1),Fb("/dev/stderr",1));jb=!1;Ia(ta);Ia(ua);aa(f);if(f.onRuntimeInitialized)f.onRuntimeInitialized();if(qd){var b=ld;try{var c=b(0,0);na=
106
+ c;Lc(c)}catch(d){Mc(d)}}if(f.postRun)for("function"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;)b=f.postRun.shift(),va.unshift(b);Ia(va)}}if(!(0<C)){if(f.preRun)for("function"==typeof f.preRun&&(f.preRun=[f.preRun]);f.preRun.length;)xa();Ia(sa);0<C||(f.setStatus?(f.setStatus("Running..."),setTimeout(function(){setTimeout(function(){f.setStatus("")},1);a()},1)):a())}}if(f.preInit)for("function"==typeof f.preInit&&(f.preInit=[f.preInit]);0<f.preInit.length;)f.preInit.pop()();
107
+ var qd=!0;f.noInitialRun&&(qd=!1);pd();
108
+
109
+
110
+ return moduleArg.ready
111
+ }
112
+
113
+ );
114
+ })();
115
+ export default Module;
@@ -0,0 +1,172 @@
1
+ // Copyright 2022 Roy T. Hashimoto. All Rights Reserved.
2
+ import * as VFS from './sqlite-constants.js';
3
+ export * from './sqlite-constants.js';
4
+
5
+ // Base class for a VFS.
6
+ export class Base {
7
+ mxPathName = 64;
8
+
9
+ /**
10
+ * @param {number} fileId
11
+ * @returns {number}
12
+ */
13
+ xClose(fileId) {
14
+ return VFS.SQLITE_IOERR;
15
+ }
16
+
17
+ /**
18
+ * @param {number} fileId
19
+ * @param {Uint8Array} pData
20
+ * @param {number} iOffset
21
+ * @returns {number}
22
+ */
23
+ xRead(fileId, pData, iOffset) {
24
+ return VFS.SQLITE_IOERR;
25
+ }
26
+
27
+ /**
28
+ * @param {number} fileId
29
+ * @param {Uint8Array} pData
30
+ * @param {number} iOffset
31
+ * @returns {number}
32
+ */
33
+ xWrite(fileId, pData, iOffset) {
34
+ return VFS.SQLITE_IOERR;
35
+ }
36
+
37
+ /**
38
+ * @param {number} fileId
39
+ * @param {number} iSize
40
+ * @returns {number}
41
+ */
42
+ xTruncate(fileId, iSize) {
43
+ return VFS.SQLITE_IOERR;
44
+ }
45
+
46
+ /**
47
+ * @param {number} fileId
48
+ * @param {*} flags
49
+ * @returns {number}
50
+ */
51
+ xSync(fileId, flags) {
52
+ return VFS.SQLITE_OK;
53
+ }
54
+
55
+ /**
56
+ * @param {number} fileId
57
+ * @param {DataView} pSize64
58
+ * @returns {number}
59
+ */
60
+ xFileSize(fileId, pSize64) {
61
+ return VFS.SQLITE_IOERR;
62
+ }
63
+
64
+ /**
65
+ * @param {number} fileId
66
+ * @param {number} flags
67
+ * @returns {number}
68
+ */
69
+ xLock(fileId, flags) {
70
+ return VFS.SQLITE_OK;
71
+ }
72
+
73
+ /**
74
+ * @param {number} fileId
75
+ * @param {number} flags
76
+ * @returns {number}
77
+ */
78
+ xUnlock(fileId, flags) {
79
+ return VFS.SQLITE_OK;
80
+ }
81
+
82
+ /**
83
+ * @param {number} fileId
84
+ * @param {DataView} pResOut
85
+ * @returns {number}
86
+ */
87
+ xCheckReservedLock(fileId, pResOut) {
88
+ pResOut.setInt32(0, 0, true);
89
+ return VFS.SQLITE_OK;
90
+ }
91
+
92
+ /**
93
+ * @param {number} fileId
94
+ * @param {number} op
95
+ * @param {DataView} pArg
96
+ * @returns {number}
97
+ */
98
+ xFileControl(fileId, op, pArg) {
99
+ return VFS.SQLITE_NOTFOUND;
100
+ }
101
+
102
+ /**
103
+ * @param {number} fileId
104
+ * @returns {number}
105
+ */
106
+ xSectorSize(fileId) {
107
+ return 512;
108
+ }
109
+
110
+ /**
111
+ * @param {number} fileId
112
+ * @returns {number}
113
+ */
114
+ xDeviceCharacteristics(fileId) {
115
+ return 0;
116
+ }
117
+
118
+ /**
119
+ * @param {string?} name
120
+ * @param {number} fileId
121
+ * @param {number} flags
122
+ * @param {DataView} pOutFlags
123
+ * @returns {number}
124
+ */
125
+ xOpen(name, fileId, flags, pOutFlags) {
126
+ return VFS.SQLITE_CANTOPEN;
127
+ }
128
+
129
+ /**
130
+ * @param {string} name
131
+ * @param {number} syncDir
132
+ * @returns {number}
133
+ */
134
+ xDelete(name, syncDir) {
135
+ return VFS.SQLITE_IOERR;
136
+ }
137
+
138
+ /**
139
+ * @param {string} name
140
+ * @param {number} flags
141
+ * @param {DataView} pResOut
142
+ * @returns {number}
143
+ */
144
+ xAccess(name, flags, pResOut) {
145
+ return VFS.SQLITE_IOERR;
146
+ }
147
+
148
+ /**
149
+ * Handle asynchronous operation. This implementation will be overriden on
150
+ * registration by an Asyncify build.
151
+ * @param {function(): Promise<number>} f
152
+ * @returns {number}
153
+ */
154
+ handleAsync(f) {
155
+ // This default implementation deliberately does not match the
156
+ // declared signature. It will be used in testing VFS classes
157
+ // separately from SQLite. This will work acceptably for methods
158
+ // that simply return the handleAsync() result without using it.
159
+ // @ts-ignore
160
+ return f();
161
+ }
162
+ }
163
+
164
+ export const FILE_TYPE_MASK = [
165
+ VFS.SQLITE_OPEN_MAIN_DB,
166
+ VFS.SQLITE_OPEN_MAIN_JOURNAL,
167
+ VFS.SQLITE_OPEN_TEMP_DB,
168
+ VFS.SQLITE_OPEN_TEMP_JOURNAL,
169
+ VFS.SQLITE_OPEN_TRANSIENT_DB,
170
+ VFS.SQLITE_OPEN_SUBJOURNAL,
171
+ VFS.SQLITE_OPEN_SUPER_JOURNAL
172
+ ].reduce((mask, element) => mask | element);