Add explicit CRDT edit contracts and structured query values
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1,283 +1,285 @@
|
||||
CREATION=1
|
||||
INITIALIZE=2
|
||||
WORKSPACE=3
|
||||
EXECUTION=4
|
||||
SNAPSHOT=5
|
||||
TRANSACTION=6
|
||||
REMOTE=7
|
||||
TARGETS=8
|
||||
PORTABLE=9
|
||||
REPLICA=10
|
||||
LOCAL=11
|
||||
FROM=12
|
||||
RESULT_BYTES=13
|
||||
RPC_CALLS=14
|
||||
DEADLINE_MS=15
|
||||
QUERY=16
|
||||
REFLECTION=17
|
||||
SPECIALIZE=18
|
||||
ROOT=19
|
||||
DOCUMENT=20
|
||||
FRAGMENTS=21
|
||||
VIEW=22
|
||||
MAX=23
|
||||
ALLOW=24
|
||||
POLL=25
|
||||
QUERYABLE=26
|
||||
RPC=27
|
||||
QUERY_REASON=28
|
||||
TYPE=29
|
||||
OBJECT=30
|
||||
STORABLE=31
|
||||
IMPLEMENTS=32
|
||||
REF=33
|
||||
FRAGMENT=34
|
||||
IMPORT=35
|
||||
EXTERNAL=36
|
||||
ATOM=37
|
||||
INTERFACE=38
|
||||
INTERFACES=39
|
||||
PACKAGE=40
|
||||
VALUE=41
|
||||
RELATION=42
|
||||
OPERATION=43
|
||||
FUNCTION=44
|
||||
CONSTRUCTOR=45
|
||||
CONSTRUCTS=46
|
||||
INPUT=47
|
||||
CONFORM=48
|
||||
AS=49
|
||||
BIND=50
|
||||
STATIC=51
|
||||
TO=52
|
||||
PRIVATE=53
|
||||
SHARED=54
|
||||
STATE=55
|
||||
EDGE=56
|
||||
PROJECTION=57
|
||||
WITH=58
|
||||
USING=59
|
||||
VIA=60
|
||||
MATERIALIZE=61
|
||||
IF=62
|
||||
ABSENT=63
|
||||
ON=64
|
||||
POLICY=65
|
||||
DEFAULT=66
|
||||
SOURCE=67
|
||||
REPOSITORY=68
|
||||
COMMIT=69
|
||||
REVISION=70
|
||||
SEMANTIC_MAJOR=71
|
||||
ON_DELETE=72
|
||||
RETAIN_OTHER=73
|
||||
KEYED=74
|
||||
PUBLIC_TRAVERSAL=75
|
||||
ID=76
|
||||
DOC=77
|
||||
MODE=78
|
||||
EMITS=79
|
||||
RECEIVER=80
|
||||
REQUIRES=81
|
||||
ANY=82
|
||||
GET=83
|
||||
SET=84
|
||||
WATCH=85
|
||||
START=86
|
||||
STOP=87
|
||||
READ=88
|
||||
WRITE=89
|
||||
RESOLVE=90
|
||||
CONNECT=91
|
||||
DISCONNECT=92
|
||||
CALL=93
|
||||
WATCH_START=94
|
||||
WATCH_STOP=95
|
||||
SUBSCRIBE=96
|
||||
UNSUBSCRIBE=97
|
||||
REGISTER=98
|
||||
CRDT=99
|
||||
OPTIONAL_ONE=100
|
||||
EXACTLY_ONE=101
|
||||
MANY_UNIQUE=102
|
||||
MANY=103
|
||||
ORDERED=104
|
||||
UNIT=105
|
||||
WATCH_HANDLE=106
|
||||
MESSAGE=107
|
||||
ATOM_REF=108
|
||||
INTERFACE_REF=109
|
||||
OPTIONAL=110
|
||||
LIST=111
|
||||
RECORD=112
|
||||
BOOL=113
|
||||
BYTES=114
|
||||
DOUBLE=115
|
||||
INT32=116
|
||||
INT64=117
|
||||
STRING=118
|
||||
UINT32=119
|
||||
UINT64=120
|
||||
TRUE=121
|
||||
FALSE=122
|
||||
NULL=123
|
||||
ARROW=124
|
||||
COLON=125
|
||||
SEMI=126
|
||||
COMMA=127
|
||||
DOT=128
|
||||
LBRACE=129
|
||||
RBRACE=130
|
||||
LBRACK=131
|
||||
RBRACK=132
|
||||
LPAREN=133
|
||||
RPAREN=134
|
||||
LT=135
|
||||
GT=136
|
||||
AMP=137
|
||||
EQUAL=138
|
||||
INTEGER=139
|
||||
JSON_NUMBER=140
|
||||
IDENTIFIER=141
|
||||
STRING_LITERAL=142
|
||||
LINE_COMMENT=143
|
||||
BLOCK_COMMENT=144
|
||||
WS=145
|
||||
'creation'=1
|
||||
'initialize'=2
|
||||
'workspace'=3
|
||||
'execution'=4
|
||||
'snapshot'=5
|
||||
'transaction'=6
|
||||
'remote'=7
|
||||
'targets'=8
|
||||
'portable'=9
|
||||
'replica'=10
|
||||
'local'=11
|
||||
'from'=12
|
||||
'result-bytes'=13
|
||||
'rpc-calls'=14
|
||||
'deadline-ms'=15
|
||||
'query'=16
|
||||
'reflection'=17
|
||||
'specialize'=18
|
||||
'root'=19
|
||||
'document'=20
|
||||
'fragments'=21
|
||||
'view'=22
|
||||
'max'=23
|
||||
'allow'=24
|
||||
'poll'=25
|
||||
'queryable'=26
|
||||
'rpc'=27
|
||||
'query-reason'=28
|
||||
'type'=29
|
||||
'object'=30
|
||||
'storable'=31
|
||||
'implements'=32
|
||||
'ref'=33
|
||||
'fragment'=34
|
||||
'import'=35
|
||||
'external'=36
|
||||
'atom'=37
|
||||
'interface'=38
|
||||
'interfaces'=39
|
||||
'package'=40
|
||||
'value'=41
|
||||
'relation'=42
|
||||
'operation'=43
|
||||
'function'=44
|
||||
'constructor'=45
|
||||
'constructs'=46
|
||||
'input'=47
|
||||
'conform'=48
|
||||
'as'=49
|
||||
'bind'=50
|
||||
'static'=51
|
||||
'to'=52
|
||||
'private'=53
|
||||
'shared'=54
|
||||
'state'=55
|
||||
'edge'=56
|
||||
'projection'=57
|
||||
'with'=58
|
||||
'using'=59
|
||||
'via'=60
|
||||
'materialize'=61
|
||||
'if'=62
|
||||
'absent'=63
|
||||
'on'=64
|
||||
'policy'=65
|
||||
'default'=66
|
||||
'source'=67
|
||||
'repository'=68
|
||||
'commit'=69
|
||||
'revision'=70
|
||||
'semantic-major'=71
|
||||
'on-delete'=72
|
||||
'retain-other'=73
|
||||
'keyed'=74
|
||||
'public-traversal'=75
|
||||
'id'=76
|
||||
'doc'=77
|
||||
'mode'=78
|
||||
'emits'=79
|
||||
'receiver'=80
|
||||
'requires'=81
|
||||
'any'=82
|
||||
'get'=83
|
||||
'set'=84
|
||||
'watch'=85
|
||||
'start'=86
|
||||
'stop'=87
|
||||
'read'=88
|
||||
'write'=89
|
||||
'resolve'=90
|
||||
'connect'=91
|
||||
'disconnect'=92
|
||||
'call'=93
|
||||
'watch-start'=94
|
||||
'watch-stop'=95
|
||||
'subscribe'=96
|
||||
'unsubscribe'=97
|
||||
'register'=98
|
||||
'crdt'=99
|
||||
'optional-one'=100
|
||||
'exactly-one'=101
|
||||
'many-unique'=102
|
||||
'many'=103
|
||||
'ordered'=104
|
||||
'unit'=105
|
||||
'watch-handle'=106
|
||||
'message'=107
|
||||
'atom-ref'=108
|
||||
'interface-ref'=109
|
||||
'optional'=110
|
||||
'list'=111
|
||||
'record'=112
|
||||
'bool'=113
|
||||
'bytes'=114
|
||||
'double'=115
|
||||
'int32'=116
|
||||
'int64'=117
|
||||
'string'=118
|
||||
'uint32'=119
|
||||
'uint64'=120
|
||||
'true'=121
|
||||
'false'=122
|
||||
'null'=123
|
||||
'->'=124
|
||||
':'=125
|
||||
';'=126
|
||||
','=127
|
||||
'.'=128
|
||||
'{'=129
|
||||
'}'=130
|
||||
'['=131
|
||||
']'=132
|
||||
'('=133
|
||||
')'=134
|
||||
'<'=135
|
||||
'>'=136
|
||||
'&'=137
|
||||
'='=138
|
||||
EDIT=1
|
||||
CREATION=2
|
||||
INITIALIZE=3
|
||||
WORKSPACE=4
|
||||
EXECUTION=5
|
||||
SNAPSHOT=6
|
||||
TRANSACTION=7
|
||||
REMOTE=8
|
||||
TARGETS=9
|
||||
PORTABLE=10
|
||||
REPLICA=11
|
||||
LOCAL=12
|
||||
FROM=13
|
||||
RESULT_BYTES=14
|
||||
RPC_CALLS=15
|
||||
DEADLINE_MS=16
|
||||
QUERY=17
|
||||
REFLECTION=18
|
||||
SPECIALIZE=19
|
||||
ROOT=20
|
||||
DOCUMENT=21
|
||||
FRAGMENTS=22
|
||||
VIEW=23
|
||||
MAX=24
|
||||
ALLOW=25
|
||||
POLL=26
|
||||
QUERYABLE=27
|
||||
RPC=28
|
||||
QUERY_REASON=29
|
||||
TYPE=30
|
||||
OBJECT=31
|
||||
STORABLE=32
|
||||
IMPLEMENTS=33
|
||||
REF=34
|
||||
FRAGMENT=35
|
||||
IMPORT=36
|
||||
EXTERNAL=37
|
||||
ATOM=38
|
||||
INTERFACE=39
|
||||
INTERFACES=40
|
||||
PACKAGE=41
|
||||
VALUE=42
|
||||
RELATION=43
|
||||
OPERATION=44
|
||||
FUNCTION=45
|
||||
CONSTRUCTOR=46
|
||||
CONSTRUCTS=47
|
||||
INPUT=48
|
||||
CONFORM=49
|
||||
AS=50
|
||||
BIND=51
|
||||
STATIC=52
|
||||
TO=53
|
||||
PRIVATE=54
|
||||
SHARED=55
|
||||
STATE=56
|
||||
EDGE=57
|
||||
PROJECTION=58
|
||||
WITH=59
|
||||
USING=60
|
||||
VIA=61
|
||||
MATERIALIZE=62
|
||||
IF=63
|
||||
ABSENT=64
|
||||
ON=65
|
||||
POLICY=66
|
||||
DEFAULT=67
|
||||
SOURCE=68
|
||||
REPOSITORY=69
|
||||
COMMIT=70
|
||||
REVISION=71
|
||||
SEMANTIC_MAJOR=72
|
||||
ON_DELETE=73
|
||||
RETAIN_OTHER=74
|
||||
KEYED=75
|
||||
PUBLIC_TRAVERSAL=76
|
||||
ID=77
|
||||
DOC=78
|
||||
MODE=79
|
||||
EMITS=80
|
||||
RECEIVER=81
|
||||
REQUIRES=82
|
||||
ANY=83
|
||||
GET=84
|
||||
SET=85
|
||||
WATCH=86
|
||||
START=87
|
||||
STOP=88
|
||||
READ=89
|
||||
WRITE=90
|
||||
RESOLVE=91
|
||||
CONNECT=92
|
||||
DISCONNECT=93
|
||||
CALL=94
|
||||
WATCH_START=95
|
||||
WATCH_STOP=96
|
||||
SUBSCRIBE=97
|
||||
UNSUBSCRIBE=98
|
||||
REGISTER=99
|
||||
CRDT=100
|
||||
OPTIONAL_ONE=101
|
||||
EXACTLY_ONE=102
|
||||
MANY_UNIQUE=103
|
||||
MANY=104
|
||||
ORDERED=105
|
||||
UNIT=106
|
||||
WATCH_HANDLE=107
|
||||
MESSAGE=108
|
||||
ATOM_REF=109
|
||||
INTERFACE_REF=110
|
||||
OPTIONAL=111
|
||||
LIST=112
|
||||
RECORD=113
|
||||
BOOL=114
|
||||
BYTES=115
|
||||
DOUBLE=116
|
||||
INT32=117
|
||||
INT64=118
|
||||
STRING=119
|
||||
UINT32=120
|
||||
UINT64=121
|
||||
TRUE=122
|
||||
FALSE=123
|
||||
NULL=124
|
||||
ARROW=125
|
||||
COLON=126
|
||||
SEMI=127
|
||||
COMMA=128
|
||||
DOT=129
|
||||
LBRACE=130
|
||||
RBRACE=131
|
||||
LBRACK=132
|
||||
RBRACK=133
|
||||
LPAREN=134
|
||||
RPAREN=135
|
||||
LT=136
|
||||
GT=137
|
||||
AMP=138
|
||||
EQUAL=139
|
||||
INTEGER=140
|
||||
JSON_NUMBER=141
|
||||
IDENTIFIER=142
|
||||
STRING_LITERAL=143
|
||||
LINE_COMMENT=144
|
||||
BLOCK_COMMENT=145
|
||||
WS=146
|
||||
'edit'=1
|
||||
'creation'=2
|
||||
'initialize'=3
|
||||
'workspace'=4
|
||||
'execution'=5
|
||||
'snapshot'=6
|
||||
'transaction'=7
|
||||
'remote'=8
|
||||
'targets'=9
|
||||
'portable'=10
|
||||
'replica'=11
|
||||
'local'=12
|
||||
'from'=13
|
||||
'result-bytes'=14
|
||||
'rpc-calls'=15
|
||||
'deadline-ms'=16
|
||||
'query'=17
|
||||
'reflection'=18
|
||||
'specialize'=19
|
||||
'root'=20
|
||||
'document'=21
|
||||
'fragments'=22
|
||||
'view'=23
|
||||
'max'=24
|
||||
'allow'=25
|
||||
'poll'=26
|
||||
'queryable'=27
|
||||
'rpc'=28
|
||||
'query-reason'=29
|
||||
'type'=30
|
||||
'object'=31
|
||||
'storable'=32
|
||||
'implements'=33
|
||||
'ref'=34
|
||||
'fragment'=35
|
||||
'import'=36
|
||||
'external'=37
|
||||
'atom'=38
|
||||
'interface'=39
|
||||
'interfaces'=40
|
||||
'package'=41
|
||||
'value'=42
|
||||
'relation'=43
|
||||
'operation'=44
|
||||
'function'=45
|
||||
'constructor'=46
|
||||
'constructs'=47
|
||||
'input'=48
|
||||
'conform'=49
|
||||
'as'=50
|
||||
'bind'=51
|
||||
'static'=52
|
||||
'to'=53
|
||||
'private'=54
|
||||
'shared'=55
|
||||
'state'=56
|
||||
'edge'=57
|
||||
'projection'=58
|
||||
'with'=59
|
||||
'using'=60
|
||||
'via'=61
|
||||
'materialize'=62
|
||||
'if'=63
|
||||
'absent'=64
|
||||
'on'=65
|
||||
'policy'=66
|
||||
'default'=67
|
||||
'source'=68
|
||||
'repository'=69
|
||||
'commit'=70
|
||||
'revision'=71
|
||||
'semantic-major'=72
|
||||
'on-delete'=73
|
||||
'retain-other'=74
|
||||
'keyed'=75
|
||||
'public-traversal'=76
|
||||
'id'=77
|
||||
'doc'=78
|
||||
'mode'=79
|
||||
'emits'=80
|
||||
'receiver'=81
|
||||
'requires'=82
|
||||
'any'=83
|
||||
'get'=84
|
||||
'set'=85
|
||||
'watch'=86
|
||||
'start'=87
|
||||
'stop'=88
|
||||
'read'=89
|
||||
'write'=90
|
||||
'resolve'=91
|
||||
'connect'=92
|
||||
'disconnect'=93
|
||||
'call'=94
|
||||
'watch-start'=95
|
||||
'watch-stop'=96
|
||||
'subscribe'=97
|
||||
'unsubscribe'=98
|
||||
'register'=99
|
||||
'crdt'=100
|
||||
'optional-one'=101
|
||||
'exactly-one'=102
|
||||
'many-unique'=103
|
||||
'many'=104
|
||||
'ordered'=105
|
||||
'unit'=106
|
||||
'watch-handle'=107
|
||||
'message'=108
|
||||
'atom-ref'=109
|
||||
'interface-ref'=110
|
||||
'optional'=111
|
||||
'list'=112
|
||||
'record'=113
|
||||
'bool'=114
|
||||
'bytes'=115
|
||||
'double'=116
|
||||
'int32'=117
|
||||
'int64'=118
|
||||
'string'=119
|
||||
'uint32'=120
|
||||
'uint64'=121
|
||||
'true'=122
|
||||
'false'=123
|
||||
'null'=124
|
||||
'->'=125
|
||||
':'=126
|
||||
';'=127
|
||||
','=128
|
||||
'.'=129
|
||||
'{'=130
|
||||
'}'=131
|
||||
'['=132
|
||||
']'=133
|
||||
'('=134
|
||||
')'=135
|
||||
'<'=136
|
||||
'>'=137
|
||||
'&'=138
|
||||
'='=139
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,283 +1,285 @@
|
||||
CREATION=1
|
||||
INITIALIZE=2
|
||||
WORKSPACE=3
|
||||
EXECUTION=4
|
||||
SNAPSHOT=5
|
||||
TRANSACTION=6
|
||||
REMOTE=7
|
||||
TARGETS=8
|
||||
PORTABLE=9
|
||||
REPLICA=10
|
||||
LOCAL=11
|
||||
FROM=12
|
||||
RESULT_BYTES=13
|
||||
RPC_CALLS=14
|
||||
DEADLINE_MS=15
|
||||
QUERY=16
|
||||
REFLECTION=17
|
||||
SPECIALIZE=18
|
||||
ROOT=19
|
||||
DOCUMENT=20
|
||||
FRAGMENTS=21
|
||||
VIEW=22
|
||||
MAX=23
|
||||
ALLOW=24
|
||||
POLL=25
|
||||
QUERYABLE=26
|
||||
RPC=27
|
||||
QUERY_REASON=28
|
||||
TYPE=29
|
||||
OBJECT=30
|
||||
STORABLE=31
|
||||
IMPLEMENTS=32
|
||||
REF=33
|
||||
FRAGMENT=34
|
||||
IMPORT=35
|
||||
EXTERNAL=36
|
||||
ATOM=37
|
||||
INTERFACE=38
|
||||
INTERFACES=39
|
||||
PACKAGE=40
|
||||
VALUE=41
|
||||
RELATION=42
|
||||
OPERATION=43
|
||||
FUNCTION=44
|
||||
CONSTRUCTOR=45
|
||||
CONSTRUCTS=46
|
||||
INPUT=47
|
||||
CONFORM=48
|
||||
AS=49
|
||||
BIND=50
|
||||
STATIC=51
|
||||
TO=52
|
||||
PRIVATE=53
|
||||
SHARED=54
|
||||
STATE=55
|
||||
EDGE=56
|
||||
PROJECTION=57
|
||||
WITH=58
|
||||
USING=59
|
||||
VIA=60
|
||||
MATERIALIZE=61
|
||||
IF=62
|
||||
ABSENT=63
|
||||
ON=64
|
||||
POLICY=65
|
||||
DEFAULT=66
|
||||
SOURCE=67
|
||||
REPOSITORY=68
|
||||
COMMIT=69
|
||||
REVISION=70
|
||||
SEMANTIC_MAJOR=71
|
||||
ON_DELETE=72
|
||||
RETAIN_OTHER=73
|
||||
KEYED=74
|
||||
PUBLIC_TRAVERSAL=75
|
||||
ID=76
|
||||
DOC=77
|
||||
MODE=78
|
||||
EMITS=79
|
||||
RECEIVER=80
|
||||
REQUIRES=81
|
||||
ANY=82
|
||||
GET=83
|
||||
SET=84
|
||||
WATCH=85
|
||||
START=86
|
||||
STOP=87
|
||||
READ=88
|
||||
WRITE=89
|
||||
RESOLVE=90
|
||||
CONNECT=91
|
||||
DISCONNECT=92
|
||||
CALL=93
|
||||
WATCH_START=94
|
||||
WATCH_STOP=95
|
||||
SUBSCRIBE=96
|
||||
UNSUBSCRIBE=97
|
||||
REGISTER=98
|
||||
CRDT=99
|
||||
OPTIONAL_ONE=100
|
||||
EXACTLY_ONE=101
|
||||
MANY_UNIQUE=102
|
||||
MANY=103
|
||||
ORDERED=104
|
||||
UNIT=105
|
||||
WATCH_HANDLE=106
|
||||
MESSAGE=107
|
||||
ATOM_REF=108
|
||||
INTERFACE_REF=109
|
||||
OPTIONAL=110
|
||||
LIST=111
|
||||
RECORD=112
|
||||
BOOL=113
|
||||
BYTES=114
|
||||
DOUBLE=115
|
||||
INT32=116
|
||||
INT64=117
|
||||
STRING=118
|
||||
UINT32=119
|
||||
UINT64=120
|
||||
TRUE=121
|
||||
FALSE=122
|
||||
NULL=123
|
||||
ARROW=124
|
||||
COLON=125
|
||||
SEMI=126
|
||||
COMMA=127
|
||||
DOT=128
|
||||
LBRACE=129
|
||||
RBRACE=130
|
||||
LBRACK=131
|
||||
RBRACK=132
|
||||
LPAREN=133
|
||||
RPAREN=134
|
||||
LT=135
|
||||
GT=136
|
||||
AMP=137
|
||||
EQUAL=138
|
||||
INTEGER=139
|
||||
JSON_NUMBER=140
|
||||
IDENTIFIER=141
|
||||
STRING_LITERAL=142
|
||||
LINE_COMMENT=143
|
||||
BLOCK_COMMENT=144
|
||||
WS=145
|
||||
'creation'=1
|
||||
'initialize'=2
|
||||
'workspace'=3
|
||||
'execution'=4
|
||||
'snapshot'=5
|
||||
'transaction'=6
|
||||
'remote'=7
|
||||
'targets'=8
|
||||
'portable'=9
|
||||
'replica'=10
|
||||
'local'=11
|
||||
'from'=12
|
||||
'result-bytes'=13
|
||||
'rpc-calls'=14
|
||||
'deadline-ms'=15
|
||||
'query'=16
|
||||
'reflection'=17
|
||||
'specialize'=18
|
||||
'root'=19
|
||||
'document'=20
|
||||
'fragments'=21
|
||||
'view'=22
|
||||
'max'=23
|
||||
'allow'=24
|
||||
'poll'=25
|
||||
'queryable'=26
|
||||
'rpc'=27
|
||||
'query-reason'=28
|
||||
'type'=29
|
||||
'object'=30
|
||||
'storable'=31
|
||||
'implements'=32
|
||||
'ref'=33
|
||||
'fragment'=34
|
||||
'import'=35
|
||||
'external'=36
|
||||
'atom'=37
|
||||
'interface'=38
|
||||
'interfaces'=39
|
||||
'package'=40
|
||||
'value'=41
|
||||
'relation'=42
|
||||
'operation'=43
|
||||
'function'=44
|
||||
'constructor'=45
|
||||
'constructs'=46
|
||||
'input'=47
|
||||
'conform'=48
|
||||
'as'=49
|
||||
'bind'=50
|
||||
'static'=51
|
||||
'to'=52
|
||||
'private'=53
|
||||
'shared'=54
|
||||
'state'=55
|
||||
'edge'=56
|
||||
'projection'=57
|
||||
'with'=58
|
||||
'using'=59
|
||||
'via'=60
|
||||
'materialize'=61
|
||||
'if'=62
|
||||
'absent'=63
|
||||
'on'=64
|
||||
'policy'=65
|
||||
'default'=66
|
||||
'source'=67
|
||||
'repository'=68
|
||||
'commit'=69
|
||||
'revision'=70
|
||||
'semantic-major'=71
|
||||
'on-delete'=72
|
||||
'retain-other'=73
|
||||
'keyed'=74
|
||||
'public-traversal'=75
|
||||
'id'=76
|
||||
'doc'=77
|
||||
'mode'=78
|
||||
'emits'=79
|
||||
'receiver'=80
|
||||
'requires'=81
|
||||
'any'=82
|
||||
'get'=83
|
||||
'set'=84
|
||||
'watch'=85
|
||||
'start'=86
|
||||
'stop'=87
|
||||
'read'=88
|
||||
'write'=89
|
||||
'resolve'=90
|
||||
'connect'=91
|
||||
'disconnect'=92
|
||||
'call'=93
|
||||
'watch-start'=94
|
||||
'watch-stop'=95
|
||||
'subscribe'=96
|
||||
'unsubscribe'=97
|
||||
'register'=98
|
||||
'crdt'=99
|
||||
'optional-one'=100
|
||||
'exactly-one'=101
|
||||
'many-unique'=102
|
||||
'many'=103
|
||||
'ordered'=104
|
||||
'unit'=105
|
||||
'watch-handle'=106
|
||||
'message'=107
|
||||
'atom-ref'=108
|
||||
'interface-ref'=109
|
||||
'optional'=110
|
||||
'list'=111
|
||||
'record'=112
|
||||
'bool'=113
|
||||
'bytes'=114
|
||||
'double'=115
|
||||
'int32'=116
|
||||
'int64'=117
|
||||
'string'=118
|
||||
'uint32'=119
|
||||
'uint64'=120
|
||||
'true'=121
|
||||
'false'=122
|
||||
'null'=123
|
||||
'->'=124
|
||||
':'=125
|
||||
';'=126
|
||||
','=127
|
||||
'.'=128
|
||||
'{'=129
|
||||
'}'=130
|
||||
'['=131
|
||||
']'=132
|
||||
'('=133
|
||||
')'=134
|
||||
'<'=135
|
||||
'>'=136
|
||||
'&'=137
|
||||
'='=138
|
||||
EDIT=1
|
||||
CREATION=2
|
||||
INITIALIZE=3
|
||||
WORKSPACE=4
|
||||
EXECUTION=5
|
||||
SNAPSHOT=6
|
||||
TRANSACTION=7
|
||||
REMOTE=8
|
||||
TARGETS=9
|
||||
PORTABLE=10
|
||||
REPLICA=11
|
||||
LOCAL=12
|
||||
FROM=13
|
||||
RESULT_BYTES=14
|
||||
RPC_CALLS=15
|
||||
DEADLINE_MS=16
|
||||
QUERY=17
|
||||
REFLECTION=18
|
||||
SPECIALIZE=19
|
||||
ROOT=20
|
||||
DOCUMENT=21
|
||||
FRAGMENTS=22
|
||||
VIEW=23
|
||||
MAX=24
|
||||
ALLOW=25
|
||||
POLL=26
|
||||
QUERYABLE=27
|
||||
RPC=28
|
||||
QUERY_REASON=29
|
||||
TYPE=30
|
||||
OBJECT=31
|
||||
STORABLE=32
|
||||
IMPLEMENTS=33
|
||||
REF=34
|
||||
FRAGMENT=35
|
||||
IMPORT=36
|
||||
EXTERNAL=37
|
||||
ATOM=38
|
||||
INTERFACE=39
|
||||
INTERFACES=40
|
||||
PACKAGE=41
|
||||
VALUE=42
|
||||
RELATION=43
|
||||
OPERATION=44
|
||||
FUNCTION=45
|
||||
CONSTRUCTOR=46
|
||||
CONSTRUCTS=47
|
||||
INPUT=48
|
||||
CONFORM=49
|
||||
AS=50
|
||||
BIND=51
|
||||
STATIC=52
|
||||
TO=53
|
||||
PRIVATE=54
|
||||
SHARED=55
|
||||
STATE=56
|
||||
EDGE=57
|
||||
PROJECTION=58
|
||||
WITH=59
|
||||
USING=60
|
||||
VIA=61
|
||||
MATERIALIZE=62
|
||||
IF=63
|
||||
ABSENT=64
|
||||
ON=65
|
||||
POLICY=66
|
||||
DEFAULT=67
|
||||
SOURCE=68
|
||||
REPOSITORY=69
|
||||
COMMIT=70
|
||||
REVISION=71
|
||||
SEMANTIC_MAJOR=72
|
||||
ON_DELETE=73
|
||||
RETAIN_OTHER=74
|
||||
KEYED=75
|
||||
PUBLIC_TRAVERSAL=76
|
||||
ID=77
|
||||
DOC=78
|
||||
MODE=79
|
||||
EMITS=80
|
||||
RECEIVER=81
|
||||
REQUIRES=82
|
||||
ANY=83
|
||||
GET=84
|
||||
SET=85
|
||||
WATCH=86
|
||||
START=87
|
||||
STOP=88
|
||||
READ=89
|
||||
WRITE=90
|
||||
RESOLVE=91
|
||||
CONNECT=92
|
||||
DISCONNECT=93
|
||||
CALL=94
|
||||
WATCH_START=95
|
||||
WATCH_STOP=96
|
||||
SUBSCRIBE=97
|
||||
UNSUBSCRIBE=98
|
||||
REGISTER=99
|
||||
CRDT=100
|
||||
OPTIONAL_ONE=101
|
||||
EXACTLY_ONE=102
|
||||
MANY_UNIQUE=103
|
||||
MANY=104
|
||||
ORDERED=105
|
||||
UNIT=106
|
||||
WATCH_HANDLE=107
|
||||
MESSAGE=108
|
||||
ATOM_REF=109
|
||||
INTERFACE_REF=110
|
||||
OPTIONAL=111
|
||||
LIST=112
|
||||
RECORD=113
|
||||
BOOL=114
|
||||
BYTES=115
|
||||
DOUBLE=116
|
||||
INT32=117
|
||||
INT64=118
|
||||
STRING=119
|
||||
UINT32=120
|
||||
UINT64=121
|
||||
TRUE=122
|
||||
FALSE=123
|
||||
NULL=124
|
||||
ARROW=125
|
||||
COLON=126
|
||||
SEMI=127
|
||||
COMMA=128
|
||||
DOT=129
|
||||
LBRACE=130
|
||||
RBRACE=131
|
||||
LBRACK=132
|
||||
RBRACK=133
|
||||
LPAREN=134
|
||||
RPAREN=135
|
||||
LT=136
|
||||
GT=137
|
||||
AMP=138
|
||||
EQUAL=139
|
||||
INTEGER=140
|
||||
JSON_NUMBER=141
|
||||
IDENTIFIER=142
|
||||
STRING_LITERAL=143
|
||||
LINE_COMMENT=144
|
||||
BLOCK_COMMENT=145
|
||||
WS=146
|
||||
'edit'=1
|
||||
'creation'=2
|
||||
'initialize'=3
|
||||
'workspace'=4
|
||||
'execution'=5
|
||||
'snapshot'=6
|
||||
'transaction'=7
|
||||
'remote'=8
|
||||
'targets'=9
|
||||
'portable'=10
|
||||
'replica'=11
|
||||
'local'=12
|
||||
'from'=13
|
||||
'result-bytes'=14
|
||||
'rpc-calls'=15
|
||||
'deadline-ms'=16
|
||||
'query'=17
|
||||
'reflection'=18
|
||||
'specialize'=19
|
||||
'root'=20
|
||||
'document'=21
|
||||
'fragments'=22
|
||||
'view'=23
|
||||
'max'=24
|
||||
'allow'=25
|
||||
'poll'=26
|
||||
'queryable'=27
|
||||
'rpc'=28
|
||||
'query-reason'=29
|
||||
'type'=30
|
||||
'object'=31
|
||||
'storable'=32
|
||||
'implements'=33
|
||||
'ref'=34
|
||||
'fragment'=35
|
||||
'import'=36
|
||||
'external'=37
|
||||
'atom'=38
|
||||
'interface'=39
|
||||
'interfaces'=40
|
||||
'package'=41
|
||||
'value'=42
|
||||
'relation'=43
|
||||
'operation'=44
|
||||
'function'=45
|
||||
'constructor'=46
|
||||
'constructs'=47
|
||||
'input'=48
|
||||
'conform'=49
|
||||
'as'=50
|
||||
'bind'=51
|
||||
'static'=52
|
||||
'to'=53
|
||||
'private'=54
|
||||
'shared'=55
|
||||
'state'=56
|
||||
'edge'=57
|
||||
'projection'=58
|
||||
'with'=59
|
||||
'using'=60
|
||||
'via'=61
|
||||
'materialize'=62
|
||||
'if'=63
|
||||
'absent'=64
|
||||
'on'=65
|
||||
'policy'=66
|
||||
'default'=67
|
||||
'source'=68
|
||||
'repository'=69
|
||||
'commit'=70
|
||||
'revision'=71
|
||||
'semantic-major'=72
|
||||
'on-delete'=73
|
||||
'retain-other'=74
|
||||
'keyed'=75
|
||||
'public-traversal'=76
|
||||
'id'=77
|
||||
'doc'=78
|
||||
'mode'=79
|
||||
'emits'=80
|
||||
'receiver'=81
|
||||
'requires'=82
|
||||
'any'=83
|
||||
'get'=84
|
||||
'set'=85
|
||||
'watch'=86
|
||||
'start'=87
|
||||
'stop'=88
|
||||
'read'=89
|
||||
'write'=90
|
||||
'resolve'=91
|
||||
'connect'=92
|
||||
'disconnect'=93
|
||||
'call'=94
|
||||
'watch-start'=95
|
||||
'watch-stop'=96
|
||||
'subscribe'=97
|
||||
'unsubscribe'=98
|
||||
'register'=99
|
||||
'crdt'=100
|
||||
'optional-one'=101
|
||||
'exactly-one'=102
|
||||
'many-unique'=103
|
||||
'many'=104
|
||||
'ordered'=105
|
||||
'unit'=106
|
||||
'watch-handle'=107
|
||||
'message'=108
|
||||
'atom-ref'=109
|
||||
'interface-ref'=110
|
||||
'optional'=111
|
||||
'list'=112
|
||||
'record'=113
|
||||
'bool'=114
|
||||
'bytes'=115
|
||||
'double'=116
|
||||
'int32'=117
|
||||
'int64'=118
|
||||
'string'=119
|
||||
'uint32'=120
|
||||
'uint64'=121
|
||||
'true'=122
|
||||
'false'=123
|
||||
'null'=124
|
||||
'->'=125
|
||||
':'=126
|
||||
';'=127
|
||||
','=128
|
||||
'.'=129
|
||||
'{'=130
|
||||
'}'=131
|
||||
'['=132
|
||||
']'=133
|
||||
'('=134
|
||||
')'=135
|
||||
'<'=136
|
||||
'>'=137
|
||||
'&'=138
|
||||
'='=139
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -108,6 +108,7 @@ export class GenericSourceTypes {
|
||||
return parameter?.kind === "value" && Boolean(parameter.storable);
|
||||
}
|
||||
if (type.kind === "list" || type.kind === "optional") return storable(type.value, depth + 1);
|
||||
if (type.kind === "record") return Object.values(type.fields).every((field) => storable(field, depth + 1));
|
||||
if (type.kind === "alias") {
|
||||
const alias = aliases.get(type.definitionId);
|
||||
if (!alias || alias.parameters.length !== type.arguments.length) return false;
|
||||
@@ -318,6 +319,12 @@ export class GenericSourceTypes {
|
||||
return { kind: "record", fields: Object.fromEntries(fields) };
|
||||
}
|
||||
const name = context.identifier()!.getText();
|
||||
if (name === "change" && context.typeArguments())
|
||||
throw new GenericTypeError(
|
||||
"unsupported-prepared-change",
|
||||
name,
|
||||
"Authored change<T> transport values require LF-19; native edit contracts are available separately",
|
||||
);
|
||||
if (context.ATOM_REF()) return { kind: "object-ref", expectation: this.atom(name) };
|
||||
if (context.INTERFACE_REF())
|
||||
return {
|
||||
|
||||
@@ -405,6 +405,8 @@ const valueOperation = (displayName: string, id: InterfaceOperation["id"], value
|
||||
outputType: value,
|
||||
mode: "call",
|
||||
};
|
||||
case "edit":
|
||||
return { id, displayName, inputType: { kind: "change", value }, outputType: valueType.unit, mode: "call" };
|
||||
case "set":
|
||||
return {
|
||||
id,
|
||||
@@ -494,6 +496,11 @@ const lowerValueMember = (state: LoweringState, context: ValueMemberContext): In
|
||||
...valueOperation("get", capabilityId.operation(stringValue(operation.stringLiteral(0))), memberValueType),
|
||||
...lowerExecution(operation.executionClause()),
|
||||
});
|
||||
} else if (operation.EDIT()) {
|
||||
operations.push({
|
||||
...valueOperation("edit", capabilityId.operation(stringValue(operation.stringLiteral(0))), memberValueType),
|
||||
...lowerExecution(operation.executionClause()),
|
||||
});
|
||||
} else if (operation.SET()) {
|
||||
operations.push({
|
||||
...valueOperation("set", capabilityId.operation(stringValue(operation.stringLiteral(0))), memberValueType),
|
||||
@@ -763,6 +770,13 @@ const lowerInterfaceTemplate = (
|
||||
return [
|
||||
{ ...signature("get", id, valueType.unit, type), ...lowerExecution(operation.executionClause()) },
|
||||
];
|
||||
if (operation.EDIT())
|
||||
return [
|
||||
{
|
||||
...signature("edit", id, { kind: "change", value: type }, valueType.unit),
|
||||
...lowerExecution(operation.executionClause()),
|
||||
},
|
||||
];
|
||||
if (operation.SET())
|
||||
return [
|
||||
{ ...signature("set", id, type, valueType.unit), ...lowerExecution(operation.executionClause()) },
|
||||
@@ -939,7 +953,9 @@ const lowerDependencyPort = (state: LoweringState, context: DependencyPortContex
|
||||
.primitiveList()!
|
||||
.primitive()
|
||||
.map((entry) => text(entry));
|
||||
const invalid = primitives.filter((entry) => !["read", "write", "watch-start", "watch-stop"].includes(entry));
|
||||
const invalid = primitives.filter(
|
||||
(entry) => !["read", "write", "edit", "watch-start", "watch-stop"].includes(entry),
|
||||
);
|
||||
if (invalid.length > 0) {
|
||||
loweringIssue(state, context, "invalid-port-primitive", `State port cannot request ${invalid.join(", ")}`);
|
||||
}
|
||||
@@ -1405,12 +1421,12 @@ const lowerPackage = (
|
||||
const name = identifier(clause.identifier(0));
|
||||
const key = budgetNames[name],
|
||||
n = Number(clause.INTEGER()!.getText());
|
||||
if (!key || assigned.has(name) || !Number.isSafeInteger(n) || n < 1 || n > defaultQueryBudgets[key])
|
||||
if (!key || assigned.has(name) || !Number.isSafeInteger(n) || n < 1 || n > 0xffffffff)
|
||||
loweringIssue(
|
||||
state,
|
||||
clause,
|
||||
"invalid-query-budget",
|
||||
`Invalid, duplicate, or excessive query budget ${name}`,
|
||||
`Invalid, duplicate, or out-of-range query budget ${name}`,
|
||||
);
|
||||
else {
|
||||
declaration.budgets[key] = n;
|
||||
@@ -1898,6 +1914,7 @@ const lowerConformance = (
|
||||
const primitives = {
|
||||
get: "read",
|
||||
set: "write",
|
||||
edit: "edit",
|
||||
"watch-start": "watch-start",
|
||||
"watch-stop": "watch-stop",
|
||||
} as const;
|
||||
@@ -2622,7 +2639,7 @@ const compileCapabilityResourceSourceInternal = (
|
||||
portNames.add(port.displayName);
|
||||
const requirement = port.requirement;
|
||||
if (requirement.kind === "state") {
|
||||
if (requirement.primitives.some((p) => !["read", "write", "watch-start", "watch-stop"].includes(p)))
|
||||
if (requirement.primitives.some((p) => !["read", "write", "edit", "watch-start", "watch-stop"].includes(p)))
|
||||
throw new GenericTypeError("invalid-port-primitive", port.displayName, "Invalid state primitive");
|
||||
types.push(requirement.valueType);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user