1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-29 16:30:56 -05:00
denoland-deno/cli/msg.fbs

598 lines
8.1 KiB
Text
Raw Normal View History

union Any {
2019-03-11 23:25:18 -04:00
Accept,
ApplySourceMap,
Cache,
2019-03-11 23:25:18 -04:00
Chdir,
Chmod,
2019-05-07 21:58:58 -04:00
Chown,
2019-03-11 23:25:18 -04:00
Close,
CopyFile,
CreateWorker,
CreateWorkerRes,
2019-03-11 23:25:18 -04:00
Cwd,
CwdRes,
Dial,
Environ,
EnvironRes,
2019-03-11 23:25:18 -04:00
Exit,
2018-10-30 15:02:18 -04:00
Fetch,
FetchSourceFile,
FetchSourceFileRes,
FetchRes,
2019-03-11 23:25:18 -04:00
FormatError,
FormatErrorRes,
2019-05-17 14:03:01 -04:00
GetRandomValues,
GlobalTimer,
GlobalTimerRes,
GlobalTimerStop,
HostGetMessage,
HostGetMessageRes,
HostGetWorkerClosed,
HostPostMessage,
2019-03-11 23:25:18 -04:00
IsTTY,
IsTTYRes,
Kill,
Link,
2019-03-11 23:25:18 -04:00
Listen,
ListenRes,
2018-08-23 18:36:45 -04:00
MakeTempDir,
MakeTempDirRes,
2019-03-11 23:25:18 -04:00
Metrics,
MetricsRes,
2018-09-10 05:48:36 -04:00
Mkdir,
2019-03-11 23:25:18 -04:00
NewConn,
Now,
NowRes,
Open,
OpenRes,
PermissionRevoke,
Permissions,
PermissionsRes,
2018-10-03 17:56:56 -04:00
ReadDir,
ReadDirRes,
2018-09-25 00:20:49 -04:00
Readlink,
ReadlinkRes,
2019-03-11 23:25:18 -04:00
Remove,
Rename,
ReplReadline,
ReplReadlineRes,
2019-03-11 23:25:18 -04:00
ReplStart,
ReplStartRes,
2018-10-30 15:58:55 -04:00
Resources,
ResourcesRes,
Run,
RunRes,
RunStatus,
2019-02-02 01:27:42 -05:00
RunStatusRes,
Seek,
2019-03-11 23:25:18 -04:00
SetEnv,
Shutdown,
Start,
StartRes,
Stat,
StatRes,
Symlink,
Truncate,
2019-06-25 12:05:41 -04:00
HomeDir,
HomeDirRes,
ExecPath,
ExecPathRes,
Utime,
2019-03-11 23:25:18 -04:00
WorkerGetMessage,
WorkerGetMessageRes,
WorkerPostMessage,
2018-07-04 14:50:28 -04:00
}
enum ErrorKind: byte {
NoError = 0,
// io errors
NotFound,
PermissionDenied,
ConnectionRefused,
ConnectionReset,
ConnectionAborted,
NotConnected,
AddrInUse,
AddrNotAvailable,
BrokenPipe,
AlreadyExists,
WouldBlock,
InvalidInput,
InvalidData,
TimedOut,
Interrupted,
WriteZero,
Other,
UnexpectedEof,
2018-10-10 11:15:47 -04:00
BadResource,
CommandFailed,
// url errors
EmptyHost,
IdnaError,
InvalidPort,
InvalidIpv4Address,
InvalidIpv6Address,
InvalidDomainCharacter,
RelativeUrlWithoutBase,
RelativeUrlWithCannotBeABaseBase,
SetHostOnCannotBeABaseUrl,
Overflow,
// hyper errors
HttpUser,
HttpClosed,
HttpCanceled,
HttpParse,
HttpOther,
TooLarge,
// custom errors
InvalidUri,
InvalidSeekMode,
2019-06-19 22:07:01 -04:00
OpNotAvailable,
WorkerInitFailed,
UnixError,
2019-06-17 21:02:08 -04:00
NoAsyncSupport,
NoSyncSupport,
2019-06-09 09:08:20 -04:00
ImportMapError,
InvalidPath,
ImportPrefixMissing,
UnsupportedFetchScheme,
TooManyRedirects,
2019-06-19 22:07:01 -04:00
// other kinds
Diagnostic,
JSError,
}
2018-10-13 16:03:27 -04:00
table Cwd {}
table CwdRes {
cwd: string;
}
2018-10-21 22:14:27 -04:00
enum MediaType: byte {
JavaScript = 0,
TypeScript,
Json,
Unknown
}
table Base {
cmd_id: uint32;
2018-12-12 08:24:36 -05:00
sync: bool = false;
error_kind: ErrorKind = NoError;
error: string;
inner: Any;
2018-07-04 14:50:28 -04:00
}
table Start {
unused: int8;
}
table StartRes {
cwd: string;
2019-01-06 14:16:42 -05:00
pid: uint32;
argv: [string];
2019-02-12 21:14:02 -05:00
main_module: string; // Absolute URL.
debug_flag: bool;
deps_flag: bool;
2018-10-11 17:23:22 -04:00
types_flag: bool;
version_flag: bool;
deno_version: string;
v8_version: string;
2019-02-08 22:13:04 -05:00
no_color: bool;
2019-05-03 16:24:09 -04:00
xeval_delim: string;
}
table FormatError {
error: string;
}
table FormatErrorRes {
error: string;
}
// Create worker as host
table CreateWorker {
specifier: string;
include_deno_namespace: bool;
has_source_code: bool;
source_code: string;
}
table CreateWorkerRes {
rid: uint32;
}
table HostGetWorkerClosed {
rid: uint32;
}
// Get message from guest worker as host
table HostGetMessage {
rid: uint32;
}
table HostGetMessageRes {
data: [ubyte];
}
// Post message to guest worker as host
table HostPostMessage {
rid: uint32;
// data passed thru the zero-copy data parameter.
}
// Get message from host as guest worker
table WorkerGetMessage {
unused: int8;
}
table WorkerGetMessageRes {
data: [ubyte];
}
// Post message to host as guest worker
table WorkerPostMessage {
// data passed thru the zero-copy data parameter.
}
table FetchSourceFile {
specifier: string;
referrer: string;
}
table FetchSourceFileRes {
// If it's a non-http module, moduleName and filename will be the same.
// For http modules, module_name is its resolved http URL, and filename
// is the location of the locally downloaded source code.
module_name: string;
filename: string;
2018-10-21 22:14:27 -04:00
media_type: MediaType;
2019-02-18 10:42:15 -05:00
data: [ubyte];
}
table ApplySourceMap {
filename: string;
line: int;
column: int;
}
table Cache {
extension: string;
module_id: string;
contents: string;
}
2018-10-13 16:03:27 -04:00
table Chdir {
directory: string;
}
table GlobalTimer {
timeout: int;
}
table GlobalTimerRes { }
table GlobalTimerStop { }
table Exit {
code: int;
}
table Environ {}
table SetEnv {
2018-09-07 18:59:02 -04:00
key: string;
value: string;
}
table EnvironRes {
2018-11-02 20:09:10 -04:00
map: [KeyValue];
}
2018-11-02 20:09:10 -04:00
table KeyValue {
2018-09-07 18:59:02 -04:00
key: string;
value: string;
}
table Permissions {}
table PermissionRevoke {
permission: string;
}
table PermissionsRes {
run: bool;
read: bool;
write: bool;
net: bool;
env: bool;
hrtime: bool;
}
// Note this represents The WHOLE header of an http message, not just the key
// value pairs. That means it includes method and url for Requests and status
// for responses. This is why it is singular "Header" instead of "Headers".
table HttpHeader {
is_request: bool;
// Request only:
method: string;
url: string;
// Response only:
status: uint16;
// Both:
fields: [KeyValue];
}
table Fetch {
header: HttpHeader;
}
table FetchRes {
header: HttpHeader;
body_rid: uint32;
}
2018-08-23 18:36:45 -04:00
table MakeTempDir {
dir: string;
prefix: string;
suffix: string;
}
table MakeTempDirRes {
path: string;
}
2018-09-10 05:48:36 -04:00
table Mkdir {
2018-08-26 02:26:30 -04:00
path: string;
recursive: bool;
mode: uint; // Specified by https://godoc.org/os#FileMode
2018-08-26 02:26:30 -04:00
}
table Chmod {
path: string;
mode: uint; // Specified by https://godoc.org/os#FileMode
}
2019-05-07 21:58:58 -04:00
table Chown {
path: string;
uid: uint;
gid: uint; // Specified by https://godoc.org/os#Chown
}
table Remove {
path: string;
recursive: bool;
}
2018-10-03 17:56:56 -04:00
table ReadDir {
path: string;
}
table ReadDirRes {
entries: [StatRes];
}
2018-09-30 18:06:41 -04:00
table CopyFile {
from: string;
to: string;
}
2018-09-12 11:44:58 -04:00
table Rename {
2018-09-03 20:22:30 -04:00
oldpath: string;
newpath: string;
}
2018-09-25 00:20:49 -04:00
table Readlink {
name: string;
}
table ReadlinkRes {
path: string;
}
table ReplStart {
history_file: string;
// TODO add config
}
table ReplStartRes {
rid: uint32;
}
table ReplReadline {
rid: uint32;
prompt: string;
}
table ReplReadlineRes {
line: string;
}
2018-10-30 15:58:55 -04:00
table Resources {}
table Resource {
rid: uint32;
2018-10-30 15:58:55 -04:00
repr: string;
}
table ResourcesRes {
resources: [Resource];
}
2018-09-19 00:38:24 -04:00
table Symlink {
oldname: string;
newname: string;
}
table Link {
oldname: string;
newname: string;
}
2018-09-11 15:38:53 -04:00
table Stat {
2018-08-29 09:22:25 -04:00
filename: string;
lstat: bool;
}
2018-09-11 15:38:53 -04:00
table StatRes {
2018-08-29 09:22:25 -04:00
is_file: bool;
is_symlink: bool;
len: ulong;
modified:ulong;
accessed:ulong;
created:ulong;
mode: uint;
has_mode: bool; // false on windows
2018-10-03 17:56:56 -04:00
name: string;
2018-08-29 09:22:25 -04:00
}
2018-09-30 15:06:20 -04:00
table Truncate {
name: string;
len: uint;
}
2019-06-25 12:05:41 -04:00
table HomeDir {}
table HomeDirRes {
path: string;
}
table ExecPath {}
table ExecPathRes {
path: string;
}
table Utime {
filename: string;
atime: uint64;
mtime: uint64;
}
table Open {
filename: string;
perm: uint;
2018-12-12 12:05:58 -05:00
mode: string;
}
table OpenRes {
rid: uint32;
}
table Close {
rid: uint32;
}
table Kill {
pid: int32;
signo: int32;
}
table Shutdown {
rid: uint32;
how: uint;
}
table Listen {
network: string;
address: string;
}
table ListenRes {
rid: uint32;
}
table Accept {
rid: uint32;
}
table Dial {
network: string;
address: string;
}
// Response to Accept and Dial.
table NewConn {
rid: uint32;
remote_addr: string;
local_addr: string;
}
2018-10-05 13:21:15 -04:00
table Metrics {}
table MetricsRes {
ops_dispatched: uint64;
ops_completed: uint64;
bytes_sent_control: uint64;
bytes_sent_data: uint64;
bytes_received: uint64;
}
enum ProcessStdio: byte { Inherit, Piped, Null }
table Run {
args: [string];
cwd: string;
2019-02-15 10:37:04 -05:00
env: [KeyValue];
stdin: ProcessStdio;
stdout: ProcessStdio;
stderr: ProcessStdio;
stdin_rid: uint32;
stdout_rid: uint32;
stderr_rid: uint32;
}
table RunRes {
rid: uint32;
pid: uint32;
// The following stdio rids are only valid if "Piped" was specified for the
// corresponding stdio stream. The caller MUST issue a close op for all valid
// stdio streams.
stdin_rid: uint32;
stdout_rid: uint32;
stderr_rid: uint32;
}
table RunStatus {
rid: uint32;
}
table RunStatusRes {
got_signal: bool;
exit_code: int;
exit_signal: int;
}
2019-02-02 01:27:42 -05:00
table Now {}
table NowRes {
seconds: uint64;
subsec_nanos: uint32;
2019-02-02 01:27:42 -05:00
}
2019-02-02 22:05:30 -05:00
table IsTTY {}
table IsTTYRes {
stdin: bool;
stdout: bool;
stderr: bool;
}
table Seek {
rid: uint32;
offset: int;
whence: uint;
}
2019-05-17 14:03:01 -04:00
table GetRandomValues {}
root_type Base;