@tybys/wasm-util 0.6.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 +13 -7
  4. package/dist/wasm-util.esm-bundler.js +2639 -2604
  5. package/dist/wasm-util.esm.js +2639 -2604
  6. package/dist/wasm-util.esm.min.js +1 -1
  7. package/dist/wasm-util.js +2639 -2603
  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 -168
  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 -164
  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,134 +1,134 @@
1
- import { WasiError } from "./error.mjs";
2
- import { WasiErrno, WasiRights, WasiFileType } from "./types.mjs";
3
- export const RIGHTS_ALL = WasiRights.FD_DATASYNC |
4
- WasiRights.FD_READ |
5
- WasiRights.FD_SEEK |
6
- WasiRights.FD_FDSTAT_SET_FLAGS |
7
- WasiRights.FD_SYNC |
8
- WasiRights.FD_TELL |
9
- WasiRights.FD_WRITE |
10
- WasiRights.FD_ADVISE |
11
- WasiRights.FD_ALLOCATE |
12
- WasiRights.PATH_CREATE_DIRECTORY |
13
- WasiRights.PATH_CREATE_FILE |
14
- WasiRights.PATH_LINK_SOURCE |
15
- WasiRights.PATH_LINK_TARGET |
16
- WasiRights.PATH_OPEN |
17
- WasiRights.FD_READDIR |
18
- WasiRights.PATH_READLINK |
19
- WasiRights.PATH_RENAME_SOURCE |
20
- WasiRights.PATH_RENAME_TARGET |
21
- WasiRights.PATH_FILESTAT_GET |
22
- WasiRights.PATH_FILESTAT_SET_SIZE |
23
- WasiRights.PATH_FILESTAT_SET_TIMES |
24
- WasiRights.FD_FILESTAT_GET |
25
- WasiRights.FD_FILESTAT_SET_TIMES |
26
- WasiRights.FD_FILESTAT_SET_SIZE |
27
- WasiRights.PATH_SYMLINK |
28
- WasiRights.PATH_UNLINK_FILE |
29
- WasiRights.PATH_REMOVE_DIRECTORY |
30
- WasiRights.POLL_FD_READWRITE |
31
- WasiRights.SOCK_SHUTDOWN;
32
- export const BLOCK_DEVICE_BASE = RIGHTS_ALL;
33
- export const BLOCK_DEVICE_INHERITING = RIGHTS_ALL;
34
- export const CHARACTER_DEVICE_BASE = RIGHTS_ALL;
35
- export const CHARACTER_DEVICE_INHERITING = RIGHTS_ALL;
36
- export const REGULAR_FILE_BASE = WasiRights.FD_DATASYNC |
37
- WasiRights.FD_READ |
38
- WasiRights.FD_SEEK |
39
- WasiRights.FD_FDSTAT_SET_FLAGS |
40
- WasiRights.FD_SYNC |
41
- WasiRights.FD_TELL |
42
- WasiRights.FD_WRITE |
43
- WasiRights.FD_ADVISE |
44
- WasiRights.FD_ALLOCATE |
45
- WasiRights.FD_FILESTAT_GET |
46
- WasiRights.FD_FILESTAT_SET_SIZE |
47
- WasiRights.FD_FILESTAT_SET_TIMES |
48
- WasiRights.POLL_FD_READWRITE;
49
- export const REGULAR_FILE_INHERITING = /*#__PURE__*/ BigInt(0);
50
- export const DIRECTORY_BASE = WasiRights.FD_FDSTAT_SET_FLAGS |
51
- WasiRights.FD_SYNC |
52
- WasiRights.FD_ADVISE |
53
- WasiRights.PATH_CREATE_DIRECTORY |
54
- WasiRights.PATH_CREATE_FILE |
55
- WasiRights.PATH_LINK_SOURCE |
56
- WasiRights.PATH_LINK_TARGET |
57
- WasiRights.PATH_OPEN |
58
- WasiRights.FD_READDIR |
59
- WasiRights.PATH_READLINK |
60
- WasiRights.PATH_RENAME_SOURCE |
61
- WasiRights.PATH_RENAME_TARGET |
62
- WasiRights.PATH_FILESTAT_GET |
63
- WasiRights.PATH_FILESTAT_SET_SIZE |
64
- WasiRights.PATH_FILESTAT_SET_TIMES |
65
- WasiRights.FD_FILESTAT_GET |
66
- WasiRights.FD_FILESTAT_SET_TIMES |
67
- WasiRights.PATH_SYMLINK |
68
- WasiRights.PATH_UNLINK_FILE |
69
- WasiRights.PATH_REMOVE_DIRECTORY |
70
- WasiRights.POLL_FD_READWRITE;
71
- export const DIRECTORY_INHERITING = DIRECTORY_BASE | REGULAR_FILE_BASE;
72
- export const SOCKET_BASE = (WasiRights.FD_READ |
73
- WasiRights.FD_FDSTAT_SET_FLAGS |
74
- WasiRights.FD_WRITE |
75
- WasiRights.FD_FILESTAT_GET |
76
- WasiRights.POLL_FD_READWRITE |
77
- WasiRights.SOCK_SHUTDOWN);
78
- export const SOCKET_INHERITING = RIGHTS_ALL;
79
- export const TTY_BASE = WasiRights.FD_READ |
80
- WasiRights.FD_FDSTAT_SET_FLAGS |
81
- WasiRights.FD_WRITE |
82
- WasiRights.FD_FILESTAT_GET |
83
- WasiRights.POLL_FD_READWRITE;
84
- export const TTY_INHERITING = /*#__PURE__*/ BigInt(0);
85
- export function getRights(stdio, fd, flags, type) {
86
- const ret = {
87
- base: BigInt(0),
88
- inheriting: BigInt(0)
89
- };
90
- if (type === WasiFileType.UNKNOWN) {
91
- throw new WasiError('Unknown file type', WasiErrno.EINVAL);
92
- }
93
- switch (type) {
94
- case WasiFileType.REGULAR_FILE:
95
- ret.base = REGULAR_FILE_BASE;
96
- ret.inheriting = REGULAR_FILE_INHERITING;
97
- break;
98
- case WasiFileType.DIRECTORY:
99
- ret.base = DIRECTORY_BASE;
100
- ret.inheriting = DIRECTORY_INHERITING;
101
- break;
102
- case WasiFileType.SOCKET_STREAM:
103
- case WasiFileType.SOCKET_DGRAM:
104
- ret.base = SOCKET_BASE;
105
- ret.inheriting = SOCKET_INHERITING;
106
- break;
107
- case WasiFileType.CHARACTER_DEVICE:
108
- if (stdio.indexOf(fd) !== -1) {
109
- ret.base = TTY_BASE;
110
- ret.inheriting = TTY_INHERITING;
111
- }
112
- else {
113
- ret.base = CHARACTER_DEVICE_BASE;
114
- ret.inheriting = CHARACTER_DEVICE_INHERITING;
115
- }
116
- break;
117
- case WasiFileType.BLOCK_DEVICE:
118
- ret.base = BLOCK_DEVICE_BASE;
119
- ret.inheriting = BLOCK_DEVICE_INHERITING;
120
- break;
121
- default:
122
- ret.base = BigInt(0);
123
- ret.inheriting = BigInt(0);
124
- }
125
- /* Disable read/write bits depending on access mode. */
126
- const read_or_write_only = flags & (0 | 1 | 2);
127
- if (read_or_write_only === 0) {
128
- ret.base &= ~WasiRights.FD_WRITE;
129
- }
130
- else if (read_or_write_only === 1) {
131
- ret.base &= ~WasiRights.FD_READ;
132
- }
133
- return ret;
134
- }
1
+ import { WasiError } from "./error.mjs";
2
+ import { WasiErrno, WasiRights, WasiFileType } from "./types.mjs";
3
+ export const RIGHTS_ALL = WasiRights.FD_DATASYNC |
4
+ WasiRights.FD_READ |
5
+ WasiRights.FD_SEEK |
6
+ WasiRights.FD_FDSTAT_SET_FLAGS |
7
+ WasiRights.FD_SYNC |
8
+ WasiRights.FD_TELL |
9
+ WasiRights.FD_WRITE |
10
+ WasiRights.FD_ADVISE |
11
+ WasiRights.FD_ALLOCATE |
12
+ WasiRights.PATH_CREATE_DIRECTORY |
13
+ WasiRights.PATH_CREATE_FILE |
14
+ WasiRights.PATH_LINK_SOURCE |
15
+ WasiRights.PATH_LINK_TARGET |
16
+ WasiRights.PATH_OPEN |
17
+ WasiRights.FD_READDIR |
18
+ WasiRights.PATH_READLINK |
19
+ WasiRights.PATH_RENAME_SOURCE |
20
+ WasiRights.PATH_RENAME_TARGET |
21
+ WasiRights.PATH_FILESTAT_GET |
22
+ WasiRights.PATH_FILESTAT_SET_SIZE |
23
+ WasiRights.PATH_FILESTAT_SET_TIMES |
24
+ WasiRights.FD_FILESTAT_GET |
25
+ WasiRights.FD_FILESTAT_SET_TIMES |
26
+ WasiRights.FD_FILESTAT_SET_SIZE |
27
+ WasiRights.PATH_SYMLINK |
28
+ WasiRights.PATH_UNLINK_FILE |
29
+ WasiRights.PATH_REMOVE_DIRECTORY |
30
+ WasiRights.POLL_FD_READWRITE |
31
+ WasiRights.SOCK_SHUTDOWN;
32
+ export const BLOCK_DEVICE_BASE = RIGHTS_ALL;
33
+ export const BLOCK_DEVICE_INHERITING = RIGHTS_ALL;
34
+ export const CHARACTER_DEVICE_BASE = RIGHTS_ALL;
35
+ export const CHARACTER_DEVICE_INHERITING = RIGHTS_ALL;
36
+ export const REGULAR_FILE_BASE = WasiRights.FD_DATASYNC |
37
+ WasiRights.FD_READ |
38
+ WasiRights.FD_SEEK |
39
+ WasiRights.FD_FDSTAT_SET_FLAGS |
40
+ WasiRights.FD_SYNC |
41
+ WasiRights.FD_TELL |
42
+ WasiRights.FD_WRITE |
43
+ WasiRights.FD_ADVISE |
44
+ WasiRights.FD_ALLOCATE |
45
+ WasiRights.FD_FILESTAT_GET |
46
+ WasiRights.FD_FILESTAT_SET_SIZE |
47
+ WasiRights.FD_FILESTAT_SET_TIMES |
48
+ WasiRights.POLL_FD_READWRITE;
49
+ export const REGULAR_FILE_INHERITING = /*#__PURE__*/ BigInt(0);
50
+ export const DIRECTORY_BASE = WasiRights.FD_FDSTAT_SET_FLAGS |
51
+ WasiRights.FD_SYNC |
52
+ WasiRights.FD_ADVISE |
53
+ WasiRights.PATH_CREATE_DIRECTORY |
54
+ WasiRights.PATH_CREATE_FILE |
55
+ WasiRights.PATH_LINK_SOURCE |
56
+ WasiRights.PATH_LINK_TARGET |
57
+ WasiRights.PATH_OPEN |
58
+ WasiRights.FD_READDIR |
59
+ WasiRights.PATH_READLINK |
60
+ WasiRights.PATH_RENAME_SOURCE |
61
+ WasiRights.PATH_RENAME_TARGET |
62
+ WasiRights.PATH_FILESTAT_GET |
63
+ WasiRights.PATH_FILESTAT_SET_SIZE |
64
+ WasiRights.PATH_FILESTAT_SET_TIMES |
65
+ WasiRights.FD_FILESTAT_GET |
66
+ WasiRights.FD_FILESTAT_SET_TIMES |
67
+ WasiRights.PATH_SYMLINK |
68
+ WasiRights.PATH_UNLINK_FILE |
69
+ WasiRights.PATH_REMOVE_DIRECTORY |
70
+ WasiRights.POLL_FD_READWRITE;
71
+ export const DIRECTORY_INHERITING = DIRECTORY_BASE | REGULAR_FILE_BASE;
72
+ export const SOCKET_BASE = (WasiRights.FD_READ |
73
+ WasiRights.FD_FDSTAT_SET_FLAGS |
74
+ WasiRights.FD_WRITE |
75
+ WasiRights.FD_FILESTAT_GET |
76
+ WasiRights.POLL_FD_READWRITE |
77
+ WasiRights.SOCK_SHUTDOWN);
78
+ export const SOCKET_INHERITING = RIGHTS_ALL;
79
+ export const TTY_BASE = WasiRights.FD_READ |
80
+ WasiRights.FD_FDSTAT_SET_FLAGS |
81
+ WasiRights.FD_WRITE |
82
+ WasiRights.FD_FILESTAT_GET |
83
+ WasiRights.POLL_FD_READWRITE;
84
+ export const TTY_INHERITING = /*#__PURE__*/ BigInt(0);
85
+ export function getRights(stdio, fd, flags, type) {
86
+ const ret = {
87
+ base: BigInt(0),
88
+ inheriting: BigInt(0)
89
+ };
90
+ if (type === WasiFileType.UNKNOWN) {
91
+ throw new WasiError('Unknown file type', WasiErrno.EINVAL);
92
+ }
93
+ switch (type) {
94
+ case WasiFileType.REGULAR_FILE:
95
+ ret.base = REGULAR_FILE_BASE;
96
+ ret.inheriting = REGULAR_FILE_INHERITING;
97
+ break;
98
+ case WasiFileType.DIRECTORY:
99
+ ret.base = DIRECTORY_BASE;
100
+ ret.inheriting = DIRECTORY_INHERITING;
101
+ break;
102
+ case WasiFileType.SOCKET_STREAM:
103
+ case WasiFileType.SOCKET_DGRAM:
104
+ ret.base = SOCKET_BASE;
105
+ ret.inheriting = SOCKET_INHERITING;
106
+ break;
107
+ case WasiFileType.CHARACTER_DEVICE:
108
+ if (stdio.indexOf(fd) !== -1) {
109
+ ret.base = TTY_BASE;
110
+ ret.inheriting = TTY_INHERITING;
111
+ }
112
+ else {
113
+ ret.base = CHARACTER_DEVICE_BASE;
114
+ ret.inheriting = CHARACTER_DEVICE_INHERITING;
115
+ }
116
+ break;
117
+ case WasiFileType.BLOCK_DEVICE:
118
+ ret.base = BLOCK_DEVICE_BASE;
119
+ ret.inheriting = BLOCK_DEVICE_INHERITING;
120
+ break;
121
+ default:
122
+ ret.base = BigInt(0);
123
+ ret.inheriting = BigInt(0);
124
+ }
125
+ /* Disable read/write bits depending on access mode. */
126
+ const read_or_write_only = flags & (0 | 1 | 2);
127
+ if (read_or_write_only === 0) {
128
+ ret.base &= ~WasiRights.FD_WRITE;
129
+ }
130
+ else if (read_or_write_only === 1) {
131
+ ret.base &= ~WasiRights.FD_READ;
132
+ }
133
+ return ret;
134
+ }