Files

52 lines
5.9 KiB
Plaintext
Raw Permalink Normal View History

symbol JavaScript id "target:org.quixos.execution.javascript@1";
import interface PresentationStates;
import interface PresentationSubject;
import interface PresentationStateValues;
import interface PresentationState;
import interface PresentationMount;
import interface PresentationStateFactory;
external atom PresentationMountRecord id "atom:org.quixos.presentation-mount";
package PresentationRuntime id "package:org.quixos.presentation-runtime" revision "package:org.quixos.presentation-runtime@1" {
operation copyEmpty id "presentation-runtime:copy-empty" : optional<interface-ref<PresentationState>> -> interface-ref<PresentationMount> mode call execution transaction targets [JavaScript,server] receiver any requires {creation presentationMount id "presentationMount" : PresentationMountRecord input unit;};
operation findEmpty id "presentation-runtime:find-empty" : string -> optional<interface-ref<PresentationState>> mode call execution snapshot targets [JavaScript,server] receiver any requires {};
operation attachEmpty id "presentation-runtime:attach-empty" : interface-ref<PresentationState> -> unit mode call execution transaction targets [JavaScript,server] receiver any 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" : record {presentationMount:interface-ref<PresentationMount>;parent:optional<interface-ref<PresentationState>>;} -> unit mode call execution transaction targets [JavaScript,server] receiver any requires {
edge owner id "owner" : optional-one interface PresentationMount [resolve];
edge parent id "parent" : optional-one interface PresentationState [resolve,connect];
edge rootOf id "rootOf" : optional-one interface PresentationMount [connect];
interface metadata id "metadata" : PresentationState using [presentationMount.resolve] from input;
interface presentationMount id "presentationMount" : PresentationMount using [root.resolve,attach.call] from input;
};
operation claim id "presentation-runtime:claim" : interface-ref<PresentationState> -> unit mode call execution transaction targets [JavaScript,server] receiver any requires {
edge members id "members" : many-unique interface PresentationState keyed "string" [connect];
edge root id "root" : optional-one interface PresentationState [resolve];
interface metadata id "metadata" : PresentationState using [occurrence.get,presentationMount.resolve,parent.resolve] from input;
};
operation create<object Navigation implements PresentationState> id "presentation-runtime:create-state" : record {presentationMount:interface-ref<PresentationMount>;occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> ref<Navigation> mode call execution transaction targets [JavaScript,server] receiver any requires {
interface metadata id "state" : PresentationState using [occurrence.get,presentationMount.resolve,parent.resolve,source.resolve,attach.call] from input;
interface factory id "factory" : PresentationStateFactory<Navigation> using [create.call];
};
operation ensure<object Navigation implements PresentationState> id "presentation-runtime:ensure-state" : record {presentationMount:interface-ref<PresentationMount>;occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> unit mode call execution transaction targets [JavaScript,server] receiver any requires {
interface presentationMount id "presentationMount" : PresentationMount using [find.call] from input;
interface metadata id "state" : PresentationState using [occurrence.get,presentationMount.resolve,parent.resolve,source.resolve,attach.call] from input;
interface factory id "factory" : PresentationStateFactory<Navigation> using [create.call];
};
operation find id "presentation-runtime:find" : string -> optional<interface-ref<PresentationState>> mode call execution snapshot targets [JavaScript,server] receiver any requires {
edge members id "members" : many-unique interface PresentationState keyed "string" [resolve];
};
operation allocate<object Navigation implements PresentationState> id "presentation-runtime:allocate" : record {presentationMount:interface-ref<PresentationMount>;occurrence:string;parent:optional<interface-ref<PresentationState>>;} -> interface-ref<PresentationState> mode call execution transaction targets [JavaScript,server] receiver any requires {interface source id "source" : PresentationStates<Navigation> using [create.call];};
operation copy id "presentation-runtime:copy" : optional<interface-ref<PresentationState>> -> interface-ref<PresentationMount> mode call execution transaction targets [JavaScript,server] receiver any requires {
edge members id "members" : many-unique interface PresentationState keyed "string" [resolve];
edge root id "root" : optional-one interface PresentationState [resolve];
interface metadata id "metadata" : PresentationState using [parent.resolve,occurrence.get,presentationMount.resolve,allocate.call,copyValues.call] from input;
creation presentationMount id "presentationMount" : PresentationMountRecord input unit;
};
query RootInputs id "presentation:root-inputs" root PresentationMount document "queries/root.graphql" operation "PresentationRoot" {replica;max rows 5000;max result-bytes 8388608;}
query RootView id "presentation:root-view" root PresentationMount document "queries/root.graphql" operation "PresentationRoot" {local from RootInputs;watch;max rows 5000;max result-bytes 8388608;}
query SubjectInputs id "presentation:subject-inputs" root PresentationSubject document "queries/subject.graphql" operation "PresentationSubject" {replica;}
query SubjectView id "presentation:subject-view" root PresentationSubject document "queries/subject.graphql" operation "PresentationSubject" {local from SubjectInputs;watch;}
}