@dolthub/doltlite-wasm 0.11.26 → 0.11.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/sqlite3-bundler-friendly.mjs +294 -11
- package/sqlite3-node.mjs +294 -11
- package/sqlite3.mjs +294 -11
- package/sqlite3.wasm +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dolthub/doltlite-wasm",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.28",
|
|
4
4
|
"description": "DoltLite compiled to WebAssembly: SQLite with Dolt-style version control (branches, commits, merge, diff) for the browser and any JS runtime.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.mjs",
|
|
@@ -4239,6 +4239,65 @@ async function createWasm() {
|
|
|
4239
4239
|
}
|
|
4240
4240
|
|
|
4241
4241
|
|
|
4242
|
+
function ___syscall_getdents64(fd, dirp, count) {
|
|
4243
|
+
try {
|
|
4244
|
+
|
|
4245
|
+
var stream = SYSCALLS.getStreamFromFD(fd)
|
|
4246
|
+
stream.getdents ||= FS.readdir(stream.path);
|
|
4247
|
+
|
|
4248
|
+
var struct_size = 280;
|
|
4249
|
+
var pos = 0;
|
|
4250
|
+
var off = FS.llseek(stream, 0, 1);
|
|
4251
|
+
|
|
4252
|
+
var startIdx = Math.floor(off / struct_size);
|
|
4253
|
+
var endIdx = Math.min(stream.getdents.length, startIdx + Math.floor(count/struct_size))
|
|
4254
|
+
for (var idx = startIdx; idx < endIdx; idx++) {
|
|
4255
|
+
var id;
|
|
4256
|
+
var type;
|
|
4257
|
+
var name = stream.getdents[idx];
|
|
4258
|
+
if (name === '.') {
|
|
4259
|
+
id = stream.node.id;
|
|
4260
|
+
type = 4; // DT_DIR
|
|
4261
|
+
}
|
|
4262
|
+
else if (name === '..') {
|
|
4263
|
+
var lookup = FS.lookupPath(stream.path, { parent: true });
|
|
4264
|
+
id = lookup.node.id;
|
|
4265
|
+
type = 4; // DT_DIR
|
|
4266
|
+
}
|
|
4267
|
+
else {
|
|
4268
|
+
var child;
|
|
4269
|
+
try {
|
|
4270
|
+
child = FS.lookupNode(stream.node, name);
|
|
4271
|
+
} catch (e) {
|
|
4272
|
+
// If the entry is not a directory, file, or symlink, nodefs
|
|
4273
|
+
// lookupNode will raise EINVAL. Skip these and continue.
|
|
4274
|
+
if (e?.errno === 28) {
|
|
4275
|
+
continue;
|
|
4276
|
+
}
|
|
4277
|
+
throw e;
|
|
4278
|
+
}
|
|
4279
|
+
id = child.id;
|
|
4280
|
+
type = FS.isChrdev(child.mode) ? 2 : // DT_CHR, character device.
|
|
4281
|
+
FS.isDir(child.mode) ? 4 : // DT_DIR, directory.
|
|
4282
|
+
FS.isLink(child.mode) ? 10 : // DT_LNK, symbolic link.
|
|
4283
|
+
8; // DT_REG, regular file.
|
|
4284
|
+
}
|
|
4285
|
+
HEAP64[((dirp + pos)>>3)] = BigInt(id);
|
|
4286
|
+
HEAP64[(((dirp + pos)+(8))>>3)] = BigInt((idx + 1) * struct_size);
|
|
4287
|
+
HEAP16[(((dirp + pos)+(16))>>1)] = 280;
|
|
4288
|
+
HEAP8[(dirp + pos)+(18)] = type;
|
|
4289
|
+
stringToUTF8(name, dirp + pos + 19, 256);
|
|
4290
|
+
pos += struct_size;
|
|
4291
|
+
}
|
|
4292
|
+
FS.llseek(stream, idx * struct_size, 0);
|
|
4293
|
+
return pos;
|
|
4294
|
+
} catch (e) {
|
|
4295
|
+
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
|
|
4296
|
+
return -e.errno;
|
|
4297
|
+
}
|
|
4298
|
+
}
|
|
4299
|
+
|
|
4300
|
+
|
|
4242
4301
|
function ___syscall_ioctl(fd, op, varargs) {
|
|
4243
4302
|
SYSCALLS.varargs = varargs;
|
|
4244
4303
|
try {
|
|
@@ -4411,6 +4470,21 @@ async function createWasm() {
|
|
|
4411
4470
|
}
|
|
4412
4471
|
}
|
|
4413
4472
|
|
|
4473
|
+
function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) {
|
|
4474
|
+
try {
|
|
4475
|
+
|
|
4476
|
+
oldpath = SYSCALLS.getStr(oldpath);
|
|
4477
|
+
newpath = SYSCALLS.getStr(newpath);
|
|
4478
|
+
oldpath = SYSCALLS.calculateAt(olddirfd, oldpath);
|
|
4479
|
+
newpath = SYSCALLS.calculateAt(newdirfd, newpath);
|
|
4480
|
+
FS.rename(oldpath, newpath);
|
|
4481
|
+
return 0;
|
|
4482
|
+
} catch (e) {
|
|
4483
|
+
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
|
|
4484
|
+
return -e.errno;
|
|
4485
|
+
}
|
|
4486
|
+
}
|
|
4487
|
+
|
|
4414
4488
|
function ___syscall_rmdir(path) {
|
|
4415
4489
|
try {
|
|
4416
4490
|
|
|
@@ -4510,15 +4584,6 @@ async function createWasm() {
|
|
|
4510
4584
|
}
|
|
4511
4585
|
}
|
|
4512
4586
|
|
|
4513
|
-
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
var __emscripten_lookup_name = (name) => {
|
|
4517
|
-
// uint32_t _emscripten_lookup_name(const char *name);
|
|
4518
|
-
var nameString = UTF8ToString(name);
|
|
4519
|
-
return inetPton4(DNS.lookup_name(nameString));
|
|
4520
|
-
};
|
|
4521
|
-
|
|
4522
4587
|
function __gmtime_js(time, tmPtr) {
|
|
4523
4588
|
time = bigintToI53Checked(time);
|
|
4524
4589
|
|
|
@@ -5022,6 +5087,219 @@ async function createWasm() {
|
|
|
5022
5087
|
}
|
|
5023
5088
|
|
|
5024
5089
|
|
|
5090
|
+
|
|
5091
|
+
|
|
5092
|
+
|
|
5093
|
+
|
|
5094
|
+
|
|
5095
|
+
|
|
5096
|
+
|
|
5097
|
+
|
|
5098
|
+
|
|
5099
|
+
/** @param {number=} addrlen */
|
|
5100
|
+
var writeSockaddr = (sa, family, addr, port, addrlen) => {
|
|
5101
|
+
switch (family) {
|
|
5102
|
+
case 2:
|
|
5103
|
+
addr = inetPton4(addr);
|
|
5104
|
+
zeroMemory(sa, 16);
|
|
5105
|
+
if (addrlen) {
|
|
5106
|
+
HEAP32[((addrlen)>>2)] = 16;
|
|
5107
|
+
}
|
|
5108
|
+
HEAP16[((sa)>>1)] = family;
|
|
5109
|
+
HEAP32[(((sa)+(4))>>2)] = addr;
|
|
5110
|
+
HEAP16[(((sa)+(2))>>1)] = _htons(port);
|
|
5111
|
+
break;
|
|
5112
|
+
case 10:
|
|
5113
|
+
addr = inetPton6(addr);
|
|
5114
|
+
zeroMemory(sa, 28);
|
|
5115
|
+
if (addrlen) {
|
|
5116
|
+
HEAP32[((addrlen)>>2)] = 28;
|
|
5117
|
+
}
|
|
5118
|
+
HEAP32[((sa)>>2)] = family;
|
|
5119
|
+
HEAP32[(((sa)+(8))>>2)] = addr[0];
|
|
5120
|
+
HEAP32[(((sa)+(12))>>2)] = addr[1];
|
|
5121
|
+
HEAP32[(((sa)+(16))>>2)] = addr[2];
|
|
5122
|
+
HEAP32[(((sa)+(20))>>2)] = addr[3];
|
|
5123
|
+
HEAP16[(((sa)+(2))>>1)] = _htons(port);
|
|
5124
|
+
break;
|
|
5125
|
+
default:
|
|
5126
|
+
return 5;
|
|
5127
|
+
}
|
|
5128
|
+
return 0;
|
|
5129
|
+
};
|
|
5130
|
+
|
|
5131
|
+
|
|
5132
|
+
|
|
5133
|
+
var _getaddrinfo = (node, service, hint, out) => {
|
|
5134
|
+
// Note getaddrinfo currently only returns a single addrinfo with ai_next defaulting to NULL. When NULL
|
|
5135
|
+
// hints are specified or ai_family set to AF_UNSPEC or ai_socktype or ai_protocol set to 0 then we
|
|
5136
|
+
// really should provide a linked list of suitable addrinfo values.
|
|
5137
|
+
var addrs = [];
|
|
5138
|
+
var canon = null;
|
|
5139
|
+
var addr = 0;
|
|
5140
|
+
var port = 0;
|
|
5141
|
+
var flags = 0;
|
|
5142
|
+
var family = 0;
|
|
5143
|
+
var type = 0;
|
|
5144
|
+
var proto = 0;
|
|
5145
|
+
var ai, last;
|
|
5146
|
+
|
|
5147
|
+
function allocaddrinfo(family, type, proto, canon, addr, port) {
|
|
5148
|
+
var sa, salen, ai;
|
|
5149
|
+
var errno;
|
|
5150
|
+
|
|
5151
|
+
salen = family === 10 ?
|
|
5152
|
+
28 :
|
|
5153
|
+
16;
|
|
5154
|
+
addr = family === 10 ?
|
|
5155
|
+
inetNtop6(addr) :
|
|
5156
|
+
inetNtop4(addr);
|
|
5157
|
+
sa = _malloc(salen);
|
|
5158
|
+
errno = writeSockaddr(sa, family, addr, port);
|
|
5159
|
+
assert(!errno);
|
|
5160
|
+
|
|
5161
|
+
ai = _malloc(32);
|
|
5162
|
+
HEAP32[(((ai)+(4))>>2)] = family;
|
|
5163
|
+
HEAP32[(((ai)+(8))>>2)] = type;
|
|
5164
|
+
HEAP32[(((ai)+(12))>>2)] = proto;
|
|
5165
|
+
HEAPU32[(((ai)+(24))>>2)] = canon;
|
|
5166
|
+
HEAPU32[(((ai)+(20))>>2)] = sa;
|
|
5167
|
+
if (family === 10) {
|
|
5168
|
+
HEAP32[(((ai)+(16))>>2)] = 28;
|
|
5169
|
+
} else {
|
|
5170
|
+
HEAP32[(((ai)+(16))>>2)] = 16;
|
|
5171
|
+
}
|
|
5172
|
+
HEAP32[(((ai)+(28))>>2)] = 0;
|
|
5173
|
+
|
|
5174
|
+
return ai;
|
|
5175
|
+
}
|
|
5176
|
+
|
|
5177
|
+
if (hint) {
|
|
5178
|
+
flags = HEAP32[((hint)>>2)];
|
|
5179
|
+
family = HEAP32[(((hint)+(4))>>2)];
|
|
5180
|
+
type = HEAP32[(((hint)+(8))>>2)];
|
|
5181
|
+
proto = HEAP32[(((hint)+(12))>>2)];
|
|
5182
|
+
}
|
|
5183
|
+
if (type && !proto) {
|
|
5184
|
+
proto = type === 2 ? 17 : 6;
|
|
5185
|
+
}
|
|
5186
|
+
if (!type && proto) {
|
|
5187
|
+
type = proto === 17 ? 2 : 1;
|
|
5188
|
+
}
|
|
5189
|
+
|
|
5190
|
+
// If type or proto are set to zero in hints we should really be returning multiple addrinfo values, but for
|
|
5191
|
+
// now default to a TCP STREAM socket so we can at least return a sensible addrinfo given NULL hints.
|
|
5192
|
+
if (proto === 0) {
|
|
5193
|
+
proto = 6;
|
|
5194
|
+
}
|
|
5195
|
+
if (type === 0) {
|
|
5196
|
+
type = 1;
|
|
5197
|
+
}
|
|
5198
|
+
|
|
5199
|
+
if (!node && !service) {
|
|
5200
|
+
return -2;
|
|
5201
|
+
}
|
|
5202
|
+
if (flags & ~(1|2|4|
|
|
5203
|
+
1024|8|16|32)) {
|
|
5204
|
+
return -1;
|
|
5205
|
+
}
|
|
5206
|
+
if (hint !== 0 && (HEAP32[((hint)>>2)] & 2) && !node) {
|
|
5207
|
+
return -1;
|
|
5208
|
+
}
|
|
5209
|
+
if (flags & 32) {
|
|
5210
|
+
// TODO
|
|
5211
|
+
return -2;
|
|
5212
|
+
}
|
|
5213
|
+
if (type !== 0 && type !== 1 && type !== 2) {
|
|
5214
|
+
return -7;
|
|
5215
|
+
}
|
|
5216
|
+
if (family !== 0 && family !== 2 && family !== 10) {
|
|
5217
|
+
return -6;
|
|
5218
|
+
}
|
|
5219
|
+
|
|
5220
|
+
if (service) {
|
|
5221
|
+
service = UTF8ToString(service);
|
|
5222
|
+
port = parseInt(service, 10);
|
|
5223
|
+
|
|
5224
|
+
if (isNaN(port)) {
|
|
5225
|
+
if (flags & 1024) {
|
|
5226
|
+
return -2;
|
|
5227
|
+
}
|
|
5228
|
+
// TODO support resolving well-known service names from:
|
|
5229
|
+
// http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt
|
|
5230
|
+
return -8;
|
|
5231
|
+
}
|
|
5232
|
+
}
|
|
5233
|
+
|
|
5234
|
+
if (!node) {
|
|
5235
|
+
if (family === 0) {
|
|
5236
|
+
family = 2;
|
|
5237
|
+
}
|
|
5238
|
+
if ((flags & 1) === 0) {
|
|
5239
|
+
if (family === 2) {
|
|
5240
|
+
addr = _htonl(2130706433);
|
|
5241
|
+
} else {
|
|
5242
|
+
addr = [0, 0, 0, _htonl(1)];
|
|
5243
|
+
}
|
|
5244
|
+
}
|
|
5245
|
+
ai = allocaddrinfo(family, type, proto, null, addr, port);
|
|
5246
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5247
|
+
return 0;
|
|
5248
|
+
}
|
|
5249
|
+
|
|
5250
|
+
//
|
|
5251
|
+
// try as a numeric address
|
|
5252
|
+
//
|
|
5253
|
+
node = UTF8ToString(node);
|
|
5254
|
+
addr = inetPton4(node);
|
|
5255
|
+
if (addr !== null) {
|
|
5256
|
+
// incoming node is a valid ipv4 address
|
|
5257
|
+
if (family === 0 || family === 2) {
|
|
5258
|
+
family = 2;
|
|
5259
|
+
}
|
|
5260
|
+
else if (family === 10 && (flags & 8)) {
|
|
5261
|
+
addr = [0, 0, _htonl(0xffff), addr];
|
|
5262
|
+
family = 10;
|
|
5263
|
+
} else {
|
|
5264
|
+
return -2;
|
|
5265
|
+
}
|
|
5266
|
+
} else {
|
|
5267
|
+
addr = inetPton6(node);
|
|
5268
|
+
if (addr !== null) {
|
|
5269
|
+
// incoming node is a valid ipv6 address
|
|
5270
|
+
if (family === 0 || family === 10) {
|
|
5271
|
+
family = 10;
|
|
5272
|
+
} else {
|
|
5273
|
+
return -2;
|
|
5274
|
+
}
|
|
5275
|
+
}
|
|
5276
|
+
}
|
|
5277
|
+
if (addr != null) {
|
|
5278
|
+
ai = allocaddrinfo(family, type, proto, node, addr, port);
|
|
5279
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5280
|
+
return 0;
|
|
5281
|
+
}
|
|
5282
|
+
if (flags & 4) {
|
|
5283
|
+
return -2;
|
|
5284
|
+
}
|
|
5285
|
+
|
|
5286
|
+
//
|
|
5287
|
+
// try as a hostname
|
|
5288
|
+
//
|
|
5289
|
+
// resolve the hostname to a temporary fake address
|
|
5290
|
+
node = DNS.lookup_name(node);
|
|
5291
|
+
addr = inetPton4(node);
|
|
5292
|
+
if (family === 0) {
|
|
5293
|
+
family = 2;
|
|
5294
|
+
} else if (family === 10) {
|
|
5295
|
+
addr = [0, 0, _htonl(0xffff), addr];
|
|
5296
|
+
}
|
|
5297
|
+
ai = allocaddrinfo(family, type, proto, null, addr, port);
|
|
5298
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5299
|
+
return 0;
|
|
5300
|
+
};
|
|
5301
|
+
|
|
5302
|
+
|
|
5025
5303
|
var arraySum = (array, index) => {
|
|
5026
5304
|
var sum = 0;
|
|
5027
5305
|
for (var i = 0; i <= index; sum += array[i++]) {
|
|
@@ -5356,6 +5634,8 @@ var wasmImports = {
|
|
|
5356
5634
|
/** @export */
|
|
5357
5635
|
__syscall_getcwd: ___syscall_getcwd,
|
|
5358
5636
|
/** @export */
|
|
5637
|
+
__syscall_getdents64: ___syscall_getdents64,
|
|
5638
|
+
/** @export */
|
|
5359
5639
|
__syscall_ioctl: ___syscall_ioctl,
|
|
5360
5640
|
/** @export */
|
|
5361
5641
|
__syscall_lstat64: ___syscall_lstat64,
|
|
@@ -5368,6 +5648,8 @@ var wasmImports = {
|
|
|
5368
5648
|
/** @export */
|
|
5369
5649
|
__syscall_readlinkat: ___syscall_readlinkat,
|
|
5370
5650
|
/** @export */
|
|
5651
|
+
__syscall_renameat: ___syscall_renameat,
|
|
5652
|
+
/** @export */
|
|
5371
5653
|
__syscall_rmdir: ___syscall_rmdir,
|
|
5372
5654
|
/** @export */
|
|
5373
5655
|
__syscall_socket: ___syscall_socket,
|
|
@@ -5378,8 +5660,6 @@ var wasmImports = {
|
|
|
5378
5660
|
/** @export */
|
|
5379
5661
|
__syscall_utimensat: ___syscall_utimensat,
|
|
5380
5662
|
/** @export */
|
|
5381
|
-
_emscripten_lookup_name: __emscripten_lookup_name,
|
|
5382
|
-
/** @export */
|
|
5383
5663
|
_gmtime_js: __gmtime_js,
|
|
5384
5664
|
/** @export */
|
|
5385
5665
|
_localtime_js: __localtime_js,
|
|
@@ -5420,6 +5700,8 @@ var wasmImports = {
|
|
|
5420
5700
|
/** @export */
|
|
5421
5701
|
fd_write: _fd_write,
|
|
5422
5702
|
/** @export */
|
|
5703
|
+
getaddrinfo: _getaddrinfo,
|
|
5704
|
+
/** @export */
|
|
5423
5705
|
memory: wasmMemory,
|
|
5424
5706
|
/** @export */
|
|
5425
5707
|
strptime: _strptime
|
|
@@ -5679,6 +5961,7 @@ var _sqlite3_preupdate_count = Module['_sqlite3_preupdate_count'] = (a0) => (_sq
|
|
|
5679
5961
|
var _sqlite3_preupdate_depth = Module['_sqlite3_preupdate_depth'] = (a0) => (_sqlite3_preupdate_depth = Module['_sqlite3_preupdate_depth'] = wasmExports['sqlite3_preupdate_depth'])(a0);
|
|
5680
5962
|
var _sqlite3_preupdate_blobwrite = Module['_sqlite3_preupdate_blobwrite'] = (a0) => (_sqlite3_preupdate_blobwrite = Module['_sqlite3_preupdate_blobwrite'] = wasmExports['sqlite3_preupdate_blobwrite'])(a0);
|
|
5681
5963
|
var _sqlite3_preupdate_new = Module['_sqlite3_preupdate_new'] = (a0, a1, a2) => (_sqlite3_preupdate_new = Module['_sqlite3_preupdate_new'] = wasmExports['sqlite3_preupdate_new'])(a0, a1, a2);
|
|
5964
|
+
var _htonl = (a0) => (_htonl = wasmExports['htonl'])(a0);
|
|
5682
5965
|
var _htons = (a0) => (_htons = wasmExports['htons'])(a0);
|
|
5683
5966
|
var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports['emscripten_builtin_memalign'])(a0, a1);
|
|
5684
5967
|
var _ntohs = (a0) => (_ntohs = wasmExports['ntohs'])(a0);
|
package/sqlite3-node.mjs
CHANGED
|
@@ -4355,6 +4355,65 @@ async function createWasm() {
|
|
|
4355
4355
|
}
|
|
4356
4356
|
|
|
4357
4357
|
|
|
4358
|
+
function ___syscall_getdents64(fd, dirp, count) {
|
|
4359
|
+
try {
|
|
4360
|
+
|
|
4361
|
+
var stream = SYSCALLS.getStreamFromFD(fd)
|
|
4362
|
+
stream.getdents ||= FS.readdir(stream.path);
|
|
4363
|
+
|
|
4364
|
+
var struct_size = 280;
|
|
4365
|
+
var pos = 0;
|
|
4366
|
+
var off = FS.llseek(stream, 0, 1);
|
|
4367
|
+
|
|
4368
|
+
var startIdx = Math.floor(off / struct_size);
|
|
4369
|
+
var endIdx = Math.min(stream.getdents.length, startIdx + Math.floor(count/struct_size))
|
|
4370
|
+
for (var idx = startIdx; idx < endIdx; idx++) {
|
|
4371
|
+
var id;
|
|
4372
|
+
var type;
|
|
4373
|
+
var name = stream.getdents[idx];
|
|
4374
|
+
if (name === '.') {
|
|
4375
|
+
id = stream.node.id;
|
|
4376
|
+
type = 4; // DT_DIR
|
|
4377
|
+
}
|
|
4378
|
+
else if (name === '..') {
|
|
4379
|
+
var lookup = FS.lookupPath(stream.path, { parent: true });
|
|
4380
|
+
id = lookup.node.id;
|
|
4381
|
+
type = 4; // DT_DIR
|
|
4382
|
+
}
|
|
4383
|
+
else {
|
|
4384
|
+
var child;
|
|
4385
|
+
try {
|
|
4386
|
+
child = FS.lookupNode(stream.node, name);
|
|
4387
|
+
} catch (e) {
|
|
4388
|
+
// If the entry is not a directory, file, or symlink, nodefs
|
|
4389
|
+
// lookupNode will raise EINVAL. Skip these and continue.
|
|
4390
|
+
if (e?.errno === 28) {
|
|
4391
|
+
continue;
|
|
4392
|
+
}
|
|
4393
|
+
throw e;
|
|
4394
|
+
}
|
|
4395
|
+
id = child.id;
|
|
4396
|
+
type = FS.isChrdev(child.mode) ? 2 : // DT_CHR, character device.
|
|
4397
|
+
FS.isDir(child.mode) ? 4 : // DT_DIR, directory.
|
|
4398
|
+
FS.isLink(child.mode) ? 10 : // DT_LNK, symbolic link.
|
|
4399
|
+
8; // DT_REG, regular file.
|
|
4400
|
+
}
|
|
4401
|
+
HEAP64[((dirp + pos)>>3)] = BigInt(id);
|
|
4402
|
+
HEAP64[(((dirp + pos)+(8))>>3)] = BigInt((idx + 1) * struct_size);
|
|
4403
|
+
HEAP16[(((dirp + pos)+(16))>>1)] = 280;
|
|
4404
|
+
HEAP8[(dirp + pos)+(18)] = type;
|
|
4405
|
+
stringToUTF8(name, dirp + pos + 19, 256);
|
|
4406
|
+
pos += struct_size;
|
|
4407
|
+
}
|
|
4408
|
+
FS.llseek(stream, idx * struct_size, 0);
|
|
4409
|
+
return pos;
|
|
4410
|
+
} catch (e) {
|
|
4411
|
+
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
|
|
4412
|
+
return -e.errno;
|
|
4413
|
+
}
|
|
4414
|
+
}
|
|
4415
|
+
|
|
4416
|
+
|
|
4358
4417
|
function ___syscall_ioctl(fd, op, varargs) {
|
|
4359
4418
|
SYSCALLS.varargs = varargs;
|
|
4360
4419
|
try {
|
|
@@ -4527,6 +4586,21 @@ async function createWasm() {
|
|
|
4527
4586
|
}
|
|
4528
4587
|
}
|
|
4529
4588
|
|
|
4589
|
+
function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) {
|
|
4590
|
+
try {
|
|
4591
|
+
|
|
4592
|
+
oldpath = SYSCALLS.getStr(oldpath);
|
|
4593
|
+
newpath = SYSCALLS.getStr(newpath);
|
|
4594
|
+
oldpath = SYSCALLS.calculateAt(olddirfd, oldpath);
|
|
4595
|
+
newpath = SYSCALLS.calculateAt(newdirfd, newpath);
|
|
4596
|
+
FS.rename(oldpath, newpath);
|
|
4597
|
+
return 0;
|
|
4598
|
+
} catch (e) {
|
|
4599
|
+
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
|
|
4600
|
+
return -e.errno;
|
|
4601
|
+
}
|
|
4602
|
+
}
|
|
4603
|
+
|
|
4530
4604
|
function ___syscall_rmdir(path) {
|
|
4531
4605
|
try {
|
|
4532
4606
|
|
|
@@ -4626,15 +4700,6 @@ async function createWasm() {
|
|
|
4626
4700
|
}
|
|
4627
4701
|
}
|
|
4628
4702
|
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
var __emscripten_lookup_name = (name) => {
|
|
4633
|
-
// uint32_t _emscripten_lookup_name(const char *name);
|
|
4634
|
-
var nameString = UTF8ToString(name);
|
|
4635
|
-
return inetPton4(DNS.lookup_name(nameString));
|
|
4636
|
-
};
|
|
4637
|
-
|
|
4638
4703
|
function __gmtime_js(time, tmPtr) {
|
|
4639
4704
|
time = bigintToI53Checked(time);
|
|
4640
4705
|
|
|
@@ -5138,6 +5203,219 @@ async function createWasm() {
|
|
|
5138
5203
|
}
|
|
5139
5204
|
|
|
5140
5205
|
|
|
5206
|
+
|
|
5207
|
+
|
|
5208
|
+
|
|
5209
|
+
|
|
5210
|
+
|
|
5211
|
+
|
|
5212
|
+
|
|
5213
|
+
|
|
5214
|
+
|
|
5215
|
+
/** @param {number=} addrlen */
|
|
5216
|
+
var writeSockaddr = (sa, family, addr, port, addrlen) => {
|
|
5217
|
+
switch (family) {
|
|
5218
|
+
case 2:
|
|
5219
|
+
addr = inetPton4(addr);
|
|
5220
|
+
zeroMemory(sa, 16);
|
|
5221
|
+
if (addrlen) {
|
|
5222
|
+
HEAP32[((addrlen)>>2)] = 16;
|
|
5223
|
+
}
|
|
5224
|
+
HEAP16[((sa)>>1)] = family;
|
|
5225
|
+
HEAP32[(((sa)+(4))>>2)] = addr;
|
|
5226
|
+
HEAP16[(((sa)+(2))>>1)] = _htons(port);
|
|
5227
|
+
break;
|
|
5228
|
+
case 10:
|
|
5229
|
+
addr = inetPton6(addr);
|
|
5230
|
+
zeroMemory(sa, 28);
|
|
5231
|
+
if (addrlen) {
|
|
5232
|
+
HEAP32[((addrlen)>>2)] = 28;
|
|
5233
|
+
}
|
|
5234
|
+
HEAP32[((sa)>>2)] = family;
|
|
5235
|
+
HEAP32[(((sa)+(8))>>2)] = addr[0];
|
|
5236
|
+
HEAP32[(((sa)+(12))>>2)] = addr[1];
|
|
5237
|
+
HEAP32[(((sa)+(16))>>2)] = addr[2];
|
|
5238
|
+
HEAP32[(((sa)+(20))>>2)] = addr[3];
|
|
5239
|
+
HEAP16[(((sa)+(2))>>1)] = _htons(port);
|
|
5240
|
+
break;
|
|
5241
|
+
default:
|
|
5242
|
+
return 5;
|
|
5243
|
+
}
|
|
5244
|
+
return 0;
|
|
5245
|
+
};
|
|
5246
|
+
|
|
5247
|
+
|
|
5248
|
+
|
|
5249
|
+
var _getaddrinfo = (node, service, hint, out) => {
|
|
5250
|
+
// Note getaddrinfo currently only returns a single addrinfo with ai_next defaulting to NULL. When NULL
|
|
5251
|
+
// hints are specified or ai_family set to AF_UNSPEC or ai_socktype or ai_protocol set to 0 then we
|
|
5252
|
+
// really should provide a linked list of suitable addrinfo values.
|
|
5253
|
+
var addrs = [];
|
|
5254
|
+
var canon = null;
|
|
5255
|
+
var addr = 0;
|
|
5256
|
+
var port = 0;
|
|
5257
|
+
var flags = 0;
|
|
5258
|
+
var family = 0;
|
|
5259
|
+
var type = 0;
|
|
5260
|
+
var proto = 0;
|
|
5261
|
+
var ai, last;
|
|
5262
|
+
|
|
5263
|
+
function allocaddrinfo(family, type, proto, canon, addr, port) {
|
|
5264
|
+
var sa, salen, ai;
|
|
5265
|
+
var errno;
|
|
5266
|
+
|
|
5267
|
+
salen = family === 10 ?
|
|
5268
|
+
28 :
|
|
5269
|
+
16;
|
|
5270
|
+
addr = family === 10 ?
|
|
5271
|
+
inetNtop6(addr) :
|
|
5272
|
+
inetNtop4(addr);
|
|
5273
|
+
sa = _malloc(salen);
|
|
5274
|
+
errno = writeSockaddr(sa, family, addr, port);
|
|
5275
|
+
assert(!errno);
|
|
5276
|
+
|
|
5277
|
+
ai = _malloc(32);
|
|
5278
|
+
HEAP32[(((ai)+(4))>>2)] = family;
|
|
5279
|
+
HEAP32[(((ai)+(8))>>2)] = type;
|
|
5280
|
+
HEAP32[(((ai)+(12))>>2)] = proto;
|
|
5281
|
+
HEAPU32[(((ai)+(24))>>2)] = canon;
|
|
5282
|
+
HEAPU32[(((ai)+(20))>>2)] = sa;
|
|
5283
|
+
if (family === 10) {
|
|
5284
|
+
HEAP32[(((ai)+(16))>>2)] = 28;
|
|
5285
|
+
} else {
|
|
5286
|
+
HEAP32[(((ai)+(16))>>2)] = 16;
|
|
5287
|
+
}
|
|
5288
|
+
HEAP32[(((ai)+(28))>>2)] = 0;
|
|
5289
|
+
|
|
5290
|
+
return ai;
|
|
5291
|
+
}
|
|
5292
|
+
|
|
5293
|
+
if (hint) {
|
|
5294
|
+
flags = HEAP32[((hint)>>2)];
|
|
5295
|
+
family = HEAP32[(((hint)+(4))>>2)];
|
|
5296
|
+
type = HEAP32[(((hint)+(8))>>2)];
|
|
5297
|
+
proto = HEAP32[(((hint)+(12))>>2)];
|
|
5298
|
+
}
|
|
5299
|
+
if (type && !proto) {
|
|
5300
|
+
proto = type === 2 ? 17 : 6;
|
|
5301
|
+
}
|
|
5302
|
+
if (!type && proto) {
|
|
5303
|
+
type = proto === 17 ? 2 : 1;
|
|
5304
|
+
}
|
|
5305
|
+
|
|
5306
|
+
// If type or proto are set to zero in hints we should really be returning multiple addrinfo values, but for
|
|
5307
|
+
// now default to a TCP STREAM socket so we can at least return a sensible addrinfo given NULL hints.
|
|
5308
|
+
if (proto === 0) {
|
|
5309
|
+
proto = 6;
|
|
5310
|
+
}
|
|
5311
|
+
if (type === 0) {
|
|
5312
|
+
type = 1;
|
|
5313
|
+
}
|
|
5314
|
+
|
|
5315
|
+
if (!node && !service) {
|
|
5316
|
+
return -2;
|
|
5317
|
+
}
|
|
5318
|
+
if (flags & ~(1|2|4|
|
|
5319
|
+
1024|8|16|32)) {
|
|
5320
|
+
return -1;
|
|
5321
|
+
}
|
|
5322
|
+
if (hint !== 0 && (HEAP32[((hint)>>2)] & 2) && !node) {
|
|
5323
|
+
return -1;
|
|
5324
|
+
}
|
|
5325
|
+
if (flags & 32) {
|
|
5326
|
+
// TODO
|
|
5327
|
+
return -2;
|
|
5328
|
+
}
|
|
5329
|
+
if (type !== 0 && type !== 1 && type !== 2) {
|
|
5330
|
+
return -7;
|
|
5331
|
+
}
|
|
5332
|
+
if (family !== 0 && family !== 2 && family !== 10) {
|
|
5333
|
+
return -6;
|
|
5334
|
+
}
|
|
5335
|
+
|
|
5336
|
+
if (service) {
|
|
5337
|
+
service = UTF8ToString(service);
|
|
5338
|
+
port = parseInt(service, 10);
|
|
5339
|
+
|
|
5340
|
+
if (isNaN(port)) {
|
|
5341
|
+
if (flags & 1024) {
|
|
5342
|
+
return -2;
|
|
5343
|
+
}
|
|
5344
|
+
// TODO support resolving well-known service names from:
|
|
5345
|
+
// http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt
|
|
5346
|
+
return -8;
|
|
5347
|
+
}
|
|
5348
|
+
}
|
|
5349
|
+
|
|
5350
|
+
if (!node) {
|
|
5351
|
+
if (family === 0) {
|
|
5352
|
+
family = 2;
|
|
5353
|
+
}
|
|
5354
|
+
if ((flags & 1) === 0) {
|
|
5355
|
+
if (family === 2) {
|
|
5356
|
+
addr = _htonl(2130706433);
|
|
5357
|
+
} else {
|
|
5358
|
+
addr = [0, 0, 0, _htonl(1)];
|
|
5359
|
+
}
|
|
5360
|
+
}
|
|
5361
|
+
ai = allocaddrinfo(family, type, proto, null, addr, port);
|
|
5362
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5363
|
+
return 0;
|
|
5364
|
+
}
|
|
5365
|
+
|
|
5366
|
+
//
|
|
5367
|
+
// try as a numeric address
|
|
5368
|
+
//
|
|
5369
|
+
node = UTF8ToString(node);
|
|
5370
|
+
addr = inetPton4(node);
|
|
5371
|
+
if (addr !== null) {
|
|
5372
|
+
// incoming node is a valid ipv4 address
|
|
5373
|
+
if (family === 0 || family === 2) {
|
|
5374
|
+
family = 2;
|
|
5375
|
+
}
|
|
5376
|
+
else if (family === 10 && (flags & 8)) {
|
|
5377
|
+
addr = [0, 0, _htonl(0xffff), addr];
|
|
5378
|
+
family = 10;
|
|
5379
|
+
} else {
|
|
5380
|
+
return -2;
|
|
5381
|
+
}
|
|
5382
|
+
} else {
|
|
5383
|
+
addr = inetPton6(node);
|
|
5384
|
+
if (addr !== null) {
|
|
5385
|
+
// incoming node is a valid ipv6 address
|
|
5386
|
+
if (family === 0 || family === 10) {
|
|
5387
|
+
family = 10;
|
|
5388
|
+
} else {
|
|
5389
|
+
return -2;
|
|
5390
|
+
}
|
|
5391
|
+
}
|
|
5392
|
+
}
|
|
5393
|
+
if (addr != null) {
|
|
5394
|
+
ai = allocaddrinfo(family, type, proto, node, addr, port);
|
|
5395
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5396
|
+
return 0;
|
|
5397
|
+
}
|
|
5398
|
+
if (flags & 4) {
|
|
5399
|
+
return -2;
|
|
5400
|
+
}
|
|
5401
|
+
|
|
5402
|
+
//
|
|
5403
|
+
// try as a hostname
|
|
5404
|
+
//
|
|
5405
|
+
// resolve the hostname to a temporary fake address
|
|
5406
|
+
node = DNS.lookup_name(node);
|
|
5407
|
+
addr = inetPton4(node);
|
|
5408
|
+
if (family === 0) {
|
|
5409
|
+
family = 2;
|
|
5410
|
+
} else if (family === 10) {
|
|
5411
|
+
addr = [0, 0, _htonl(0xffff), addr];
|
|
5412
|
+
}
|
|
5413
|
+
ai = allocaddrinfo(family, type, proto, null, addr, port);
|
|
5414
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5415
|
+
return 0;
|
|
5416
|
+
};
|
|
5417
|
+
|
|
5418
|
+
|
|
5141
5419
|
var arraySum = (array, index) => {
|
|
5142
5420
|
var sum = 0;
|
|
5143
5421
|
for (var i = 0; i <= index; sum += array[i++]) {
|
|
@@ -5472,6 +5750,8 @@ var wasmImports = {
|
|
|
5472
5750
|
/** @export */
|
|
5473
5751
|
__syscall_getcwd: ___syscall_getcwd,
|
|
5474
5752
|
/** @export */
|
|
5753
|
+
__syscall_getdents64: ___syscall_getdents64,
|
|
5754
|
+
/** @export */
|
|
5475
5755
|
__syscall_ioctl: ___syscall_ioctl,
|
|
5476
5756
|
/** @export */
|
|
5477
5757
|
__syscall_lstat64: ___syscall_lstat64,
|
|
@@ -5484,6 +5764,8 @@ var wasmImports = {
|
|
|
5484
5764
|
/** @export */
|
|
5485
5765
|
__syscall_readlinkat: ___syscall_readlinkat,
|
|
5486
5766
|
/** @export */
|
|
5767
|
+
__syscall_renameat: ___syscall_renameat,
|
|
5768
|
+
/** @export */
|
|
5487
5769
|
__syscall_rmdir: ___syscall_rmdir,
|
|
5488
5770
|
/** @export */
|
|
5489
5771
|
__syscall_socket: ___syscall_socket,
|
|
@@ -5494,8 +5776,6 @@ var wasmImports = {
|
|
|
5494
5776
|
/** @export */
|
|
5495
5777
|
__syscall_utimensat: ___syscall_utimensat,
|
|
5496
5778
|
/** @export */
|
|
5497
|
-
_emscripten_lookup_name: __emscripten_lookup_name,
|
|
5498
|
-
/** @export */
|
|
5499
5779
|
_gmtime_js: __gmtime_js,
|
|
5500
5780
|
/** @export */
|
|
5501
5781
|
_localtime_js: __localtime_js,
|
|
@@ -5536,6 +5816,8 @@ var wasmImports = {
|
|
|
5536
5816
|
/** @export */
|
|
5537
5817
|
fd_write: _fd_write,
|
|
5538
5818
|
/** @export */
|
|
5819
|
+
getaddrinfo: _getaddrinfo,
|
|
5820
|
+
/** @export */
|
|
5539
5821
|
memory: wasmMemory,
|
|
5540
5822
|
/** @export */
|
|
5541
5823
|
strptime: _strptime
|
|
@@ -5795,6 +6077,7 @@ var _sqlite3_preupdate_count = Module['_sqlite3_preupdate_count'] = (a0) => (_sq
|
|
|
5795
6077
|
var _sqlite3_preupdate_depth = Module['_sqlite3_preupdate_depth'] = (a0) => (_sqlite3_preupdate_depth = Module['_sqlite3_preupdate_depth'] = wasmExports['sqlite3_preupdate_depth'])(a0);
|
|
5796
6078
|
var _sqlite3_preupdate_blobwrite = Module['_sqlite3_preupdate_blobwrite'] = (a0) => (_sqlite3_preupdate_blobwrite = Module['_sqlite3_preupdate_blobwrite'] = wasmExports['sqlite3_preupdate_blobwrite'])(a0);
|
|
5797
6079
|
var _sqlite3_preupdate_new = Module['_sqlite3_preupdate_new'] = (a0, a1, a2) => (_sqlite3_preupdate_new = Module['_sqlite3_preupdate_new'] = wasmExports['sqlite3_preupdate_new'])(a0, a1, a2);
|
|
6080
|
+
var _htonl = (a0) => (_htonl = wasmExports['htonl'])(a0);
|
|
5798
6081
|
var _htons = (a0) => (_htons = wasmExports['htons'])(a0);
|
|
5799
6082
|
var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports['emscripten_builtin_memalign'])(a0, a1);
|
|
5800
6083
|
var _ntohs = (a0) => (_ntohs = wasmExports['ntohs'])(a0);
|
package/sqlite3.mjs
CHANGED
|
@@ -4330,6 +4330,65 @@ async function createWasm() {
|
|
|
4330
4330
|
}
|
|
4331
4331
|
|
|
4332
4332
|
|
|
4333
|
+
function ___syscall_getdents64(fd, dirp, count) {
|
|
4334
|
+
try {
|
|
4335
|
+
|
|
4336
|
+
var stream = SYSCALLS.getStreamFromFD(fd)
|
|
4337
|
+
stream.getdents ||= FS.readdir(stream.path);
|
|
4338
|
+
|
|
4339
|
+
var struct_size = 280;
|
|
4340
|
+
var pos = 0;
|
|
4341
|
+
var off = FS.llseek(stream, 0, 1);
|
|
4342
|
+
|
|
4343
|
+
var startIdx = Math.floor(off / struct_size);
|
|
4344
|
+
var endIdx = Math.min(stream.getdents.length, startIdx + Math.floor(count/struct_size))
|
|
4345
|
+
for (var idx = startIdx; idx < endIdx; idx++) {
|
|
4346
|
+
var id;
|
|
4347
|
+
var type;
|
|
4348
|
+
var name = stream.getdents[idx];
|
|
4349
|
+
if (name === '.') {
|
|
4350
|
+
id = stream.node.id;
|
|
4351
|
+
type = 4; // DT_DIR
|
|
4352
|
+
}
|
|
4353
|
+
else if (name === '..') {
|
|
4354
|
+
var lookup = FS.lookupPath(stream.path, { parent: true });
|
|
4355
|
+
id = lookup.node.id;
|
|
4356
|
+
type = 4; // DT_DIR
|
|
4357
|
+
}
|
|
4358
|
+
else {
|
|
4359
|
+
var child;
|
|
4360
|
+
try {
|
|
4361
|
+
child = FS.lookupNode(stream.node, name);
|
|
4362
|
+
} catch (e) {
|
|
4363
|
+
// If the entry is not a directory, file, or symlink, nodefs
|
|
4364
|
+
// lookupNode will raise EINVAL. Skip these and continue.
|
|
4365
|
+
if (e?.errno === 28) {
|
|
4366
|
+
continue;
|
|
4367
|
+
}
|
|
4368
|
+
throw e;
|
|
4369
|
+
}
|
|
4370
|
+
id = child.id;
|
|
4371
|
+
type = FS.isChrdev(child.mode) ? 2 : // DT_CHR, character device.
|
|
4372
|
+
FS.isDir(child.mode) ? 4 : // DT_DIR, directory.
|
|
4373
|
+
FS.isLink(child.mode) ? 10 : // DT_LNK, symbolic link.
|
|
4374
|
+
8; // DT_REG, regular file.
|
|
4375
|
+
}
|
|
4376
|
+
HEAP64[((dirp + pos)>>3)] = BigInt(id);
|
|
4377
|
+
HEAP64[(((dirp + pos)+(8))>>3)] = BigInt((idx + 1) * struct_size);
|
|
4378
|
+
HEAP16[(((dirp + pos)+(16))>>1)] = 280;
|
|
4379
|
+
HEAP8[(dirp + pos)+(18)] = type;
|
|
4380
|
+
stringToUTF8(name, dirp + pos + 19, 256);
|
|
4381
|
+
pos += struct_size;
|
|
4382
|
+
}
|
|
4383
|
+
FS.llseek(stream, idx * struct_size, 0);
|
|
4384
|
+
return pos;
|
|
4385
|
+
} catch (e) {
|
|
4386
|
+
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
|
|
4387
|
+
return -e.errno;
|
|
4388
|
+
}
|
|
4389
|
+
}
|
|
4390
|
+
|
|
4391
|
+
|
|
4333
4392
|
function ___syscall_ioctl(fd, op, varargs) {
|
|
4334
4393
|
SYSCALLS.varargs = varargs;
|
|
4335
4394
|
try {
|
|
@@ -4502,6 +4561,21 @@ async function createWasm() {
|
|
|
4502
4561
|
}
|
|
4503
4562
|
}
|
|
4504
4563
|
|
|
4564
|
+
function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) {
|
|
4565
|
+
try {
|
|
4566
|
+
|
|
4567
|
+
oldpath = SYSCALLS.getStr(oldpath);
|
|
4568
|
+
newpath = SYSCALLS.getStr(newpath);
|
|
4569
|
+
oldpath = SYSCALLS.calculateAt(olddirfd, oldpath);
|
|
4570
|
+
newpath = SYSCALLS.calculateAt(newdirfd, newpath);
|
|
4571
|
+
FS.rename(oldpath, newpath);
|
|
4572
|
+
return 0;
|
|
4573
|
+
} catch (e) {
|
|
4574
|
+
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
|
|
4575
|
+
return -e.errno;
|
|
4576
|
+
}
|
|
4577
|
+
}
|
|
4578
|
+
|
|
4505
4579
|
function ___syscall_rmdir(path) {
|
|
4506
4580
|
try {
|
|
4507
4581
|
|
|
@@ -4601,15 +4675,6 @@ async function createWasm() {
|
|
|
4601
4675
|
}
|
|
4602
4676
|
}
|
|
4603
4677
|
|
|
4604
|
-
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
var __emscripten_lookup_name = (name) => {
|
|
4608
|
-
// uint32_t _emscripten_lookup_name(const char *name);
|
|
4609
|
-
var nameString = UTF8ToString(name);
|
|
4610
|
-
return inetPton4(DNS.lookup_name(nameString));
|
|
4611
|
-
};
|
|
4612
|
-
|
|
4613
4678
|
function __gmtime_js(time, tmPtr) {
|
|
4614
4679
|
time = bigintToI53Checked(time);
|
|
4615
4680
|
|
|
@@ -5113,6 +5178,219 @@ async function createWasm() {
|
|
|
5113
5178
|
}
|
|
5114
5179
|
|
|
5115
5180
|
|
|
5181
|
+
|
|
5182
|
+
|
|
5183
|
+
|
|
5184
|
+
|
|
5185
|
+
|
|
5186
|
+
|
|
5187
|
+
|
|
5188
|
+
|
|
5189
|
+
|
|
5190
|
+
/** @param {number=} addrlen */
|
|
5191
|
+
var writeSockaddr = (sa, family, addr, port, addrlen) => {
|
|
5192
|
+
switch (family) {
|
|
5193
|
+
case 2:
|
|
5194
|
+
addr = inetPton4(addr);
|
|
5195
|
+
zeroMemory(sa, 16);
|
|
5196
|
+
if (addrlen) {
|
|
5197
|
+
HEAP32[((addrlen)>>2)] = 16;
|
|
5198
|
+
}
|
|
5199
|
+
HEAP16[((sa)>>1)] = family;
|
|
5200
|
+
HEAP32[(((sa)+(4))>>2)] = addr;
|
|
5201
|
+
HEAP16[(((sa)+(2))>>1)] = _htons(port);
|
|
5202
|
+
break;
|
|
5203
|
+
case 10:
|
|
5204
|
+
addr = inetPton6(addr);
|
|
5205
|
+
zeroMemory(sa, 28);
|
|
5206
|
+
if (addrlen) {
|
|
5207
|
+
HEAP32[((addrlen)>>2)] = 28;
|
|
5208
|
+
}
|
|
5209
|
+
HEAP32[((sa)>>2)] = family;
|
|
5210
|
+
HEAP32[(((sa)+(8))>>2)] = addr[0];
|
|
5211
|
+
HEAP32[(((sa)+(12))>>2)] = addr[1];
|
|
5212
|
+
HEAP32[(((sa)+(16))>>2)] = addr[2];
|
|
5213
|
+
HEAP32[(((sa)+(20))>>2)] = addr[3];
|
|
5214
|
+
HEAP16[(((sa)+(2))>>1)] = _htons(port);
|
|
5215
|
+
break;
|
|
5216
|
+
default:
|
|
5217
|
+
return 5;
|
|
5218
|
+
}
|
|
5219
|
+
return 0;
|
|
5220
|
+
};
|
|
5221
|
+
|
|
5222
|
+
|
|
5223
|
+
|
|
5224
|
+
var _getaddrinfo = (node, service, hint, out) => {
|
|
5225
|
+
// Note getaddrinfo currently only returns a single addrinfo with ai_next defaulting to NULL. When NULL
|
|
5226
|
+
// hints are specified or ai_family set to AF_UNSPEC or ai_socktype or ai_protocol set to 0 then we
|
|
5227
|
+
// really should provide a linked list of suitable addrinfo values.
|
|
5228
|
+
var addrs = [];
|
|
5229
|
+
var canon = null;
|
|
5230
|
+
var addr = 0;
|
|
5231
|
+
var port = 0;
|
|
5232
|
+
var flags = 0;
|
|
5233
|
+
var family = 0;
|
|
5234
|
+
var type = 0;
|
|
5235
|
+
var proto = 0;
|
|
5236
|
+
var ai, last;
|
|
5237
|
+
|
|
5238
|
+
function allocaddrinfo(family, type, proto, canon, addr, port) {
|
|
5239
|
+
var sa, salen, ai;
|
|
5240
|
+
var errno;
|
|
5241
|
+
|
|
5242
|
+
salen = family === 10 ?
|
|
5243
|
+
28 :
|
|
5244
|
+
16;
|
|
5245
|
+
addr = family === 10 ?
|
|
5246
|
+
inetNtop6(addr) :
|
|
5247
|
+
inetNtop4(addr);
|
|
5248
|
+
sa = _malloc(salen);
|
|
5249
|
+
errno = writeSockaddr(sa, family, addr, port);
|
|
5250
|
+
assert(!errno);
|
|
5251
|
+
|
|
5252
|
+
ai = _malloc(32);
|
|
5253
|
+
HEAP32[(((ai)+(4))>>2)] = family;
|
|
5254
|
+
HEAP32[(((ai)+(8))>>2)] = type;
|
|
5255
|
+
HEAP32[(((ai)+(12))>>2)] = proto;
|
|
5256
|
+
HEAPU32[(((ai)+(24))>>2)] = canon;
|
|
5257
|
+
HEAPU32[(((ai)+(20))>>2)] = sa;
|
|
5258
|
+
if (family === 10) {
|
|
5259
|
+
HEAP32[(((ai)+(16))>>2)] = 28;
|
|
5260
|
+
} else {
|
|
5261
|
+
HEAP32[(((ai)+(16))>>2)] = 16;
|
|
5262
|
+
}
|
|
5263
|
+
HEAP32[(((ai)+(28))>>2)] = 0;
|
|
5264
|
+
|
|
5265
|
+
return ai;
|
|
5266
|
+
}
|
|
5267
|
+
|
|
5268
|
+
if (hint) {
|
|
5269
|
+
flags = HEAP32[((hint)>>2)];
|
|
5270
|
+
family = HEAP32[(((hint)+(4))>>2)];
|
|
5271
|
+
type = HEAP32[(((hint)+(8))>>2)];
|
|
5272
|
+
proto = HEAP32[(((hint)+(12))>>2)];
|
|
5273
|
+
}
|
|
5274
|
+
if (type && !proto) {
|
|
5275
|
+
proto = type === 2 ? 17 : 6;
|
|
5276
|
+
}
|
|
5277
|
+
if (!type && proto) {
|
|
5278
|
+
type = proto === 17 ? 2 : 1;
|
|
5279
|
+
}
|
|
5280
|
+
|
|
5281
|
+
// If type or proto are set to zero in hints we should really be returning multiple addrinfo values, but for
|
|
5282
|
+
// now default to a TCP STREAM socket so we can at least return a sensible addrinfo given NULL hints.
|
|
5283
|
+
if (proto === 0) {
|
|
5284
|
+
proto = 6;
|
|
5285
|
+
}
|
|
5286
|
+
if (type === 0) {
|
|
5287
|
+
type = 1;
|
|
5288
|
+
}
|
|
5289
|
+
|
|
5290
|
+
if (!node && !service) {
|
|
5291
|
+
return -2;
|
|
5292
|
+
}
|
|
5293
|
+
if (flags & ~(1|2|4|
|
|
5294
|
+
1024|8|16|32)) {
|
|
5295
|
+
return -1;
|
|
5296
|
+
}
|
|
5297
|
+
if (hint !== 0 && (HEAP32[((hint)>>2)] & 2) && !node) {
|
|
5298
|
+
return -1;
|
|
5299
|
+
}
|
|
5300
|
+
if (flags & 32) {
|
|
5301
|
+
// TODO
|
|
5302
|
+
return -2;
|
|
5303
|
+
}
|
|
5304
|
+
if (type !== 0 && type !== 1 && type !== 2) {
|
|
5305
|
+
return -7;
|
|
5306
|
+
}
|
|
5307
|
+
if (family !== 0 && family !== 2 && family !== 10) {
|
|
5308
|
+
return -6;
|
|
5309
|
+
}
|
|
5310
|
+
|
|
5311
|
+
if (service) {
|
|
5312
|
+
service = UTF8ToString(service);
|
|
5313
|
+
port = parseInt(service, 10);
|
|
5314
|
+
|
|
5315
|
+
if (isNaN(port)) {
|
|
5316
|
+
if (flags & 1024) {
|
|
5317
|
+
return -2;
|
|
5318
|
+
}
|
|
5319
|
+
// TODO support resolving well-known service names from:
|
|
5320
|
+
// http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt
|
|
5321
|
+
return -8;
|
|
5322
|
+
}
|
|
5323
|
+
}
|
|
5324
|
+
|
|
5325
|
+
if (!node) {
|
|
5326
|
+
if (family === 0) {
|
|
5327
|
+
family = 2;
|
|
5328
|
+
}
|
|
5329
|
+
if ((flags & 1) === 0) {
|
|
5330
|
+
if (family === 2) {
|
|
5331
|
+
addr = _htonl(2130706433);
|
|
5332
|
+
} else {
|
|
5333
|
+
addr = [0, 0, 0, _htonl(1)];
|
|
5334
|
+
}
|
|
5335
|
+
}
|
|
5336
|
+
ai = allocaddrinfo(family, type, proto, null, addr, port);
|
|
5337
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5338
|
+
return 0;
|
|
5339
|
+
}
|
|
5340
|
+
|
|
5341
|
+
//
|
|
5342
|
+
// try as a numeric address
|
|
5343
|
+
//
|
|
5344
|
+
node = UTF8ToString(node);
|
|
5345
|
+
addr = inetPton4(node);
|
|
5346
|
+
if (addr !== null) {
|
|
5347
|
+
// incoming node is a valid ipv4 address
|
|
5348
|
+
if (family === 0 || family === 2) {
|
|
5349
|
+
family = 2;
|
|
5350
|
+
}
|
|
5351
|
+
else if (family === 10 && (flags & 8)) {
|
|
5352
|
+
addr = [0, 0, _htonl(0xffff), addr];
|
|
5353
|
+
family = 10;
|
|
5354
|
+
} else {
|
|
5355
|
+
return -2;
|
|
5356
|
+
}
|
|
5357
|
+
} else {
|
|
5358
|
+
addr = inetPton6(node);
|
|
5359
|
+
if (addr !== null) {
|
|
5360
|
+
// incoming node is a valid ipv6 address
|
|
5361
|
+
if (family === 0 || family === 10) {
|
|
5362
|
+
family = 10;
|
|
5363
|
+
} else {
|
|
5364
|
+
return -2;
|
|
5365
|
+
}
|
|
5366
|
+
}
|
|
5367
|
+
}
|
|
5368
|
+
if (addr != null) {
|
|
5369
|
+
ai = allocaddrinfo(family, type, proto, node, addr, port);
|
|
5370
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5371
|
+
return 0;
|
|
5372
|
+
}
|
|
5373
|
+
if (flags & 4) {
|
|
5374
|
+
return -2;
|
|
5375
|
+
}
|
|
5376
|
+
|
|
5377
|
+
//
|
|
5378
|
+
// try as a hostname
|
|
5379
|
+
//
|
|
5380
|
+
// resolve the hostname to a temporary fake address
|
|
5381
|
+
node = DNS.lookup_name(node);
|
|
5382
|
+
addr = inetPton4(node);
|
|
5383
|
+
if (family === 0) {
|
|
5384
|
+
family = 2;
|
|
5385
|
+
} else if (family === 10) {
|
|
5386
|
+
addr = [0, 0, _htonl(0xffff), addr];
|
|
5387
|
+
}
|
|
5388
|
+
ai = allocaddrinfo(family, type, proto, null, addr, port);
|
|
5389
|
+
HEAPU32[((out)>>2)] = ai;
|
|
5390
|
+
return 0;
|
|
5391
|
+
};
|
|
5392
|
+
|
|
5393
|
+
|
|
5116
5394
|
var arraySum = (array, index) => {
|
|
5117
5395
|
var sum = 0;
|
|
5118
5396
|
for (var i = 0; i <= index; sum += array[i++]) {
|
|
@@ -5447,6 +5725,8 @@ var wasmImports = {
|
|
|
5447
5725
|
/** @export */
|
|
5448
5726
|
__syscall_getcwd: ___syscall_getcwd,
|
|
5449
5727
|
/** @export */
|
|
5728
|
+
__syscall_getdents64: ___syscall_getdents64,
|
|
5729
|
+
/** @export */
|
|
5450
5730
|
__syscall_ioctl: ___syscall_ioctl,
|
|
5451
5731
|
/** @export */
|
|
5452
5732
|
__syscall_lstat64: ___syscall_lstat64,
|
|
@@ -5459,6 +5739,8 @@ var wasmImports = {
|
|
|
5459
5739
|
/** @export */
|
|
5460
5740
|
__syscall_readlinkat: ___syscall_readlinkat,
|
|
5461
5741
|
/** @export */
|
|
5742
|
+
__syscall_renameat: ___syscall_renameat,
|
|
5743
|
+
/** @export */
|
|
5462
5744
|
__syscall_rmdir: ___syscall_rmdir,
|
|
5463
5745
|
/** @export */
|
|
5464
5746
|
__syscall_socket: ___syscall_socket,
|
|
@@ -5469,8 +5751,6 @@ var wasmImports = {
|
|
|
5469
5751
|
/** @export */
|
|
5470
5752
|
__syscall_utimensat: ___syscall_utimensat,
|
|
5471
5753
|
/** @export */
|
|
5472
|
-
_emscripten_lookup_name: __emscripten_lookup_name,
|
|
5473
|
-
/** @export */
|
|
5474
5754
|
_gmtime_js: __gmtime_js,
|
|
5475
5755
|
/** @export */
|
|
5476
5756
|
_localtime_js: __localtime_js,
|
|
@@ -5511,6 +5791,8 @@ var wasmImports = {
|
|
|
5511
5791
|
/** @export */
|
|
5512
5792
|
fd_write: _fd_write,
|
|
5513
5793
|
/** @export */
|
|
5794
|
+
getaddrinfo: _getaddrinfo,
|
|
5795
|
+
/** @export */
|
|
5514
5796
|
memory: wasmMemory,
|
|
5515
5797
|
/** @export */
|
|
5516
5798
|
strptime: _strptime
|
|
@@ -5770,6 +6052,7 @@ var _sqlite3_preupdate_count = Module['_sqlite3_preupdate_count'] = (a0) => (_sq
|
|
|
5770
6052
|
var _sqlite3_preupdate_depth = Module['_sqlite3_preupdate_depth'] = (a0) => (_sqlite3_preupdate_depth = Module['_sqlite3_preupdate_depth'] = wasmExports['sqlite3_preupdate_depth'])(a0);
|
|
5771
6053
|
var _sqlite3_preupdate_blobwrite = Module['_sqlite3_preupdate_blobwrite'] = (a0) => (_sqlite3_preupdate_blobwrite = Module['_sqlite3_preupdate_blobwrite'] = wasmExports['sqlite3_preupdate_blobwrite'])(a0);
|
|
5772
6054
|
var _sqlite3_preupdate_new = Module['_sqlite3_preupdate_new'] = (a0, a1, a2) => (_sqlite3_preupdate_new = Module['_sqlite3_preupdate_new'] = wasmExports['sqlite3_preupdate_new'])(a0, a1, a2);
|
|
6055
|
+
var _htonl = (a0) => (_htonl = wasmExports['htonl'])(a0);
|
|
5773
6056
|
var _htons = (a0) => (_htons = wasmExports['htons'])(a0);
|
|
5774
6057
|
var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports['emscripten_builtin_memalign'])(a0, a1);
|
|
5775
6058
|
var _ntohs = (a0) => (_ntohs = wasmExports['ntohs'])(a0);
|
package/sqlite3.wasm
CHANGED
|
Binary file
|