Make local graph execution optional across composed packages
This commit is contained in:
+6
-6
@@ -1,17 +1,17 @@
|
||||
type Summary = record { text: string; basedOn: string; };
|
||||
interface DocumentData id "async:document-data" revision "async:document-data@1" {
|
||||
queryable value content id "async:content" : string {
|
||||
get id "async:content:get" execution snapshot targets [browser, server];
|
||||
get id "async:content:get" execution snapshot;
|
||||
}
|
||||
queryable value summary id "async:summary" : Summary {
|
||||
get id "async:summary:get" execution snapshot targets [browser, server];
|
||||
set id "async:summary:set" execution transaction targets [browser, server];
|
||||
get id "async:summary:get" execution snapshot;
|
||||
set id "async:summary:set" execution transaction;
|
||||
}
|
||||
queryable value pendingJob id "async:pending-job" : optional<record { operationId: string; }> {
|
||||
get id "async:pending-job:get" execution snapshot targets [server];
|
||||
set id "async:pending-job:set" execution transaction targets [server];
|
||||
get id "async:pending-job:get" execution snapshot;
|
||||
set id "async:pending-job:set" execution transaction;
|
||||
}
|
||||
operation recordSummary id "async:record-summary" : record { operationId: string; summary: Summary; } -> unit {
|
||||
call id "async:record-summary:call" execution transaction targets [server];
|
||||
call id "async:record-summary:call" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -6,7 +6,7 @@ type Entry = variant id "canvas:entry@1" {
|
||||
};
|
||||
interface CanvasContent id "canvas" revision "canvas@1" {
|
||||
queryable value entries id "entries" : list<Entry> {
|
||||
get id "entries:get" execution snapshot targets [browser,server];
|
||||
edit id "entries:edit" execution transaction targets [browser,server];
|
||||
get id "entries:get" execution snapshot;
|
||||
edit id "entries:edit" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -1,17 +1,18 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
type Replacement = record { expected: list<string>; targets: list<atom-ref<Node>>; };
|
||||
type Seed = record { label: string; };
|
||||
external atom Node id "collection:node";
|
||||
package CollectionRuntime id "collection:runtime" revision "collection:runtime@1" {
|
||||
operation version id "collection:runtime:version" : unit -> list<string>
|
||||
mode call execution snapshot targets [browser, server] receiver atom Node requires {
|
||||
mode call execution snapshot targets [JavaScript, server] receiver atom Node requires {
|
||||
edge items id "collection:version:items" : many atom Node [resolve];
|
||||
};
|
||||
operation replace id "collection:runtime:replace" : Replacement -> unit
|
||||
mode call execution transaction targets [browser, server] receiver atom Node requires {
|
||||
mode call execution transaction targets [JavaScript, server] receiver atom Node requires {
|
||||
edge items id "collection:replace:items" : many atom Node [resolve, connect, disconnect];
|
||||
};
|
||||
operation ensure id "collection:runtime:ensure" : unit -> atom-ref<Node>
|
||||
mode call execution transaction targets [browser, server] receiver atom Node requires {
|
||||
mode call execution transaction targets [JavaScript, server] receiver atom Node requires {
|
||||
edge detail id "collection:ensure:detail" : optional-one atom Node [resolve, connect];
|
||||
creation node id "collection:ensure:node" : Node input Seed;
|
||||
};
|
||||
|
||||
+8
-8
@@ -2,25 +2,25 @@ 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];
|
||||
get id "collection:version:get" execution snapshot;
|
||||
}
|
||||
operation replace id "collection:replace" : Replacement -> unit {
|
||||
call id "collection:replace:call" execution transaction targets [browser, server];
|
||||
call id "collection:replace:call" execution transaction;
|
||||
}
|
||||
operation ensure id "collection:ensure" : unit -> atom-ref<Node> {
|
||||
call id "collection:ensure:call" execution transaction targets [browser, server];
|
||||
call id "collection:ensure:call" execution transaction;
|
||||
}
|
||||
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];
|
||||
get id "collection:label:get" execution snapshot;
|
||||
set id "collection:label:set" execution transaction;
|
||||
}
|
||||
queryable relation items id "collection:items" : many atom Node {
|
||||
resolve id "collection:items:resolve" execution snapshot targets [browser, server];
|
||||
resolve id "collection:items:resolve" execution snapshot;
|
||||
}
|
||||
queryable relation containers id "collection:containers" : many atom Node {
|
||||
resolve id "collection:containers:resolve" execution snapshot targets [browser, server];
|
||||
resolve id "collection:containers:resolve" execution snapshot;
|
||||
}
|
||||
queryable relation detail id "collection:detail" : optional-one atom Node {
|
||||
resolve id "collection:detail:resolve" execution snapshot targets [browser, server];
|
||||
resolve id "collection:detail:resolve" execution snapshot;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-2
@@ -1,9 +1,10 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
external atom Note id "compound:note";
|
||||
type Content = record { text: string; tags: list<string>; };
|
||||
type Edit = record { change: change<Content>; resolved: bool; };
|
||||
package EditRuntime id "compound:runtime" revision "compound:runtime@1" {
|
||||
operation batch id "compound:runtime:batch" : record { edits: list<Edit>; } -> unit
|
||||
mode call execution transaction targets [browser, server] receiver atom Note requires {
|
||||
mode call execution transaction targets [JavaScript, server] receiver atom Note requires {
|
||||
state content id "compound:batch:content" : Content [edit];
|
||||
state resolved id "compound:batch:resolved" : bool [write];
|
||||
} accept using checkBatch;
|
||||
@@ -12,7 +13,7 @@ package EditRuntime id "compound:runtime" revision "compound:runtime@1" {
|
||||
state allowed id "compound:batch:allowed" : bool [read];
|
||||
};
|
||||
operation update id "compound:runtime:update" : Edit -> unit
|
||||
mode call execution transaction targets [browser, server] receiver atom Note requires {
|
||||
mode call execution transaction targets [JavaScript, server] receiver atom Note requires {
|
||||
state content id "compound:edit:content" : Content [edit];
|
||||
state resolved id "compound:edit:resolved" : bool [write];
|
||||
} accept using check;
|
||||
|
||||
+7
-7
@@ -2,20 +2,20 @@ type Content = record { text: string; tags: list<string>; };
|
||||
type Edit = record { change: change<Content>; resolved: bool; };
|
||||
interface NoteData id "compound:data" revision "compound:data@1" {
|
||||
operation batch id "compound:batch" : record { edits: list<Edit>; } -> unit {
|
||||
call id "compound:batch:call" execution transaction targets [browser, server];
|
||||
call id "compound:batch:call" execution transaction;
|
||||
}
|
||||
operation update id "compound:update" : Edit -> unit {
|
||||
call id "compound:update:call" execution transaction targets [browser, server];
|
||||
call id "compound:update:call" execution transaction;
|
||||
}
|
||||
queryable value content id "compound:content" : Content {
|
||||
get id "compound:content:get" execution snapshot targets [browser, server];
|
||||
edit id "compound:content:edit" execution transaction targets [browser, server];
|
||||
get id "compound:content:get" execution snapshot;
|
||||
edit id "compound:content:edit" execution transaction;
|
||||
}
|
||||
queryable value resolved id "compound:resolved" : bool {
|
||||
get id "compound:resolved:get" execution snapshot targets [browser, server];
|
||||
get id "compound:resolved:get" execution snapshot;
|
||||
}
|
||||
queryable value title id "compound:title" : string {
|
||||
get id "compound:title:get" execution snapshot targets [browser, server];
|
||||
set id "compound:title:set" execution transaction targets [browser, server];
|
||||
get id "compound:title:get" execution snapshot;
|
||||
set id "compound:title:set" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -1,11 +1,11 @@
|
||||
external atom Display id "device:display";
|
||||
type Request=record {url:string;text:string;version:int32;};
|
||||
interface Device id "device" revision "device@1" {
|
||||
static operation create id "device:create" : string -> atom-ref<Display> {call id "device:create:call" execution transaction targets [browser,server];}
|
||||
queryable value enabled id "device:enabled" : bool {get id "device:enabled:get" execution snapshot targets [browser,server];set id "device:enabled:set" execution transaction targets [browser,server];}
|
||||
queryable value requested id "device:requested" : Request {get id "device:requested:get" execution snapshot targets [browser,server];}
|
||||
queryable value observed id "device:observed" : optional<Request> {get id "device:observed:get" execution snapshot targets [browser,server];}
|
||||
operation requestText id "device:request" : string -> unit {call id "device:request:call" execution transaction targets [browser,server];}
|
||||
operation recordObservation id "device:record" : Request -> unit {call id "device:record:call" execution transaction targets [server];}
|
||||
operation remove id "device:remove" : unit -> unit {call id "device:remove:call" execution transaction targets [server];}
|
||||
static operation create id "device:create" : string -> atom-ref<Display> {call id "device:create:call" execution transaction;}
|
||||
queryable value enabled id "device:enabled" : bool {get id "device:enabled:get" execution snapshot;set id "device:enabled:set" execution transaction;}
|
||||
queryable value requested id "device:requested" : Request {get id "device:requested:get" execution snapshot;}
|
||||
queryable value observed id "device:observed" : optional<Request> {get id "device:observed:get" execution snapshot;}
|
||||
operation requestText id "device:request" : string -> unit {call id "device:request:call" execution transaction;}
|
||||
operation recordObservation id "device:record" : Request -> unit {call id "device:record:call" execution transaction;}
|
||||
operation remove id "device:remove" : unit -> unit {call id "device:remove:call" execution transaction;}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
type Request=record {url:string;text:string;version:int32;};
|
||||
interface DeviceController id "device-controller" revision "device-controller@1" {
|
||||
queryable portable value enabled id "controller:enabled" : bool {get id "controller:enabled:get" execution snapshot targets [server];}
|
||||
operation snapshot id "device:snapshot" : unit -> optional<Request> {call id "device:snapshot:call" execution snapshot targets [server];}
|
||||
queryable portable value enabled id "controller:enabled" : bool {get id "controller:enabled:get" execution snapshot;}
|
||||
operation snapshot id "device:snapshot" : unit -> optional<Request> {call id "device:snapshot:call" execution snapshot;}
|
||||
operation apply id "device:apply" : optional<Request> -> unit {call id "device:apply:call" execution remote;}
|
||||
}
|
||||
|
||||
+3
-2
@@ -1,10 +1,11 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
import interface Device;
|
||||
import interface DeviceController;
|
||||
external atom Display id "device:display";
|
||||
type Request=record {url:string;text:string;version:int32;};
|
||||
package Driver id "driver" revision "driver@1" {
|
||||
function create id "driver:create" : string -> atom-ref<Display> execution transaction targets [browser,server] requires {creation device id "device" : Display input record {enabled:bool;requested:Request;observed:optional<Request>;};};
|
||||
operation request id "driver:request" : string -> unit mode call execution transaction targets [browser,server] receiver any requires {state requested id "requested" : Request [read,write];};
|
||||
function create id "driver:create" : string -> atom-ref<Display> execution transaction targets [JavaScript,server] requires {creation device id "device" : Display input record {enabled:bool;requested:Request;observed:optional<Request>;};};
|
||||
operation request id "driver:request" : string -> unit mode call execution transaction targets [JavaScript,server] receiver any requires {state requested id "requested" : Request [read,write];};
|
||||
operation snapshot id "driver:snapshot" : unit -> optional<Request> mode call execution snapshot targets [server] receiver any requires {interface data id "data" : Device using [enabled.get,requested.get,observed.get];};
|
||||
operation recordObservation id "driver:record" : Request -> unit mode call execution transaction targets [server] receiver any requires {state requested id "requested" : Request [read];state observed id "observed" : optional<Request> [write];};
|
||||
operation apply id "driver:apply" : optional<Request> -> unit mode call execution remote receiver any requires {interface device id "device" : Device using [recordObservation.call];};
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
interface EventHandler<value Payload,value Parameters> id "interface:org.quixos.events:handler" revision "interface:org.quixos.events:handler@1" {
|
||||
operation handle id "events:handle" : record {event:Payload;parameters:Parameters;} -> unit {
|
||||
call id "events:handle:call" execution transaction targets [server];
|
||||
call id "events:handle:call" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+3
-3
@@ -1,13 +1,13 @@
|
||||
// Required server support; a checked installed implementation may additionally predict locally.
|
||||
interface EventStream<value Payload> id "interface:org.quixos.events:stream" revision "interface:org.quixos.events:stream@1" {
|
||||
operation publish id "events:publish" : Payload -> record {publication:string;} {
|
||||
call id "events:publish:call" execution transaction targets [server];
|
||||
call id "events:publish:call" execution transaction;
|
||||
}
|
||||
queryable value head id "events:head" : optional<uint64> {
|
||||
get id "events:head:get" execution snapshot targets [server];
|
||||
get id "events:head:get" execution snapshot;
|
||||
}
|
||||
operation readPage id "events:read-page" : record {after:optional<string>;limit:uint32;}
|
||||
-> record {entries:list<record {publication:string;position:uint64;payload:Payload;}>;next:optional<string>;asOfHead:optional<uint64>;} {
|
||||
call id "events:read-page:call" execution snapshot targets [server];
|
||||
call id "events:read-page:call" execution snapshot;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -7,12 +7,12 @@ type StartPosition = variant id "org.quixos.events:start@1" {
|
||||
};
|
||||
interface EventSubscription<value Payload,value Parameters> id "interface:org.quixos.events:subscription" revision "interface:org.quixos.events:subscription@1" {
|
||||
operation attach id "events:attach" : record {source:interface-ref<EventStream<Payload>>;handler:interface-ref<EventHandler<Payload,Parameters>>;parameters:Parameters;start:StartPosition;} -> unit {
|
||||
call id "events:attach:call" execution transaction targets [server];
|
||||
call id "events:attach:call" execution transaction;
|
||||
}
|
||||
queryable value status id "events:status" : record {status:string;generation:uint64;cursor:uint64;failure:optional<record {publication:string;code:string;message:string;}>;} {
|
||||
get id "events:status:get" execution snapshot targets [server];
|
||||
get id "events:status:get" execution snapshot;
|
||||
}
|
||||
operation pause id "events:pause" : unit -> unit {call id "events:pause:call" execution transaction targets [server];}
|
||||
operation resume id "events:resume" : unit -> unit {call id "events:resume:call" execution transaction targets [server];}
|
||||
operation retire id "events:retire" : unit -> unit {call id "events:retire:call" execution transaction targets [server];}
|
||||
operation pause id "events:pause" : unit -> unit {call id "events:pause:call" execution transaction;}
|
||||
operation resume id "events:resume" : unit -> unit {call id "events:resume:call" execution transaction;}
|
||||
operation retire id "events:retire" : unit -> unit {call id "events:retire:call" execution transaction;}
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,6 +2,6 @@ external atom Comment id "atom:reader:comment";
|
||||
interface CommentFactory id "interface:reader:comment-factory"
|
||||
revision "interface:reader:comment-factory@1" {
|
||||
operation prepareComment id "document:prepare-comment" : bool -> atom-ref<Comment> {
|
||||
call id "document:prepare-comment:call" execution transaction targets [browser, server];
|
||||
call id "document:prepare-comment:call" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,10 +1,11 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
external atom Document id "atom:reader:document";
|
||||
external atom Comment id "atom:reader:comment";
|
||||
import interface CommentData;
|
||||
type CommentSeed = record { content: record { text: string; tags: list<string>; }; };
|
||||
package CommentRuntime id "package:comment-runtime" revision "package:comment-runtime@1" {
|
||||
operation prepareComment id "comment:prepare"
|
||||
: bool -> atom-ref<Comment> mode call execution transaction targets [browser, server]
|
||||
: bool -> atom-ref<Comment> mode call execution transaction targets [JavaScript, server]
|
||||
receiver atom Document requires {
|
||||
creation comment id "comment:prepare:comment" : Comment input CommentSeed;
|
||||
};
|
||||
|
||||
+1
-1
@@ -20,6 +20,6 @@ interface DocumentFactory id "interface:reader:document-factory"
|
||||
revision "interface:reader:document-factory@1" {
|
||||
static operation create id "document:create" : DocumentSeed -> atom-ref<Document> {
|
||||
call id "document:create:call"
|
||||
execution transaction targets [browser, server];
|
||||
execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
interface DocumentLabel id "interface:reader:document-label"
|
||||
revision "interface:reader:document-label@1" {
|
||||
queryable value title id "document:view-title" : string {
|
||||
get id "document:view-title:get" execution snapshot targets [browser, server];
|
||||
get id "document:view-title:get" execution snapshot;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
interface DocumentMetadata id "interface:reader:document-metadata"
|
||||
revision "interface:reader:document-metadata@1" {
|
||||
queryable value label id "document:label" : string {
|
||||
get id "document:label:get" execution snapshot targets [browser, server];
|
||||
get id "document:label:get" execution snapshot;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-4
@@ -1,3 +1,4 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
// Shared record definitions, repeated explicitly in independently locked resources.
|
||||
external atom Document id "atom:reader:document";
|
||||
external atom Highlight id "atom:reader:highlight";
|
||||
@@ -30,7 +31,7 @@ package ReaderRuntime id "package:reader-runtime"
|
||||
revision "package:reader-runtime@1" {
|
||||
operation addHighlight id "reader:add-highlight"
|
||||
: SourceRange -> atom-ref<Highlight>
|
||||
mode call execution transaction targets [browser, server]
|
||||
mode call execution transaction targets [JavaScript, server]
|
||||
receiver atom Document requires {
|
||||
interface document id "reader:add:document" : DocumentData
|
||||
using [sourceRevision.get, content.get, highlights.connect];
|
||||
@@ -39,7 +40,7 @@ revision "package:reader-runtime@1" {
|
||||
};
|
||||
|
||||
operation excerpt id "reader:excerpt" : unit -> string
|
||||
mode call execution snapshot targets [browser, server]
|
||||
mode call execution snapshot targets [JavaScript, server]
|
||||
receiver atom Highlight requires {
|
||||
state range id "reader:excerpt:range" : SourceRange [read];
|
||||
interface document id "reader:excerpt:document" : DocumentData
|
||||
@@ -49,11 +50,11 @@ revision "package:reader-runtime@1" {
|
||||
// A receiverless function needs no synthetic service object.
|
||||
function validateRange id "reader:validate-range"
|
||||
: record { range: SourceRange; content: string; } -> bool
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot targets [JavaScript, server];
|
||||
|
||||
function createDocument id "reader:create-document"
|
||||
: DocumentSeed -> atom-ref<Document>
|
||||
execution transaction targets [browser, server] requires {
|
||||
execution transaction targets [JavaScript, server] requires {
|
||||
creation document id "reader:create:document" : Document input DocumentSeed;
|
||||
};
|
||||
query ReplicaInputs id "reader:replica-inputs" root DocumentData
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@ interface CommentData id "interface:reader:comment-data"
|
||||
revision "interface:reader:comment-data@1" {
|
||||
queryable value content id "comment:content" : CommentContent {
|
||||
get id "comment:content:get"
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot;
|
||||
edit id "comment:content:edit"
|
||||
execution transaction targets [browser, server];
|
||||
execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -20,6 +20,6 @@ interface DocumentActions id "interface:reader:document-actions"
|
||||
revision "interface:reader:document-actions@1" {
|
||||
operation annotate id "document:annotate" : SourceRange -> atom-ref<Highlight> {
|
||||
call id "document:annotate:call"
|
||||
execution transaction targets [browser, server];
|
||||
execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -20,17 +20,17 @@ interface DocumentData id "interface:reader:document-data"
|
||||
revision "interface:reader:document-data@1" {
|
||||
queryable value sourceRevision id "document:source-revision" : string {
|
||||
get id "document:source-revision:get"
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot;
|
||||
}
|
||||
queryable value content id "document:content" : string {
|
||||
get id "document:content:get"
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot;
|
||||
}
|
||||
queryable relation highlights id "document:highlights"
|
||||
: many-unique atom Highlight {
|
||||
resolve id "document:highlights:resolve"
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot;
|
||||
connect id "document:highlights:connect"
|
||||
execution transaction targets [browser, server];
|
||||
execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -20,6 +20,6 @@ interface DocumentFactory id "interface:reader:document-factory"
|
||||
revision "interface:reader:document-factory@1" {
|
||||
static operation create id "document:create" : DocumentSeed -> atom-ref<Document> {
|
||||
call id "document:create:call"
|
||||
execution transaction targets [browser, server];
|
||||
execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -20,20 +20,20 @@ interface HighlightData id "interface:reader:highlight-data"
|
||||
revision "interface:reader:highlight-data@1" {
|
||||
queryable value range id "highlight:range" : SourceRange {
|
||||
get id "highlight:range:get"
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot;
|
||||
}
|
||||
queryable value color id "highlight:color" : string {
|
||||
get id "highlight:color:get"
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot;
|
||||
set id "highlight:color:set"
|
||||
execution transaction targets [browser, server];
|
||||
execution transaction;
|
||||
}
|
||||
queryable portable value excerpt id "highlight:excerpt" : string {
|
||||
get id "highlight:excerpt:get"
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot;
|
||||
}
|
||||
queryable relation comments id "highlight:comments" : many-unique atom Comment {
|
||||
resolve id "highlight:comments:resolve"
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-4
@@ -1,3 +1,4 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
// Shared record definitions, repeated explicitly in independently locked resources.
|
||||
external atom Document id "atom:reader:document";
|
||||
external atom Highlight id "atom:reader:highlight";
|
||||
@@ -29,7 +30,7 @@ package ReaderRuntime id "package:reader-runtime"
|
||||
revision "package:reader-runtime@1" {
|
||||
operation addHighlight id "reader:add-highlight"
|
||||
: SourceRange -> atom-ref<Highlight>
|
||||
mode call execution transaction targets [browser, server]
|
||||
mode call execution transaction targets [JavaScript, server]
|
||||
receiver atom Document requires {
|
||||
interface document id "reader:add:document" : DocumentData
|
||||
using [sourceRevision.get, content.get, highlights.connect];
|
||||
@@ -38,7 +39,7 @@ revision "package:reader-runtime@1" {
|
||||
};
|
||||
|
||||
operation excerpt id "reader:excerpt" : unit -> string
|
||||
mode call execution snapshot targets [browser, server]
|
||||
mode call execution snapshot targets [JavaScript, server]
|
||||
receiver atom Highlight requires {
|
||||
state range id "reader:excerpt:range" : SourceRange [read];
|
||||
interface document id "reader:excerpt:document" : DocumentData
|
||||
@@ -48,11 +49,11 @@ revision "package:reader-runtime@1" {
|
||||
// A receiverless function needs no synthetic service object.
|
||||
function validateRange id "reader:validate-range"
|
||||
: record { range: SourceRange; content: string; } -> bool
|
||||
execution snapshot targets [browser, server];
|
||||
execution snapshot targets [JavaScript, server];
|
||||
|
||||
function createDocument id "reader:create-document"
|
||||
: DocumentSeed -> atom-ref<Document>
|
||||
execution transaction targets [browser, server] requires {
|
||||
execution transaction targets [JavaScript, server] requires {
|
||||
creation document id "reader:create:document" : Document input DocumentSeed;
|
||||
};
|
||||
query ReplicaInputs id "reader:replica-inputs" root DocumentData
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
import interface PresentationState;
|
||||
interface DocumentNavigation id "document-navigation" revision "document-navigation@1" requires PresentationState {
|
||||
queryable value compact id "document-navigation:compact" : bool {
|
||||
get id "document-navigation:compact:get" execution snapshot targets [browser,server];
|
||||
set id "document-navigation:compact:set" execution transaction targets [browser,server];
|
||||
get id "document-navigation:compact:get" execution snapshot;
|
||||
set id "document-navigation:compact:set" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -1,15 +1,15 @@
|
||||
import interface PresentationState;
|
||||
interface PresentationMount id "presentation-mount" revision "presentation-mount@1" {
|
||||
static operation create id "presentation-mount:create" : unit -> interface-ref<PresentationMount> {
|
||||
call id "presentation-mount:create:call" execution transaction targets [browser,server];
|
||||
call id "presentation-mount:create:call" execution transaction;
|
||||
}
|
||||
queryable relation members id "presentation-mount:members" : many-unique interface PresentationState {
|
||||
resolve id "presentation-mount:members:resolve" execution snapshot targets [browser,server];
|
||||
resolve id "presentation-mount:members:resolve" execution snapshot;
|
||||
}
|
||||
queryable relation root id "presentation-mount:root" : optional-one interface PresentationState {
|
||||
resolve id "presentation-mount:root:resolve" execution snapshot targets [browser,server];
|
||||
resolve id "presentation-mount:root:resolve" execution snapshot;
|
||||
}
|
||||
operation attach id "presentation-mount:attach" : interface-ref<PresentationState> -> unit {
|
||||
call id "presentation-mount:attach:call" execution transaction targets [browser,server];
|
||||
call id "presentation-mount:attach:call" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+6
-5
@@ -1,3 +1,4 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
import interface PresentationStates;
|
||||
import interface ReaderNavigation;
|
||||
external atom ReaderNavigationRecord id "reader-navigation-record";
|
||||
@@ -6,24 +7,24 @@ import interface PresentationMount;
|
||||
import interface StateFactory;
|
||||
external atom PresentationMountRecord id "presentation-mount-record";
|
||||
package PresentationRuntime id "presentation-runtime" revision "presentation-runtime@1" {
|
||||
function createReaderState id "presentation-runtime:create-reader-state" : record {occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> interface-ref<ReaderNavigation> execution transaction targets [browser,server] requires {
|
||||
function createReaderState id "presentation-runtime:create-reader-state" : record {occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> interface-ref<ReaderNavigation> execution transaction targets [JavaScript,server] requires {
|
||||
creation navigation id "navigation" : ReaderNavigationRecord input record {occurrence:string;parent:optional<interface-ref<PresentationState>>;};
|
||||
};
|
||||
function createPresentationMount id "presentation-runtime:create" : unit -> interface-ref<PresentationMount> execution transaction targets [browser,server] requires {
|
||||
function createPresentationMount id "presentation-runtime:create" : unit -> interface-ref<PresentationMount> execution transaction targets [JavaScript,server] requires {
|
||||
creation presentationMount id "presentationMount" : PresentationMountRecord input unit;
|
||||
};
|
||||
operation attach id "presentation-runtime:attach" : interface-ref<PresentationState> -> unit mode call execution transaction targets [browser,server] receiver any requires {
|
||||
operation attach id "presentation-runtime:attach" : interface-ref<PresentationState> -> unit mode call execution transaction targets [JavaScript,server] receiver any requires {
|
||||
edge members id "members" : many-unique interface PresentationState [resolve,connect];
|
||||
edge root id "root" : optional-one interface PresentationState [resolve,connect];
|
||||
interface metadata id "state" : PresentationState using [presentationMount.resolve,parent.resolve] from input;
|
||||
};
|
||||
operation ensure<object Navigation implements PresentationState> id "presentation-runtime:ensure" : record {presentationMount:interface-ref<PresentationMount>;occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> ref<Navigation> mode call execution transaction targets [browser,server] receiver any requires {
|
||||
operation ensure<object Navigation implements PresentationState> id "presentation-runtime:ensure" : record {presentationMount:interface-ref<PresentationMount>;occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> ref<Navigation> mode call execution transaction targets [JavaScript,server] receiver any requires {
|
||||
edge states id "states" : many-unique object Navigation keyed "string" [resolve,connect];
|
||||
interface metadata id "state" : PresentationState using [occurrence.get,presentationMount.resolve,parent.resolve] from input;
|
||||
interface presentationMount id "presentationMount" : PresentationMount using [attach.call] from input;
|
||||
interface factory id "factory" : StateFactory<Navigation> using [create.call];
|
||||
};
|
||||
function createState<object Navigation> id "presentation-runtime:create-state" : record {occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> ref<Navigation> execution transaction targets [browser,server] requires {
|
||||
function createState<object Navigation> id "presentation-runtime:create-state" : record {occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> ref<Navigation> execution transaction targets [JavaScript,server] requires {
|
||||
creation navigation id "navigation" : Navigation input record {occurrence:string;parent:optional<interface-ref<PresentationState>>;};
|
||||
};
|
||||
query ReaderStateInputs id "reader-state:inputs" root PresentationStates<atom ReaderNavigationRecord> document "queries/reader-inputs.graphql" operation "ReaderState" { replica; view ReaderNavigationRecord as ReaderNavigation; max rows 100; }
|
||||
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
external interface PresentationMount revision "presentation-mount@1";
|
||||
interface PresentationState id "presentation-state" revision "presentation-state@1" {
|
||||
queryable value occurrence id "state:occurrence" : string {
|
||||
get id "state:occurrence:get" execution snapshot targets [browser,server];
|
||||
get id "state:occurrence:get" execution snapshot;
|
||||
}
|
||||
queryable relation presentationMount id "state:presentation-mount" : optional-one interface PresentationMount {
|
||||
resolve id "state:presentation-mount:resolve" execution snapshot targets [browser,server];
|
||||
resolve id "state:presentation-mount:resolve" execution snapshot;
|
||||
}
|
||||
queryable relation parent id "state:parent" : optional-one interface PresentationState {
|
||||
resolve id "state:parent:resolve" execution snapshot targets [browser,server];
|
||||
resolve id "state:parent:resolve" execution snapshot;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,9 +2,9 @@ import interface PresentationState;
|
||||
import interface PresentationMount;
|
||||
interface PresentationStates<object Navigation implements PresentationState> id "presentation-states" revision "presentation-states@1" {
|
||||
queryable relation states id "presentation-states:states" : many-unique object Navigation keyed "string" {
|
||||
resolve id "presentation-states:states:resolve" execution snapshot targets [browser,server];
|
||||
resolve id "presentation-states:states:resolve" execution snapshot;
|
||||
}
|
||||
operation ensure id "presentation-states:ensure" : record {presentationMount:interface-ref<PresentationMount>;occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> ref<Navigation> {
|
||||
call id "presentation-states:ensure:call" execution transaction targets [browser,server];
|
||||
call id "presentation-states:ensure:call" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
import interface PresentationState;
|
||||
interface ReaderNavigation id "reader-navigation" revision "reader-navigation@1" requires PresentationState {
|
||||
queryable value page id "reader-navigation:mode" : string {
|
||||
get id "reader-navigation:mode:get" execution snapshot targets [browser,server];
|
||||
set id "reader-navigation:mode:set" execution transaction targets [browser,server];
|
||||
get id "reader-navigation:mode:get" execution snapshot;
|
||||
set id "reader-navigation:mode:set" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import interface PresentationState;
|
||||
interface StateFactory<object Navigation implements PresentationState> id "state-factory" revision "state-factory@1" {
|
||||
static operation create id "state-factory:create" : record {occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> ref<Navigation> {
|
||||
call id "state-factory:create:call" execution transaction targets [browser,server];
|
||||
call id "state-factory:create:call" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+5
-5
@@ -1,15 +1,15 @@
|
||||
interface Task id "recurring:task-data" revision "recurring:task-data@1" {
|
||||
queryable value occurrence id "recurring:occurrence" : uint64 {
|
||||
get id "recurring:occurrence:get" execution snapshot targets [browser, server];
|
||||
get id "recurring:occurrence:get" execution snapshot;
|
||||
}
|
||||
queryable value due id "recurring:due" : int64 {
|
||||
get id "recurring:due:get" execution snapshot targets [browser, server];
|
||||
get id "recurring:due:get" execution snapshot;
|
||||
}
|
||||
queryable value title id "recurring:title" : string {
|
||||
get id "recurring:title:get" execution snapshot targets [browser, server];
|
||||
set id "recurring:title:set" execution transaction targets [browser, server];
|
||||
get id "recurring:title:get" execution snapshot;
|
||||
set id "recurring:title:set" execution transaction;
|
||||
}
|
||||
operation complete id "recurring:complete" : uint64 -> unit {
|
||||
call id "recurring:complete:call" execution transaction targets [browser, server];
|
||||
call id "recurring:complete:call" execution transaction;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
external atom TaskObject id "recurring:task";
|
||||
package TaskRuntime id "recurring:runtime" revision "recurring:runtime@1" {
|
||||
operation complete id "recurring:runtime:complete" : uint64 -> unit
|
||||
mode call execution transaction targets [browser, server] receiver atom TaskObject requires {
|
||||
mode call execution transaction targets [JavaScript, server] receiver atom TaskObject requires {
|
||||
state occurrence id "recurring:port:occurrence" : uint64 [read, write];
|
||||
state due id "recurring:port:due" : int64 [read, write];
|
||||
};
|
||||
|
||||
Vendored
+3
-3
@@ -1,11 +1,11 @@
|
||||
interface TreeData id "tree:data" revision "tree:data@1" {
|
||||
operation reparent id "tree:reparent" : optional<interface-ref<TreeData>> -> unit {
|
||||
call id "tree:reparent:call" execution transaction targets [browser, server];
|
||||
call id "tree:reparent:call" execution transaction;
|
||||
}
|
||||
queryable relation parent id "tree:parent" : optional-one interface TreeData {
|
||||
resolve id "tree:parent:resolve" execution snapshot targets [browser, server];
|
||||
resolve id "tree:parent:resolve" execution snapshot;
|
||||
}
|
||||
queryable relation children id "tree:children" : many interface TreeData {
|
||||
resolve id "tree:children:resolve" execution snapshot targets [browser, server];
|
||||
resolve id "tree:children:resolve" execution snapshot;
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+2
-1
@@ -1,8 +1,9 @@
|
||||
symbol JavaScript id "target:org.quixos.execution.javascript@1";
|
||||
external atom Node id "tree:node";
|
||||
import interface TreeData;
|
||||
package TreeRuntime id "tree:runtime" revision "tree:runtime@1" {
|
||||
operation reparent id "tree:runtime:reparent" : optional<interface-ref<TreeData>> -> unit
|
||||
mode call execution transaction targets [browser, server] receiver atom Node requires {
|
||||
mode call execution transaction targets [JavaScript, server] receiver atom Node requires {
|
||||
edge parent id "tree:move:parent" : optional-one interface TreeData [resolve, connect, disconnect];
|
||||
} accept using check;
|
||||
operation check id "tree:runtime:check" : optional<interface-ref<TreeData>> -> unit
|
||||
|
||||
Reference in New Issue
Block a user