sqlmath 2026.2.28 → 2026.3.31
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/.npmignore +4 -1
- package/CHANGELOG.md +15 -0
- package/README.md +5 -5
- package/_sqlmath.napi6_darwin_arm64.node +0 -0
- package/_sqlmath.napi6_darwin_x64.node +0 -0
- package/_sqlmath.napi6_linux_x64.node +0 -0
- package/_sqlmath.napi6_win32_x64.node +0 -0
- package/_sqlmath.shell_darwin_arm64 +0 -0
- package/_sqlmath.shell_darwin_x64 +0 -0
- package/_sqlmath.shell_linux_x64 +0 -0
- package/_sqlmath.shell_win32_x64.exe +0 -0
- package/_sqlmath.shell_win32_x64.exp +0 -0
- package/_sqlmath.shell_win32_x64.lib +0 -0
- package/jslint.mjs +1 -1
- package/package.json +1 -1
- package/sqlmath.mjs +52 -25
- package/sqlmath_wasm.js +83 -0
- package/sqlmath_wasm.wasm +0 -0
- package/test.mjs +11 -21
- package/_sqlmath.cp310-win_amd64.pyd +0 -0
- package/_sqlmath.cp311-win_amd64.pyd +0 -0
- package/_sqlmath.cp312-win_amd64.pyd +0 -0
- package/_sqlmath.cp313-win_amd64.pyd +0 -0
- package/_sqlmath.cp314-win_amd64.pyd +0 -0
- package/_sqlmath.cpython-310-darwin.so +0 -0
- package/_sqlmath.cpython-311-darwin.so +0 -0
- package/_sqlmath.cpython-312-darwin.so +0 -0
- package/_sqlmath.cpython-312-x86_64-linux-gnu.so +0 -0
- package/_sqlmath.cpython-313-darwin.so +0 -0
- package/_sqlmath.cpython-314-darwin.so +0 -0
- package/_sqlmath.cpython-314t-darwin.so +0 -0
package/.npmignore
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,21 @@
|
|
|
5
5
|
- sqlite - Add similar error-handling from builtin-sql-function PERCENTILE() into custom-sql-function QUANTILE().
|
|
6
6
|
- none
|
|
7
7
|
|
|
8
|
+
# v2026.3.31
|
|
9
|
+
- ci - Speed-up windows-ci by replacing windows-latest with windows-2022.
|
|
10
|
+
- sqlmath-ci - Speed-up ci with env-var npm_config_mode_test_nopython, allowing shell-function shCiTestNodejs() to be run in background, parallel to python -m cibuildwheel.
|
|
11
|
+
- sqlmath-ci - Rename pre-built-binaries lib_lightgbm.xxx, libomp.xxx to lib_lightgbm_platform_arch.xxx, libomp_platform_arch.xxx, to prevent name-collision under darwin_arm64 and darwin_x64 builds.
|
|
12
|
+
- sqlmath-ci - Update file setup.py to open text-files with utf-8 encoding.
|
|
13
|
+
- sqlmath-ci - Update file .github/workflows/ci.yml with extra matrix.os macos-15-intel.
|
|
14
|
+
- jslint-ci - Update shell-function shGitPullrequestCleanup() to allow squash-and-merge pull-request.
|
|
15
|
+
- sqlmath-ci - Update file .github/workflows/ci.yml with hook to run on pull-request.
|
|
16
|
+
|
|
17
|
+
# v2026.3.1
|
|
18
|
+
- sqlmath-python - bugfix - Fix 762-character-limit SQL-string-bug in python-function db_exec().
|
|
19
|
+
- jslint-ci - Update shell-function shLintPython().
|
|
20
|
+
- python - Auto-detect-and-load lib_lightgbm.dll.
|
|
21
|
+
- sqlite - Add sqlite-extension csv.c, tsv.c.
|
|
22
|
+
|
|
8
23
|
# v2026.2.28
|
|
9
24
|
- python-ci - Fix ruff lint-errors.
|
|
10
25
|
- jslint-ci - Update shell-function shCiBase() to check npm-version-support, before running npm-pkg-fix.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
# Status
|
|
5
|
-
| Branch | [master<br>(v2026.
|
|
5
|
+
| Branch | [master<br>(v2026.3.31)](https://github.com/sqlmath/sqlmath/tree/master) | [beta<br>(Web Demo)](https://github.com/sqlmath/sqlmath/tree/beta) | [alpha<br>(Development)](https://github.com/sqlmath/sqlmath/tree/alpha) |
|
|
6
6
|
|--:|:--:|:--:|:--:|
|
|
7
7
|
| CI | [](https://github.com/sqlmath/sqlmath/actions?query=branch%3Amaster) | [](https://github.com/sqlmath/sqlmath/actions?query=branch%3Abeta) | [](https://github.com/sqlmath/sqlmath/actions?query=branch%3Aalpha) |
|
|
8
8
|
| Coverage | [](https://sqlmath.github.io/sqlmath/branch-master/.artifact/coverage/index.html) | [](https://sqlmath.github.io/sqlmath/branch-beta/.artifact/coverage/index.html) | [](https://sqlmath.github.io/sqlmath/branch-alpha/.artifact/coverage/index.html) |
|
|
@@ -121,11 +121,11 @@ PORT=8080 sh jslint_ci.sh shHttpFileServer
|
|
|
121
121
|
```shell
|
|
122
122
|
python -m build
|
|
123
123
|
#
|
|
124
|
-
twine upload --repository testpypi dist/sqlmath-2026.2
|
|
125
|
-
py -m pip install --index-url https://test.pypi.org/simple/ sqlmath==2026.2
|
|
124
|
+
twine upload --repository testpypi dist/sqlmath-2026.3.2*
|
|
125
|
+
py -m pip install --index-url https://test.pypi.org/simple/ sqlmath==2026.3.2
|
|
126
126
|
#
|
|
127
|
-
twine upload dist/sqlmath-2026.2
|
|
128
|
-
pip install sqlmath==2026.2
|
|
127
|
+
twine upload dist/sqlmath-2026.3.2*
|
|
128
|
+
pip install sqlmath==2026.3.2
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/_sqlmath.shell_linux_x64
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/jslint.mjs
CHANGED
|
@@ -163,7 +163,7 @@ let jslint_charset_ascii = (
|
|
|
163
163
|
+ "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
|
|
164
164
|
+ "`abcdefghijklmnopqrstuvwxyz{|}~\u007f"
|
|
165
165
|
);
|
|
166
|
-
let jslint_edition = "v2026.
|
|
166
|
+
let jslint_edition = "v2026.3.1-beta";
|
|
167
167
|
let jslint_export; // The jslint object to be exported.
|
|
168
168
|
let jslint_fudge = 1; // Fudge starting line and starting
|
|
169
169
|
// ... column to 1.
|
package/package.json
CHANGED
package/sqlmath.mjs
CHANGED
|
@@ -50,14 +50,14 @@ const SQLITE_RESPONSETYPE_LASTVALUE = 2;
|
|
|
50
50
|
|
|
51
51
|
const FILENAME_DBTMP = "/tmp/__dbtmp1"; //jslint-ignore-line
|
|
52
52
|
|
|
53
|
-
const LGBM_DTYPE_FLOAT32 = 0;
|
|
54
|
-
const LGBM_DTYPE_FLOAT64 = 1;
|
|
55
|
-
const LGBM_DTYPE_INT32 = 2;
|
|
56
|
-
const LGBM_DTYPE_INT64 = 3;
|
|
53
|
+
const LGBM_DTYPE_FLOAT32 = 0; /* float32 (single precision float)*/
|
|
54
|
+
const LGBM_DTYPE_FLOAT64 = 1; /* float64 (double precision float)*/
|
|
55
|
+
const LGBM_DTYPE_INT32 = 2; /* int32*/
|
|
56
|
+
const LGBM_DTYPE_INT64 = 3; /* int64*/
|
|
57
57
|
const LGBM_FEATURE_IMPORTANCE_GAIN = 1; /* Gain type of feature importance*/
|
|
58
58
|
const LGBM_FEATURE_IMPORTANCE_SPLIT = 0;/* Split type of feature importance*/
|
|
59
|
-
const LGBM_MATRIX_TYPE_CSC = 1;
|
|
60
|
-
const LGBM_MATRIX_TYPE_CSR = 0;
|
|
59
|
+
const LGBM_MATRIX_TYPE_CSC = 1; /* CSC sparse matrix type*/
|
|
60
|
+
const LGBM_MATRIX_TYPE_CSR = 0; /* CSR sparse matrix type*/
|
|
61
61
|
const LGBM_PREDICT_CONTRIB = 3; /* Predict feature contributions (SHAP values)*/
|
|
62
62
|
const LGBM_PREDICT_LEAF_INDEX = 2; /* Predict leaf index*/
|
|
63
63
|
const LGBM_PREDICT_NORMAL = 0; /* Normal prediction w/ transform (if needed)*/
|
|
@@ -87,7 +87,7 @@ const SQLITE_OPEN_WAL = 0x00080000; /* VFS only */
|
|
|
87
87
|
let DB_EXEC_PROFILE_DICT = {};
|
|
88
88
|
let DB_EXEC_PROFILE_MODE;
|
|
89
89
|
let DB_EXEC_PROFILE_SQL_LENGTH;
|
|
90
|
-
let
|
|
90
|
+
let DB_STATE = {};
|
|
91
91
|
let IS_BROWSER;
|
|
92
92
|
let SQLMATH_EXE;
|
|
93
93
|
let SQLMATH_NODE;
|
|
@@ -128,7 +128,7 @@ let {
|
|
|
128
128
|
let sqlMessageDict = {}; // dict of web-worker-callbacks
|
|
129
129
|
let sqlMessageId = 0;
|
|
130
130
|
let sqlWorker;
|
|
131
|
-
let version = "v2026.
|
|
131
|
+
let version = "v2026.3.31";
|
|
132
132
|
|
|
133
133
|
async function assertErrorThrownAsync(asyncFunc, regexp) {
|
|
134
134
|
|
|
@@ -1017,7 +1017,6 @@ async function dbOpenAsync({
|
|
|
1017
1017
|
// );
|
|
1018
1018
|
let connPool;
|
|
1019
1019
|
let db = {busy: 0, filename, ii: 0};
|
|
1020
|
-
let libLgbm;
|
|
1021
1020
|
assertOrThrow(typeof filename === "string", `invalid filename ${filename}`);
|
|
1022
1021
|
assertOrThrow(
|
|
1023
1022
|
!dbData || isExternalBuffer(dbData),
|
|
@@ -1048,21 +1047,33 @@ async function dbOpenAsync({
|
|
|
1048
1047
|
return ptr;
|
|
1049
1048
|
}));
|
|
1050
1049
|
db.connPool = connPool;
|
|
1051
|
-
if (!IS_BROWSER && !
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
libLgbm = `${import.meta.dirname}/sqlmath/${libLgbm}`;
|
|
1059
|
-
await dbExecAsync({
|
|
1060
|
-
db,
|
|
1061
|
-
sql: (`
|
|
1050
|
+
if (!IS_BROWSER && !DB_STATE.init) {
|
|
1051
|
+
DB_STATE.init = true;
|
|
1052
|
+
await Promise.all([
|
|
1053
|
+
// PRAGMA busy_timeout
|
|
1054
|
+
dbExecAsync({
|
|
1055
|
+
db,
|
|
1056
|
+
sql: (`
|
|
1062
1057
|
PRAGMA busy_timeout = ${timeoutBusy};
|
|
1058
|
+
`)
|
|
1059
|
+
}),
|
|
1060
|
+
// LGBM_DLOPEN
|
|
1061
|
+
(async function () {
|
|
1062
|
+
let libLgbm = `lib_lightgbm_${libPlatformArchExt()}`;
|
|
1063
|
+
libLgbm = `${import.meta.dirname}/sqlmath/${libLgbm}`;
|
|
1064
|
+
await moduleFs.promises.access(
|
|
1065
|
+
libLgbm
|
|
1066
|
+
).then(async function () {
|
|
1067
|
+
await dbExecAsync({
|
|
1068
|
+
db,
|
|
1069
|
+
sql: (`
|
|
1063
1070
|
SELECT LGBM_DLOPEN('${libLgbm}');
|
|
1064
|
-
|
|
1065
|
-
|
|
1071
|
+
`)
|
|
1072
|
+
});
|
|
1073
|
+
DB_STATE.lgbm = true;
|
|
1074
|
+
}).catch(noop);
|
|
1075
|
+
}())
|
|
1076
|
+
]);
|
|
1066
1077
|
}
|
|
1067
1078
|
return db;
|
|
1068
1079
|
}
|
|
@@ -1075,7 +1086,7 @@ async function dbTableImportAsync({
|
|
|
1075
1086
|
tableName,
|
|
1076
1087
|
textData
|
|
1077
1088
|
}) {
|
|
1078
|
-
//
|
|
1089
|
+
// This function will create table from imported csv/json <textData>.
|
|
1079
1090
|
let colList;
|
|
1080
1091
|
let rowList;
|
|
1081
1092
|
let rowidList;
|
|
@@ -1516,7 +1527,7 @@ function jsonParseArraybuffer(buf) {
|
|
|
1516
1527
|
function jsonRowListFromCsv({
|
|
1517
1528
|
csv
|
|
1518
1529
|
}) {
|
|
1519
|
-
//
|
|
1530
|
+
// This function will convert <csv>-text to json list-of-list.
|
|
1520
1531
|
//
|
|
1521
1532
|
// https://tools.ietf.org/html/rfc4180#section-2
|
|
1522
1533
|
// Definition of the CSV Format
|
|
@@ -1664,6 +1675,16 @@ function jsonRowListFromCsv({
|
|
|
1664
1675
|
return rowList;
|
|
1665
1676
|
}
|
|
1666
1677
|
|
|
1678
|
+
function libPlatformArchExt() {
|
|
1679
|
+
let libArch = process.arch;
|
|
1680
|
+
let libExt = process.platform;
|
|
1681
|
+
let libPlatform = process.platform;
|
|
1682
|
+
libExt = libExt.replace("darwin", "dylib");
|
|
1683
|
+
libExt = libExt.replace("win32", "dll");
|
|
1684
|
+
libExt = libExt.replace(libPlatform, "so");
|
|
1685
|
+
return `${libPlatform}_${libArch}.${libExt}`;
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1667
1688
|
function listOrEmptyList(list) {
|
|
1668
1689
|
|
|
1669
1690
|
// This function will return <list> or empty-list if falsy.
|
|
@@ -1891,7 +1912,11 @@ function waitAsync(timeout) {
|
|
|
1891
1912
|
// This function will wait <timeout> ms.
|
|
1892
1913
|
|
|
1893
1914
|
return new Promise(function (resolve) {
|
|
1894
|
-
|
|
1915
|
+
let ms = Number(timeout);
|
|
1916
|
+
if (!Number.isFinite(ms)) {
|
|
1917
|
+
ms = 0;
|
|
1918
|
+
}
|
|
1919
|
+
setTimeout(resolve, ms * !npm_config_mode_test);
|
|
1895
1920
|
});
|
|
1896
1921
|
}
|
|
1897
1922
|
|
|
@@ -1901,6 +1926,7 @@ sqlmathInit(); // coverage-hack
|
|
|
1901
1926
|
|
|
1902
1927
|
export {
|
|
1903
1928
|
DB_EXEC_PROFILE_DICT,
|
|
1929
|
+
DB_STATE,
|
|
1904
1930
|
LGBM_DTYPE_FLOAT32,
|
|
1905
1931
|
LGBM_DTYPE_FLOAT64,
|
|
1906
1932
|
LGBM_DTYPE_INT32,
|
|
@@ -1962,6 +1988,7 @@ export {
|
|
|
1962
1988
|
fsWriteFileUnlessTest,
|
|
1963
1989
|
jsbatonGetInt64,
|
|
1964
1990
|
jsbatonGetString,
|
|
1991
|
+
libPlatformArchExt,
|
|
1965
1992
|
listOrEmptyList,
|
|
1966
1993
|
noop,
|
|
1967
1994
|
objectDeepCopyWithKeysSorted,
|
package/sqlmath_wasm.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*jslint-disable*/
|
|
2
|
+
// Copyright (c) 2021 Kai Zhu
|
|
3
|
+
// SPDX-License-Identifier: MIT
|
|
4
|
+
// 2026-04-03T03:47:33+0000
|
|
5
|
+
(function () {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var g;g||(g=typeof Module !== 'undefined' ? Module : {});var aa=Object.assign;(function(){function a(){}function b(...c){a("\n\ndebugInline");a(...c);a("\n");return c[0]}b();a=console.error;return b})();function ba(a){return a&&a.constructor===ArrayBuffer}
|
|
9
|
+
(async function(){let a=h("dbFileLoadOrSave","number",["number","string","number"]),b=h("jsbatonGetErrmsg","string",["number"]),c=h("jsbatonGetString","string",["number","number"]),d=h("sqlite3_errmsg","string",["number"]),e;globalThis.onmessage=async function({data:f}){await e;f.batonPtr=0;try{a:{let G=f.FILENAME_DBTMP;var k=f.JSBATON_OFFSET_ALL;let Rb=f.JSBATON_OFFSET_BUFV,P=f.argList,Q=new Uint8Array(f.baton.buffer),C=0,A=P[4],Sb=0,ea="",W=f.funcname,Va=P[2];switch(W){case "_dbClose":case "_dbExec":case "_dbFileLoad":case "_dbNoop":case "_dbOpen":C=
|
|
10
|
+
ca(Q.byteLength);f.batonPtr=C;l.set(Q,C);switch(W){case "_dbClose":console.error(`_dbClose("${c(C,1)}")`);break;case "_dbFileLoad":Va||da(G,new Uint8Array(A));break;case "_dbOpen":console.error(`_dbOpen("${c(C,0)}")`)}fa(C);ea=b(C);Q.set(l.subarray(C,C+k));switch(!ea&&W){case "_dbExec":A=new BigInt64Array(Q.buffer,Rb);P[0]=l.slice(Number(A[0]),Number(A[0]+A[1])).buffer;ha(Number(A[0]));break;case "_dbFileLoad":if(Va){k=G;var m=m||0;var p=p||"binary";if("utf8"!==p&&"binary"!==p)throw Error('Invalid encoding type "'+
|
|
11
|
+
p+'"');var q,t=n(k,m),v=r(k).size,H=new Uint8Array(v);ia(t,H,0,v,0);"utf8"===p?q=u(H,0):"binary"===p&&(q=H);ja(t);P[0]=q.buffer;ka(G)}break;case "_dbOpen":A&&(da(G,new Uint8Array(A)),A=Number(la(C,0)),(Sb=a(A,G,0))&&(ea=d(A)),ka(G))}postMessage({argList:P,baton:new DataView(Q.buffer),errmsg:ea,funcname:W,id:f.id},[Q.buffer,...P.filter(ba)]);var Tb=void 0;break a}throw Error(`invalid funcname "${W}"`);}await Tb}catch(G){postMessage({errmsg:G.stack,id:f.id})}finally{ha(f.batonPtr)}};e=new Promise(function(f){g.postRun=
|
|
12
|
+
f});await e;ma()})();var na=aa({},g),oa="./this.program",pa="object"===typeof window,w="function"===typeof importScripts,qa="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node,x="",ra,sa,ta,fs,ua,va;
|
|
13
|
+
if(qa)x=w?require("path").dirname(x)+"/":__dirname+"/",va=()=>{ua||(fs=require("fs"),ua=require("path"))},ra=function(a,b){va();a=ua.normalize(a);return fs.readFileSync(a,b?null:"utf8")},ta=a=>{a=ra(a,!0);a.buffer||(a=new Uint8Array(a));return a},sa=(a,b,c)=>{va();a=ua.normalize(a);fs.readFile(a,function(d,e){d?c(d):b(e.buffer)})},1<process.argv.length&&(oa=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),"undefined"!==typeof module&&(module.exports=g),g.inspect=function(){return"[Emscripten Module object]"};
|
|
14
|
+
else if(pa||w)w?x=self.location.href:"undefined"!==typeof document&&document.currentScript&&(x=document.currentScript.src),x=0!==x.indexOf("blob:")?x.substr(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1):"",ra=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},w&&(ta=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),sa=(a,b,c)=>{var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";
|
|
15
|
+
d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var wa=g.print||console.log.bind(console),y=g.printErr||console.warn.bind(console);aa(g,na);na=null;g.thisProgram&&(oa=g.thisProgram);var z;g.wasmBinary&&(z=g.wasmBinary);var noExitRuntime=g.noExitRuntime||!0;"object"!==typeof WebAssembly&&B("no native wasm support detected");var xa,ya=!1;
|
|
16
|
+
function za(a,b,c,d){var e={string:function(q){var t=0;if(null!==q&&void 0!==q&&0!==q){var v=(q.length<<2)+1;t=Aa(v);D(q,l,t,v)}return t},array:function(q){var t=Aa(q.length);E.set(q,t);return t}};a=g["_"+a];var f=[],k=0;if(d)for(var m=0;m<d.length;m++){var p=e[c[m]];p?(0===k&&(k=Ba()),f[m]=p(d[m])):f[m]=d[m]}c=a.apply(null,f);return c=function(q){0!==k&&Ca(k);return"string"===b?F(q):"boolean"===b?!!q:q}(c)}
|
|
17
|
+
function h(a,b,c,d){c=c||[];var e=c.every(function(f){return"number"===f});return"string"!==b&&e&&!d?g["_"+a]:function(){return za(a,b,c,arguments)}}var Da="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;
|
|
18
|
+
function u(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.subarray&&Da)return Da.decode(a.subarray(b,c));for(d="";b<c;){var e=a[b++];if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var k=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|k:(e&7)<<18|f<<12|k<<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}function F(a){return a?u(l,a,void 0):""}
|
|
19
|
+
function D(a,b,c,d){if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var k=a.charCodeAt(f);if(55296<=k&&57343>=k){var m=a.charCodeAt(++f);k=65536+((k&1023)<<10)|m&1023}if(127>=k){if(c>=d)break;b[c++]=k}else{if(2047>=k){if(c+1>=d)break;b[c++]=192|k>>6}else{if(65535>=k){if(c+2>=d)break;b[c++]=224|k>>12}else{if(c+3>=d)break;b[c++]=240|k>>18;b[c++]=128|k>>12&63}b[c++]=128|k>>6&63}b[c++]=128|k&63}}b[c]=0;return c-e}
|
|
20
|
+
function Ea(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}function Fa(a){var b=Ea(a)+1,c=Ga(b);c&&D(a,E,c,b);return c}var Ha,E,l,Ia,I,Ja;
|
|
21
|
+
function Ka(){var a=xa.buffer;Ha=a;g.HEAP8=E=new Int8Array(a);g.HEAP16=Ia=new Int16Array(a);g.HEAP32=I=new Int32Array(a);g.HEAPU8=l=new Uint8Array(a);g.HEAPU16=new Uint16Array(a);g.HEAPU32=new Uint32Array(a);g.HEAPF32=new Float32Array(a);g.HEAPF64=new Float64Array(a);g.HEAP64=Ja=new BigInt64Array(a);g.HEAPU64=new BigUint64Array(a)}var La,Ma=[],Na=[],Oa=[];function Pa(){var a=g.preRun.shift();Ma.unshift(a)}var J=0,Qa=null,Ra=null;g.preloadedImages={};g.preloadedAudios={};
|
|
22
|
+
function B(a){if(g.onAbort)g.onAbort(a);a="Aborted("+a+")";y(a);ya=!0;throw new WebAssembly.RuntimeError(a+". Build with -s ASSERTIONS=1 for more info.");}function Sa(){return K.startsWith("data:application/octet-stream;base64,")}var K;K="sqlmath_wasm.wasm";if(!Sa()){var Ta=K;K=g.locateFile?g.locateFile(Ta,x):x+Ta}function Ua(){var a=K;try{if(a==K&&z)return new Uint8Array(z);if(ta)return ta(a);throw"both async and sync fetching of the wasm failed";}catch(b){B(b)}}
|
|
23
|
+
function Wa(){if(!z&&(pa||w)){if("function"===typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+K+"'";return a.arrayBuffer()}).catch(function(){return Ua()});if(sa)return new Promise(function(a,b){sa(K,function(c){a(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return Ua()})}
|
|
24
|
+
function Xa(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(g);else{var c=b.Sa;"number"===typeof c?void 0===b.wa?La.get(c)():La.get(c)(b.wa):c(void 0===b.wa?null:b.wa)}}}function Ya(a){return a.replace(/\b_Z[\w\d_]+/g,function(b){return b===b?b:b+" ["+b+"]"})}function Za(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}
|
|
25
|
+
function L(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=Za(a.split("/").filter(function(d){return!!d}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function $a(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}function ab(a){if("/"===a)return"/";a=L(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}
|
|
26
|
+
function bb(){if("object"===typeof crypto&&"function"===typeof crypto.getRandomValues){var a=new Uint8Array(1);return function(){crypto.getRandomValues(a);return a[0]}}if(qa)try{var b=require("crypto");return function(){return b.randomBytes(1)[0]}}catch(c){}return function(){B("randomDevice")}}
|
|
27
|
+
function cb(){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=Za(a.split("/").filter(function(d){return!!d}),!b).join("/");return(b?"/":"")+a||"."}var db=[];function eb(a,b){db[a]={input:[],output:[],ra:b};fb(a,gb)}
|
|
28
|
+
var gb={open:function(a){var b=db[a.node.rdev];if(!b)throw new M(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.ra.flush(a.tty)},flush:function(a){a.tty.ra.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.ra.Ea)throw new M(60);for(var e=0,f=0;f<d;f++){try{var k=a.tty.ra.Ea(a.tty)}catch(m){throw new M(29);}if(void 0===k&&0===e)throw new M(6);if(null===k||void 0===k)break;e++;b[c+f]=k}e&&(a.node.timestamp=Date.now());return e},write:function(a,b,c,d){if(!a.tty||!a.tty.ra.ya)throw new M(60);
|
|
29
|
+
try{for(var e=0;e<d;e++)a.tty.ra.ya(a.tty,b[c+e])}catch(f){throw new M(29);}d&&(a.node.timestamp=Date.now());return e}},hb={Ea:function(a){if(!a.input.length){var b=null;if(qa){var c=Buffer.alloc(256),d=0;try{d=fs.readSync(process.stdin.fd,c,0,256,null)}catch(e){if(e.toString().includes("EOF"))d=0;else throw e;}0<d?b=c.slice(0,d).toString("utf-8"):b=null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&(b=
|
|
30
|
+
readline(),null!==b&&(b+="\n"));if(!b)return null;c=Array(Ea(b)+1);b=D(b,c,0,c.length);c.length=b;a.input=c}return a.input.shift()},ya:function(a,b){null===b||10===b?(wa(u(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(wa(u(a.output,0)),a.output=[])}},ib={ya:function(a,b){null===b||10===b?(y(u(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(y(u(a.output,0)),a.output=[])}};
|
|
31
|
+
function jb(a){a=65536*Math.ceil(a/65536);var b=kb(65536,a);if(!b)return 0;l.fill(0,b,b+a);return b}
|
|
32
|
+
var N={la:null,ma:function(){return N.createNode(null,"/",16895,0)},createNode:function(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new M(63);N.la||(N.la={dir:{node:{ka:N.ea.ka,ja:N.ea.ja,lookup:N.ea.lookup,sa:N.ea.sa,rename:N.ea.rename,unlink:N.ea.unlink,rmdir:N.ea.rmdir,readdir:N.ea.readdir,symlink:N.ea.symlink},stream:{oa:N.fa.oa}},file:{node:{ka:N.ea.ka,ja:N.ea.ja},stream:{oa:N.fa.oa,read:N.fa.read,write:N.fa.write,Aa:N.fa.Aa,ta:N.fa.ta,ua:N.fa.ua}},link:{node:{ka:N.ea.ka,ja:N.ea.ja,
|
|
33
|
+
readlink:N.ea.readlink},stream:{}},Ba:{node:{ka:N.ea.ka,ja:N.ea.ja},stream:lb}});c=mb(a,b,c,d);16384===(c.mode&61440)?(c.ea=N.la.dir.node,c.fa=N.la.dir.stream,c.ga={}):32768===(c.mode&61440)?(c.ea=N.la.file.node,c.fa=N.la.file.stream,c.ia=0,c.ga=null):40960===(c.mode&61440)?(c.ea=N.la.link.node,c.fa=N.la.link.stream):8192===(c.mode&61440)&&(c.ea=N.la.Ba.node,c.fa=N.la.Ba.stream);c.timestamp=Date.now();a&&(a.ga[b]=c,a.timestamp=c.timestamp);return c},Ta:function(a){return a.ga?a.ga.subarray?a.ga.subarray(0,
|
|
34
|
+
a.ia):new Uint8Array(a.ga):new Uint8Array(0)},Ca:function(a,b){var c=a.ga?a.ga.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.ga,a.ga=new Uint8Array(b),0<a.ia&&a.ga.set(c.subarray(0,a.ia),0))},Pa:function(a,b){if(a.ia!=b)if(0==b)a.ga=null,a.ia=0;else{var c=a.ga;a.ga=new Uint8Array(b);c&&a.ga.set(c.subarray(0,Math.min(b,a.ia)));a.ia=b}},ea:{ka:function(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;
|
|
35
|
+
16384===(a.mode&61440)?b.size=4096:32768===(a.mode&61440)?b.size=a.ia:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.timestamp);b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.Ga=4096;b.blocks=Math.ceil(b.size/b.Ga);return b},ja:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&N.Pa(a,b.size)},lookup:function(){throw nb[44];},sa:function(a,b,c,d){return N.createNode(a,b,c,d)},rename:function(a,b,c){if(16384===
|
|
36
|
+
(a.mode&61440)){try{var d=O(b,c)}catch(f){}if(d)for(var e in d.ga)throw new M(55);}delete a.parent.ga[a.name];a.parent.timestamp=Date.now();a.name=c;b.ga[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},unlink:function(a,b){delete a.ga[b];a.timestamp=Date.now()},rmdir:function(a,b){var c=O(a,b),d;for(d in c.ga)throw new M(55);delete a.ga[b];a.timestamp=Date.now()},readdir:function(a){var b=[".",".."],c;for(c in a.ga)a.ga.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,b,c){a=N.createNode(a,
|
|
37
|
+
b,41471,0);a.link=c;return a},readlink:function(a){if(40960!==(a.mode&61440))throw new M(28);return a.link}},fa:{read:function(a,b,c,d,e){var f=a.node.ga;if(e>=a.node.ia)return 0;a=Math.min(a.node.ia-e,d);if(8<a&&f.subarray)b.set(f.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=f[e+d];return a},write:function(a,b,c,d,e,f){b.buffer===E.buffer&&(f=!1);if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.ga||a.ga.subarray)){if(f)return a.ga=b.subarray(c,c+d),a.ia=d;if(0===a.ia&&0===e)return a.ga=
|
|
38
|
+
b.slice(c,c+d),a.ia=d;if(e+d<=a.ia)return a.ga.set(b.subarray(c,c+d),e),d}N.Ca(a,e+d);if(a.ga.subarray&&b.subarray)a.ga.set(b.subarray(c,c+d),e);else for(f=0;f<d;f++)a.ga[e+f]=b[c+f];a.ia=Math.max(a.ia,e+d);return d},oa:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.node.mode&61440)&&(b+=a.node.ia);if(0>b)throw new M(28);return b},Aa:function(a,b,c){N.Ca(a.node,b+c);a.node.ia=Math.max(a.node.ia,b+c)},ta:function(a,b,c,d,e,f){if(0!==b)throw new M(28);if(32768!==(a.node.mode&61440))throw new M(43);
|
|
39
|
+
a=a.node.ga;if(f&2||a.buffer!==Ha){if(0<d||d+c<a.length)a.subarray?a=a.subarray(d,d+c):a=Array.prototype.slice.call(a,d,d+c);d=!0;c=jb(c);if(!c)throw new M(48);E.set(a,c)}else d=!1,c=a.byteOffset;return{Oa:c,va:d}},ua:function(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new M(43);if(e&2)return 0;N.fa.write(a,b,0,d,c,!1);return 0}}},ob=null,pb={},R=[],qb=1,S=null,rb=!0,M=null,nb={},T=(a,b={})=>{a=cb("/",a);if(!a)return{path:"",node:null};var c={Da:!0,za:0},d;for(d in c)void 0===b[d]&&(b[d]=c[d]);
|
|
40
|
+
if(8<b.za)throw new M(32);a=Za(a.split("/").filter(k=>!!k),!1);var e=ob;c="/";for(d=0;d<a.length;d++){var f=d===a.length-1;if(f&&b.parent)break;e=O(e,a[d]);c=L(c+"/"+a[d]);e.pa&&(!f||f&&b.Da)&&(e=e.pa.root);if(!f||b.na)for(f=0;40960===(e.mode&61440);)if(e=sb(c),c=cb($a(c),e),e=T(c,{za:b.za}).node,40<f++)throw new M(32);}return{path:c,node:e}},tb=a=>{for(var b;;){if(a===a.parent)return a=a.ma.Fa,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}},ub=(a,b)=>{for(var c=0,d=0;d<b.length;d++)c=
|
|
41
|
+
(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%S.length},vb=a=>{var b=ub(a.parent.id,a.name);if(S[b]===a)S[b]=a.qa;else for(b=S[b];b;){if(b.qa===a){b.qa=a.qa;break}b=b.qa}},O=(a,b)=>{var c;if(c=(c=U(a,"x"))?c:a.ea.lookup?0:2)throw new M(c,a);for(c=S[ub(a.id,b)];c;c=c.qa){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.ea.lookup(a,b)},mb=(a,b,c,d)=>{a=new wb(a,b,c,d);b=ub(a.parent.id,a.name);a.qa=S[b];return S[b]=a},xb={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},yb=a=>{var b=["r","w","rw"][a&
|
|
42
|
+
3];a&512&&(b+="w");return b},U=(a,b)=>{if(rb)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},zb=(a,b)=>{try{return O(a,b),20}catch(c){}return U(a,"wx")},Ab=(a,b,c)=>{try{var d=O(a,b)}catch(e){return e.ha}if(a=U(a,"wx"))return a;if(c){if(16384!==(d.mode&61440))return 54;if(d===d.parent||"/"===tb(d))return 10}else if(16384===(d.mode&61440))return 31;return 0},Bb=(a=0,b=4096)=>{for(;a<=b;a++)if(!R[a])return a;
|
|
43
|
+
throw new M(33);},Db=(a,b)=>{Cb||(Cb=function(){},Cb.prototype={});var c=new Cb,d;for(d in a)c[d]=a[d];a=c;b=Bb(b,void 0);a.fd=b;return R[b]=a},lb={open:a=>{a.fa=pb[a.node.rdev].fa;a.fa.open&&a.fa.open(a)},oa:()=>{throw new M(70);}},fb=(a,b)=>{pb[a]={fa:b}},Eb=(a,b)=>{var c="/"===b,d=!b;if(c&&ob)throw new M(10);if(!c&&!d){var e=T(b,{Da:!1});b=e.path;e=e.node;if(e.pa)throw new M(10);if(16384!==(e.mode&61440))throw new M(54);}b={type:a,Ua:{},Fa:b,Ma:[]};a=a.ma(b);a.ma=b;b.root=a;c?ob=a:e&&(e.pa=b,e.ma&&
|
|
44
|
+
e.ma.Ma.push(b))},Fb=(a,b,c)=>{var d=T(a,{parent:!0}).node;a=ab(a);if(!a||"."===a||".."===a)throw new M(28);var e=zb(d,a);if(e)throw new M(e);if(!d.ea.sa)throw new M(63);return d.ea.sa(d,a,b,c)},V=(a,b)=>Fb(a,(void 0!==b?b:511)&1023|16384,0),Gb=(a,b,c)=>{"undefined"===typeof c&&(c=b,b=438);Fb(a,b|8192,c)},Hb=(a,b)=>{if(!cb(a))throw new M(44);var c=T(b,{parent:!0}).node;if(!c)throw new M(44);b=ab(b);var d=zb(c,b);if(d)throw new M(d);if(!c.ea.symlink)throw new M(63);c.ea.symlink(c,b,a)},ka=a=>{var b=
|
|
45
|
+
T(a,{parent:!0}).node;if(!b)throw new M(44);a=ab(a);var c=O(b,a),d=Ab(b,a,!1);if(d)throw new M(d);if(!b.ea.unlink)throw new M(63);if(c.pa)throw new M(10);b.ea.unlink(b,a);vb(c)},sb=a=>{a=T(a).node;if(!a)throw new M(44);if(!a.ea.readlink)throw new M(28);return cb(tb(a.parent),a.ea.readlink(a))},r=(a,b)=>{a=T(a,{na:!b}).node;if(!a)throw new M(44);if(!a.ea.ka)throw new M(63);return a.ea.ka(a)},Ib=a=>r(a,!0),Jb=(a,b)=>{a="string"===typeof a?T(a,{na:!0}).node:a;if(!a.ea.ja)throw new M(63);a.ea.ja(a,{mode:b&
|
|
46
|
+
4095|a.mode&-4096,timestamp:Date.now()})},Kb=a=>{a="string"===typeof a?T(a,{na:!0}).node:a;if(!a.ea.ja)throw new M(63);a.ea.ja(a,{timestamp:Date.now()})},Lb=(a,b)=>{if(0>b)throw new M(28);a="string"===typeof a?T(a,{na:!0}).node:a;if(!a.ea.ja)throw new M(63);if(16384===(a.mode&61440))throw new M(31);if(32768!==(a.mode&61440))throw new M(28);var c=U(a,"w");if(c)throw new M(c);a.ea.ja(a,{size:b,timestamp:Date.now()})},n=(a,b,c,d)=>{if(""===a)throw new M(44);if("string"===typeof b){var e=xb[b];if("undefined"===
|
|
47
|
+
typeof e)throw Error("Unknown file open mode: "+b);b=e}c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;if("object"===typeof a)var f=a;else{a=L(a);try{f=T(a,{na:!(b&131072)}).node}catch(k){}}e=!1;if(b&64)if(f){if(b&128)throw new M(20);}else f=Fb(a,c,0),e=!0;if(!f)throw new M(44);8192===(f.mode&61440)&&(b&=-513);if(b&65536&&16384!==(f.mode&61440))throw new M(54);if(!e&&(c=f?40960===(f.mode&61440)?32:16384===(f.mode&61440)&&("r"!==yb(b)||b&512)?31:U(f,yb(b)):44))throw new M(c);b&512&&Lb(f,0);b&=-131713;
|
|
48
|
+
d=Db({node:f,path:tb(f),flags:b,seekable:!0,position:0,fa:f.fa,Ra:[],error:!1},d);d.fa.open&&d.fa.open(d);!g.logReadFiles||b&1||(Mb||(Mb={}),a in Mb||(Mb[a]=1));return d},ja=a=>{if(null===a.fd)throw new M(8);a.xa&&(a.xa=null);try{a.fa.close&&a.fa.close(a)}catch(b){throw b;}finally{R[a.fd]=null}a.fd=null},Nb=(a,b,c)=>{if(null===a.fd)throw new M(8);if(!a.seekable||!a.fa.oa)throw new M(70);if(0!=c&&1!=c&&2!=c)throw new M(28);a.position=a.fa.oa(a,b,c);a.Ra=[]},ia=(a,b,c,d,e)=>{if(0>d||0>e)throw new M(28);
|
|
49
|
+
if(null===a.fd)throw new M(8);if(1===(a.flags&2097155))throw new M(8);if(16384===(a.node.mode&61440))throw new M(31);if(!a.fa.read)throw new M(28);var f="undefined"!==typeof e;if(!f)e=a.position;else if(!a.seekable)throw new M(70);b=a.fa.read(a,b,c,d,e);f||(a.position+=b);return b},Ob=(a,b,c,d,e)=>{var f=void 0;if(0>d||0>f)throw new M(28);if(null===a.fd)throw new M(8);if(0===(a.flags&2097155))throw new M(8);if(16384===(a.node.mode&61440))throw new M(31);if(!a.fa.write)throw new M(28);a.seekable&&
|
|
50
|
+
a.flags&1024&&Nb(a,0,2);var k="undefined"!==typeof f;if(!k)f=a.position;else if(!a.seekable)throw new M(70);b=a.fa.write(a,b,c,d,f,e);k||(a.position+=b);return b},da=(a,b)=>{var c={};c.flags=c.flags||577;a=n(a,c.flags,c.mode);if("string"===typeof b){var d=new Uint8Array(Ea(b)+1);b=D(b,d,0,d.length);Ob(a,d,0,b,c.Ia)}else if(ArrayBuffer.isView(b))Ob(a,b,0,b.byteLength,c.Ia);else throw Error("Unsupported data type");ja(a)},Pb=()=>{M||(M=function(a,b){this.node=b;this.Qa=function(c){this.ha=c};this.Qa(a);
|
|
51
|
+
this.message="FS error"},M.prototype=Error(),M.prototype.constructor=M,[44].forEach(a=>{nb[a]=new M(a);nb[a].stack="<generic error, no stack>"}))},Qb,Ub=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},Wb=(a,b,c)=>{a=L("/dev/"+a);var d=Ub(!!b,!!c);Vb||(Vb=64);var e=Vb++<<8|0;fb(e,{open:f=>{f.seekable=!1},close:()=>{c&&c.buffer&&c.buffer.length&&c(10)},read:(f,k,m,p)=>{for(var q=0,t=0;t<p;t++){try{var v=b()}catch(H){throw new M(29);}if(void 0===v&&0===q)throw new M(6);if(null===v||void 0===v)break;
|
|
52
|
+
q++;k[m+t]=v}q&&(f.node.timestamp=Date.now());return q},write:(f,k,m,p)=>{for(var q=0;q<p;q++)try{c(k[m+q])}catch(t){throw new M(29);}p&&(f.node.timestamp=Date.now());return q}});Gb(a,d,e)},Vb,X={},Cb,Mb,Xb={};
|
|
53
|
+
function Yb(a,b,c){try{var d=a(b)}catch(e){if(e&&e.node&&L(b)!==L(tb(e.node)))return-54;throw e;}I[c>>2]=d.dev;I[c+4>>2]=0;I[c+8>>2]=d.ino;I[c+12>>2]=d.mode;I[c+16>>2]=d.nlink;I[c+20>>2]=d.uid;I[c+24>>2]=d.gid;I[c+28>>2]=d.rdev;I[c+32>>2]=0;Ja[c+40>>3]=BigInt(d.size);I[c+48>>2]=4096;I[c+52>>2]=d.blocks;I[c+56>>2]=d.atime.getTime()/1E3|0;I[c+60>>2]=0;I[c+64>>2]=d.mtime.getTime()/1E3|0;I[c+68>>2]=0;I[c+72>>2]=d.ctime.getTime()/1E3|0;I[c+76>>2]=0;Ja[c+80>>3]=BigInt(d.ino);return 0}var Zb=void 0;
|
|
54
|
+
function Y(){Zb+=4;return I[Zb-4>>2]}function Z(a){a=R[a];if(!a)throw new M(8);return a}function $b(a,b,c){function d(p){return(p=p.toTimeString().match(/\(([A-Za-z ]+)\)$/))?p[1]:"GMT"}var e=(new Date).getFullYear(),f=new Date(e,0,1),k=new Date(e,6,1);e=f.getTimezoneOffset();var m=k.getTimezoneOffset();I[a>>2]=60*Math.max(e,m);I[b>>2]=Number(e!=m);a=d(f);b=d(k);a=Fa(a);b=Fa(b);m<e?(I[c>>2]=a,I[c+4>>2]=b):(I[c>>2]=b,I[c+4>>2]=a)}function ac(a,b,c){ac.Ha||(ac.Ha=!0,$b(a,b,c))}var bc;
|
|
55
|
+
bc=qa?()=>{var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:()=>performance.now();var cc={};function dc(){if(!ec){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",_:oa||"./this.program"},b;for(b in cc)void 0===cc[b]?delete a[b]:a[b]=cc[b];var c=[];for(b in a)c.push(b+"="+a[b]);ec=c}return ec}var ec;
|
|
56
|
+
function wb(a,b,c,d){a||(a=this);this.parent=a;this.ma=a.ma;this.pa=null;this.id=qb++;this.name=b;this.mode=c;this.ea={};this.fa={};this.rdev=d}Object.defineProperties(wb.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}}});Pb();S=Array(4096);Eb(N,"/");V("/tmp");V("/home");V("/home/web_user");
|
|
57
|
+
(()=>{V("/dev");fb(259,{read:()=>0,write:(b,c,d,e)=>e});Gb("/dev/null",259);eb(1280,hb);eb(1536,ib);Gb("/dev/tty",1280);Gb("/dev/tty1",1536);var a=bb();Wb("random",a);Wb("urandom",a);V("/dev/shm");V("/dev/shm/tmp")})();(()=>{V("/proc");var a=V("/proc/self");V("/proc/self/fd");Eb({ma:()=>{var b=mb(a,"fd",16895,73);b.ea={lookup:(c,d)=>{var e=R[+d];if(!e)throw new M(8);c={parent:null,ma:{Fa:"fake"},ea:{readlink:()=>e.path}};return c.parent=c}};return b}},"/proc/self/fd")})();
|
|
58
|
+
var hc={u:function(a,b){try{a=F(a);if(b&-8)var c=-28;else{var d=T(a,{na:!0}).node;d?(a="",b&4&&(a+="r"),b&2&&(a+="w"),b&1&&(a+="x"),c=a&&U(d,a)?-2:0):c=-44}return c}catch(e){if("undefined"===typeof X||!(e instanceof M))throw e;return-e.ha}},K:function(a,b){try{return a=F(a),Jb(a,b),0}catch(c){if("undefined"===typeof X||!(c instanceof M))throw c;return-c.ha}},I:function(a){try{return a=F(a),Kb(a),0}catch(b){if("undefined"===typeof X||!(b instanceof M))throw b;return-b.ha}},i:function(a,b){try{var c=
|
|
59
|
+
R[a];if(!c)throw new M(8);Jb(c.node,b);return 0}catch(d){if("undefined"===typeof X||!(d instanceof M))throw d;return-d.ha}},J:function(a){try{var b=R[a];if(!b)throw new M(8);Kb(b.node);return 0}catch(c){if("undefined"===typeof X||!(c instanceof M))throw c;return-c.ha}},a:function(a,b,c){Zb=c;try{var d=Z(a);switch(b){case 0:var e=Y();return 0>e?-28:n(d.path,d.flags,0,e).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=Y(),d.flags|=e,0;case 5:return e=Y(),Ia[e+0>>1]=2,0;case 6:case 7:return 0;
|
|
60
|
+
case 16:case 8:return-28;case 9:return I[fc()>>2]=28,-1;default:return-28}}catch(f){if("undefined"===typeof X||!(f instanceof M))throw f;return-f.ha}},F:function(a,b){try{var c=Z(a);return Yb(r,c.path,b)}catch(d){if("undefined"===typeof X||!(d instanceof M))throw d;return-d.ha}},B:function(a,b,c,d){try{b=F(b);var e=d&256;d&=4096;var f=b;if("/"===f[0])b=f;else{if(-100===a)var k="/";else{var m=R[a];if(!m)throw new M(8);k=m.path}if(0==f.length){if(!d)throw new M(44);b=k}else b=L(k+"/"+f)}return Yb(e?
|
|
61
|
+
Ib:r,b,c)}catch(p){if("undefined"===typeof X||!(p instanceof M))throw p;return-p.ha}},z:function(a,b){try{var c=R[a];if(!c)throw new M(8);if(0===(c.flags&2097155))throw new M(28);Lb(c.node,b);return 0}catch(d){if("undefined"===typeof X||!(d instanceof M))throw d;return-d.ha}},y:function(a,b){try{if(0===b)return-28;if(b<Ea("/")+1)return-68;D("/",l,a,b);return a}catch(c){if("undefined"===typeof X||!(c instanceof M))throw c;return-c.ha}},v:function(){return 0},H:function(a,b,c){Zb=c;try{var d=Z(a);switch(b){case 21509:case 21505:return d.tty?
|
|
62
|
+
0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return d.tty?0:-59;case 21519:if(!d.tty)return-59;var e=Y();return I[e>>2]=0;case 21520:return d.tty?-28:-59;case 21531:a=e=Y();if(!d.fa.Ja)throw new M(59);return d.fa.Ja(d,b,a);case 21523:return d.tty?0:-59;case 21524:return d.tty?0:-59;default:B("bad ioctl syscall "+b)}}catch(f){if("undefined"===typeof X||!(f instanceof M))throw f;return-f.ha}},C:function(a,b){try{return a=F(a),Yb(Ib,a,b)}catch(c){if("undefined"===typeof X||
|
|
63
|
+
!(c instanceof M))throw c;return-c.ha}},s:function(a,b){try{return a=F(a),a=L(a),"/"===a[a.length-1]&&(a=a.substr(0,a.length-1)),V(a,b),0}catch(c){if("undefined"===typeof X||!(c instanceof M))throw c;return-c.ha}},r:function(a,b,c,d,e,f){try{a:{f<<=12;var k=!1;if(0!==(d&16)&&0!==a%65536)var m=-28;else{if(0!==(d&32)){var p=jb(b);if(!p){m=-48;break a}k=!0}else{var q=R[e];if(!q){m=-8;break a}var t=f;if(0!==(c&2)&&0===(d&2)&&2!==(q.flags&2097155))throw new M(2);if(1===(q.flags&2097155))throw new M(2);
|
|
64
|
+
if(!q.fa.ta)throw new M(43);var v=q.fa.ta(q,a,b,t,c,d);p=v.Oa;k=v.va}Xb[p]={La:p,Ka:b,va:k,fd:e,Na:c,flags:d,offset:f};m=p}}return m}catch(H){if("undefined"===typeof X||!(H instanceof M))throw H;return-H.ha}},q:function(a,b){try{var c=Xb[a];if(0!==b&&c){if(b===c.Ka){var d=R[c.fd];if(d&&c.Na&2){var e=c.flags,f=c.offset,k=l.slice(a,a+b);d&&d.fa.ua&&d.fa.ua(d,k,f,b,e)}Xb[a]=null;c.va&&gc(c.La)}var m=0}else m=-28;return m}catch(p){if("undefined"===typeof X||!(p instanceof M))throw p;return-p.ha}},h:function(a,
|
|
65
|
+
b,c){Zb=c;try{var d=F(a),e=c?Y():0;return n(d,b,e).fd}catch(f){if("undefined"===typeof X||!(f instanceof M))throw f;return-f.ha}},p:function(a,b,c){try{a=F(a);if(0>=c)var d=-28;else{var e=sb(a),f=Math.min(c,Ea(e)),k=E[b+f];D(e,l,b,c+1);E[b+f]=k;d=f}return d}catch(m){if("undefined"===typeof X||!(m instanceof M))throw m;return-m.ha}},o:function(a){try{a=F(a);var b=T(a,{parent:!0}).node,c=ab(a),d=O(b,c),e=Ab(b,c,!0);if(e)throw new M(e);if(!b.ea.rmdir)throw new M(63);if(d.pa)throw new M(10);b.ea.rmdir(b,
|
|
66
|
+
c);vb(d);return 0}catch(f){if("undefined"===typeof X||!(f instanceof M))throw f;return-f.ha}},D:function(a,b){try{return a=F(a),Yb(r,a,b)}catch(c){if("undefined"===typeof X||!(c instanceof M))throw c;return-c.ha}},n:function(a){try{return a=F(a),ka(a),0}catch(b){if("undefined"===typeof X||!(b instanceof M))throw b;return-b.ha}},d:function(){B("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},l:function(){B("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},
|
|
67
|
+
j:function(a,b){a=new Date(1E3*I[a>>2]);I[b>>2]=a.getSeconds();I[b+4>>2]=a.getMinutes();I[b+8>>2]=a.getHours();I[b+12>>2]=a.getDate();I[b+16>>2]=a.getMonth();I[b+20>>2]=a.getFullYear()-1900;I[b+24>>2]=a.getDay();var c=new Date(a.getFullYear(),0,1);I[b+28>>2]=(a.getTime()-c.getTime())/864E5|0;I[b+36>>2]=-(60*a.getTimezoneOffset());var d=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();c=c.getTimezoneOffset();I[b+32>>2]=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0},k:ac,e:bc,G:function(a,b,c){l.copyWithin(a,
|
|
68
|
+
b,b+c)},c:function(a){var b=l.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);d=Math.max(a,d);0<d%65536&&(d+=65536-d%65536);a:{try{xa.grow(Math.min(2147483648,d)-Ha.byteLength+65535>>>16);Ka();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},w:function(a,b){var c=0;dc().forEach(function(d,e){var f=b+c;e=I[a+4*e>>2]=f;for(f=0;f<d.length;++f)E[e++>>0]=d.charCodeAt(f);E[e>>0]=0;c+=d.length+1});return 0},x:function(a,b){var c=dc();I[a>>
|
|
69
|
+
2]=c.length;var d=0;c.forEach(function(e){d+=e.length+1});I[b>>2]=d;return 0},b:function(a){try{var b=Z(a);ja(b);return 0}catch(c){if("undefined"===typeof X||!(c instanceof M))throw c;return c.ha}},m:function(a,b){try{var c=Z(a);E[b>>0]=c.tty?2:16384===(c.mode&61440)?3:40960===(c.mode&61440)?7:4;return 0}catch(d){if("undefined"===typeof X||!(d instanceof M))throw d;return d.ha}},g:function(a,b,c,d){try{a:{for(var e=Z(a),f=a=0;f<c;f++){var k=I[b+(8*f+4)>>2],m=ia(e,E,I[b+8*f>>2],k,void 0);if(0>m){var p=
|
|
70
|
+
-1;break a}a+=m;if(m<k)break}p=a}I[d>>2]=p;return 0}catch(q){if("undefined"===typeof X||!(q instanceof M))throw q;return q.ha}},t:function(a,b,c,d){try{var e=Number(b&BigInt(4294967295))|0,f=Number(b>>BigInt(32))|0,k=Z(a);a=4294967296*f+(e>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;Nb(k,a,c);Ja[d>>3]=BigInt(k.position);k.xa&&0===a&&0===c&&(k.xa=null);return 0}catch(m){if("undefined"===typeof X||!(m instanceof M))throw m;return m.ha}},A:function(a){try{var b=Z(a);return b.fa&&b.fa.fsync?
|
|
71
|
+
-b.fa.fsync(b):0}catch(c){if("undefined"===typeof X||!(c instanceof M))throw c;return c.ha}},f:function(a,b,c,d){try{a:{for(var e=Z(a),f=a=0;f<c;f++){var k=Ob(e,E,I[b+8*f>>2],I[b+(8*f+4)>>2]);if(0>k){var m=-1;break a}a+=k}m=a}I[d>>2]=m;return 0}catch(p){if("undefined"===typeof X||!(p instanceof M))throw p;return p.ha}},E:function(a){var b=Date.now();I[a>>2]=b/1E3|0;I[a+4>>2]=b%1E3*1E3|0;return 0},L:function(a){var b=Date.now()/1E3|0;a&&(I[a>>2]=b);return b},M:function(a,b){if(b){var c=b+8;b=1E3*I[c>>
|
|
72
|
+
2];b+=I[c+4>>2]/1E3}else b=Date.now();a=F(a);try{var d=T(a,{na:!0}).node;d.ea.ja(d,{timestamp:Math.max(b,b)});var e=0}catch(f){if(!(f instanceof M)){b:{e=Error();if(!e.stack){try{throw Error();}catch(k){e=k}if(!e.stack){e="(no stack trace available)";break b}}e=e.stack.toString()}g.extraStackTrace&&(e+="\n"+g.extraStackTrace());e=Ya(e);throw f+" : "+e;}e=f.ha;I[fc()>>2]=e;e=-1}return e}};
|
|
73
|
+
(function(){function a(e){g.asm=e.exports;xa=g.asm.N;Ka();La=g.asm.$;Na.unshift(g.asm.O);J--;g.monitorRunDependencies&&g.monitorRunDependencies(J);0==J&&(null!==Qa&&(clearInterval(Qa),Qa=null),Ra&&(e=Ra,Ra=null,e()))}function b(e){a(e.instance)}function c(e){return Wa().then(function(f){return WebAssembly.instantiate(f,d)}).then(function(f){return f}).then(e,function(f){y("failed to asynchronously prepare wasm: "+f);B(f)})}var d={a:hc};J++;g.monitorRunDependencies&&g.monitorRunDependencies(J);if(g.instantiateWasm)try{return g.instantiateWasm(d,
|
|
74
|
+
a)}catch(e){return y("Module.instantiateWasm callback failed with error: "+e),!1}(function(){return z||"function"!==typeof WebAssembly.instantiateStreaming||Sa()||K.startsWith("file://")||"function"!==typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(f){y("wasm streaming compile failed: "+f);y("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})();
|
|
75
|
+
g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.O).apply(null,arguments)};var fa=g._dbCall=function(){return(fa=g._dbCall=g.asm.P).apply(null,arguments)};g._jsbatonGetString=function(){return(g._jsbatonGetString=g.asm.Q).apply(null,arguments)};var ca=g._sqlite3_malloc=function(){return(ca=g._sqlite3_malloc=g.asm.R).apply(null,arguments)},ha=g._sqlite3_free=function(){return(ha=g._sqlite3_free=g.asm.S).apply(null,arguments)};
|
|
76
|
+
g._dbFileLoadOrSave=function(){return(g._dbFileLoadOrSave=g.asm.T).apply(null,arguments)};var la=g._jsbatonGetInt64=function(){return(la=g._jsbatonGetInt64=g.asm.U).apply(null,arguments)};g._sqlite3_errmsg=function(){return(g._sqlite3_errmsg=g.asm.V).apply(null,arguments)};g._jsbatonGetErrmsg=function(){return(g._jsbatonGetErrmsg=g.asm.W).apply(null,arguments)};
|
|
77
|
+
var ma=g._sqlite3_initialize=function(){return(ma=g._sqlite3_initialize=g.asm.X).apply(null,arguments)},fc=g.___errno_location=function(){return(fc=g.___errno_location=g.asm.Y).apply(null,arguments)},Ga=g._malloc=function(){return(Ga=g._malloc=g.asm.Z).apply(null,arguments)},gc=g._free=function(){return(gc=g._free=g.asm._).apply(null,arguments)},kb=g._memalign=function(){return(kb=g._memalign=g.asm.aa).apply(null,arguments)},Ba=g.stackSave=function(){return(Ba=g.stackSave=g.asm.ba).apply(null,arguments)},
|
|
78
|
+
Ca=g.stackRestore=function(){return(Ca=g.stackRestore=g.asm.ca).apply(null,arguments)},Aa=g.stackAlloc=function(){return(Aa=g.stackAlloc=g.asm.da).apply(null,arguments)};g.cwrap=h;var ic;Ra=function jc(){ic||kc();ic||(Ra=jc)};
|
|
79
|
+
function kc(){function a(){if(!ic&&(ic=!0,g.calledRun=!0,!ya)){g.noFSInit||Qb||(Qb=!0,Pb(),g.stdin=g.stdin,g.stdout=g.stdout,g.stderr=g.stderr,g.stdin?Wb("stdin",g.stdin):Hb("/dev/tty","/dev/stdin"),g.stdout?Wb("stdout",null,g.stdout):Hb("/dev/tty","/dev/stdout"),g.stderr?Wb("stderr",null,g.stderr):Hb("/dev/tty1","/dev/stderr"),n("/dev/stdin",0),n("/dev/stdout",1),n("/dev/stderr",1));rb=!1;Xa(Na);if(g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=
|
|
80
|
+
[g.postRun]);g.postRun.length;){var b=g.postRun.shift();Oa.unshift(b)}Xa(Oa)}}if(!(0<J)){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)Pa();Xa(Ma);0<J||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1);a()},1)):a())}}g.run=kc;if(g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();kc();
|
|
81
|
+
|
|
82
|
+
}());
|
|
83
|
+
/*jslint-enable*/
|
|
Binary file
|
package/test.mjs
CHANGED
|
@@ -1108,30 +1108,20 @@ UPDATE __lgbm_state
|
|
|
1108
1108
|
`);
|
|
1109
1109
|
async function testLgbm(sqlDataXxx, sqlTrainXxx, sqlPredictXxx, sqlIi) {
|
|
1110
1110
|
let db = await dbOpenAsync({});
|
|
1111
|
-
let fileActual = `.tmp/test_lgbm_preb_${sqlIi}.txt`;
|
|
1111
|
+
let fileActual = `.tmp/test_lgbm_preb_${sqlIi}.js.txt`;
|
|
1112
1112
|
await Promise.all([
|
|
1113
|
-
|
|
1113
|
+
[filePreb, "__lgbm_file_preb"],
|
|
1114
|
+
[fileTest, "__lgbm_file_test"],
|
|
1115
|
+
[fileTrain, "__lgbm_file_train"]
|
|
1116
|
+
].map(async function ([filename, tableName]) {
|
|
1117
|
+
await dbTableImportAsync({
|
|
1114
1118
|
db,
|
|
1115
|
-
filename
|
|
1119
|
+
filename,
|
|
1116
1120
|
headerMissing: true,
|
|
1117
1121
|
mode: "tsv",
|
|
1118
|
-
tableName
|
|
1119
|
-
})
|
|
1120
|
-
|
|
1121
|
-
db,
|
|
1122
|
-
filename: fileTest,
|
|
1123
|
-
headerMissing: true,
|
|
1124
|
-
mode: "tsv",
|
|
1125
|
-
tableName: "__lgbm_file_test"
|
|
1126
|
-
}),
|
|
1127
|
-
dbTableImportAsync({
|
|
1128
|
-
db,
|
|
1129
|
-
filename: fileTrain,
|
|
1130
|
-
headerMissing: true,
|
|
1131
|
-
mode: "tsv",
|
|
1132
|
-
tableName: "__lgbm_file_train"
|
|
1133
|
-
})
|
|
1134
|
-
]);
|
|
1122
|
+
tableName
|
|
1123
|
+
});
|
|
1124
|
+
}));
|
|
1135
1125
|
await dbExecAsync({
|
|
1136
1126
|
db,
|
|
1137
1127
|
sql: (`
|
|
@@ -1186,7 +1176,7 @@ SELECT
|
|
|
1186
1176
|
}
|
|
1187
1177
|
await dbFileSaveAsync({
|
|
1188
1178
|
db,
|
|
1189
|
-
filename: `.tmp/test_lgbm_${sqlIi}.sqlite`
|
|
1179
|
+
filename: `.tmp/test_lgbm_${sqlIi}.js.sqlite`
|
|
1190
1180
|
});
|
|
1191
1181
|
assertJsonEqual(
|
|
1192
1182
|
noop(
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|