Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemathinc
GitHub Repository: sagemathinc/wapython
Path: blob/main/core/wasi-js/src/constants.ts
1067 views
1
/*
2
3
This project is based from the Node implementation made by Gus Caplan
4
https://github.com/devsnek/node-wasi
5
However, JavaScript WASI is focused on:
6
* Bringing WASI to the Browsers
7
* Make easy to plug different filesystems
8
* Provide a type-safe api using Typescript
9
10
11
Copyright 2019 Gus Caplan
12
13
Permission is hereby granted, free of charge, to any person obtaining a copy
14
of this software and associated documentation files (the "Software"), to
15
deal in the Software without restriction, including without limitation the
16
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
17
sell copies of the Software, and to permit persons to whom the Software is
18
furnished to do so, subject to the following conditions:
19
20
The above copyright notice and this permission notice shall be included in
21
all copies or substantial portions of the Software.
22
23
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
29
IN THE SOFTWARE.
30
31
*/
32
33
export const WASI_ESUCCESS = 0;
34
export const WASI_E2BIG = 1;
35
export const WASI_EACCES = 2;
36
export const WASI_EADDRINUSE = 3;
37
export const WASI_EADDRNOTAVAIL = 4;
38
export const WASI_EAFNOSUPPORT = 5;
39
export const WASI_EAGAIN = 6;
40
export const WASI_EALREADY = 7;
41
export const WASI_EBADF = 8;
42
export const WASI_EBADMSG = 9;
43
export const WASI_EBUSY = 10;
44
export const WASI_ECANCELED = 11;
45
export const WASI_ECHILD = 12;
46
export const WASI_ECONNABORTED = 13;
47
export const WASI_ECONNREFUSED = 14;
48
export const WASI_ECONNRESET = 15;
49
export const WASI_EDEADLK = 16;
50
export const WASI_EDESTADDRREQ = 17;
51
export const WASI_EDOM = 18;
52
export const WASI_EDQUOT = 19;
53
export const WASI_EEXIST = 20;
54
export const WASI_EFAULT = 21;
55
export const WASI_EFBIG = 22;
56
export const WASI_EHOSTUNREACH = 23;
57
export const WASI_EIDRM = 24;
58
export const WASI_EILSEQ = 25;
59
export const WASI_EINPROGRESS = 26;
60
export const WASI_EINTR = 27;
61
export const WASI_EINVAL = 28;
62
export const WASI_EIO = 29;
63
export const WASI_EISCONN = 30;
64
export const WASI_EISDIR = 31;
65
export const WASI_ELOOP = 32;
66
export const WASI_EMFILE = 33;
67
export const WASI_EMLINK = 34;
68
export const WASI_EMSGSIZE = 35;
69
export const WASI_EMULTIHOP = 36;
70
export const WASI_ENAMETOOLONG = 37;
71
export const WASI_ENETDOWN = 38;
72
export const WASI_ENETRESET = 39;
73
export const WASI_ENETUNREACH = 40;
74
export const WASI_ENFILE = 41;
75
export const WASI_ENOBUFS = 42;
76
export const WASI_ENODEV = 43;
77
export const WASI_ENOENT = 44;
78
export const WASI_ENOEXEC = 45;
79
export const WASI_ENOLCK = 46;
80
export const WASI_ENOLINK = 47;
81
export const WASI_ENOMEM = 48;
82
export const WASI_ENOMSG = 49;
83
export const WASI_ENOPROTOOPT = 50;
84
export const WASI_ENOSPC = 51;
85
export const WASI_ENOSYS = 52;
86
export const WASI_ENOTCONN = 53;
87
export const WASI_ENOTDIR = 54;
88
export const WASI_ENOTEMPTY = 55;
89
export const WASI_ENOTRECOVERABLE = 56;
90
export const WASI_ENOTSOCK = 57;
91
export const WASI_ENOTSUP = 58;
92
export const WASI_ENOTTY = 59;
93
export const WASI_ENXIO = 60;
94
export const WASI_EOVERFLOW = 61;
95
export const WASI_EOWNERDEAD = 62;
96
export const WASI_EPERM = 63;
97
export const WASI_EPIPE = 64;
98
export const WASI_EPROTO = 65;
99
export const WASI_EPROTONOSUPPORT = 66;
100
export const WASI_EPROTOTYPE = 67;
101
export const WASI_ERANGE = 68;
102
export const WASI_EROFS = 69;
103
export const WASI_ESPIPE = 70;
104
export const WASI_ESRCH = 71;
105
export const WASI_ESTALE = 72;
106
export const WASI_ETIMEDOUT = 73;
107
export const WASI_ETXTBSY = 74;
108
export const WASI_EXDEV = 75;
109
export const WASI_ENOTCAPABLE = 76;
110
111
export const WASI_SIGABRT = 0;
112
export const WASI_SIGALRM = 1;
113
export const WASI_SIGBUS = 2;
114
export const WASI_SIGCHLD = 3;
115
export const WASI_SIGCONT = 4;
116
export const WASI_SIGFPE = 5;
117
export const WASI_SIGHUP = 6;
118
export const WASI_SIGILL = 7;
119
export const WASI_SIGINT = 8;
120
export const WASI_SIGKILL = 9;
121
export const WASI_SIGPIPE = 10;
122
export const WASI_SIGQUIT = 11;
123
export const WASI_SIGSEGV = 12;
124
export const WASI_SIGSTOP = 13;
125
export const WASI_SIGTERM = 14;
126
export const WASI_SIGTRAP = 15;
127
export const WASI_SIGTSTP = 16;
128
export const WASI_SIGTTIN = 17;
129
export const WASI_SIGTTOU = 18;
130
export const WASI_SIGURG = 19;
131
export const WASI_SIGUSR1 = 20;
132
export const WASI_SIGUSR2 = 21;
133
export const WASI_SIGVTALRM = 22;
134
export const WASI_SIGXCPU = 23;
135
export const WASI_SIGXFSZ = 24;
136
137
export const WASI_FILETYPE_UNKNOWN = 0;
138
export const WASI_FILETYPE_BLOCK_DEVICE = 1;
139
export const WASI_FILETYPE_CHARACTER_DEVICE = 2;
140
export const WASI_FILETYPE_DIRECTORY = 3;
141
export const WASI_FILETYPE_REGULAR_FILE = 4;
142
export const WASI_FILETYPE_SOCKET_DGRAM = 5;
143
export const WASI_FILETYPE_SOCKET_STREAM = 6;
144
export const WASI_FILETYPE_SYMBOLIC_LINK = 7;
145
146
export type WASI_FILETYPE =
147
| typeof WASI_FILETYPE_UNKNOWN
148
| typeof WASI_FILETYPE_BLOCK_DEVICE
149
| typeof WASI_FILETYPE_CHARACTER_DEVICE
150
| typeof WASI_FILETYPE_DIRECTORY
151
| typeof WASI_FILETYPE_REGULAR_FILE
152
| typeof WASI_FILETYPE_SOCKET_DGRAM
153
| typeof WASI_FILETYPE_SOCKET_STREAM
154
| typeof WASI_FILETYPE_SYMBOLIC_LINK;
155
156
export const WASI_FDFLAG_APPEND = 0x0001;
157
export const WASI_FDFLAG_DSYNC = 0x0002;
158
export const WASI_FDFLAG_NONBLOCK = 0x0004;
159
export const WASI_FDFLAG_RSYNC = 0x0008;
160
export const WASI_FDFLAG_SYNC = 0x0010;
161
162
export const WASI_RIGHT_FD_DATASYNC = BigInt(0x0000000000000001);
163
export const WASI_RIGHT_FD_READ = BigInt(0x0000000000000002);
164
export const WASI_RIGHT_FD_SEEK = BigInt(0x0000000000000004);
165
export const WASI_RIGHT_FD_FDSTAT_SET_FLAGS = BigInt(0x0000000000000008);
166
export const WASI_RIGHT_FD_SYNC = BigInt(0x0000000000000010);
167
export const WASI_RIGHT_FD_TELL = BigInt(0x0000000000000020);
168
export const WASI_RIGHT_FD_WRITE = BigInt(0x0000000000000040);
169
export const WASI_RIGHT_FD_ADVISE = BigInt(0x0000000000000080);
170
export const WASI_RIGHT_FD_ALLOCATE = BigInt(0x0000000000000100);
171
export const WASI_RIGHT_PATH_CREATE_DIRECTORY = BigInt(0x0000000000000200);
172
export const WASI_RIGHT_PATH_CREATE_FILE = BigInt(0x0000000000000400);
173
export const WASI_RIGHT_PATH_LINK_SOURCE = BigInt(0x0000000000000800);
174
export const WASI_RIGHT_PATH_LINK_TARGET = BigInt(0x0000000000001000);
175
export const WASI_RIGHT_PATH_OPEN = BigInt(0x0000000000002000);
176
export const WASI_RIGHT_FD_READDIR = BigInt(0x0000000000004000);
177
export const WASI_RIGHT_PATH_READLINK = BigInt(0x0000000000008000);
178
export const WASI_RIGHT_PATH_RENAME_SOURCE = BigInt(0x0000000000010000);
179
export const WASI_RIGHT_PATH_RENAME_TARGET = BigInt(0x0000000000020000);
180
export const WASI_RIGHT_PATH_FILESTAT_GET = BigInt(0x0000000000040000);
181
export const WASI_RIGHT_PATH_FILESTAT_SET_SIZE = BigInt(0x0000000000080000);
182
export const WASI_RIGHT_PATH_FILESTAT_SET_TIMES = BigInt(0x0000000000100000);
183
export const WASI_RIGHT_FD_FILESTAT_GET = BigInt(0x0000000000200000);
184
export const WASI_RIGHT_FD_FILESTAT_SET_SIZE = BigInt(0x0000000000400000);
185
export const WASI_RIGHT_FD_FILESTAT_SET_TIMES = BigInt(0x0000000000800000);
186
export const WASI_RIGHT_PATH_SYMLINK = BigInt(0x0000000001000000);
187
export const WASI_RIGHT_PATH_REMOVE_DIRECTORY = BigInt(0x0000000002000000);
188
export const WASI_RIGHT_PATH_UNLINK_FILE = BigInt(0x0000000004000000);
189
export const WASI_RIGHT_POLL_FD_READWRITE = BigInt(0x0000000008000000);
190
export const WASI_RIGHT_SOCK_SHUTDOWN = BigInt(0x0000000010000000);
191
192
export const RIGHTS_ALL =
193
WASI_RIGHT_FD_DATASYNC |
194
WASI_RIGHT_FD_READ |
195
WASI_RIGHT_FD_SEEK |
196
WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
197
WASI_RIGHT_FD_SYNC |
198
WASI_RIGHT_FD_TELL |
199
WASI_RIGHT_FD_WRITE |
200
WASI_RIGHT_FD_ADVISE |
201
WASI_RIGHT_FD_ALLOCATE |
202
WASI_RIGHT_PATH_CREATE_DIRECTORY |
203
WASI_RIGHT_PATH_CREATE_FILE |
204
WASI_RIGHT_PATH_LINK_SOURCE |
205
WASI_RIGHT_PATH_LINK_TARGET |
206
WASI_RIGHT_PATH_OPEN |
207
WASI_RIGHT_FD_READDIR |
208
WASI_RIGHT_PATH_READLINK |
209
WASI_RIGHT_PATH_RENAME_SOURCE |
210
WASI_RIGHT_PATH_RENAME_TARGET |
211
WASI_RIGHT_PATH_FILESTAT_GET |
212
WASI_RIGHT_PATH_FILESTAT_SET_SIZE |
213
WASI_RIGHT_PATH_FILESTAT_SET_TIMES |
214
WASI_RIGHT_FD_FILESTAT_GET |
215
WASI_RIGHT_FD_FILESTAT_SET_TIMES |
216
WASI_RIGHT_FD_FILESTAT_SET_SIZE |
217
WASI_RIGHT_PATH_SYMLINK |
218
WASI_RIGHT_PATH_UNLINK_FILE |
219
WASI_RIGHT_PATH_REMOVE_DIRECTORY |
220
WASI_RIGHT_POLL_FD_READWRITE |
221
WASI_RIGHT_SOCK_SHUTDOWN;
222
223
export const RIGHTS_BLOCK_DEVICE_BASE = RIGHTS_ALL;
224
export const RIGHTS_BLOCK_DEVICE_INHERITING = RIGHTS_ALL;
225
226
export const RIGHTS_CHARACTER_DEVICE_BASE = RIGHTS_ALL;
227
export const RIGHTS_CHARACTER_DEVICE_INHERITING = RIGHTS_ALL;
228
229
export const RIGHTS_REGULAR_FILE_BASE =
230
WASI_RIGHT_FD_DATASYNC |
231
WASI_RIGHT_FD_READ |
232
WASI_RIGHT_FD_SEEK |
233
WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
234
WASI_RIGHT_FD_SYNC |
235
WASI_RIGHT_FD_TELL |
236
WASI_RIGHT_FD_WRITE |
237
WASI_RIGHT_FD_ADVISE |
238
WASI_RIGHT_FD_ALLOCATE |
239
WASI_RIGHT_FD_FILESTAT_GET |
240
WASI_RIGHT_FD_FILESTAT_SET_SIZE |
241
WASI_RIGHT_FD_FILESTAT_SET_TIMES |
242
WASI_RIGHT_POLL_FD_READWRITE;
243
export const RIGHTS_REGULAR_FILE_INHERITING = BigInt(0);
244
245
export const RIGHTS_DIRECTORY_BASE =
246
WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
247
WASI_RIGHT_FD_SYNC |
248
WASI_RIGHT_FD_ADVISE |
249
WASI_RIGHT_PATH_CREATE_DIRECTORY |
250
WASI_RIGHT_PATH_CREATE_FILE |
251
WASI_RIGHT_PATH_LINK_SOURCE |
252
WASI_RIGHT_PATH_LINK_TARGET |
253
WASI_RIGHT_PATH_OPEN |
254
WASI_RIGHT_FD_READDIR |
255
WASI_RIGHT_PATH_READLINK |
256
WASI_RIGHT_PATH_RENAME_SOURCE |
257
WASI_RIGHT_PATH_RENAME_TARGET |
258
WASI_RIGHT_PATH_FILESTAT_GET |
259
WASI_RIGHT_PATH_FILESTAT_SET_SIZE |
260
WASI_RIGHT_PATH_FILESTAT_SET_TIMES |
261
WASI_RIGHT_FD_FILESTAT_GET |
262
WASI_RIGHT_FD_FILESTAT_SET_TIMES |
263
WASI_RIGHT_PATH_SYMLINK |
264
WASI_RIGHT_PATH_UNLINK_FILE |
265
WASI_RIGHT_PATH_REMOVE_DIRECTORY |
266
WASI_RIGHT_POLL_FD_READWRITE;
267
export const RIGHTS_DIRECTORY_INHERITING =
268
RIGHTS_DIRECTORY_BASE | RIGHTS_REGULAR_FILE_BASE;
269
270
export const RIGHTS_SOCKET_BASE =
271
WASI_RIGHT_FD_READ |
272
WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
273
WASI_RIGHT_FD_WRITE |
274
WASI_RIGHT_FD_FILESTAT_GET |
275
WASI_RIGHT_POLL_FD_READWRITE |
276
WASI_RIGHT_SOCK_SHUTDOWN;
277
export const RIGHTS_SOCKET_INHERITING = RIGHTS_ALL;
278
279
export const RIGHTS_TTY_BASE =
280
WASI_RIGHT_FD_READ |
281
WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
282
WASI_RIGHT_FD_WRITE |
283
WASI_RIGHT_FD_FILESTAT_GET |
284
WASI_RIGHT_POLL_FD_READWRITE;
285
export const RIGHTS_TTY_INHERITING = BigInt(0);
286
287
export const WASI_CLOCK_REALTIME = 0;
288
export const WASI_CLOCK_MONOTONIC = 1;
289
export const WASI_CLOCK_PROCESS_CPUTIME_ID = 2;
290
export const WASI_CLOCK_THREAD_CPUTIME_ID = 3;
291
292
export const WASI_EVENTTYPE_CLOCK = 0;
293
export const WASI_EVENTTYPE_FD_READ = 1;
294
export const WASI_EVENTTYPE_FD_WRITE = 2;
295
296
export const WASI_FILESTAT_SET_ATIM = 1 << 0;
297
export const WASI_FILESTAT_SET_ATIM_NOW = 1 << 1;
298
export const WASI_FILESTAT_SET_MTIM = 1 << 2;
299
export const WASI_FILESTAT_SET_MTIM_NOW = 1 << 3;
300
301
export const WASI_O_CREAT = 1 << 0;
302
export const WASI_O_DIRECTORY = 1 << 1;
303
export const WASI_O_EXCL = 1 << 2;
304
export const WASI_O_TRUNC = 1 << 3;
305
306
export const WASI_PREOPENTYPE_DIR = 0;
307
308
export const WASI_DIRCOOKIE_START = 0;
309
310
export const WASI_STDIN_FILENO = 0;
311
export const WASI_STDOUT_FILENO = 1;
312
export const WASI_STDERR_FILENO = 2;
313
314
export const WASI_WHENCE_SET = 0;
315
export const WASI_WHENCE_CUR = 1;
316
export const WASI_WHENCE_END = 2;
317
318
// http://man7.org/linux/man-pages/man3/errno.3.html
319
export const ERROR_MAP: { [key: string]: number } = {
320
E2BIG: WASI_E2BIG,
321
EACCES: WASI_EACCES,
322
EADDRINUSE: WASI_EADDRINUSE,
323
EADDRNOTAVAIL: WASI_EADDRNOTAVAIL,
324
EAFNOSUPPORT: WASI_EAFNOSUPPORT,
325
EALREADY: WASI_EALREADY,
326
EAGAIN: WASI_EAGAIN,
327
// EBADE: WASI_EBADE,
328
EBADF: WASI_EBADF,
329
// EBADFD: WASI_EBADFD,
330
EBADMSG: WASI_EBADMSG,
331
// EBADR: WASI_EBADR,
332
// EBADRQC: WASI_EBADRQC,
333
// EBADSLT: WASI_EBADSLT,
334
EBUSY: WASI_EBUSY,
335
ECANCELED: WASI_ECANCELED,
336
ECHILD: WASI_ECHILD,
337
// ECHRNG: WASI_ECHRNG,
338
// ECOMM: WASI_ECOMM,
339
ECONNABORTED: WASI_ECONNABORTED,
340
ECONNREFUSED: WASI_ECONNREFUSED,
341
ECONNRESET: WASI_ECONNRESET,
342
EDEADLOCK: WASI_EDEADLK,
343
EDESTADDRREQ: WASI_EDESTADDRREQ,
344
EDOM: WASI_EDOM,
345
EDQUOT: WASI_EDQUOT,
346
EEXIST: WASI_EEXIST,
347
EFAULT: WASI_EFAULT,
348
EFBIG: WASI_EFBIG,
349
EHOSTDOWN: WASI_EHOSTUNREACH,
350
EHOSTUNREACH: WASI_EHOSTUNREACH,
351
// EHWPOISON: WASI_EHWPOISON,
352
EIDRM: WASI_EIDRM,
353
EILSEQ: WASI_EILSEQ,
354
EINPROGRESS: WASI_EINPROGRESS,
355
EINTR: WASI_EINTR,
356
EINVAL: WASI_EINVAL,
357
EIO: WASI_EIO,
358
EISCONN: WASI_EISCONN,
359
EISDIR: WASI_EISDIR,
360
ELOOP: WASI_ELOOP,
361
EMFILE: WASI_EMFILE,
362
EMLINK: WASI_EMLINK,
363
EMSGSIZE: WASI_EMSGSIZE,
364
EMULTIHOP: WASI_EMULTIHOP,
365
ENAMETOOLONG: WASI_ENAMETOOLONG,
366
ENETDOWN: WASI_ENETDOWN,
367
ENETRESET: WASI_ENETRESET,
368
ENETUNREACH: WASI_ENETUNREACH,
369
ENFILE: WASI_ENFILE,
370
ENOBUFS: WASI_ENOBUFS,
371
ENODEV: WASI_ENODEV,
372
ENOENT: WASI_ENOENT,
373
ENOEXEC: WASI_ENOEXEC,
374
ENOLCK: WASI_ENOLCK,
375
ENOLINK: WASI_ENOLINK,
376
ENOMEM: WASI_ENOMEM,
377
ENOMSG: WASI_ENOMSG,
378
ENOPROTOOPT: WASI_ENOPROTOOPT,
379
ENOSPC: WASI_ENOSPC,
380
ENOSYS: WASI_ENOSYS,
381
ENOTCONN: WASI_ENOTCONN,
382
ENOTDIR: WASI_ENOTDIR,
383
ENOTEMPTY: WASI_ENOTEMPTY,
384
ENOTRECOVERABLE: WASI_ENOTRECOVERABLE,
385
ENOTSOCK: WASI_ENOTSOCK,
386
ENOTTY: WASI_ENOTTY,
387
ENXIO: WASI_ENXIO,
388
EOVERFLOW: WASI_EOVERFLOW,
389
EOWNERDEAD: WASI_EOWNERDEAD,
390
EPERM: WASI_EPERM,
391
EPIPE: WASI_EPIPE,
392
EPROTO: WASI_EPROTO,
393
EPROTONOSUPPORT: WASI_EPROTONOSUPPORT,
394
EPROTOTYPE: WASI_EPROTOTYPE,
395
ERANGE: WASI_ERANGE,
396
EROFS: WASI_EROFS,
397
ESPIPE: WASI_ESPIPE,
398
ESRCH: WASI_ESRCH,
399
ESTALE: WASI_ESTALE,
400
ETIMEDOUT: WASI_ETIMEDOUT,
401
ETXTBSY: WASI_ETXTBSY,
402
EXDEV: WASI_EXDEV
403
};
404
405
export const SIGNAL_MAP: { [key: string]: string } = {
406
[WASI_SIGHUP]: "SIGHUP",
407
[WASI_SIGINT]: "SIGINT",
408
[WASI_SIGQUIT]: "SIGQUIT",
409
[WASI_SIGILL]: "SIGILL",
410
[WASI_SIGTRAP]: "SIGTRAP",
411
[WASI_SIGABRT]: "SIGABRT",
412
[WASI_SIGBUS]: "SIGBUS",
413
[WASI_SIGFPE]: "SIGFPE",
414
[WASI_SIGKILL]: "SIGKILL",
415
[WASI_SIGUSR1]: "SIGUSR1",
416
[WASI_SIGSEGV]: "SIGSEGV",
417
[WASI_SIGUSR2]: "SIGUSR2",
418
[WASI_SIGPIPE]: "SIGPIPE",
419
[WASI_SIGALRM]: "SIGALRM",
420
[WASI_SIGTERM]: "SIGTERM",
421
[WASI_SIGCHLD]: "SIGCHLD",
422
[WASI_SIGCONT]: "SIGCONT",
423
[WASI_SIGSTOP]: "SIGSTOP",
424
[WASI_SIGTSTP]: "SIGTSTP",
425
[WASI_SIGTTIN]: "SIGTTIN",
426
[WASI_SIGTTOU]: "SIGTTOU",
427
[WASI_SIGURG]: "SIGURG",
428
[WASI_SIGXCPU]: "SIGXCPU",
429
[WASI_SIGXFSZ]: "SIGXFSZ",
430
[WASI_SIGVTALRM]: "SIGVTALRM"
431
};
432
433