@zh-keyboard/pinyin 1.1.1 → 1.1.2
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/LICENSE +190 -190
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +203 -293
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +196 -285
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -7,13 +7,10 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
7
7
|
if (!Module["expectedDataFileDownloads"]) Module["expectedDataFileDownloads"] = 0;
|
|
8
8
|
Module["expectedDataFileDownloads"]++;
|
|
9
9
|
(() => {
|
|
10
|
-
|
|
11
|
-
var isWasmWorker = typeof ENVIRONMENT_IS_WASM_WORKER != "undefined" && ENVIRONMENT_IS_WASM_WORKER;
|
|
12
|
-
if (isPthread || isWasmWorker) return;
|
|
10
|
+
if (typeof ENVIRONMENT_IS_PTHREAD != "undefined" && ENVIRONMENT_IS_PTHREAD || typeof ENVIRONMENT_IS_WASM_WORKER != "undefined" && ENVIRONMENT_IS_WASM_WORKER) return;
|
|
13
11
|
async function loadPackage(metadata) {
|
|
14
|
-
|
|
15
|
-
if (typeof
|
|
16
|
-
else if (typeof process === "undefined" && typeof location !== "undefined") PACKAGE_PATH = encodeURIComponent(location.pathname.substring(0, location.pathname.lastIndexOf("/")) + "/");
|
|
12
|
+
if (typeof window === "object") window["encodeURIComponent"](window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/")) + "/");
|
|
13
|
+
else if (typeof process === "undefined" && typeof location !== "undefined") encodeURIComponent(location.pathname.substring(0, location.pathname.lastIndexOf("/")) + "/");
|
|
17
14
|
var PACKAGE_NAME = "/home/zzx/work/librime/wasm/dist/rime-api.data";
|
|
18
15
|
var REMOTE_PACKAGE_BASE = "rime-api.data";
|
|
19
16
|
var REMOTE_PACKAGE_NAME = Module["locateFile"] ? Module["locateFile"](REMOTE_PACKAGE_BASE, "") : REMOTE_PACKAGE_BASE;
|
|
@@ -60,31 +57,31 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
60
57
|
var fetchPromise;
|
|
61
58
|
var fetched = Module["getPreloadedPackage"] && Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE);
|
|
62
59
|
if (!fetched) fetchPromise = fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE);
|
|
63
|
-
async function runWithFS(Module
|
|
60
|
+
async function runWithFS(Module) {
|
|
64
61
|
function assert(check, msg) {
|
|
65
62
|
if (!check) throw new Error(msg);
|
|
66
63
|
}
|
|
67
|
-
Module
|
|
68
|
-
Module
|
|
64
|
+
Module["FS_createPath"]("/", "rime", true, true);
|
|
65
|
+
Module["FS_createPath"]("/rime", "opencc", true, true);
|
|
69
66
|
for (var file of metadata["files"]) {
|
|
70
67
|
var name = file["filename"];
|
|
71
|
-
Module
|
|
68
|
+
Module["addRunDependency"](`fp ${name}`);
|
|
72
69
|
}
|
|
73
70
|
async function processPackageData(arrayBuffer) {
|
|
74
71
|
assert(arrayBuffer, "Loading data file failed.");
|
|
75
72
|
assert(arrayBuffer.constructor.name === ArrayBuffer.name, "bad input to processPackageData " + arrayBuffer.constructor.name);
|
|
76
73
|
var byteArray = new Uint8Array(arrayBuffer);
|
|
77
|
-
for (var file
|
|
78
|
-
var name
|
|
79
|
-
var data = byteArray.subarray(file
|
|
80
|
-
Module
|
|
81
|
-
Module
|
|
74
|
+
for (var file of metadata["files"]) {
|
|
75
|
+
var name = file["filename"];
|
|
76
|
+
var data = byteArray.subarray(file["start"], file["end"]);
|
|
77
|
+
Module["FS_createDataFile"](name, null, data, true, true, true);
|
|
78
|
+
Module["removeRunDependency"](`fp ${name}`);
|
|
82
79
|
}
|
|
83
|
-
Module
|
|
80
|
+
Module["removeRunDependency"]("datafile_/home/zzx/work/librime/wasm/dist/rime-api.data");
|
|
84
81
|
}
|
|
85
|
-
Module
|
|
86
|
-
if (!Module
|
|
87
|
-
Module
|
|
82
|
+
Module["addRunDependency"]("datafile_/home/zzx/work/librime/wasm/dist/rime-api.data");
|
|
83
|
+
if (!Module["preloadResults"]) Module["preloadResults"] = {};
|
|
84
|
+
Module["preloadResults"][PACKAGE_NAME] = { fromCache: false };
|
|
88
85
|
if (!fetched) fetched = await fetchPromise;
|
|
89
86
|
processPackageData(fetched);
|
|
90
87
|
}
|
|
@@ -130,7 +127,6 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
130
127
|
remote_package_size: 1027747
|
|
131
128
|
});
|
|
132
129
|
})();
|
|
133
|
-
var arguments_ = [];
|
|
134
130
|
var thisProgram = "./this.program";
|
|
135
131
|
var quit_ = (status, toThrow) => {
|
|
136
132
|
throw toThrow;
|
|
@@ -157,22 +153,20 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
157
153
|
var wasmBinary;
|
|
158
154
|
var ABORT = false;
|
|
159
155
|
var EXITSTATUS;
|
|
160
|
-
var readyPromiseResolve, readyPromiseReject;
|
|
161
|
-
var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
|
|
162
|
-
var HEAP64, HEAPU64;
|
|
156
|
+
var readyPromiseResolve, readyPromiseReject, HEAP8, HEAPU8, HEAP16, HEAP32, HEAPU32, HEAP64;
|
|
163
157
|
var runtimeInitialized = false;
|
|
164
158
|
function updateMemoryViews() {
|
|
165
159
|
var b = wasmMemory.buffer;
|
|
166
160
|
HEAP8 = new Int8Array(b);
|
|
167
161
|
HEAP16 = new Int16Array(b);
|
|
168
162
|
HEAPU8 = new Uint8Array(b);
|
|
169
|
-
|
|
163
|
+
new Uint16Array(b);
|
|
170
164
|
HEAP32 = new Int32Array(b);
|
|
171
165
|
HEAPU32 = new Uint32Array(b);
|
|
172
|
-
|
|
173
|
-
|
|
166
|
+
new Float32Array(b);
|
|
167
|
+
new Float64Array(b);
|
|
174
168
|
HEAP64 = new BigInt64Array(b);
|
|
175
|
-
|
|
169
|
+
new BigUint64Array(b);
|
|
176
170
|
}
|
|
177
171
|
function preRun() {
|
|
178
172
|
if (Module["preRun"]) {
|
|
@@ -226,8 +220,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
226
220
|
async function instantiateArrayBuffer(binaryFile, imports) {
|
|
227
221
|
try {
|
|
228
222
|
var binary = await getWasmBinary(binaryFile);
|
|
229
|
-
|
|
230
|
-
return instance;
|
|
223
|
+
return await WebAssembly.instantiate(binary, imports);
|
|
231
224
|
} catch (reason) {
|
|
232
225
|
err(`failed to asynchronously prepare wasm: ${reason}`);
|
|
233
226
|
abort(reason);
|
|
@@ -236,8 +229,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
236
229
|
async function instantiateAsync(binary, binaryFile, imports) {
|
|
237
230
|
if (!binary) try {
|
|
238
231
|
var response = fetch(binaryFile, { credentials: "same-origin" });
|
|
239
|
-
|
|
240
|
-
return instantiationResult;
|
|
232
|
+
return await WebAssembly.instantiateStreaming(response, imports);
|
|
241
233
|
} catch (reason) {
|
|
242
234
|
err(`wasm streaming compile failed: ${reason}`);
|
|
243
235
|
err("falling back to ArrayBuffer instantiation");
|
|
@@ -245,8 +237,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
245
237
|
return instantiateArrayBuffer(binaryFile, imports);
|
|
246
238
|
}
|
|
247
239
|
function getWasmImports() {
|
|
248
|
-
|
|
249
|
-
return imports;
|
|
240
|
+
return { a: wasmImports };
|
|
250
241
|
}
|
|
251
242
|
async function createWasm() {
|
|
252
243
|
function receiveInstance(instance, module) {
|
|
@@ -256,8 +247,8 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
256
247
|
updateMemoryViews();
|
|
257
248
|
return wasmExports;
|
|
258
249
|
}
|
|
259
|
-
function receiveInstantiationResult(result
|
|
260
|
-
return receiveInstance(result
|
|
250
|
+
function receiveInstantiationResult(result) {
|
|
251
|
+
return receiveInstance(result["instance"]);
|
|
261
252
|
}
|
|
262
253
|
var info = getWasmImports();
|
|
263
254
|
if (Module["instantiateWasm"]) return new Promise((resolve, reject) => {
|
|
@@ -266,9 +257,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
266
257
|
});
|
|
267
258
|
});
|
|
268
259
|
wasmBinaryFile ??= findWasmBinary();
|
|
269
|
-
|
|
270
|
-
var exports = receiveInstantiationResult(result);
|
|
271
|
-
return exports;
|
|
260
|
+
return receiveInstantiationResult(await instantiateAsync(wasmBinary, wasmBinaryFile, info));
|
|
272
261
|
}
|
|
273
262
|
class ExitStatus {
|
|
274
263
|
name = "ExitStatus";
|
|
@@ -288,8 +277,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
288
277
|
var PATH = {
|
|
289
278
|
isAbs: (path) => path.charAt(0) === "/",
|
|
290
279
|
splitPath: (filename) => {
|
|
291
|
-
|
|
292
|
-
return splitPathRe.exec(filename).slice(1);
|
|
280
|
+
return /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(filename).slice(1);
|
|
293
281
|
},
|
|
294
282
|
normalizeArray: (parts, allowAboveRoot) => {
|
|
295
283
|
var up = 0;
|
|
@@ -667,8 +655,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
667
655
|
expandFileStorage(node, newCapacity) {
|
|
668
656
|
var prevCapacity = node.contents ? node.contents.length : 0;
|
|
669
657
|
if (prevCapacity >= newCapacity) return;
|
|
670
|
-
|
|
671
|
-
newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);
|
|
658
|
+
newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < 1024 * 1024 ? 2 : 1.125) >>> 0);
|
|
672
659
|
if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);
|
|
673
660
|
var oldContents = node.contents;
|
|
674
661
|
node.contents = new Uint8Array(newCapacity);
|
|
@@ -745,8 +732,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
745
732
|
parent.ctime = parent.mtime = Date.now();
|
|
746
733
|
},
|
|
747
734
|
rmdir(parent, name) {
|
|
748
|
-
var
|
|
749
|
-
for (var i in node.contents) throw new FS.ErrnoError(55);
|
|
735
|
+
for (var i in FS.lookupNode(parent, name).contents) throw new FS.ErrnoError(55);
|
|
750
736
|
delete parent.contents[name];
|
|
751
737
|
parent.ctime = parent.mtime = Date.now();
|
|
752
738
|
},
|
|
@@ -840,15 +826,14 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
840
826
|
}
|
|
841
827
|
};
|
|
842
828
|
var FS_modeStringToFlags = (str) => {
|
|
843
|
-
var
|
|
829
|
+
var flags = {
|
|
844
830
|
r: 0,
|
|
845
831
|
"r+": 2,
|
|
846
832
|
w: 577,
|
|
847
833
|
"w+": 578,
|
|
848
834
|
a: 1089,
|
|
849
835
|
"a+": 1090
|
|
850
|
-
};
|
|
851
|
-
var flags = flagModes[str];
|
|
836
|
+
}[str];
|
|
852
837
|
if (typeof flags == "undefined") throw new Error(`Unknown file open mode: ${str}`);
|
|
853
838
|
return flags;
|
|
854
839
|
};
|
|
@@ -910,10 +895,10 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
910
895
|
return mnt;
|
|
911
896
|
},
|
|
912
897
|
syncfs: (mount, populate, callback) => {
|
|
913
|
-
IDBFS.getLocalSet(mount, (err
|
|
914
|
-
if (err
|
|
915
|
-
IDBFS.getRemoteSet(mount, (err
|
|
916
|
-
if (err
|
|
898
|
+
IDBFS.getLocalSet(mount, (err, local) => {
|
|
899
|
+
if (err) return callback(err);
|
|
900
|
+
IDBFS.getRemoteSet(mount, (err, remote) => {
|
|
901
|
+
if (err) return callback(err);
|
|
917
902
|
var src = populate ? remote : local;
|
|
918
903
|
var dst = populate ? local : remote;
|
|
919
904
|
IDBFS.reconcile(src, dst, callback);
|
|
@@ -935,11 +920,11 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
935
920
|
}
|
|
936
921
|
if (!req) return callback("Unable to connect to IndexedDB");
|
|
937
922
|
req.onupgradeneeded = (e) => {
|
|
938
|
-
var db
|
|
923
|
+
var db = e.target.result;
|
|
939
924
|
var transaction = e.target.transaction;
|
|
940
925
|
var fileStore;
|
|
941
|
-
if (db
|
|
942
|
-
else fileStore = db
|
|
926
|
+
if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
|
|
927
|
+
else fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
|
|
943
928
|
if (!fileStore.indexNames.contains("timestamp")) fileStore.createIndex("timestamp", "timestamp", { unique: false });
|
|
944
929
|
};
|
|
945
930
|
req.onsuccess = () => {
|
|
@@ -979,16 +964,15 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
979
964
|
},
|
|
980
965
|
getRemoteSet: (mount, callback) => {
|
|
981
966
|
var entries = {};
|
|
982
|
-
IDBFS.getDB(mount.mountpoint, (err
|
|
983
|
-
if (err
|
|
967
|
+
IDBFS.getDB(mount.mountpoint, (err, db) => {
|
|
968
|
+
if (err) return callback(err);
|
|
984
969
|
try {
|
|
985
970
|
var transaction = db.transaction([IDBFS.DB_STORE_NAME], "readonly");
|
|
986
971
|
transaction.onerror = (e) => {
|
|
987
972
|
callback(e.target.error);
|
|
988
973
|
e.preventDefault();
|
|
989
974
|
};
|
|
990
|
-
var
|
|
991
|
-
var index = store.index("timestamp");
|
|
975
|
+
var index = transaction.objectStore(IDBFS.DB_STORE_NAME).index("timestamp");
|
|
992
976
|
index.openKeyCursor().onsuccess = (event) => {
|
|
993
977
|
var cursor = event.target.result;
|
|
994
978
|
if (!cursor) return callback(null, {
|
|
@@ -1007,8 +991,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1007
991
|
loadLocalEntry: (path, callback) => {
|
|
1008
992
|
var stat, node;
|
|
1009
993
|
try {
|
|
1010
|
-
|
|
1011
|
-
node = lookup.node;
|
|
994
|
+
node = FS.lookupPath(path).node;
|
|
1012
995
|
stat = FS.stat(path);
|
|
1013
996
|
} catch (e) {
|
|
1014
997
|
return callback(e);
|
|
@@ -1024,13 +1007,13 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1024
1007
|
mode: stat.mode,
|
|
1025
1008
|
contents: node.contents
|
|
1026
1009
|
});
|
|
1027
|
-
} else return callback(new Error("node type not supported"));
|
|
1010
|
+
} else return callback(/* @__PURE__ */ new Error("node type not supported"));
|
|
1028
1011
|
},
|
|
1029
1012
|
storeLocalEntry: (path, entry, callback) => {
|
|
1030
1013
|
try {
|
|
1031
1014
|
if (FS.isDir(entry["mode"])) FS.mkdirTree(path, entry["mode"]);
|
|
1032
1015
|
else if (FS.isFile(entry["mode"])) FS.writeFile(path, entry["contents"], { canOwn: true });
|
|
1033
|
-
else return callback(new Error("node type not supported"));
|
|
1016
|
+
else return callback(/* @__PURE__ */ new Error("node type not supported"));
|
|
1034
1017
|
FS.chmod(path, entry["mode"]);
|
|
1035
1018
|
FS.utime(path, entry["timestamp"], entry["timestamp"]);
|
|
1036
1019
|
} catch (e) {
|
|
@@ -1094,29 +1077,28 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1094
1077
|
}
|
|
1095
1078
|
if (!total) return callback(null);
|
|
1096
1079
|
var errored = false;
|
|
1097
|
-
var
|
|
1098
|
-
var transaction = db.transaction([IDBFS.DB_STORE_NAME], "readwrite");
|
|
1080
|
+
var transaction = (src.type === "remote" ? src.db : dst.db).transaction([IDBFS.DB_STORE_NAME], "readwrite");
|
|
1099
1081
|
var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
|
|
1100
|
-
function done(err
|
|
1101
|
-
if (err
|
|
1082
|
+
function done(err) {
|
|
1083
|
+
if (err && !errored) {
|
|
1102
1084
|
errored = true;
|
|
1103
|
-
return callback(err
|
|
1085
|
+
return callback(err);
|
|
1104
1086
|
}
|
|
1105
1087
|
}
|
|
1106
|
-
transaction.onerror = transaction.onabort = (e
|
|
1107
|
-
done(e
|
|
1108
|
-
e
|
|
1088
|
+
transaction.onerror = transaction.onabort = (e) => {
|
|
1089
|
+
done(e.target.error);
|
|
1090
|
+
e.preventDefault();
|
|
1109
1091
|
};
|
|
1110
|
-
transaction.oncomplete = (e
|
|
1092
|
+
transaction.oncomplete = (e) => {
|
|
1111
1093
|
if (!errored) callback(null);
|
|
1112
1094
|
};
|
|
1113
|
-
for (const path
|
|
1114
|
-
if (err
|
|
1115
|
-
IDBFS.storeLocalEntry(path
|
|
1095
|
+
for (const path of create.sort()) if (dst.type === "local") IDBFS.loadRemoteEntry(store, path, (err, entry) => {
|
|
1096
|
+
if (err) return done(err);
|
|
1097
|
+
IDBFS.storeLocalEntry(path, entry, done);
|
|
1116
1098
|
});
|
|
1117
|
-
else IDBFS.loadLocalEntry(path
|
|
1118
|
-
if (err
|
|
1119
|
-
IDBFS.storeRemoteEntry(store, path
|
|
1099
|
+
else IDBFS.loadLocalEntry(path, (err, entry) => {
|
|
1100
|
+
if (err) return done(err);
|
|
1101
|
+
IDBFS.storeRemoteEntry(store, path, entry, done);
|
|
1120
1102
|
});
|
|
1121
1103
|
for (var path of remove.sort().reverse()) if (dst.type === "local") IDBFS.removeLocalEntry(path, done);
|
|
1122
1104
|
else IDBFS.removeRemoteEntry(store, path, done);
|
|
@@ -1402,7 +1384,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1402
1384
|
mayCreate(dir, name) {
|
|
1403
1385
|
if (!FS.isDir(dir.mode)) return 54;
|
|
1404
1386
|
try {
|
|
1405
|
-
|
|
1387
|
+
FS.lookupNode(dir, name);
|
|
1406
1388
|
return 20;
|
|
1407
1389
|
} catch (e) {}
|
|
1408
1390
|
return FS.nodePermissions(dir, "wx");
|
|
@@ -1431,8 +1413,8 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1431
1413
|
}
|
|
1432
1414
|
return FS.nodePermissions(node, mode);
|
|
1433
1415
|
},
|
|
1434
|
-
checkOpExists(op, err
|
|
1435
|
-
if (!op) throw new FS.ErrnoError(err
|
|
1416
|
+
checkOpExists(op, err) {
|
|
1417
|
+
if (!op) throw new FS.ErrnoError(err);
|
|
1436
1418
|
return op;
|
|
1437
1419
|
},
|
|
1438
1420
|
MAX_OPEN_FDS: 4096,
|
|
@@ -1470,8 +1452,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1470
1452
|
},
|
|
1471
1453
|
chrdev_stream_ops: {
|
|
1472
1454
|
open(stream) {
|
|
1473
|
-
|
|
1474
|
-
stream.stream_ops = device.stream_ops;
|
|
1455
|
+
stream.stream_ops = FS.getDevice(stream.node.rdev).stream_ops;
|
|
1475
1456
|
stream.stream_ops.open?.(stream);
|
|
1476
1457
|
},
|
|
1477
1458
|
llseek() {
|
|
@@ -1568,8 +1549,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1568
1549
|
return parent.node_ops.lookup(parent, name);
|
|
1569
1550
|
},
|
|
1570
1551
|
mknod(path, mode, dev) {
|
|
1571
|
-
var
|
|
1572
|
-
var parent = lookup.node;
|
|
1552
|
+
var parent = FS.lookupPath(path, { parent: true }).node;
|
|
1573
1553
|
var name = PATH.basename(path);
|
|
1574
1554
|
if (!name) throw new FS.ErrnoError(28);
|
|
1575
1555
|
if (name === "." || name === "..") throw new FS.ErrnoError(20);
|
|
@@ -1634,8 +1614,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1634
1614
|
},
|
|
1635
1615
|
symlink(oldpath, newpath) {
|
|
1636
1616
|
if (!PATH_FS.resolve(oldpath)) throw new FS.ErrnoError(44);
|
|
1637
|
-
var
|
|
1638
|
-
var parent = lookup.node;
|
|
1617
|
+
var parent = FS.lookupPath(newpath, { parent: true }).node;
|
|
1639
1618
|
if (!parent) throw new FS.ErrnoError(44);
|
|
1640
1619
|
var newname = PATH.basename(newpath);
|
|
1641
1620
|
var errCode = FS.mayCreate(parent, newname);
|
|
@@ -1648,9 +1627,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1648
1627
|
var new_dirname = PATH.dirname(new_path);
|
|
1649
1628
|
var old_name = PATH.basename(old_path);
|
|
1650
1629
|
var new_name = PATH.basename(new_path);
|
|
1651
|
-
var lookup, old_dir, new_dir;
|
|
1652
|
-
lookup = FS.lookupPath(old_path, { parent: true });
|
|
1653
|
-
old_dir = lookup.node;
|
|
1630
|
+
var lookup = FS.lookupPath(old_path, { parent: true }), old_dir = lookup.node, new_dir;
|
|
1654
1631
|
lookup = FS.lookupPath(new_path, { parent: true });
|
|
1655
1632
|
new_dir = lookup.node;
|
|
1656
1633
|
if (!old_dir || !new_dir) throw new FS.ErrnoError(44);
|
|
@@ -1687,8 +1664,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1687
1664
|
}
|
|
1688
1665
|
},
|
|
1689
1666
|
rmdir(path) {
|
|
1690
|
-
var
|
|
1691
|
-
var parent = lookup.node;
|
|
1667
|
+
var parent = FS.lookupPath(path, { parent: true }).node;
|
|
1692
1668
|
var name = PATH.basename(path);
|
|
1693
1669
|
var node = FS.lookupNode(parent, name);
|
|
1694
1670
|
var errCode = FS.mayDelete(parent, name, true);
|
|
@@ -1699,14 +1675,11 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1699
1675
|
FS.destroyNode(node);
|
|
1700
1676
|
},
|
|
1701
1677
|
readdir(path) {
|
|
1702
|
-
var
|
|
1703
|
-
|
|
1704
|
-
var readdir = FS.checkOpExists(node.node_ops.readdir, 54);
|
|
1705
|
-
return readdir(node);
|
|
1678
|
+
var node = FS.lookupPath(path, { follow: true }).node;
|
|
1679
|
+
return FS.checkOpExists(node.node_ops.readdir, 54)(node);
|
|
1706
1680
|
},
|
|
1707
1681
|
unlink(path) {
|
|
1708
|
-
var
|
|
1709
|
-
var parent = lookup.node;
|
|
1682
|
+
var parent = FS.lookupPath(path, { parent: true }).node;
|
|
1710
1683
|
if (!parent) throw new FS.ErrnoError(44);
|
|
1711
1684
|
var name = PATH.basename(path);
|
|
1712
1685
|
var node = FS.lookupNode(parent, name);
|
|
@@ -1718,17 +1691,14 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1718
1691
|
FS.destroyNode(node);
|
|
1719
1692
|
},
|
|
1720
1693
|
readlink(path) {
|
|
1721
|
-
var
|
|
1722
|
-
var link = lookup.node;
|
|
1694
|
+
var link = FS.lookupPath(path).node;
|
|
1723
1695
|
if (!link) throw new FS.ErrnoError(44);
|
|
1724
1696
|
if (!link.node_ops.readlink) throw new FS.ErrnoError(28);
|
|
1725
1697
|
return link.node_ops.readlink(link);
|
|
1726
1698
|
},
|
|
1727
1699
|
stat(path, dontFollow) {
|
|
1728
|
-
var
|
|
1729
|
-
|
|
1730
|
-
var getattr = FS.checkOpExists(node.node_ops.getattr, 63);
|
|
1731
|
-
return getattr(node);
|
|
1700
|
+
var node = FS.lookupPath(path, { follow: !dontFollow }).node;
|
|
1701
|
+
return FS.checkOpExists(node.node_ops.getattr, 63)(node);
|
|
1732
1702
|
},
|
|
1733
1703
|
fstat(fd) {
|
|
1734
1704
|
var stream = FS.getStreamChecked(fd);
|
|
@@ -1751,10 +1721,8 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1751
1721
|
},
|
|
1752
1722
|
chmod(path, mode, dontFollow) {
|
|
1753
1723
|
var node;
|
|
1754
|
-
if (typeof path == "string") {
|
|
1755
|
-
|
|
1756
|
-
node = lookup.node;
|
|
1757
|
-
} else node = path;
|
|
1724
|
+
if (typeof path == "string") node = FS.lookupPath(path, { follow: !dontFollow }).node;
|
|
1725
|
+
else node = path;
|
|
1758
1726
|
FS.doChmod(null, node, mode, dontFollow);
|
|
1759
1727
|
},
|
|
1760
1728
|
lchmod(path, mode) {
|
|
@@ -1772,10 +1740,8 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1772
1740
|
},
|
|
1773
1741
|
chown(path, uid, gid, dontFollow) {
|
|
1774
1742
|
var node;
|
|
1775
|
-
if (typeof path == "string") {
|
|
1776
|
-
|
|
1777
|
-
node = lookup.node;
|
|
1778
|
-
} else node = path;
|
|
1743
|
+
if (typeof path == "string") node = FS.lookupPath(path, { follow: !dontFollow }).node;
|
|
1744
|
+
else node = path;
|
|
1779
1745
|
FS.doChown(null, node, dontFollow);
|
|
1780
1746
|
},
|
|
1781
1747
|
lchown(path, uid, gid) {
|
|
@@ -1798,10 +1764,8 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1798
1764
|
truncate(path, len) {
|
|
1799
1765
|
if (len < 0) throw new FS.ErrnoError(28);
|
|
1800
1766
|
var node;
|
|
1801
|
-
if (typeof path == "string") {
|
|
1802
|
-
|
|
1803
|
-
node = lookup.node;
|
|
1804
|
-
} else node = path;
|
|
1767
|
+
if (typeof path == "string") node = FS.lookupPath(path, { follow: true }).node;
|
|
1768
|
+
else node = path;
|
|
1805
1769
|
FS.doTruncate(null, node, len);
|
|
1806
1770
|
},
|
|
1807
1771
|
ftruncate(fd, len) {
|
|
@@ -1810,10 +1774,8 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1810
1774
|
FS.doTruncate(stream, stream.node, len);
|
|
1811
1775
|
},
|
|
1812
1776
|
utime(path, atime, mtime) {
|
|
1813
|
-
var
|
|
1814
|
-
|
|
1815
|
-
var setattr = FS.checkOpExists(node.node_ops.setattr, 63);
|
|
1816
|
-
setattr(node, {
|
|
1777
|
+
var node = FS.lookupPath(path, { follow: true }).node;
|
|
1778
|
+
FS.checkOpExists(node.node_ops.setattr, 63)(node, {
|
|
1817
1779
|
atime,
|
|
1818
1780
|
mtime
|
|
1819
1781
|
});
|
|
@@ -1936,8 +1898,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
1936
1898
|
opts.encoding = opts.encoding || "binary";
|
|
1937
1899
|
if (opts.encoding !== "utf8" && opts.encoding !== "binary") abort(`Invalid encoding type "${opts.encoding}"`);
|
|
1938
1900
|
var stream = FS.open(path, opts.flags);
|
|
1939
|
-
var
|
|
1940
|
-
var length = stat.size;
|
|
1901
|
+
var length = FS.stat(path).size;
|
|
1941
1902
|
var buf = new Uint8Array(length);
|
|
1942
1903
|
FS.read(stream, buf, 0, length, 0);
|
|
1943
1904
|
if (opts.encoding === "utf8") buf = UTF8ArrayToString(buf);
|
|
@@ -2025,9 +1986,9 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2025
1986
|
else FS.symlink("/dev/tty", "/dev/stdout");
|
|
2026
1987
|
if (error) FS.createDevice("/dev", "stderr", null, error);
|
|
2027
1988
|
else FS.symlink("/dev/tty1", "/dev/stderr");
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
1989
|
+
FS.open("/dev/stdin", 0);
|
|
1990
|
+
FS.open("/dev/stdout", 1);
|
|
1991
|
+
FS.open("/dev/stderr", 1);
|
|
2031
1992
|
},
|
|
2032
1993
|
staticInit() {
|
|
2033
1994
|
FS.nameTable = new Array(4096);
|
|
@@ -2186,7 +2147,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2186
2147
|
lengthKnown = false;
|
|
2187
2148
|
chunks = [];
|
|
2188
2149
|
get(idx) {
|
|
2189
|
-
if (idx > this.length - 1 || idx < 0) return
|
|
2150
|
+
if (idx > this.length - 1 || idx < 0) return;
|
|
2190
2151
|
var chunkOffset = idx % this.chunkSize;
|
|
2191
2152
|
var chunkNum = idx / this.chunkSize | 0;
|
|
2192
2153
|
return this.getter(chunkNum)[chunkOffset];
|
|
@@ -2208,24 +2169,24 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2208
2169
|
var doXHR = (from, to) => {
|
|
2209
2170
|
if (from > to) abort("invalid range (" + from + ", " + to + ") or no bytes requested!");
|
|
2210
2171
|
if (to > datalength - 1) abort("only " + datalength + " bytes available! programmer error!");
|
|
2211
|
-
var xhr
|
|
2212
|
-
xhr
|
|
2213
|
-
if (datalength !== chunkSize) xhr
|
|
2214
|
-
xhr
|
|
2215
|
-
if (xhr
|
|
2216
|
-
xhr
|
|
2217
|
-
if (!(xhr
|
|
2218
|
-
if (xhr
|
|
2219
|
-
return intArrayFromString(xhr
|
|
2172
|
+
var xhr = new XMLHttpRequest();
|
|
2173
|
+
xhr.open("GET", url, false);
|
|
2174
|
+
if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
|
|
2175
|
+
xhr.responseType = "arraybuffer";
|
|
2176
|
+
if (xhr.overrideMimeType) xhr.overrideMimeType("text/plain; charset=x-user-defined");
|
|
2177
|
+
xhr.send(null);
|
|
2178
|
+
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status);
|
|
2179
|
+
if (xhr.response !== void 0) return new Uint8Array(xhr.response || []);
|
|
2180
|
+
return intArrayFromString(xhr.responseText || "", true);
|
|
2220
2181
|
};
|
|
2221
|
-
var lazyArray
|
|
2222
|
-
lazyArray
|
|
2182
|
+
var lazyArray = this;
|
|
2183
|
+
lazyArray.setDataGetter((chunkNum) => {
|
|
2223
2184
|
var start = chunkNum * chunkSize;
|
|
2224
2185
|
var end = (chunkNum + 1) * chunkSize - 1;
|
|
2225
2186
|
end = Math.min(end, datalength - 1);
|
|
2226
|
-
if (typeof lazyArray
|
|
2227
|
-
if (typeof lazyArray
|
|
2228
|
-
return lazyArray
|
|
2187
|
+
if (typeof lazyArray.chunks[chunkNum] == "undefined") lazyArray.chunks[chunkNum] = doXHR(start, end);
|
|
2188
|
+
if (typeof lazyArray.chunks[chunkNum] == "undefined") abort("doXHR failed!");
|
|
2189
|
+
return lazyArray.chunks[chunkNum];
|
|
2229
2190
|
});
|
|
2230
2191
|
if (usesGzip || !datalength) {
|
|
2231
2192
|
chunkSize = datalength = 1;
|
|
@@ -2248,10 +2209,9 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2248
2209
|
}
|
|
2249
2210
|
if (globalThis.XMLHttpRequest) {
|
|
2250
2211
|
if (!ENVIRONMENT_IS_WORKER) abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");
|
|
2251
|
-
var lazyArray = new LazyUint8Array();
|
|
2252
2212
|
var properties = {
|
|
2253
2213
|
isDevice: false,
|
|
2254
|
-
contents:
|
|
2214
|
+
contents: new LazyUint8Array()
|
|
2255
2215
|
};
|
|
2256
2216
|
} else var properties = {
|
|
2257
2217
|
isDevice: false,
|
|
@@ -2308,10 +2268,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2308
2268
|
if (PATH.isAbs(path)) return path;
|
|
2309
2269
|
var dir;
|
|
2310
2270
|
if (dirfd === -100) dir = FS.cwd();
|
|
2311
|
-
else
|
|
2312
|
-
var dirstream = SYSCALLS.getStreamFromFD(dirfd);
|
|
2313
|
-
dir = dirstream.path;
|
|
2314
|
-
}
|
|
2271
|
+
else dir = SYSCALLS.getStreamFromFD(dirfd).path;
|
|
2315
2272
|
if (path.length == 0) {
|
|
2316
2273
|
if (!allowEmpty) throw new FS.ErrnoError(44);
|
|
2317
2274
|
return dir;
|
|
@@ -2359,13 +2316,11 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2359
2316
|
FS.msync(stream, buffer, offset, len, flags);
|
|
2360
2317
|
},
|
|
2361
2318
|
getStreamFromFD(fd) {
|
|
2362
|
-
|
|
2363
|
-
return stream;
|
|
2319
|
+
return FS.getStreamChecked(fd);
|
|
2364
2320
|
},
|
|
2365
2321
|
varargs: void 0,
|
|
2366
2322
|
getStr(ptr) {
|
|
2367
|
-
|
|
2368
|
-
return ret;
|
|
2323
|
+
return UTF8ToString(ptr);
|
|
2369
2324
|
}
|
|
2370
2325
|
};
|
|
2371
2326
|
var INT53_MAX = 9007199254740992;
|
|
@@ -2388,8 +2343,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2388
2343
|
path = SYSCALLS.getStr(path);
|
|
2389
2344
|
path = SYSCALLS.calculateAt(dirfd, path);
|
|
2390
2345
|
if (amode & -8) return -28;
|
|
2391
|
-
var
|
|
2392
|
-
var node = lookup.node;
|
|
2346
|
+
var node = FS.lookupPath(path, { follow: true }).node;
|
|
2393
2347
|
if (!node) return -44;
|
|
2394
2348
|
var perms = "";
|
|
2395
2349
|
if (amode & 4) perms += "r";
|
|
@@ -2423,28 +2377,23 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2423
2377
|
try {
|
|
2424
2378
|
var stream = SYSCALLS.getStreamFromFD(fd);
|
|
2425
2379
|
switch (cmd) {
|
|
2426
|
-
case 0:
|
|
2380
|
+
case 0:
|
|
2427
2381
|
var arg = syscallGetVarargI();
|
|
2428
2382
|
if (arg < 0) return -28;
|
|
2429
2383
|
while (FS.streams[arg]) arg++;
|
|
2430
|
-
|
|
2431
|
-
newStream = FS.dupStream(stream, arg);
|
|
2432
|
-
return newStream.fd;
|
|
2433
|
-
}
|
|
2384
|
+
return FS.dupStream(stream, arg).fd;
|
|
2434
2385
|
case 1:
|
|
2435
2386
|
case 2: return 0;
|
|
2436
2387
|
case 3: return stream.flags;
|
|
2437
|
-
case 4:
|
|
2388
|
+
case 4:
|
|
2438
2389
|
var arg = syscallGetVarargI();
|
|
2439
2390
|
stream.flags |= arg;
|
|
2440
2391
|
return 0;
|
|
2441
|
-
|
|
2442
|
-
case 12: {
|
|
2392
|
+
case 12:
|
|
2443
2393
|
var arg = syscallGetVarargP();
|
|
2444
2394
|
var offset = 0;
|
|
2445
2395
|
HEAP16[arg + offset >>> 1 >>> 0] = 2;
|
|
2446
2396
|
return 0;
|
|
2447
|
-
}
|
|
2448
2397
|
case 13:
|
|
2449
2398
|
case 14: return 0;
|
|
2450
2399
|
}
|
|
@@ -2456,7 +2405,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2456
2405
|
}
|
|
2457
2406
|
function ___syscall_fdatasync(fd) {
|
|
2458
2407
|
try {
|
|
2459
|
-
|
|
2408
|
+
SYSCALLS.getStreamFromFD(fd);
|
|
2460
2409
|
return 0;
|
|
2461
2410
|
} catch (e) {
|
|
2462
2411
|
if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
|
|
@@ -2518,8 +2467,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2518
2467
|
id = stream.node.id;
|
|
2519
2468
|
type = 4;
|
|
2520
2469
|
} else if (name === "..") {
|
|
2521
|
-
|
|
2522
|
-
id = lookup.node.id;
|
|
2470
|
+
id = FS.lookupPath(stream.path, { parent: true }).node.id;
|
|
2523
2471
|
type = 4;
|
|
2524
2472
|
} else {
|
|
2525
2473
|
var child;
|
|
@@ -2552,11 +2500,10 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2552
2500
|
try {
|
|
2553
2501
|
var stream = SYSCALLS.getStreamFromFD(fd);
|
|
2554
2502
|
switch (op) {
|
|
2555
|
-
case 21509:
|
|
2503
|
+
case 21509:
|
|
2556
2504
|
if (!stream.tty) return -59;
|
|
2557
2505
|
return 0;
|
|
2558
|
-
|
|
2559
|
-
case 21505: {
|
|
2506
|
+
case 21505:
|
|
2560
2507
|
if (!stream.tty) return -59;
|
|
2561
2508
|
if (stream.tty.ops.ioctl_tcgets) {
|
|
2562
2509
|
var termios = stream.tty.ops.ioctl_tcgets(stream);
|
|
@@ -2569,16 +2516,14 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2569
2516
|
return 0;
|
|
2570
2517
|
}
|
|
2571
2518
|
return 0;
|
|
2572
|
-
}
|
|
2573
2519
|
case 21510:
|
|
2574
2520
|
case 21511:
|
|
2575
|
-
case 21512:
|
|
2521
|
+
case 21512:
|
|
2576
2522
|
if (!stream.tty) return -59;
|
|
2577
2523
|
return 0;
|
|
2578
|
-
}
|
|
2579
2524
|
case 21506:
|
|
2580
2525
|
case 21507:
|
|
2581
|
-
case 21508:
|
|
2526
|
+
case 21508:
|
|
2582
2527
|
if (!stream.tty) return -59;
|
|
2583
2528
|
if (stream.tty.ops.ioctl_tcsets) {
|
|
2584
2529
|
var argp = syscallGetVarargP();
|
|
@@ -2597,23 +2542,19 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2597
2542
|
});
|
|
2598
2543
|
}
|
|
2599
2544
|
return 0;
|
|
2600
|
-
|
|
2601
|
-
case 21519: {
|
|
2545
|
+
case 21519:
|
|
2602
2546
|
if (!stream.tty) return -59;
|
|
2603
2547
|
var argp = syscallGetVarargP();
|
|
2604
2548
|
HEAP32[argp >>> 2 >>> 0] = 0;
|
|
2605
2549
|
return 0;
|
|
2606
|
-
|
|
2607
|
-
case 21520: {
|
|
2550
|
+
case 21520:
|
|
2608
2551
|
if (!stream.tty) return -59;
|
|
2609
2552
|
return -28;
|
|
2610
|
-
}
|
|
2611
2553
|
case 21537:
|
|
2612
|
-
case 21531:
|
|
2554
|
+
case 21531:
|
|
2613
2555
|
var argp = syscallGetVarargP();
|
|
2614
2556
|
return FS.ioctl(stream, op, argp);
|
|
2615
|
-
|
|
2616
|
-
case 21523: {
|
|
2557
|
+
case 21523:
|
|
2617
2558
|
if (!stream.tty) return -59;
|
|
2618
2559
|
if (stream.tty.ops.ioctl_tiocgwinsz) {
|
|
2619
2560
|
var winsize = stream.tty.ops.ioctl_tiocgwinsz(stream.tty);
|
|
@@ -2622,15 +2563,12 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2622
2563
|
HEAP16[argp + 2 >>> 1 >>> 0] = winsize[1];
|
|
2623
2564
|
}
|
|
2624
2565
|
return 0;
|
|
2625
|
-
|
|
2626
|
-
case 21524: {
|
|
2566
|
+
case 21524:
|
|
2627
2567
|
if (!stream.tty) return -59;
|
|
2628
2568
|
return 0;
|
|
2629
|
-
|
|
2630
|
-
case 21515: {
|
|
2569
|
+
case 21515:
|
|
2631
2570
|
if (!stream.tty) return -59;
|
|
2632
2571
|
return 0;
|
|
2633
|
-
}
|
|
2634
2572
|
default: return -28;
|
|
2635
2573
|
}
|
|
2636
2574
|
} catch (e) {
|
|
@@ -2809,15 +2747,12 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2809
2747
|
334
|
|
2810
2748
|
];
|
|
2811
2749
|
var ydayFromDate = (date) => {
|
|
2812
|
-
|
|
2813
|
-
var monthDaysCumulative = leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE;
|
|
2814
|
-
var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1;
|
|
2815
|
-
return yday;
|
|
2750
|
+
return (isLeapYear(date.getFullYear()) ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE)[date.getMonth()] + date.getDate() - 1;
|
|
2816
2751
|
};
|
|
2817
2752
|
function __localtime_js(time, tmPtr) {
|
|
2818
2753
|
time = bigintToI53Checked(time);
|
|
2819
2754
|
tmPtr >>>= 0;
|
|
2820
|
-
var date = new Date(time * 1e3);
|
|
2755
|
+
var date = /* @__PURE__ */ new Date(time * 1e3);
|
|
2821
2756
|
HEAP32[tmPtr >>> 2 >>> 0] = date.getSeconds();
|
|
2822
2757
|
HEAP32[tmPtr + 4 >>> 2 >>> 0] = date.getMinutes();
|
|
2823
2758
|
HEAP32[tmPtr + 8 >>> 2 >>> 0] = date.getHours();
|
|
@@ -2906,12 +2841,11 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2906
2841
|
delete timers[which];
|
|
2907
2842
|
}
|
|
2908
2843
|
if (!timeout_ms) return 0;
|
|
2909
|
-
var id = setTimeout(() => {
|
|
2910
|
-
delete timers[which];
|
|
2911
|
-
callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));
|
|
2912
|
-
}, timeout_ms);
|
|
2913
2844
|
timers[which] = {
|
|
2914
|
-
id
|
|
2845
|
+
id: setTimeout(() => {
|
|
2846
|
+
delete timers[which];
|
|
2847
|
+
callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));
|
|
2848
|
+
}, timeout_ms),
|
|
2915
2849
|
timeout_ms
|
|
2916
2850
|
};
|
|
2917
2851
|
return 0;
|
|
@@ -2921,7 +2855,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2921
2855
|
daylight >>>= 0;
|
|
2922
2856
|
std_name >>>= 0;
|
|
2923
2857
|
dst_name >>>= 0;
|
|
2924
|
-
var currentYear = new Date().getFullYear();
|
|
2858
|
+
var currentYear = (/* @__PURE__ */ new Date()).getFullYear();
|
|
2925
2859
|
var winter = new Date(currentYear, 0, 1);
|
|
2926
2860
|
var summer = new Date(currentYear, 6, 1);
|
|
2927
2861
|
var winterOffset = winter.getTimezoneOffset();
|
|
@@ -2932,9 +2866,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2932
2866
|
var extractZone = (timezoneOffset) => {
|
|
2933
2867
|
var sign = timezoneOffset >= 0 ? "-" : "+";
|
|
2934
2868
|
var absOffset = Math.abs(timezoneOffset);
|
|
2935
|
-
|
|
2936
|
-
var minutes = String(absOffset % 60).padStart(2, "0");
|
|
2937
|
-
return `UTC${sign}${hours}${minutes}`;
|
|
2869
|
+
return `UTC${sign}${String(Math.floor(absOffset / 60)).padStart(2, "0")}${String(absOffset % 60).padStart(2, "0")}`;
|
|
2938
2870
|
};
|
|
2939
2871
|
var winterName = extractZone(winterOffset);
|
|
2940
2872
|
var summerName = extractZone(summerOffset);
|
|
@@ -2963,8 +2895,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2963
2895
|
}
|
|
2964
2896
|
var getHeapMax = () => 4294901760;
|
|
2965
2897
|
var growMemory = (size) => {
|
|
2966
|
-
var
|
|
2967
|
-
var pages = (size - oldHeapSize + 65535) / 65536 | 0;
|
|
2898
|
+
var pages = (size - wasmMemory.buffer.byteLength + 65535) / 65536 | 0;
|
|
2968
2899
|
try {
|
|
2969
2900
|
wasmMemory.grow(pages);
|
|
2970
2901
|
updateMemoryViews();
|
|
@@ -2979,9 +2910,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2979
2910
|
for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
|
|
2980
2911
|
var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
|
|
2981
2912
|
overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
|
|
2982
|
-
|
|
2983
|
-
var replacement = growMemory(newSize);
|
|
2984
|
-
if (replacement) return true;
|
|
2913
|
+
if (growMemory(Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536)))) return true;
|
|
2985
2914
|
}
|
|
2986
2915
|
return false;
|
|
2987
2916
|
}
|
|
@@ -2989,14 +2918,13 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
2989
2918
|
var getExecutableName = () => thisProgram || "./this.program";
|
|
2990
2919
|
var getEnvStrings = () => {
|
|
2991
2920
|
if (!getEnvStrings.strings) {
|
|
2992
|
-
var lang = (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8";
|
|
2993
2921
|
var env = {
|
|
2994
2922
|
USER: "web_user",
|
|
2995
2923
|
LOGNAME: "web_user",
|
|
2996
2924
|
PATH: "/",
|
|
2997
2925
|
PWD: "/",
|
|
2998
2926
|
HOME: "/home/web_user",
|
|
2999
|
-
LANG:
|
|
2927
|
+
LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8",
|
|
3000
2928
|
_: getExecutableName()
|
|
3001
2929
|
};
|
|
3002
2930
|
for (var x in ENV) if (ENV[x] === void 0) delete env[x];
|
|
@@ -3046,10 +2974,8 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3046
2974
|
var rightsBase = 0;
|
|
3047
2975
|
var rightsInheriting = 0;
|
|
3048
2976
|
var flags = 0;
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;
|
|
3052
|
-
}
|
|
2977
|
+
var stream = SYSCALLS.getStreamFromFD(fd);
|
|
2978
|
+
var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;
|
|
3053
2979
|
HEAP8[pbuf >>> 0] = type;
|
|
3054
2980
|
HEAP16[pbuf + 2 >>> 1 >>> 0] = flags;
|
|
3055
2981
|
HEAP64[pbuf + 8 >>> 3 >>> 0] = BigInt(rightsBase);
|
|
@@ -3081,8 +3007,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3081
3007
|
pnum >>>= 0;
|
|
3082
3008
|
try {
|
|
3083
3009
|
if (isNaN(offset)) return 61;
|
|
3084
|
-
var
|
|
3085
|
-
var num = doReadv(stream, iov, iovcnt, offset);
|
|
3010
|
+
var num = doReadv(SYSCALLS.getStreamFromFD(fd), iov, iovcnt, offset);
|
|
3086
3011
|
HEAPU32[pnum >>> 2 >>> 0] = num;
|
|
3087
3012
|
return 0;
|
|
3088
3013
|
} catch (e) {
|
|
@@ -3095,8 +3020,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3095
3020
|
iovcnt >>>= 0;
|
|
3096
3021
|
pnum >>>= 0;
|
|
3097
3022
|
try {
|
|
3098
|
-
var
|
|
3099
|
-
var num = doReadv(stream, iov, iovcnt);
|
|
3023
|
+
var num = doReadv(SYSCALLS.getStreamFromFD(fd), iov, iovcnt);
|
|
3100
3024
|
HEAPU32[pnum >>> 2 >>> 0] = num;
|
|
3101
3025
|
return 0;
|
|
3102
3026
|
} catch (e) {
|
|
@@ -3138,8 +3062,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3138
3062
|
iovcnt >>>= 0;
|
|
3139
3063
|
pnum >>>= 0;
|
|
3140
3064
|
try {
|
|
3141
|
-
var
|
|
3142
|
-
var num = doWritev(stream, iov, iovcnt);
|
|
3065
|
+
var num = doWritev(SYSCALLS.getStreamFromFD(fd), iov, iovcnt);
|
|
3143
3066
|
HEAPU32[pnum >>> 2 >>> 0] = num;
|
|
3144
3067
|
return 0;
|
|
3145
3068
|
} catch (e) {
|
|
@@ -3159,8 +3082,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3159
3082
|
}
|
|
3160
3083
|
}
|
|
3161
3084
|
var getCFunc = (ident) => {
|
|
3162
|
-
|
|
3163
|
-
return func;
|
|
3085
|
+
return Module["_" + ident];
|
|
3164
3086
|
};
|
|
3165
3087
|
var writeArrayToMemory = (array, buffer) => {
|
|
3166
3088
|
HEAP8.set(array, buffer >>> 0);
|
|
@@ -3177,21 +3099,21 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3177
3099
|
var ccall = (ident, returnType, argTypes, args, opts) => {
|
|
3178
3100
|
var toC = {
|
|
3179
3101
|
string: (str) => {
|
|
3180
|
-
var ret
|
|
3181
|
-
if (str !== null && str !== void 0 && str !== 0) ret
|
|
3182
|
-
return ret
|
|
3102
|
+
var ret = 0;
|
|
3103
|
+
if (str !== null && str !== void 0 && str !== 0) ret = stringToUTF8OnStack(str);
|
|
3104
|
+
return ret;
|
|
3183
3105
|
},
|
|
3184
3106
|
array: (arr) => {
|
|
3185
|
-
var ret
|
|
3186
|
-
writeArrayToMemory(arr, ret
|
|
3187
|
-
return ret
|
|
3107
|
+
var ret = stackAlloc(arr.length);
|
|
3108
|
+
writeArrayToMemory(arr, ret);
|
|
3109
|
+
return ret;
|
|
3188
3110
|
}
|
|
3189
3111
|
};
|
|
3190
|
-
function convertReturnValue(ret
|
|
3191
|
-
if (returnType === "string") return UTF8ToString(ret
|
|
3192
|
-
if (returnType === "pointer") return ret
|
|
3193
|
-
if (returnType === "boolean") return Boolean(ret
|
|
3194
|
-
return ret
|
|
3112
|
+
function convertReturnValue(ret) {
|
|
3113
|
+
if (returnType === "string") return UTF8ToString(ret);
|
|
3114
|
+
if (returnType === "pointer") return ret >>> 0;
|
|
3115
|
+
if (returnType === "boolean") return Boolean(ret);
|
|
3116
|
+
return ret;
|
|
3195
3117
|
}
|
|
3196
3118
|
var func = getCFunc(ident);
|
|
3197
3119
|
var cArgs = [];
|
|
@@ -3204,9 +3126,9 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3204
3126
|
} else cArgs[i] = args[i];
|
|
3205
3127
|
}
|
|
3206
3128
|
var ret = func(...cArgs);
|
|
3207
|
-
function onDone(ret
|
|
3129
|
+
function onDone(ret) {
|
|
3208
3130
|
if (stack !== 0) stackRestore(stack);
|
|
3209
|
-
return convertReturnValue(ret
|
|
3131
|
+
return convertReturnValue(ret);
|
|
3210
3132
|
}
|
|
3211
3133
|
ret = onDone(ret);
|
|
3212
3134
|
return ret;
|
|
@@ -3218,18 +3140,16 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3218
3140
|
FS.createPreloadedFile = FS_createPreloadedFile;
|
|
3219
3141
|
FS.preloadFile = FS_preloadFile;
|
|
3220
3142
|
FS.staticInit();
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
if (Module["preInit"])
|
|
3230
|
-
|
|
3231
|
-
while (Module["preInit"].length > 0) Module["preInit"].shift()();
|
|
3232
|
-
}
|
|
3143
|
+
if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
|
|
3144
|
+
if (Module["preloadPlugins"]) preloadPlugins = Module["preloadPlugins"];
|
|
3145
|
+
if (Module["print"]) out = Module["print"];
|
|
3146
|
+
if (Module["printErr"]) err = Module["printErr"];
|
|
3147
|
+
if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
|
|
3148
|
+
if (Module["arguments"]) Module["arguments"];
|
|
3149
|
+
if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
|
|
3150
|
+
if (Module["preInit"]) {
|
|
3151
|
+
if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
|
|
3152
|
+
while (Module["preInit"].length > 0) Module["preInit"].shift()();
|
|
3233
3153
|
}
|
|
3234
3154
|
Module["addRunDependency"] = addRunDependency;
|
|
3235
3155
|
Module["removeRunDependency"] = removeRunDependency;
|
|
@@ -3241,26 +3161,26 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3241
3161
|
Module["FS"] = FS;
|
|
3242
3162
|
Module["FS_createDataFile"] = FS_createDataFile;
|
|
3243
3163
|
Module["FS_createLazyFile"] = FS_createLazyFile;
|
|
3244
|
-
var
|
|
3245
|
-
function assignWasmExports(wasmExports
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
_emscripten_builtin_memalign = wasmExports
|
|
3257
|
-
__emscripten_timeout = wasmExports
|
|
3258
|
-
___trap = wasmExports
|
|
3259
|
-
__emscripten_stack_restore = wasmExports
|
|
3260
|
-
__emscripten_stack_alloc = wasmExports
|
|
3261
|
-
_emscripten_stack_get_current = wasmExports
|
|
3262
|
-
|
|
3263
|
-
|
|
3164
|
+
var _emscripten_builtin_memalign, __emscripten_timeout, ___trap, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, wasmMemory;
|
|
3165
|
+
function assignWasmExports(wasmExports) {
|
|
3166
|
+
Module["_free"] = wasmExports["R"];
|
|
3167
|
+
Module["_malloc"] = wasmExports["S"];
|
|
3168
|
+
Module["_rime_wasm_init"] = wasmExports["T"];
|
|
3169
|
+
Module["_rime_wasm_process_input"] = wasmExports["U"];
|
|
3170
|
+
Module["_rime_wasm_pick_candidate"] = wasmExports["V"];
|
|
3171
|
+
Module["_rime_wasm_flip_page"] = wasmExports["W"];
|
|
3172
|
+
Module["_rime_wasm_clear_input"] = wasmExports["X"];
|
|
3173
|
+
Module["_rime_wasm_set_option"] = wasmExports["Y"];
|
|
3174
|
+
Module["_rime_wasm_get_version"] = wasmExports["Z"];
|
|
3175
|
+
Module["_rime_wasm_destroy"] = wasmExports["_"];
|
|
3176
|
+
_emscripten_builtin_memalign = wasmExports["$"];
|
|
3177
|
+
__emscripten_timeout = wasmExports["aa"];
|
|
3178
|
+
___trap = wasmExports["ba"];
|
|
3179
|
+
__emscripten_stack_restore = wasmExports["ca"];
|
|
3180
|
+
__emscripten_stack_alloc = wasmExports["da"];
|
|
3181
|
+
_emscripten_stack_get_current = wasmExports["ea"];
|
|
3182
|
+
wasmMemory = wasmExports["P"];
|
|
3183
|
+
wasmExports["__indirect_function_table"];
|
|
3264
3184
|
}
|
|
3265
3185
|
var wasmImports = {
|
|
3266
3186
|
r: ___syscall_chmod,
|
|
@@ -3305,16 +3225,16 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3305
3225
|
m: _proc_exit,
|
|
3306
3226
|
p: _random_get
|
|
3307
3227
|
};
|
|
3308
|
-
function applySignatureConversions(wasmExports
|
|
3309
|
-
wasmExports
|
|
3228
|
+
function applySignatureConversions(wasmExports) {
|
|
3229
|
+
wasmExports = Object.assign({}, wasmExports);
|
|
3310
3230
|
var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0;
|
|
3311
3231
|
var makeWrapper_ppp = (f) => (a0, a1) => f(a0, a1) >>> 0;
|
|
3312
3232
|
var makeWrapper_p = (f) => () => f() >>> 0;
|
|
3313
|
-
wasmExports
|
|
3314
|
-
wasmExports
|
|
3315
|
-
wasmExports
|
|
3316
|
-
wasmExports
|
|
3317
|
-
return wasmExports
|
|
3233
|
+
wasmExports["S"] = makeWrapper_pp(wasmExports["S"]);
|
|
3234
|
+
wasmExports["$"] = makeWrapper_ppp(wasmExports["$"]);
|
|
3235
|
+
wasmExports["da"] = makeWrapper_pp(wasmExports["da"]);
|
|
3236
|
+
wasmExports["ea"] = makeWrapper_p(wasmExports["ea"]);
|
|
3237
|
+
return wasmExports;
|
|
3318
3238
|
}
|
|
3319
3239
|
function run() {
|
|
3320
3240
|
if (runDependencies > 0) {
|
|
@@ -3342,8 +3262,7 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3342
3262
|
}, 1);
|
|
3343
3263
|
} else doRun();
|
|
3344
3264
|
}
|
|
3345
|
-
var wasmExports;
|
|
3346
|
-
wasmExports = await createWasm();
|
|
3265
|
+
var wasmExports = await createWasm();
|
|
3347
3266
|
run();
|
|
3348
3267
|
if (runtimeInitialized) moduleRtn = Module;
|
|
3349
3268
|
else moduleRtn = new Promise((resolve, reject) => {
|
|
@@ -3352,8 +3271,6 @@ async function createRimeModule(moduleArg = {}) {
|
|
|
3352
3271
|
});
|
|
3353
3272
|
return moduleRtn;
|
|
3354
3273
|
}
|
|
3355
|
-
var rime_api_default = createRimeModule;
|
|
3356
|
-
|
|
3357
3274
|
//#endregion
|
|
3358
3275
|
//#region src/rime.ts
|
|
3359
3276
|
function syncfs(module, populate) {
|
|
@@ -3366,7 +3283,7 @@ function syncfs(module, populate) {
|
|
|
3366
3283
|
}
|
|
3367
3284
|
async function createRimeEngine(options = {}) {
|
|
3368
3285
|
const wasmDir = options.wasmDir ?? ".";
|
|
3369
|
-
const Module = await
|
|
3286
|
+
const Module = await createRimeModule({ locateFile(file) {
|
|
3370
3287
|
return `${wasmDir}/${file}`;
|
|
3371
3288
|
} });
|
|
3372
3289
|
try {
|
|
@@ -3403,7 +3320,7 @@ async function createRimeEngine(options = {}) {
|
|
|
3403
3320
|
const json = Module.ccall(fn, "string", argTypes, args);
|
|
3404
3321
|
return JSON.parse(json);
|
|
3405
3322
|
}
|
|
3406
|
-
|
|
3323
|
+
return {
|
|
3407
3324
|
processInput(keys) {
|
|
3408
3325
|
return callJson("rime_wasm_process_input", ["string"], [keys]);
|
|
3409
3326
|
},
|
|
@@ -3434,9 +3351,7 @@ async function createRimeEngine(options = {}) {
|
|
|
3434
3351
|
syncfs(Module, false).catch(() => {});
|
|
3435
3352
|
}
|
|
3436
3353
|
};
|
|
3437
|
-
return engine;
|
|
3438
3354
|
}
|
|
3439
|
-
|
|
3440
3355
|
//#endregion
|
|
3441
3356
|
//#region src/index.ts
|
|
3442
3357
|
/**
|
|
@@ -3482,23 +3397,19 @@ var RimePinyinEngine = class {
|
|
|
3482
3397
|
return state;
|
|
3483
3398
|
}
|
|
3484
3399
|
async pickCandidate(index) {
|
|
3485
|
-
|
|
3486
|
-
return engine.pickCandidate(index);
|
|
3400
|
+
return (await this.getEngine()).pickCandidate(index);
|
|
3487
3401
|
}
|
|
3488
3402
|
async clearInput() {
|
|
3489
|
-
|
|
3490
|
-
return engine.clearInput();
|
|
3403
|
+
return (await this.getEngine()).clearInput();
|
|
3491
3404
|
}
|
|
3492
3405
|
async setSimplified(simplified) {
|
|
3493
|
-
|
|
3494
|
-
return engine.setOption("zh_simp", simplified);
|
|
3406
|
+
return (await this.getEngine()).setOption("zh_simp", simplified);
|
|
3495
3407
|
}
|
|
3496
3408
|
async destroy() {
|
|
3497
|
-
|
|
3498
|
-
return engine.destroy();
|
|
3409
|
+
return (await this.getEngine()).destroy();
|
|
3499
3410
|
}
|
|
3500
3411
|
};
|
|
3501
|
-
|
|
3502
3412
|
//#endregion
|
|
3503
3413
|
export { RimePinyinEngine };
|
|
3414
|
+
|
|
3504
3415
|
//# sourceMappingURL=index.mjs.map
|