27 lines
1.4 KiB
Plaintext
27 lines
1.4 KiB
Plaintext
type Replacement = record { expected: list<string>; targets: list<atom-ref<Node>>; };
|
|||
|
|
external atom Node id "collection:node";
|
||
|
|
interface NodeData id "collection:data" revision "collection:data@1" {
|
||
|
|
queryable portable value version id "collection:version" : list<string> {
|
||
|
|
get id "collection:version:get" execution snapshot targets [browser, server];
|
||
|
|
}
|
||
|
|
operation replace id "collection:replace" : Replacement -> unit {
|
||
|
|
call id "collection:replace:call" execution transaction targets [browser, server];
|
||
|
|
}
|
||
|
|
operation ensure id "collection:ensure" : unit -> atom-ref<Node> {
|
||
|
|
call id "collection:ensure:call" execution transaction targets [browser, server];
|
||
|
|
}
|
||
|
|
queryable value label id "collection:label" : string {
|
||
|
|
get id "collection:label:get" execution snapshot targets [browser, server];
|
||
|
|
set id "collection:label:set" execution transaction targets [browser, server];
|
||
|
|
}
|
||
|
|
queryable relation items id "collection:items" : many atom Node {
|
||
|
|
resolve id "collection:items:resolve" execution snapshot targets [browser, server];
|
||
|
|
}
|
||
|
|
queryable relation containers id "collection:containers" : many atom Node {
|
||
|
|
resolve id "collection:containers:resolve" execution snapshot targets [browser, server];
|
||
|
|
}
|
||
|
|
queryable relation detail id "collection:detail" : optional-one atom Node {
|
||
|
|
resolve id "collection:detail:resolve" execution snapshot targets [browser, server];
|
||
|
|
}
|
||
|
|
}
|