Module
x/xstate/src/machine.schema.json
Actor-based state management & orchestration for complex app logic.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema", "$defs": { "actionObject": { "type": "object", "properties": { "type": { "type": "string", "description": "The action type" } }, "additionalProperties": true, "required": ["type"] }, "baseStateNode": { "type": "object", "properties": { "id": { "type": "string" }, "key": { "type": "string" }, "type": { "type": "string", "enum": ["atomic", "compound", "parallel", "final", "history"] }, "order": { "$ref": "#/$defs/order" }, "description": { "type": "string", "description": "The description of the state node, in Markdown" } }, "required": ["id", "key", "type"] }, "compoundStateNode": { "allOf": [ { "$ref": "#/$defs/baseStateNode" }, { "type": "object", "properties": { "type": { "type": "string", "pattern": "compound" }, "entry": { "type": "array", "items": { "$ref": "#/$defs/actionObject" } }, "exit": { "type": "array", "items": { "$ref": "#/$defs/actionObject" } }, "initial": { "$ref": "#/$defs/initialTransitionObject" }, "invoke": { "$ref": "#/$defs/invokeArray" }, "on": { "$ref": "#/$defs/transitionsObject" }, "states": { "$ref": "#/$defs/statesObject" } }, "required": ["states"] } ] }, "parallelStateNode": { "allOf": [ { "$ref": "#/$defs/baseStateNode" }, { "type": "object", "properties": { "type": { "type": "string", "pattern": "parallel" }, "entry": { "type": "array", "items": { "$ref": "#/$defs/actionObject" } }, "exit": { "type": "array", "items": { "$ref": "#/$defs/actionObject" } }, "invoke": { "$ref": "#/$defs/invokeArray" }, "on": { "$ref": "#/$defs/transitionsObject" }, "states": { "$ref": "#/$defs/statesObject" } }, "required": ["states"] } ] }, "atomicStateNode": { "allOf": [ { "$ref": "#/$defs/baseStateNode" }, { "type": "object", "properties": { "type": { "type": "string", "pattern": "atomic" }, "entry": { "type": "array", "items": { "$ref": "#/$defs/actionObject" } }, "exit": { "type": "array", "items": { "$ref": "#/$defs/actionObject" } }, "invoke": { "$ref": "#/$defs/invokeArray" }, "on": { "$ref": "#/$defs/transitionsObject" } }, "required": ["on"] } ] }, "historyStateNode": { "allOf": [ { "$ref": "#/$defs/baseStateNode" }, { "type": "object", "properties": { "type": { "type": "string", "pattern": "history" }, "history": { "type": "string", "enum": ["shallow", "deep"] } }, "required": ["history"] } ] }, "finalStateNode": { "allOf": [ { "$ref": "#/$defs/baseStateNode" }, { "type": "object", "properties": { "type": { "type": "string", "pattern": "final" }, "data": { "type": "object" } } } ] }, "statesObject": { "type": "object", "patternProperties": { "^.*$": { "oneOf": [ { "$ref": "#/$defs/atomicStateNode" }, { "$ref": "#/$defs/compoundStateNode" }, { "$ref": "#/$defs/parallelStateNode" }, { "$ref": "#/$defs/historyStateNode" }, { "$ref": "#/$defs/finalStateNode" } ] } } }, "initialTransitionObject": { "type": "object", "properties": { "actions": { "type": "array", "items": { "$ref": "#/$defs/actionObject" } }, "source": { "type": "string" }, "target": { "type": "array", "items": { "type": "string" }, "minItems": 1 } }, "required": ["actions", "eventType", "source", "target"] }, "transitionsObject": { "type": "object", "patternProperties": { "^.*$": { "type": "array", "items": { "$ref": "#/$defs/transitionObject" } } } }, "transitionObject": { "type": "object", "properties": { "actions": { "type": "array", "items": { "$ref": "#/$defs/actionObject" } }, "cond": { "type": "object" }, "eventType": { "type": "string" }, "source": { "type": "string" }, "target": { "type": "array", "items": { "type": "string" } } }, "required": ["actions", "eventType", "source", "target"] }, "invokeObject": { "type": "object", "properties": { "type": { "type": "string" }, "id": { "type": "string" }, "src": { "type": "string" } }, "required": ["type", "id", "src"], "additionalProperties": false }, "invokeArray": { "type": "array", "items": { "$ref": "#/$defs/invokeObject" } }, "functionObject": { "type": "object", "properties": { "$function": { "type": "string" } } }, "order": { "type": "integer" } }, "properties": { "id": { "title": "ID", "type": "string" }, "initial": { "$ref": "#/$defs/initialTransitionObject" }, "key": { "type": "string" }, "type": { "type": "string", "enum": ["compound", "parallel"] }, "context": { "type": "object" }, "states": { "$ref": "#/$defs/statesObject" }, "on": { "$ref": "#/$defs/transitionsObject" }, "transitions": { "type": "array", "items": { "$ref": "#/$defs/transitionObject" } }, "entry": { "type": "array" }, "exit": { "type": "array" }, "order": { "$ref": "#/$defs/order" }, "invoke": { "$ref": "#/$defs/invokeArray" }, "version": { "type": "string" } }, "required": ["id", "key", "type", "states"]}