@tybys/wasm-util 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +193 -193
  2. package/dist/tsdoc-metadata.json +1 -1
  3. package/dist/wasm-util.d.ts +12 -6
  4. package/dist/wasm-util.esm-bundler.js +2639 -2607
  5. package/dist/wasm-util.esm.js +2639 -2607
  6. package/dist/wasm-util.esm.min.js +1 -1
  7. package/dist/wasm-util.js +2639 -2606
  8. package/dist/wasm-util.min.js +1 -1
  9. package/lib/cjs/asyncify.js +157 -157
  10. package/lib/cjs/index.js +12 -12
  11. package/lib/cjs/jspi.js +45 -45
  12. package/lib/cjs/load.js +96 -85
  13. package/lib/cjs/memfs.js +2689 -0
  14. package/lib/cjs/memory.js +34 -34
  15. package/lib/cjs/wasi/error.js +102 -102
  16. package/lib/cjs/wasi/fd.js +267 -267
  17. package/lib/cjs/wasi/fs.js +2 -2
  18. package/lib/cjs/wasi/index.js +193 -171
  19. package/lib/cjs/wasi/path.js +173 -173
  20. package/lib/cjs/wasi/preview1.js +1478 -1478
  21. package/lib/cjs/wasi/rights.js +139 -139
  22. package/lib/cjs/wasi/types.js +219 -219
  23. package/lib/cjs/wasi/util.js +121 -121
  24. package/lib/cjs/webassembly.js +12 -12
  25. package/lib/mjs/asyncify.mjs +153 -153
  26. package/lib/mjs/index.mjs +9 -9
  27. package/lib/mjs/jspi.mjs +39 -39
  28. package/lib/mjs/load.mjs +89 -78
  29. package/lib/mjs/memfs.mjs +2688 -0
  30. package/lib/mjs/memory.mjs +28 -28
  31. package/lib/mjs/wasi/error.mjs +97 -97
  32. package/lib/mjs/wasi/fd.mjs +256 -256
  33. package/lib/mjs/wasi/fs.mjs +1 -1
  34. package/lib/mjs/wasi/index.mjs +188 -167
  35. package/lib/mjs/wasi/path.mjs +168 -168
  36. package/lib/mjs/wasi/preview1.mjs +1474 -1474
  37. package/lib/mjs/wasi/rights.mjs +134 -134
  38. package/lib/mjs/wasi/types.mjs +216 -216
  39. package/lib/mjs/wasi/util.mjs +108 -108
  40. package/lib/mjs/webassembly.mjs +9 -9
  41. package/package.json +58 -58
@@ -1,28 +1,28 @@
1
- import { _WebAssembly } from "./webassembly.mjs";
2
- /** @public */
3
- export const WebAssemblyMemory = /*#__PURE__*/ (function () { return _WebAssembly.Memory; })();
4
- /** @public */
5
- export class Memory extends WebAssemblyMemory {
6
- // eslint-disable-next-line @typescript-eslint/no-useless-constructor
7
- constructor(descriptor) {
8
- super(descriptor);
9
- }
10
- get HEAP8() { return new Int8Array(super.buffer); }
11
- get HEAPU8() { return new Uint8Array(super.buffer); }
12
- get HEAP16() { return new Int16Array(super.buffer); }
13
- get HEAPU16() { return new Uint16Array(super.buffer); }
14
- get HEAP32() { return new Int32Array(super.buffer); }
15
- get HEAPU32() { return new Uint32Array(super.buffer); }
16
- get HEAP64() { return new BigInt64Array(super.buffer); }
17
- get HEAPU64() { return new BigUint64Array(super.buffer); }
18
- get HEAPF32() { return new Float32Array(super.buffer); }
19
- get HEAPF64() { return new Float64Array(super.buffer); }
20
- get view() { return new DataView(super.buffer); }
21
- }
22
- /** @public */
23
- export function extendMemory(memory) {
24
- if (Object.getPrototypeOf(memory) === _WebAssembly.Memory.prototype) {
25
- Object.setPrototypeOf(memory, Memory.prototype);
26
- }
27
- return memory;
28
- }
1
+ import { _WebAssembly } from "./webassembly.mjs";
2
+ /** @public */
3
+ export const WebAssemblyMemory = /*#__PURE__*/ (function () { return _WebAssembly.Memory; })();
4
+ /** @public */
5
+ export class Memory extends WebAssemblyMemory {
6
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
7
+ constructor(descriptor) {
8
+ super(descriptor);
9
+ }
10
+ get HEAP8() { return new Int8Array(super.buffer); }
11
+ get HEAPU8() { return new Uint8Array(super.buffer); }
12
+ get HEAP16() { return new Int16Array(super.buffer); }
13
+ get HEAPU16() { return new Uint16Array(super.buffer); }
14
+ get HEAP32() { return new Int32Array(super.buffer); }
15
+ get HEAPU32() { return new Uint32Array(super.buffer); }
16
+ get HEAP64() { return new BigInt64Array(super.buffer); }
17
+ get HEAPU64() { return new BigUint64Array(super.buffer); }
18
+ get HEAPF32() { return new Float32Array(super.buffer); }
19
+ get HEAPF64() { return new Float64Array(super.buffer); }
20
+ get view() { return new DataView(super.buffer); }
21
+ }
22
+ /** @public */
23
+ export function extendMemory(memory) {
24
+ if (Object.getPrototypeOf(memory) === _WebAssembly.Memory.prototype) {
25
+ Object.setPrototypeOf(memory, Memory.prototype);
26
+ }
27
+ return memory;
28
+ }
@@ -1,97 +1,97 @@
1
- import { WasiErrno } from "./types.mjs";
2
- export function strerror(errno) {
3
- switch (errno) {
4
- case WasiErrno.ESUCCESS: return 'Success';
5
- case WasiErrno.E2BIG: return 'Argument list too long';
6
- case WasiErrno.EACCES: return 'Permission denied';
7
- case WasiErrno.EADDRINUSE: return 'Address in use';
8
- case WasiErrno.EADDRNOTAVAIL: return 'Address not available';
9
- case WasiErrno.EAFNOSUPPORT: return 'Address family not supported by protocol';
10
- case WasiErrno.EAGAIN: return 'Resource temporarily unavailable';
11
- case WasiErrno.EALREADY: return 'Operation already in progress';
12
- case WasiErrno.EBADF: return 'Bad file descriptor';
13
- case WasiErrno.EBADMSG: return 'Bad message';
14
- case WasiErrno.EBUSY: return 'Resource busy';
15
- case WasiErrno.ECANCELED: return 'Operation canceled';
16
- case WasiErrno.ECHILD: return 'No child process';
17
- case WasiErrno.ECONNABORTED: return 'Connection aborted';
18
- case WasiErrno.ECONNREFUSED: return 'Connection refused';
19
- case WasiErrno.ECONNRESET: return 'Connection reset by peer';
20
- case WasiErrno.EDEADLK: return 'Resource deadlock would occur';
21
- case WasiErrno.EDESTADDRREQ: return 'Destination address required';
22
- case WasiErrno.EDOM: return 'Domain error';
23
- case WasiErrno.EDQUOT: return 'Quota exceeded';
24
- case WasiErrno.EEXIST: return 'File exists';
25
- case WasiErrno.EFAULT: return 'Bad address';
26
- case WasiErrno.EFBIG: return 'File too large';
27
- case WasiErrno.EHOSTUNREACH: return 'Host is unreachable';
28
- case WasiErrno.EIDRM: return 'Identifier removed';
29
- case WasiErrno.EILSEQ: return 'Illegal byte sequence';
30
- case WasiErrno.EINPROGRESS: return 'Operation in progress';
31
- case WasiErrno.EINTR: return 'Interrupted system call';
32
- case WasiErrno.EINVAL: return 'Invalid argument';
33
- case WasiErrno.EIO: return 'I/O error';
34
- case WasiErrno.EISCONN: return 'Socket is connected';
35
- case WasiErrno.EISDIR: return 'Is a directory';
36
- case WasiErrno.ELOOP: return 'Symbolic link loop';
37
- case WasiErrno.EMFILE: return 'No file descriptors available';
38
- case WasiErrno.EMLINK: return 'Too many links';
39
- case WasiErrno.EMSGSIZE: return 'Message too large';
40
- case WasiErrno.EMULTIHOP: return 'Multihop attempted';
41
- case WasiErrno.ENAMETOOLONG: return 'Filename too long';
42
- case WasiErrno.ENETDOWN: return 'Network is down';
43
- case WasiErrno.ENETRESET: return 'Connection reset by network';
44
- case WasiErrno.ENETUNREACH: return 'Network unreachable';
45
- case WasiErrno.ENFILE: return 'Too many files open in system';
46
- case WasiErrno.ENOBUFS: return 'No buffer space available';
47
- case WasiErrno.ENODEV: return 'No such device';
48
- case WasiErrno.ENOENT: return 'No such file or directory';
49
- case WasiErrno.ENOEXEC: return 'Exec format error';
50
- case WasiErrno.ENOLCK: return 'No locks available';
51
- case WasiErrno.ENOLINK: return 'Link has been severed';
52
- case WasiErrno.ENOMEM: return 'Out of memory';
53
- case WasiErrno.ENOMSG: return 'No message of the desired type';
54
- case WasiErrno.ENOPROTOOPT: return 'Protocol not available';
55
- case WasiErrno.ENOSPC: return 'No space left on device';
56
- case WasiErrno.ENOSYS: return 'Function not implemented';
57
- case WasiErrno.ENOTCONN: return 'Socket not connected';
58
- case WasiErrno.ENOTDIR: return 'Not a directory';
59
- case WasiErrno.ENOTEMPTY: return 'Directory not empty';
60
- case WasiErrno.ENOTRECOVERABLE: return 'State not recoverable';
61
- case WasiErrno.ENOTSOCK: return 'Not a socket';
62
- case WasiErrno.ENOTSUP: return 'Not supported';
63
- case WasiErrno.ENOTTY: return 'Not a tty';
64
- case WasiErrno.ENXIO: return 'No such device or address';
65
- case WasiErrno.EOVERFLOW: return 'Value too large for data type';
66
- case WasiErrno.EOWNERDEAD: return 'Previous owner died';
67
- case WasiErrno.EPERM: return 'Operation not permitted';
68
- case WasiErrno.EPIPE: return 'Broken pipe';
69
- case WasiErrno.EPROTO: return 'Protocol error';
70
- case WasiErrno.EPROTONOSUPPORT: return 'Protocol not supported';
71
- case WasiErrno.EPROTOTYPE: return 'Protocol wrong type for socket';
72
- case WasiErrno.ERANGE: return 'Result not representable';
73
- case WasiErrno.EROFS: return 'Read-only file system';
74
- case WasiErrno.ESPIPE: return 'Invalid seek';
75
- case WasiErrno.ESRCH: return 'No such process';
76
- case WasiErrno.ESTALE: return 'Stale file handle';
77
- case WasiErrno.ETIMEDOUT: return 'Operation timed out';
78
- case WasiErrno.ETXTBSY: return 'Text file busy';
79
- case WasiErrno.EXDEV: return 'Cross-device link';
80
- case WasiErrno.ENOTCAPABLE: return 'Capabilities insufficient';
81
- default: return 'Unknown error';
82
- }
83
- }
84
- export class WasiError extends Error {
85
- constructor(message, errno) {
86
- super(message);
87
- this.errno = errno;
88
- }
89
- getErrorMessage() {
90
- return strerror(this.errno);
91
- }
92
- }
93
- Object.defineProperty(WasiError.prototype, 'name', {
94
- configurable: true,
95
- writable: true,
96
- value: 'WasiError'
97
- });
1
+ import { WasiErrno } from "./types.mjs";
2
+ export function strerror(errno) {
3
+ switch (errno) {
4
+ case WasiErrno.ESUCCESS: return 'Success';
5
+ case WasiErrno.E2BIG: return 'Argument list too long';
6
+ case WasiErrno.EACCES: return 'Permission denied';
7
+ case WasiErrno.EADDRINUSE: return 'Address in use';
8
+ case WasiErrno.EADDRNOTAVAIL: return 'Address not available';
9
+ case WasiErrno.EAFNOSUPPORT: return 'Address family not supported by protocol';
10
+ case WasiErrno.EAGAIN: return 'Resource temporarily unavailable';
11
+ case WasiErrno.EALREADY: return 'Operation already in progress';
12
+ case WasiErrno.EBADF: return 'Bad file descriptor';
13
+ case WasiErrno.EBADMSG: return 'Bad message';
14
+ case WasiErrno.EBUSY: return 'Resource busy';
15
+ case WasiErrno.ECANCELED: return 'Operation canceled';
16
+ case WasiErrno.ECHILD: return 'No child process';
17
+ case WasiErrno.ECONNABORTED: return 'Connection aborted';
18
+ case WasiErrno.ECONNREFUSED: return 'Connection refused';
19
+ case WasiErrno.ECONNRESET: return 'Connection reset by peer';
20
+ case WasiErrno.EDEADLK: return 'Resource deadlock would occur';
21
+ case WasiErrno.EDESTADDRREQ: return 'Destination address required';
22
+ case WasiErrno.EDOM: return 'Domain error';
23
+ case WasiErrno.EDQUOT: return 'Quota exceeded';
24
+ case WasiErrno.EEXIST: return 'File exists';
25
+ case WasiErrno.EFAULT: return 'Bad address';
26
+ case WasiErrno.EFBIG: return 'File too large';
27
+ case WasiErrno.EHOSTUNREACH: return 'Host is unreachable';
28
+ case WasiErrno.EIDRM: return 'Identifier removed';
29
+ case WasiErrno.EILSEQ: return 'Illegal byte sequence';
30
+ case WasiErrno.EINPROGRESS: return 'Operation in progress';
31
+ case WasiErrno.EINTR: return 'Interrupted system call';
32
+ case WasiErrno.EINVAL: return 'Invalid argument';
33
+ case WasiErrno.EIO: return 'I/O error';
34
+ case WasiErrno.EISCONN: return 'Socket is connected';
35
+ case WasiErrno.EISDIR: return 'Is a directory';
36
+ case WasiErrno.ELOOP: return 'Symbolic link loop';
37
+ case WasiErrno.EMFILE: return 'No file descriptors available';
38
+ case WasiErrno.EMLINK: return 'Too many links';
39
+ case WasiErrno.EMSGSIZE: return 'Message too large';
40
+ case WasiErrno.EMULTIHOP: return 'Multihop attempted';
41
+ case WasiErrno.ENAMETOOLONG: return 'Filename too long';
42
+ case WasiErrno.ENETDOWN: return 'Network is down';
43
+ case WasiErrno.ENETRESET: return 'Connection reset by network';
44
+ case WasiErrno.ENETUNREACH: return 'Network unreachable';
45
+ case WasiErrno.ENFILE: return 'Too many files open in system';
46
+ case WasiErrno.ENOBUFS: return 'No buffer space available';
47
+ case WasiErrno.ENODEV: return 'No such device';
48
+ case WasiErrno.ENOENT: return 'No such file or directory';
49
+ case WasiErrno.ENOEXEC: return 'Exec format error';
50
+ case WasiErrno.ENOLCK: return 'No locks available';
51
+ case WasiErrno.ENOLINK: return 'Link has been severed';
52
+ case WasiErrno.ENOMEM: return 'Out of memory';
53
+ case WasiErrno.ENOMSG: return 'No message of the desired type';
54
+ case WasiErrno.ENOPROTOOPT: return 'Protocol not available';
55
+ case WasiErrno.ENOSPC: return 'No space left on device';
56
+ case WasiErrno.ENOSYS: return 'Function not implemented';
57
+ case WasiErrno.ENOTCONN: return 'Socket not connected';
58
+ case WasiErrno.ENOTDIR: return 'Not a directory';
59
+ case WasiErrno.ENOTEMPTY: return 'Directory not empty';
60
+ case WasiErrno.ENOTRECOVERABLE: return 'State not recoverable';
61
+ case WasiErrno.ENOTSOCK: return 'Not a socket';
62
+ case WasiErrno.ENOTSUP: return 'Not supported';
63
+ case WasiErrno.ENOTTY: return 'Not a tty';
64
+ case WasiErrno.ENXIO: return 'No such device or address';
65
+ case WasiErrno.EOVERFLOW: return 'Value too large for data type';
66
+ case WasiErrno.EOWNERDEAD: return 'Previous owner died';
67
+ case WasiErrno.EPERM: return 'Operation not permitted';
68
+ case WasiErrno.EPIPE: return 'Broken pipe';
69
+ case WasiErrno.EPROTO: return 'Protocol error';
70
+ case WasiErrno.EPROTONOSUPPORT: return 'Protocol not supported';
71
+ case WasiErrno.EPROTOTYPE: return 'Protocol wrong type for socket';
72
+ case WasiErrno.ERANGE: return 'Result not representable';
73
+ case WasiErrno.EROFS: return 'Read-only file system';
74
+ case WasiErrno.ESPIPE: return 'Invalid seek';
75
+ case WasiErrno.ESRCH: return 'No such process';
76
+ case WasiErrno.ESTALE: return 'Stale file handle';
77
+ case WasiErrno.ETIMEDOUT: return 'Operation timed out';
78
+ case WasiErrno.ETXTBSY: return 'Text file busy';
79
+ case WasiErrno.EXDEV: return 'Cross-device link';
80
+ case WasiErrno.ENOTCAPABLE: return 'Capabilities insufficient';
81
+ default: return 'Unknown error';
82
+ }
83
+ }
84
+ export class WasiError extends Error {
85
+ constructor(message, errno) {
86
+ super(message);
87
+ this.errno = errno;
88
+ }
89
+ getErrorMessage() {
90
+ return strerror(this.errno);
91
+ }
92
+ }
93
+ Object.defineProperty(WasiError.prototype, 'name', {
94
+ configurable: true,
95
+ writable: true,
96
+ value: 'WasiError'
97
+ });