Graph structure for parsing and manipulating flows.
Graph structure for parsing and manipulating flows.
api-builder-flow-graph * ~FlowGraph
* new FlowGraph()
* new FlowGraph(flowId, flowdef)
* ._ensureVertex(vertexId, info) ⇒ object
* ._deleteVertex(vertexId)
* [._getVertexChildren(vertexId, output, [idsOnly])](#module_api-builder-flow-graph..FlowGraph+_getVertexChildren) ⇒ Array.<string> \| Array.<object>
* [._getVertexParents(vertexId, [idsOnly])](#module_api-builder-flow-graph..FlowGraph+_getVertexParents) ⇒ Array.<string> \| Array.<object>
* ._ensureEdge(output, fromId, toId) ⇒ object
* ._deleteEdge(fromId, output, toId)
* ._deleteEdges(fromId, toId)
* ._setValidation(validation)
* ._getOutputRoutes(nodeId) ⇒ object
* ._onChange()
* ._buildGraph()
* ._buildVertex(nodeId)
* .changeNodeName(nodeId, name)
* .changeMethod(nodeId, method, nodehandler)
* .insertNode(node, nodeId) ⇒ string
* .deleteNode(nodeId)
* .deleteRoute(output, fromId, toId)
* .deleteRoutes(fromId, toId)
* .setStart(nodeId)
* .unsetStart()
* [.addParameter(nodeId, name, value, [type])](#module_api-builder-flow-graph..FlowGraph+addParameter)
* .updateParameter(nodeId, name, prop, newValue)
* .removeParameter(nodeId, name) ⇒ object
* [.addAuthorization(nodeId, name, value, [type])](#module_api-builder-flow-graph..FlowGraph+addAuthorization)
* .updateAuthorization(nodeId, name, prop, newValue)
* .removeAuthorization(nodeId, name) ⇒ object
* [._addParameter(location, nodeId, name, value, [type])](#module_api-builder-flow-graph..FlowGraph+_addParameter)
* ._getParameter(location, nodeId, name) ⇒ object
* ._getParameterIndex(location, nodeId, name) ⇒ number
* ._updateParameter(location, nodeId, name, prop, newValue)
* ._removeParameterByName(location, nodeId, name) ⇒ object
* ._removeParameter(location, nodeId, index) ⇒ object
* .updateOutputContext(nodeId, name, value)
* .connectNode(sourceId, sourceOutput, targetId)
* .disconnectNode(sourceId, sourceOutput, targetId)
* .isEmpty() ⇒ boolean
* .getName() ⇒ string
* .setName(name)
* .getDescription() ⇒ string
* .setDescription(description)
* .getSymbol() ⇒ symbol
* .getDefinition() ⇒ object
* .getGraph() ⇒ object
* .getId() ⇒ string
* .getEdges() ⇒ Array.<object>
* .getEdge(output, fromId, toId) ⇒ object \| null
* [.getVertices([idsOnly])](#module_api-builder-flow-graph..FlowGraph+getVertices) ⇒ Array.<string> \| Array.<object>
* [.getNodes([idsOnly])](#module_api-builder-flow-graph..FlowGraph+getNodes) ⇒ Array.<string> \| Array.<object>
* [.getChildren(nodeId, output, [idsOnly])](#module_api-builder-flow-graph..FlowGraph+getChildren) ⇒ Array.<string> \| Array.<object>
* [.getParents(nodeId, [idsOnly])](#module_api-builder-flow-graph..FlowGraph+getParents) ⇒ Array.<string> \| Array.<object>
* [.getTerminalNodes([idsOnly])](#module_api-builder-flow-graph..FlowGraph+getTerminalNodes) ⇒ Array.<string> \| Array.<object>
* .getVertex(vertexId) ⇒ object
* .getNode(nodeId) ⇒ object \| null
* .getNodeUnsafe(nodeId) ⇒ object
* .getValidation() ⇒ object
* .registerValidator(validator)
* .validate() ⇒ object
#### new FlowGraph()
FlowGraph object
#### new FlowGraph(flowId, flowdef)
Creates an instance of FlowGraph.
| Param | Type | Description |
| --- | --- | --- |
| flowId | string | The id of this flow. |
| flowdef | object | The flow definition. |
#### flowGraph.\_ensureVertex(vertexId, info) ⇒ object
Ensures that a vertex will exist
Kind: instance method of FlowGraph
Returns: object - the vertex which matched or was created.
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the ID of the vertex |
| info | object | info to be set on the vertex. If vertex already exists, the info will be merged with the existing info. |
#### flowGraph.\_deleteVertex(vertexId)
Deletes a vertex from the graph
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the id of the vertex to delete |
#### flowGraph.\_getVertexChildren(vertexId, output, [idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the children of a vertex in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the child vertices of a vertex in the flow
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the Id of the vertex to get children for. |
| output | string | the vetex output to get the children for. |
| [idsOnly] | bool | if the vertex idsOnly should be returned rather than the vertices |
#### flowGraph.\_getVertexParents(vertexId, [idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the parents of a vertex in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the parent nodes of a vertex in the flow
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the Id of the vertex to get parents for. |
| [idsOnly] | bool | if the vertex ids should be returned rather than the vertices |
#### flowGraph.\_ensureEdge(output, fromId, toId) ⇒ object
Ensures that an edge will exist between any two vertices. If any of the vertices do not
exist, they will be created.
Kind: instance method of FlowGraph
Returns: object - the edge which matched or was created.
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| output | string | the vertex output group the edge belongs to. |
| fromId | string | the ID of the vertex where the edge starts |
| toId | string | this ID of the vertex where the edge ends |
#### flowGraph.\_deleteEdge(fromId, output, toId)
Deletes an edge from one node to another.
Removes the parent/child where necesarry from each vertex.
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| fromId | string | the vertex where the edge starts |
| output | string | the vertex output group the edge belongs to. |
| toId | string | the vertex where the edge ends |
#### flowGraph.\_deleteEdges(fromId, toId)
Deletes the edges from one node to another (across all outputs).
Removes the parent/child where necesarry from each vertex.
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| fromId | string | the vertex where the edge starts |
| toId | string | the vertex where the edge ends |
#### flowGraph.\_setValidation(validation)
Sets the validation state on the flow definition
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| validation | object | the validation state |
#### flowGraph.\_getOutputRoutes(nodeId) ⇒ object
Gets a list of all nodes which a node may route to grouped by output.
Kind: instance method of FlowGraph
Returns: object - A map of IDs for routes from the node specified grouped by output.
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the ID of a node to get routes for |
#### flowGraph.\_onChange()
Generates a unique symbol of the flow. Should be called whenever the flow changes.
Kind: instance method of FlowGraph
#### flowGraph.\_buildGraph()
Build a graph from the flow definition.
Kind: instance method of FlowGraph
Access: protected
#### flowGraph.\_buildVertex(nodeId)
Builds a vertex for a nodeId
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | The nodeId from which to build a vertex. |
#### flowGraph.changeNodeName(nodeId, name)
Sets the name of a node
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | Node ID |
| name | string | New node name |
#### flowGraph.changeMethod(nodeId, method, nodehandler)
Modifies the method of a node to match a new spec
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | The id of the node to update. |
| method | string | the method to use |
| nodehandler | object | the node handler in use |
#### flowGraph.insertNode(node, nodeId) ⇒ string
Inserts a node into the flow graph.
Kind: instance method of FlowGraph
Returns: string - - the inserted nodeId
| Param | Type | Description |
| --- | --- | --- |
| node | object | The node to insert. |
| nodeId | string | The id of the node to insert. If supplied, it must be unique. If not supplied, the node id will be generated. |
#### flowGraph.deleteNode(nodeId)
Delete a specific node from the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the id of the node to delete |
#### flowGraph.deleteRoute(output, fromId, toId)
Delete the output route from one node to another.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| output | string | the output to delete the route for. |
| fromId | string | the node id the routes are being deleted from. |
| toId | string | the node id being removed from the routes. |
#### flowGraph.deleteRoutes(fromId, toId)
Delete all the output routes from one node to another.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| fromId | string | the node id the routes are being deleted from. |
| toId | string | the node id being removed from the routes. |
#### flowGraph.setStart(nodeId)
Sets a node as the start node for the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | The start node for the flow. |
#### flowGraph.unsetStart()
Clears the start node for the flow. This action will make the flow invalid.
Kind: instance method of FlowGraph
#### flowGraph.addParameter(nodeId, name, value, [type])
Adds a parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| nodeId | string | | the node id |
| name | string | | the name of the parameter |
| value | string | | the value of the parameter |
| [type] | string | "jsonpath" | the type of the parameter. |
#### flowGraph.updateParameter(nodeId, name, prop, newValue)
Updates a parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the current name of the parameter |
| prop | string \| object | the field to update (name|type|value) if string, or the new value of the parameter |
| newValue | string | the new value of the prop specified if it is a string |
#### flowGraph.removeParameter(nodeId, name) ⇒ object
Removes a parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the name of the parameter |
#### flowGraph.addAuthorization(nodeId, name, value, [type])
Adds a authorization parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| nodeId | string | | the node id |
| name | string | | the name of the parameter |
| value | string | | the value of the parameter |
| [type] | string | "jsonpath" | the type of the parameter. |
#### flowGraph.updateAuthorization(nodeId, name, prop, newValue)
Updates a authorization parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the current name of the parameter |
| prop | string \| object | the field to update (name|type|value) if string, or the new value of the parameter |
| newValue | string | the new value of the prop specified if it is a string |
#### flowGraph.removeAuthorization(nodeId, name) ⇒ object
Removes a authorization parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the name of the parameter |
#### flowGraph.\_addParameter(location, nodeId, name, value, [type])
Adds a parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| location | string | | the parameter location, one of: parameters|authorizations |
| nodeId | string | | the node id |
| name | string | | the name of the parameter |
| value | string | | the value of the parameter |
| [type] | string | "jsonpath" | the type of the parameter. |
#### flowGraph.\_getParameter(location, nodeId, name) ⇒ object
Gets a parameter from the node by name
Kind: instance method of FlowGraph
Returns: object - the parameter
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| name | string | the name of the parameter |
#### flowGraph.\_getParameterIndex(location, nodeId, name) ⇒ number
Gets a parameter index from the node by name
Kind: instance method of FlowGraph
Returns: number - the parameter index
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| name | string | the name of the parameter |
#### flowGraph.\_updateParameter(location, nodeId, name, prop, newValue)
Updates a parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| name | string | the current name of the parameter |
| prop | string \| object | the field to update (name|type|value) if string, or the new value of the parameter |
| newValue | string | the new value of the prop specified if it is a string |
#### flowGraph.\_removeParameterByName(location, nodeId, name) ⇒ object
Removes a parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| name | number | the name of the parameter |
#### flowGraph.\_removeParameter(location, nodeId, index) ⇒ object
Removes a parameter by index from a node in the flow. Does not trigger change.
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| index | number | the index of the parameter |
#### flowGraph.updateOutputContext(nodeId, name, value)
Modifies the JSONPath context of an output
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the name of the output |
| value | string | the new JSONPath context |
#### flowGraph.connectNode(sourceId, sourceOutput, targetId)
Connects a node output to the specified target.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| sourceId | string | The source node for the connection. |
| sourceOutput | string | The output in the source node for the connection. |
| targetId | string | The id of the target node to connect to. |
#### flowGraph.disconnectNode(sourceId, sourceOutput, targetId)
Disconnects a target node from a parent node's source and output.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| sourceId | string | The source node for the connection. |
| sourceOutput | string | The output in the source node for the connection. |
| targetId | string | The id of the target node to connect to. |
#### flowGraph.isEmpty() ⇒ boolean
Indicates if the flow is empty, with no nodes.
Kind: instance method of FlowGraph
Returns: boolean - true if the flow is empty.
#### flowGraph.getName() ⇒ string
Gets the name of the flow from flow info meta-data.
Kind: instance method of FlowGraph
Returns: string - The flow name.
#### flowGraph.setName(name)
Sets the name of the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| name | string | The flow name. |
#### flowGraph.getDescription() ⇒ string
Gets the description of the flow from flow info meta-data.
Kind: instance method of FlowGraph
Returns: string - The flow description.
#### flowGraph.setDescription(description)
Sets the description of the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| description | string | The flow description. |
#### flowGraph.getSymbol() ⇒ symbol
Get the unique symbol of the flow
Kind: instance method of FlowGraph
Returns: symbol - the flow symbol
#### flowGraph.getDefinition() ⇒ object
Gets the definition of the flow
Kind: instance method of FlowGraph
Returns: object - the flow definition
#### flowGraph.getGraph() ⇒ object
Gets the graph representation of the flow
Kind: instance method of FlowGraph
Returns: object - the flow graph representation
#### flowGraph.getId() ⇒ string
Gets the Id of the flow
Kind: instance method of FlowGraph
Returns: string - the flow id
#### flowGraph.getEdges() ⇒ Array.<object>
Gets the edges of the flow graph
Kind: instance method of FlowGraph
Returns: Array.<object> - the edges of the graph
#### flowGraph.getEdge(output, fromId, toId) ⇒ object \| null
Get the edge between two nodes.
Kind: instance method of FlowGraph
Returns: object \| null - the edge between two nodes. Null if no edge exists.
| Param | Type | Description |
| --- | --- | --- |
| output | string | the node output the edges belong to. |
| fromId | string | the ID of the vertex where the edge starts |
| toId | string | this ID of the vertex where the edge ends |
#### flowGraph.getVertices([idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the vertices of the graph
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the vertices of the graph
| Param | Type | Description |
| --- | --- | --- |
| [idsOnly] | bool | if the vertex ids should be returned rather than the vertices |
#### flowGraph.getNodes([idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the nodes of the flow
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the nodes of the flow
| Param | Type | Description |
| --- | --- | --- |
| [idsOnly] | bool | if the node ids should be returned rather than the nodes |
#### flowGraph.getChildren(nodeId, output, [idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the children of a node in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the child nodes of a node in the flow
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the Id of the node to get children for. |
| output | string | the node output to get the children for. If omitted then all children are returned. |
| [idsOnly] | bool | if the node idsOnly should be returned rather than the nodes |
#### flowGraph.getParents(nodeId, [idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the parents of a node in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the parent nodes of a node in the flow
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the Id of the node to get parents for. |
| [idsOnly] | bool | if the node ids should be returned rather than the nodes |
#### flowGraph.getTerminalNodes([idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the terminal nodes of the flow
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the terminal nodes of the flow
| Param | Type | Description |
| --- | --- | --- |
| [idsOnly] | bool | if the node ids should be returned rather than the nodes |
#### flowGraph.getVertex(vertexId) ⇒ object
Get the vertex which matches the ID specified
Kind: instance method of FlowGraph
Returns: object - a vertex in the graph
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the ID of the vertex to return |
#### flowGraph.getNode(nodeId) ⇒ object \| null
Get the node which matches the ID specified
Kind: instance method of FlowGraph
Returns: object \| null - a node in the flow, or null
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the ID of the node to return |
#### flowGraph.getNodeUnsafe(nodeId) ⇒ object
Get the node which matches the ID specified and will throw an error if node was not found.
Call this if you expect the node to exist
Kind: instance method of FlowGraph
Returns: object - a node in the flow
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the ID of the node to return |
#### flowGraph.getValidation() ⇒ object
Get the validation state of the flow
Kind: instance method of FlowGraph
Returns: object - the validation state of the flow
#### flowGraph.registerValidator(validator)
Registers a FlowValidator type class to the flow. When validation is run, this class will
be used to validate the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| validator | FlowValidator | A class which is a FlowValidator |
#### flowGraph.validate() ⇒ object
Validate the flow - check all the nodes, no cycles, syntax, etc.
Update the definition to make validation report available to clients
Kind: instance method of FlowGraph
Returns: object - the validation state
api-builder-flow-graph * ~FlowGraph
* new FlowGraph()
* new FlowGraph(flowId, flowdef)
* ._ensureVertex(vertexId, info) ⇒ object
* ._deleteVertex(vertexId)
* [._getVertexChildren(vertexId, output, [idsOnly])](#module_api-builder-flow-graph..FlowGraph+_getVertexChildren) ⇒ Array.<string> \| Array.<object>
* [._getVertexParents(vertexId, [idsOnly])](#module_api-builder-flow-graph..FlowGraph+_getVertexParents) ⇒ Array.<string> \| Array.<object>
* ._ensureEdge(output, fromId, toId) ⇒ object
* ._deleteEdge(fromId, output, toId)
* ._deleteEdges(fromId, toId)
* ._setValidation(validation)
* ._getOutputRoutes(nodeId) ⇒ object
* ._onChange()
* ._buildGraph()
* ._buildVertex(nodeId)
* .changeNodeName(nodeId, name)
* .changeMethod(nodeId, method, nodehandler)
* .insertNode(node, nodeId) ⇒ string
* .deleteNode(nodeId)
* .deleteRoute(output, fromId, toId)
* .deleteRoutes(fromId, toId)
* .setStart(nodeId)
* .unsetStart()
* [.addParameter(nodeId, name, value, [type])](#module_api-builder-flow-graph..FlowGraph+addParameter)
* .updateParameter(nodeId, name, prop, newValue)
* .removeParameter(nodeId, name) ⇒ object
* [.addAuthorization(nodeId, name, value, [type])](#module_api-builder-flow-graph..FlowGraph+addAuthorization)
* .updateAuthorization(nodeId, name, prop, newValue)
* .removeAuthorization(nodeId, name) ⇒ object
* [._addParameter(location, nodeId, name, value, [type])](#module_api-builder-flow-graph..FlowGraph+_addParameter)
* ._getParameter(location, nodeId, name) ⇒ object
* ._getParameterIndex(location, nodeId, name) ⇒ number
* ._updateParameter(location, nodeId, name, prop, newValue)
* ._removeParameterByName(location, nodeId, name) ⇒ object
* ._removeParameter(location, nodeId, index) ⇒ object
* .updateOutputContext(nodeId, name, value)
* .connectNode(sourceId, sourceOutput, targetId)
* .disconnectNode(sourceId, sourceOutput, targetId)
* .isEmpty() ⇒ boolean
* .getName() ⇒ string
* .setName(name)
* .getDescription() ⇒ string
* .setDescription(description)
* .getSymbol() ⇒ symbol
* .getDefinition() ⇒ object
* .getGraph() ⇒ object
* .getId() ⇒ string
* .getEdges() ⇒ Array.<object>
* .getEdge(output, fromId, toId) ⇒ object \| null
* [.getVertices([idsOnly])](#module_api-builder-flow-graph..FlowGraph+getVertices) ⇒ Array.<string> \| Array.<object>
* [.getNodes([idsOnly])](#module_api-builder-flow-graph..FlowGraph+getNodes) ⇒ Array.<string> \| Array.<object>
* [.getChildren(nodeId, output, [idsOnly])](#module_api-builder-flow-graph..FlowGraph+getChildren) ⇒ Array.<string> \| Array.<object>
* [.getParents(nodeId, [idsOnly])](#module_api-builder-flow-graph..FlowGraph+getParents) ⇒ Array.<string> \| Array.<object>
* [.getTerminalNodes([idsOnly])](#module_api-builder-flow-graph..FlowGraph+getTerminalNodes) ⇒ Array.<string> \| Array.<object>
* .getVertex(vertexId) ⇒ object
* .getNode(nodeId) ⇒ object \| null
* .getNodeUnsafe(nodeId) ⇒ object
* .getValidation() ⇒ object
* .registerValidator(validator)
* .validate() ⇒ object
#### new FlowGraph()
FlowGraph object
#### new FlowGraph(flowId, flowdef)
Creates an instance of FlowGraph.
| Param | Type | Description |
| --- | --- | --- |
| flowId | string | The id of this flow. |
| flowdef | object | The flow definition. |
#### flowGraph.\_ensureVertex(vertexId, info) ⇒ object
Ensures that a vertex will exist
Kind: instance method of FlowGraph
Returns: object - the vertex which matched or was created.
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the ID of the vertex |
| info | object | info to be set on the vertex. If vertex already exists, the info will be merged with the existing info. |
#### flowGraph.\_deleteVertex(vertexId)
Deletes a vertex from the graph
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the id of the vertex to delete |
#### flowGraph.\_getVertexChildren(vertexId, output, [idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the children of a vertex in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the child vertices of a vertex in the flow
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the Id of the vertex to get children for. |
| output | string | the vetex output to get the children for. |
| [idsOnly] | bool | if the vertex idsOnly should be returned rather than the vertices |
#### flowGraph.\_getVertexParents(vertexId, [idsOnly]) ⇒ Array.<string> \| Array.<object>
Gets the parents of a vertex in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> \| Array.<object> - the parent nodes of a vertex in the flow
| Param | Type | Description |
| --- | --- | --- |
| vertexId | string | the Id of the vertex to get parents for. |
| [idsOnly] | bool | if the vertex ids should be returned rather than the vertices |
#### flowGraph.\_ensureEdge(output, fromId, toId) ⇒ object
Ensures that an edge will exist between any two vertices. If any of the vertices do not
exist, they will be created.
Kind: instance method of FlowGraph
Returns: object - the edge which matched or was created.
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| output | string | the vertex output group the edge belongs to. |
| fromId | string | the ID of the vertex where the edge starts |
| toId | string | this ID of the vertex where the edge ends |
#### flowGraph.\_deleteEdge(fromId, output, toId)
Deletes an edge from one node to another.
Removes the parent/child where necesarry from each vertex.
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| fromId | string | the vertex where the edge starts |
| output | string | the vertex output group the edge belongs to. |
| toId | string | the vertex where the edge ends |
#### flowGraph.\_deleteEdges(fromId, toId)
Deletes the edges from one node to another (across all outputs).
Removes the parent/child where necesarry from each vertex.
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| fromId | string | the vertex where the edge starts |
| toId | string | the vertex where the edge ends |
#### flowGraph.\_setValidation(validation)
Sets the validation state on the flow definition
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| validation | object | the validation state |
#### flowGraph.\_getOutputRoutes(nodeId) ⇒ object
Gets a list of all nodes which a node may route to grouped by output.
Kind: instance method of FlowGraph
Returns: object - A map of IDs for routes from the node specified grouped by output.
Access: protected
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the ID of a node to get routes for |
#### flowGraph.\_onChange()
Generates a unique symbol of the flow. Should be called whenever the flow changes.
Kind: instance method of FlowGraph
#### flowGraph.\_buildGraph()
Build a graph from the flow definition.
Kind: instance method of FlowGraph
Access: protected
#### flowGraph.\_buildVertex(nodeId)
Builds a vertex for a nodeId
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | The nodeId from which to build a vertex. |
#### flowGraph.changeNodeName(nodeId, name)
Sets the name of a node
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | Node ID |
| name | string | New node name |
#### flowGraph.changeMethod(nodeId, method, nodehandler)
Modifies the method of a node to match a new spec
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | The id of the node to update. |
| method | string | the method to use |
| nodehandler | object | the node handler in use |
#### flowGraph.insertNode(node, nodeId) ⇒ string
Inserts a node into the flow graph.
Kind: instance method of FlowGraph
Returns: string - - the inserted nodeId
| Param | Type | Description |
| --- | --- | --- |
| node | object | The node to insert. |
| nodeId | string | The id of the node to insert. If supplied, it must be unique. If not supplied, the node id will be generated. |
#### flowGraph.deleteNode(nodeId)
Delete a specific node from the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the id of the node to delete |
#### flowGraph.deleteRoute(output, fromId, toId)
Delete the output route from one node to another.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| output | string | the output to delete the route for. |
| fromId | string | the node id the routes are being deleted from. |
| toId | string | the node id being removed from the routes. |
#### flowGraph.deleteRoutes(fromId, toId)
Delete all the output routes from one node to another.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| fromId | string | the node id the routes are being deleted from. |
| toId | string | the node id being removed from the routes. |
#### flowGraph.setStart(nodeId)
Sets a node as the start node for the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | The start node for the flow. |
#### flowGraph.unsetStart()
Clears the start node for the flow. This action will make the flow invalid.
Kind: instance method of FlowGraph
#### flowGraph.addParameter(nodeId, name, value, [type])
Adds a parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| nodeId | string | | the node id |
| name | string | | the name of the parameter |
| value | string | | the value of the parameter |
| [type] | string | "jsonpath" | the type of the parameter. |
#### flowGraph.updateParameter(nodeId, name, prop, newValue)
Updates a parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the current name of the parameter |
| prop | string \| object | the field to update (name|type|value) if string, or the new value of the parameter |
| newValue | string | the new value of the prop specified if it is a string |
#### flowGraph.removeParameter(nodeId, name) ⇒ object
Removes a parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the name of the parameter |
#### flowGraph.addAuthorization(nodeId, name, value, [type])
Adds a authorization parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| nodeId | string | | the node id |
| name | string | | the name of the parameter |
| value | string | | the value of the parameter |
| [type] | string | "jsonpath" | the type of the parameter. |
#### flowGraph.updateAuthorization(nodeId, name, prop, newValue)
Updates a authorization parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the current name of the parameter |
| prop | string \| object | the field to update (name|type|value) if string, or the new value of the parameter |
| newValue | string | the new value of the prop specified if it is a string |
#### flowGraph.removeAuthorization(nodeId, name) ⇒ object
Removes a authorization parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the name of the parameter |
#### flowGraph.\_addParameter(location, nodeId, name, value, [type])
Adds a parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| location | string | | the parameter location, one of: parameters|authorizations |
| nodeId | string | | the node id |
| name | string | | the name of the parameter |
| value | string | | the value of the parameter |
| [type] | string | "jsonpath" | the type of the parameter. |
#### flowGraph.\_getParameter(location, nodeId, name) ⇒ object
Gets a parameter from the node by name
Kind: instance method of FlowGraph
Returns: object - the parameter
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| name | string | the name of the parameter |
#### flowGraph.\_getParameterIndex(location, nodeId, name) ⇒ number
Gets a parameter index from the node by name
Kind: instance method of FlowGraph
Returns: number - the parameter index
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| name | string | the name of the parameter |
#### flowGraph.\_updateParameter(location, nodeId, name, prop, newValue)
Updates a parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| name | string | the current name of the parameter |
| prop | string \| object | the field to update (name|type|value) if string, or the new value of the parameter |
| newValue | string | the new value of the prop specified if it is a string |
#### flowGraph.\_removeParameterByName(location, nodeId, name) ⇒ object
Removes a parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| name | number | the name of the parameter |
#### flowGraph.\_removeParameter(location, nodeId, index) ⇒ object
Removes a parameter by index from a node in the flow. Does not trigger change.
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description |
| --- | --- | --- |
| location | string | the parameter location, one of: parameters|authorizations |
| nodeId | string | the node id |
| index | number | the index of the parameter |
#### flowGraph.updateOutputContext(nodeId, name, value)
Modifies the JSONPath context of an output
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| nodeId | string | the node id |
| name | string | the name of the output |
| value | string | the new JSONPath context |
#### flowGraph.connectNode(sourceId, sourceOutput, targetId)
Connects a node output to the specified target.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| sourceId | string | The source node for the connection. |
| sourceOutput | string | The output in the source node for the connection. |
| targetId | string | The id of the target node to connect to. |
#### flowGraph.disconnectNode(sourceId, sourceOutput, targetId)
Disconnects a target node from a parent node's source and output.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| sourceId | string | The source node for the connection. |
| sourceOutput | string | The output in the source node for the connection. |
| targetId | string | The id of the target node to connect to. |
#### flowGraph.isEmpty() ⇒ boolean
Indicates if the flow is empty, with no nodes.
Kind: instance method of FlowGraph
Returns: boolean - true if the flow is empty.
#### flowGraph.getName() ⇒ string
Gets the name of the flow from flow info meta-data.
Kind: instance method of FlowGraph
Returns: string - The flow name.
#### flowGraph.setName(name)
Sets the name of the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| name | string | The flow name. |
#### flowGraph.getDescription() ⇒ string
Gets the description of the flow from flow info meta-data.
Kind: instance method of FlowGraph
Returns: string - The flow description.
#### flowGraph.setDescription(description)
Sets the description of the flow.
Kind: instance method of FlowGraph
| Param | Type | Description |
| --- | --- | --- |
| description | string | The flow description. |
#### flowGraph.getSymbol() ⇒ symbol
Get the unique symbol of the flow
Kind: instance method of FlowGraph
Returns: symbol - the flow symbol
#### flowGraph.getDefinition() ⇒ object
Gets the definition of the flow
Kind: instance method of FlowGraph
Returns: object - the flow definition
#### flowGraph.getGraph() ⇒ object
Gets the graph representation of the flow
Kind: instance method of FlowGraph
Returns: object - the flow graph representation