UNPKG

adaptorex

Version:

Connect all your live interactive storytelling devices and software

303 lines (302 loc) 10.5 kB
{ "settings": { "type": "object", "title": "Control", "description": "Control this level and launch new sessions.", "additionalProperties": false, "readonly": true }, "action_variables": { "onError": { "name": { "type": "string" }, "type": { "type": "string" }, "match": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "object", "properties": { "name": { "type": "string" }, "id": { "type": "string" } } } } }, "actions": { "next": { "type": "object", "title": "Next", "description": "Goto next state immediately after all actions are executed.", "documentation": "https://docs.adaptorex.org/basics/actions/control/next.html", "required": ["next"], "default": { "next": "" }, "additionalProperties": false, "properties": { "next": { "$ref": "#/definitions/next" } } }, "onCue": { "title": "On Cue", "type": "object", "mode": "listen", "required": ["cue", "next"], "description": "Next state triggered by a human operator on a specified cue.", "documentation": "https://docs.adaptorex.org/basics/actions/control/onCue.html", "template": "{return { title:`control ${action.name}`, subtitle:`Click ${payload.next} on:`, body:[{ text: payload.cue, next: payload.next }]} }", "additionalProperties": false, "properties": { "cue": { "title": "Cue", "description": "Describe the event on which an operator should trigger the next state manually.", "type": "string", "format": "textarea" }, "next": { "$ref": "#/definitions/next" } } }, "quit": { "type": "null", "title": "Quit", "template": "{return { title:`Quit Level`} }", "description": "End all states and listeners and close the session.", "documentation": "https://docs.adaptorex.org/basics/actions/control/quit.html", "readOnly": true }, "split": { "type": "array", "title": "Split Path", "minItems": 2, "format": "table", "description": "Split your flow in paths that run independent from each other.", "documentation": "https://docs.adaptorex.org/basics/actions/control/split.html", "default": [{ "name": "red" }, { "name": "blue" }], "items": { "type": "object", "required": ["name", "next"], "properties": { "name": { "type": "string", "description": "name the new path so its easier to identify it.", "isAdaptorContent": false }, "next": { "$ref": "#/definitions/next" } } } }, "join": { "type": "array", "title": "Join Path", "format": "table", "description": "cancel all listeners running on a specific path defined by a list of origin paths", "documentation": "https://docs.adaptorex.org/basics/actions/control/join.html", "default": [""], "items": { "type": "string", "title": "path", "isAdaptorContent": false } }, "launch": { "type": "object", "description": "start a new session", "documentation": "https://docs.adaptorex.org/basics/actions/control/launch.html", "title": "Launch Session", "required": ["level"], "resolveAdaptorVariables": false, "additionalProperties": false, "properties": { "level": { "type": "string", "description": "name of level the new session is based on", "isAdaptorContent": false }, "name": { "type": "string", "description": "name the new session so it can be accessed and identified. Launch will fail if another session with the same name exists.", "isAdaptorContent": false }, "reference": { "type": "string", "description": "allows you to reference the new session from inside this level.", "isAdaptorContent": false }, "content": { "type": "string", "description": "Set session content actions will refer to. E.g. language.", "isAdaptorContent": false }, "arguments": { "type": "array", "description": "Add values, variables or items as arguments that will be forwarded to the new session.", "options": { "disable_array_reorder": true }, "default": [{ "name": "", "value": "" }], "format": "table", "items": { "type": "object", "title": "argument", "format": "grid", "additionalProperties": false, "required": ["name", "value"], "options": { "disable_properties": true }, "properties": { "name": { "type": "string" }, "value": { "type": "string" } } } } } }, "cancel": { "type": "object", "title": "Cancel Session", "description": "Cancel a remote session", "documentation": "https://docs.adaptorex.org/basics/actions/control/cancel.html", "template": "{return { title:`Cancel Session ${action.name}`, body:[{ text: payload.session}]} }", "isAdaptorContent": false, "additionalProperties": false, "required": ["session"], "properties": { "session": { "type": "string", "description": "Session name, reference or a query to find and cancel one or more sessions." } } }, "log": { "type": "object", "title": "Log Message", "description": "Write an info, debug or error message to the adaptor log", "documentation": "https://docs.adaptorex.org/basics/actions/control/log.html", "template": "{return { title:`control ${action.name}`, body:[{ text: `${payload.level}: ${payload.message}`}]} }", "required": ["level", "message"], "additionalProperties": false, "properties": { "level": { "type": "string", "enum": ["error", "warn", "info", "debug", "trace"], "default": "info", "description": "Set the urgency level for the log message. Error messages are most and trace messages least important." }, "message": { "type": "string", "default": "", "format": "textarea" } } }, "onError": { "type": "object", "title": "On Error", "description": "Listen for errors inside this state or the session.", "documentation": "https://docs.adaptorex.org/basics/actions/logic/onError.html", "mode": "listen", "adaptorExecutionOrder": "before_run", "resolveAdaptorVariables": false, "default": { "from": "state", "type": "Error" }, "additionalProperties": false, "properties": { "from": { "type": "string", "enum": ["state", "session"] }, "type": { "title": "error type name", "description": "Match Errors of a specific type only. Select 'Error' to match any type of error. Select 'AdaptorError' to match any of the known error types from this list.", "type": "string", "enum": [ "Error", "AdaptorError", "NotFoundError", "ConnectionError", "DuplicateError", "InvalidError", "OutdatedError", "ForbiddenError", "LimitReachedError" ] }, "if": { "title": "if", "type": "array", "items": { "title": "condition", "oneOf": [ { "title": "Equals", "description": "Trigger next if error message equals", "type": "object", "additionalProperties": false, "required": ["equals", "next"], "properties": { "equals": { "$ref": "#/definitions/equals" }, "case_sensitive": { "type": "boolean", "format": "checkbox", "title": "case sensitive" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Contains", "description": "Trigger next if error message contains", "type": "object", "additionalProperties": false, "required": ["contains", "next"], "properties": { "contains": { "$ref": "#/definitions/contains" }, "case_sensitive": { "type": "boolean", "format": "checkbox", "title": "case sensitive" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Javascript function", "description": "If javascript function returns. Error message is value argument.", "type": "object", "additionalProperties": false, "required": ["javascript", "next"], "properties": { "javascript": { "$ref": "#/definitions/javascript" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Regular Expression", "description": "If regular expression matches anything when used on error message", "type": "object", "additionalProperties": false, "required": ["regex", "next"], "properties": { "regex": { "$ref": "#/definitions/regex" }, "case_sensitive": { "type": "boolean", "format": "checkbox", "title": "case sensitive" }, "next": { "$ref": "#/definitions/next" } } } ] } }, "else": { "type": "object", "properties": { "next": { "$ref": "#/definitions/next" } } } } } } }