52 lines
5.9 KiB
Plaintext
52 lines
5.9 KiB
Plaintext
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;}
|
|
}
|