@ai-ecoverse/wasm-zip 3.0.0-5 → 3.0.0-7
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/README.md +4 -0
- package/bin/unzip +19 -1
- package/bin/unzip.wasm +0 -0
- package/bin/zip +18 -0
- package/bin/zip.wasm +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,6 +13,10 @@ unzip -l out.zip
|
|
|
13
13
|
command, so it needs one (`@ai-ecoverse/wasm-bash`).
|
|
14
14
|
- Non-ASCII names are UTF-8. `zip` sets the UTF-8 flag on them, and `unzip`
|
|
15
15
|
shows them and reads Info-ZIP's Unicode path field.
|
|
16
|
+
- The realm's file names are UTF-8. An entry whose name isn't (an old
|
|
17
|
+
Latin-1 or CP437 archive without a Unicode path) is not extracted under a
|
|
18
|
+
changed name: `unzip` says `cannot create <name>` / `Illegal byte sequence`
|
|
19
|
+
and exits 50. `unzip -p` still streams its bytes.
|
|
16
20
|
- `zip - … > file` and `zip - … | …` write valid archives, and `zip -s 0`
|
|
17
21
|
merges split archives (`zip -s 1m`) back with every byte.
|
|
18
22
|
- `zipinfo` is unzip's zipinfo mode, the same as `unzip -Z`.
|
package/bin/unzip
CHANGED
|
@@ -4557,6 +4557,20 @@ async function createWasm() {
|
|
|
4557
4557
|
var FS_createDevice = (...args) => FS.createDevice(...args);
|
|
4558
4558
|
|
|
4559
4559
|
|
|
4560
|
+
{
|
|
4561
|
+
const lenient = SYSCALLS.getStr;
|
|
4562
|
+
const strict = new TextDecoder('utf-8', { fatal: true });
|
|
4563
|
+
SYSCALLS.getStr = (ptr) => {
|
|
4564
|
+
let end = ptr;
|
|
4565
|
+
while (HEAPU8[end]) end++;
|
|
4566
|
+
try {
|
|
4567
|
+
strict.decode(HEAPU8.subarray(ptr, end));
|
|
4568
|
+
} catch {
|
|
4569
|
+
throw new FS.ErrnoError(25);
|
|
4570
|
+
}
|
|
4571
|
+
return lenient(ptr);
|
|
4572
|
+
};
|
|
4573
|
+
};
|
|
4560
4574
|
|
|
4561
4575
|
FS.createPreloadedFile = FS_createPreloadedFile;
|
|
4562
4576
|
FS.preloadFile = FS_preloadFile;
|
|
@@ -5026,8 +5040,10 @@ function checkIncomingModuleAPI() {
|
|
|
5026
5040
|
function slicc_sleep_ms(ms) { if (typeof SharedArrayBuffer === 'function' && typeof Atomics === 'object') { Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms); return; } const end = Date.now() + ms; while (Date.now() < end) {} }
|
|
5027
5041
|
function slicc_default_getpid_js() { return (Module.sliccPid | 0) || 42; }
|
|
5028
5042
|
function slicc_default_getppid_js() { return (Module.sliccPpid | 0) || 1; }
|
|
5043
|
+
function __syscall_flock(fd,op) { return 0; }
|
|
5029
5044
|
function slicc_kill_js(pid,sig) { if (Module.sliccKernel && Module.sliccKernel.kill) return Module.sliccKernel.kill(pid, sig); return 1; }
|
|
5030
5045
|
function slicc_pause_js() { if (Module.sliccKernel && Module.sliccKernel.pause) return Module.sliccKernel.pause(); return -52; }
|
|
5046
|
+
function slicc_sig_inherited_js() { try { if (Module.sliccKernel && typeof Module.sliccKernel.sigInherited === 'function') return Module.sliccKernel.sigInherited() | 0; } catch (e) { } return 0; }
|
|
5031
5047
|
function slicc_cred_js(out) { const k = Module.sliccKernel; if (!k || !k.cred) return -52; const c = k.cred(); if (typeof c === 'number') return c; ['ruid', 'euid', 'suid', 'rgid', 'egid', 'sgid'].forEach((key, i) => { HEAPU32[(out >> 2) + i] = c[key] >>> 0; }); return 0; }
|
|
5032
5048
|
function slicc_groups_js(list,cap) { const k = Module.sliccKernel; if (!k || !k.cred) return -52; const c = k.cred(); if (typeof c === 'number') return c; if (cap === 0) return c.groups.length; if (cap < c.groups.length) return -28; c.groups.forEach((g, i) => { HEAPU32[(list >> 2) + i] = g >>> 0; }); return c.groups.length; }
|
|
5033
5049
|
function slicc_setcred_js(ruid,euid,suid,rgid,egid,sgid) { const k = Module.sliccKernel; if (!k || !k.setcred) return -52; const change = {}; const ids = { ruid, euid, suid, rgid, egid, sgid }; for (const key in ids) if (ids[key] !== -1) change[key] = ids[key] >>> 0; const r = k.setcred(change); return typeof r === 'number' ? r : 0; }
|
|
@@ -5165,7 +5181,9 @@ var wasmImports = {
|
|
|
5165
5181
|
/** @export */
|
|
5166
5182
|
slicc_kill_js,
|
|
5167
5183
|
/** @export */
|
|
5168
|
-
slicc_pause_js
|
|
5184
|
+
slicc_pause_js,
|
|
5185
|
+
/** @export */
|
|
5186
|
+
slicc_sig_inherited_js
|
|
5169
5187
|
};
|
|
5170
5188
|
|
|
5171
5189
|
|
package/bin/unzip.wasm
CHANGED
|
Binary file
|
package/bin/zip
CHANGED
|
@@ -4844,6 +4844,20 @@ async function createWasm() {
|
|
|
4844
4844
|
var FS_createDevice = (...args) => FS.createDevice(...args);
|
|
4845
4845
|
|
|
4846
4846
|
|
|
4847
|
+
{
|
|
4848
|
+
const lenient = SYSCALLS.getStr;
|
|
4849
|
+
const strict = new TextDecoder('utf-8', { fatal: true });
|
|
4850
|
+
SYSCALLS.getStr = (ptr) => {
|
|
4851
|
+
let end = ptr;
|
|
4852
|
+
while (HEAPU8[end]) end++;
|
|
4853
|
+
try {
|
|
4854
|
+
strict.decode(HEAPU8.subarray(ptr, end));
|
|
4855
|
+
} catch {
|
|
4856
|
+
throw new FS.ErrnoError(25);
|
|
4857
|
+
}
|
|
4858
|
+
return lenient(ptr);
|
|
4859
|
+
};
|
|
4860
|
+
};
|
|
4847
4861
|
|
|
4848
4862
|
FS.createPreloadedFile = FS_createPreloadedFile;
|
|
4849
4863
|
FS.preloadFile = FS_preloadFile;
|
|
@@ -5316,8 +5330,10 @@ function slicc_exec_detach(pid) { if (!Module.sliccKernel || typeof SliccFork ==
|
|
|
5316
5330
|
function slicc_sleep_ms(ms) { if (typeof SharedArrayBuffer === 'function' && typeof Atomics === 'object') { Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms); return; } const end = Date.now() + ms; while (Date.now() < end) {} }
|
|
5317
5331
|
function slicc_default_getpid_js() { return (Module.sliccPid | 0) || 42; }
|
|
5318
5332
|
function slicc_default_getppid_js() { return (Module.sliccPpid | 0) || 1; }
|
|
5333
|
+
function __syscall_flock(fd,op) { return 0; }
|
|
5319
5334
|
function slicc_kill_js(pid,sig) { if (Module.sliccKernel && Module.sliccKernel.kill) return Module.sliccKernel.kill(pid, sig); return 1; }
|
|
5320
5335
|
function slicc_pause_js() { if (Module.sliccKernel && Module.sliccKernel.pause) return Module.sliccKernel.pause(); return -52; }
|
|
5336
|
+
function slicc_sig_inherited_js() { try { if (Module.sliccKernel && typeof Module.sliccKernel.sigInherited === 'function') return Module.sliccKernel.sigInherited() | 0; } catch (e) { } return 0; }
|
|
5321
5337
|
function slicc_cred_js(out) { const k = Module.sliccKernel; if (!k || !k.cred) return -52; const c = k.cred(); if (typeof c === 'number') return c; ['ruid', 'euid', 'suid', 'rgid', 'egid', 'sgid'].forEach((key, i) => { HEAPU32[(out >> 2) + i] = c[key] >>> 0; }); return 0; }
|
|
5322
5338
|
function slicc_groups_js(list,cap) { const k = Module.sliccKernel; if (!k || !k.cred) return -52; const c = k.cred(); if (typeof c === 'number') return c; if (cap === 0) return c.groups.length; if (cap < c.groups.length) return -28; c.groups.forEach((g, i) => { HEAPU32[(list >> 2) + i] = g >>> 0; }); return c.groups.length; }
|
|
5323
5339
|
function slicc_setcred_js(ruid,euid,suid,rgid,egid,sgid) { const k = Module.sliccKernel; if (!k || !k.setcred) return -52; const change = {}; const ids = { ruid, euid, suid, rgid, egid, sgid }; for (const key in ids) if (ids[key] !== -1) change[key] = ids[key] >>> 0; const r = k.setcred(change); return typeof r === 'number' ? r : 0; }
|
|
@@ -5457,6 +5473,8 @@ var wasmImports = {
|
|
|
5457
5473
|
/** @export */
|
|
5458
5474
|
slicc_pause_js,
|
|
5459
5475
|
/** @export */
|
|
5476
|
+
slicc_sig_inherited_js,
|
|
5477
|
+
/** @export */
|
|
5460
5478
|
slicc_spawn_capture_js,
|
|
5461
5479
|
/** @export */
|
|
5462
5480
|
slicc_wait_js
|
package/bin/zip.wasm
CHANGED
|
Binary file
|