-
Notifications
You must be signed in to change notification settings - Fork 0
/
.x.cache
1 lines (1 loc) · 62.5 KB
/
.x.cache
1
{"dependencies":{"npm":{"mustache":"latest","domify":"0.x.x","json-editor":"psichi/json-editor","underscore":"1.x.x","dot-object":"0.x.x"}},"nodeDefinitions":{"./graphs/{ns}/{name}.fbp":{"models":{"model":{"id":"MyModel","type":"flow","nodes":[{"id":"1eab118d-a16f-418a-b559-995ce08661b2","title":"Commands","ns":"object","name":"keys"},{"id":"c47086e4-d7b0-4ccf-a7d1-fc8b0860cd2a","title":"CommandsPicker","ns":"data","name":"pick"},{"id":"609c2042-7b9d-48ac-bcd5-7e81138d8ab6","title":"ProtocolSchemas","ns":"object","name":"create","context":{"in":{"network":{"title":"Network protocol","description":"Protocol for starting and stopping FBP networks, and finding out about their state.","output":{"stopped":{"title":"Stopped","description":"Inform that a given network has stopped.","type":"object","properties":{"time":{"title":"Time","type":"string","format":"date-time","description":"time when the network was stopped"},"uptime":{"title":"Uptime","type":"string","format":"date-time","description":"time the network was running, in seconds"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"started":{"title":"Started","description":"Inform that a given network has been started.","type":"object","properties":{"time":{"title":"Time","type":"string","format":"date-time","description":"time when the network was started"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"status":{"title":"Status","description":"Response to a getstatus message.","type":"object","properties":{"running":{"title":"Running","type":"boolean","description":"boolean tells whether the network is running or not"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"},"uptime":{"title":"Uptime","type":"string","format":"date-time","description":"(optional) time the network has been running, in seconds"}}},"output":{"description":"An output message from a running network, roughly similar to STDOUT output of a Unix process, or a line of console.log in JavaScript. Output can also be used for passing images from the runtime to the UI.","properties":{"message":{"type":"string","description":"contents of the output line"},"type":{"type":"string","enum":["message","previewurl"],"description":"(optional) type of output, either message or previewurl"},"url":{"type":"string","format":"uri","description":"(optional) URL for an image generated by the runtime"}}},"error":{"description":"An error from a running network, roughly similar to STDERR output of a Unix process, or a line of console.error in JavaScript.","properties":{"message":{"type":"any","description":"contents of the error message"}}},"icon":{"description":"Icon of a component instance has changed.","properties":{"id":{"type":"string","description":"identifier of the node"},"icon":{"type":"string","description":"new icon for the component instance"},"graph":{"type":"string","description":"graph the action targets"}}},"connect":{"description":"Beginning of transmission on an edge.","properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"type":"object","description":"source node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"tgt":{"type":"object","description":"target node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"graph":{"type":"string","description":"graph the action targets"},"subgraph":{"type":"string","description":"(optional): subgraph identifier for the event. An array of node IDs"}}},"begingroup":{"description":"Beginning of a group (bracket IP) on an edge.","properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"description":"source node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"tgt":{"description":"target node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"group":{"description":"group name","type":"string"},"graph":{"type":"string","description":"graph the action targets"},"subgraph":{"type":"array","description":"(optional): subgraph identifier for the event. An array of node IDs"}}},"data":{"description":"Data transmission on an edge.","properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"type":"object","description":"source node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"tgt":{"type":"object","description":"target node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"data":{"type":"any","description":"actual data being transmitted, encoded in a way that can be carried over the protocol transport"},"graph":{"type":"string","description":"graph the action targets"},"subgraph":{"type":"string","description":"(optional): subgraph identifier for the event. An array of node IDs"}}},"endgroup":{"description":"Ending of a group (bracket IP) on an edge.","properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"description":"source node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"tgt":{"description":"target node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"group":{"description":"group name","type":"string"},"graph":{"description":"graph the action targets","type":"string"},"subgraph":{"type":"array","description":"(optional): subgraph identifier for the event. An array of node IDs"}}},"disconnect":{"description":"End of transmission on an edge.","properties":{"id":{"description":"textual edge identifier, usually in form of a FBP language line"},"src":{"type":"object","description":"source node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"tgt":{"type":"object","description":"target node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"graph":{"type":"string","description":"graph the action targets"},"subgraph":{"type":"string","description":"(optional): subgraph identifier for the event. An array of node IDs"}}}},"input":{"error":{"description":"Network error"},"start":{"description":"Start execution of a FBP network based on a given graph.","properties":{"graph":{"type":"string","description":"graph the action targets"}}},"getstatus":{"description":"Get the current status of the runtime. The runtime should respond with a status message.","properties":{"graph":{"type":"string","description":"graph the action targets"}}},"stop":{"description":"Stop execution of a FBP network based on a given graph.","properties":{"graph":{"type":"string","description":"graph the action targets"}}},"edges":{"description":"List of edges user has selected for inspection in a user interface or debugger, sent from UI to a runtime.","edges":{"type":"array","description":"list of selected edges, each containing","properties":{"src":{"type":"object","description":"source node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"}}},"tgt":{"type":"object","description":"target node for the edge","properties":{"node":{"type":"string","description":"node identifier"},"port":{"type":"string","description":"port name"},"graph":{"type":"string","description":"graph the action targets"}}}}}}}},"component":{"title":"Component protocol","description":"Protocol for handling the component registry.","output":{"error":{"description":"Component error"},"component":{"title":"Component","description":"Transmit the metadata about a component instance.","type":"object","properties":{"name":{"title":"Name","type":"string","description":"component name in format that can be used in graphs"},"description":{"title":"Description","type":"string","description":"(optional) textual description on what the component does"},"icon":{"title":"Icon","type":"string","description":"(optional): visual icon for the component, matching icon names in [Font Awesome](http://fortawesome.github.io/Font-Awesome/icons/)"},"subgraph":{"title":"Subgraph","type":"boolean","description":"boolean telling whether the component is a subgraph"},"inPorts":{"title":"Input Ports","description":"list of input ports, each containing:","type":"object","properties":{"id":{"title":"ID","type":"string","description":"port name"},"type":{"title":"Type","type":"string","description":"port datatype, for example `boolean`"},"description":{"title":"Description","type":"string","description":"textual description of the port"},"addressable":{"title":"Addressable","type":"boolean","description":"boolean telling whether the port is an ArrayPort"},"required":{"title":"Required","type":"boolean","description":"boolean telling whether the port needs to be connected for the component to work"},"values":{"title":"Values","type":"array","description":"(optional) array of the values that the port accepts for enum ports"},"default":{"title":"Default","type":"any","description":"(optional) the default value received by the port"}}},"outPorts":{"description":"list of output ports","type":"object","properties":{"id":{"title":"ID","type":"string","description":"port name"},"type":{"title":"Type","type":"string","description":"port datatype, for example `boolean`"},"description":{"title":"Description","type":"string","description":"textual description of the port"},"addressable":{"title":"Addressable","type":"boolean","description":"boolean telling whether the port is an ArrayPort"},"required":{"title":"Required","type":"boolean","description":"boolean telling whether the port needs to be connected for the component to work"}}}}},"source":{"description":"Source code for a component. In cases where a runtime receives a `source` message, it should do whatever operations are needed for making that component available for graphs, including possible compilation.","type":"object","properties":{"name":{"title":"Name","type":"string","description":"Name of the component"},"language":{"title":"Language","type":"string","description":"The programming language used for the component code, for example `coffeescript`"},"library":{"title":"Library","type":"string","description":"(optional) Component library identifier"},"code":{"title":"Code","type":"string","description":"Component source code"},"tests":{"title":"Tests","type":"string","description":"(optional) unit tests for the component"}}}},"input":{"error":{"title":"Error","description":"Component error","type":"object"},"list":{"title":"List","description":"Request a list of currently available components. Will be responded with a set of `component` messages.","type":"object"},"getsource":{"title":"Get Source","description":"Request for the source code of a given component. Will be responded with a `source` message.","type":"object","properties":{"name":{"type":"string","description":"Name of the component to get source code for"}}},"source":{"title":"Source code","description":"Source code for a component. In cases where a runtime receives a `source` message, it should do whatever operations are needed for making that component available for graphs, including possible compilation.","type":"object","properties":{"name":{"title":"Name","type":"string","description":"Name of the component"},"language":{"title":"Language","type":"string","description":"The programming language used for the component code, for example `coffeescript`"},"library":{"title":"Library","type":"string","description":"(optional) Component library identifier"},"code":{"title":"Code","type":"string","description":"Component source code"},"tests":{"title":"Tests","type":"string","description":"(optional) unit tests for the component"}}}}},"runtime":{"title":"Runtime protocol","description":"When a client connects to a FBP procotol it may choose to discover the capabilities and other information about the runtime.","input":{"error":{"title":"Error","description":"Runtime error","type":"object"},"getruntime":{"title":"Get runtime","description":"Request the information about the runtime. When receiving this message the runtime should response with a runtime message.","type":"object"},"packet":{"title":"Packet","description":"Runtimes that can be used as remote subgraphs (i.e. ones that have reported supporting the protocol:runtime capability) need to be able to receive and transmit information packets at their exposed ports.\nThese packets can be send from the client to the runtime's input ports, or from runtime's output ports to the client.","type":"object","properties":{"port":{"title":"Port","type":"string","description":"port name for the input or output port"},"event":{"title":"Event","type":"string","enum":["connect","begingroup","data","endgroup","disconnect"],"description":"packet event"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"},"payload":{"title":"Payload","type":"object","description":"(optional) payload for the packet. Used only with begingroup (for group names) and data packets"}}}},"output":{"error":{"title":"Error","description":"Runtime error","type":"object"},"ports":{"title":"Ports","description":"Message sent by the runtime to signal its available ports. The runtime is responsible for sending the up-to-date list of available ports back to client whenever it changes.","type":"object","properties":{"graph":{"title":"Graph","type":"string","description":"ID of the currently configured main graph running on the runtime"},"inPorts":{"title":"Input ports","description":"list of input ports","type":"array","items":{"type":"object","properties":{"addressable":{"title":"addressable","type":"boolean","description":"boolean telling whether the port is an ArrayPort"},"id":{"title":"ID","type":"string","description":"port name"},"type":{"title":"Type","description":"port datatype, for example boolean","type":"string"},"required":{"title":"Required","description":"boolean telling whether the port needs to be connected for the component to work","type":"boolean"},"description":{"title":"Description","type":"string","description":"textual description of the port"}}}},"outPorts":{"title":"Output ports","description":"list of output ports","type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"textual description of the port"},"required":{"type":"boolean","description":"boolean telling whether the port needs to be connected for the component to work"},"type":{"description":"port datatype, for example boolean","type":"string"},"id":{"description":"port name","type":"string"},"addressable":{"description":"boolean telling whether the port is an ArrayPort","type":"boolean"}}}}}},"runtime":{"title":"Runtime","description":"Response from the runtime to the getruntime request.","type":"object","properties":{"id":{"title":"ID","type":"string","required":false,"description":"(optional) runtime ID used with Flowhub Registry"},"label":{"title":"Label","description":"(optional) Human-readable description of the runtime","type":"string","required":false},"version":{"title":"Version","description":"version of the runtime protocol that the runtime supports, for example 0.4","type":"string"},"capabilities":{"title":"Capabilities","type":"array","items":{"protocol:network":{"description":"the runtime is able to control and introspect its running networks using the Network protocol"},"protocol:component":{"description":"the runtime is able to list and modify its components using the Component protocol"},"protocol:runtime":{"description":"the runtime is able to expose the ports of its main graph using the Runtime protocol and transmit packet information to/from them"},"component:getsource":{"description":"runtime is able to read and send component source code back to client"},"network:persist":{"description":"runtime is able to *flash* a running graph setup into itself, making it persistent across reboots"},"protocol:graph":{"description":"the runtime is able to modify its graphs using the Graph protocol"},"component:setsource":{"description":"runtime is able to compile and run custom components sent as source code strings"}},"description":"array of capability strings for things the runtime is able to do\nIf the runtime is currently running a graph and it is able to speak the full Runtime protocol, it should follow up with a ports message."},"graph":{"title":"Graph","description":"(optional) ID of the currently configured main graph running on the runtime, if any","type":"string","required":false},"type":{"title":"Type","description":"type of the runtime, for example noflo-nodejs or microflo","type":"string"}}}}},"graph":{"title":"Graph protocol","description":"This protocol is utilized for communicating about graph changes in both directions.","output":{"error":{"description":"Graph error","type":"object"},"addnode":{"description":"Add node to a graph.","type":"object","properties":{"id":{"title":"ID","type":"string","description":"identifier for the node","required":true},"component":{"title":"Component","type":"string","description":"component name used for the node","required":true},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for node metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"removenode":{"description":"Remove a node from a graph.","type":"object","properties":{"id":{"title":"ID","type":"string","description":"identifier for the node","required":true},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"renamenode":{"description":"Change the ID of a node in the graph","type":"object","properties":{"from":{"title":"From","type":"string","description":"original identifier for the node","required":true},"to":{"title":"To","type":"string","description":"new identifier for the node","required":true},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"changenode":{"title":"Change node","description":"Change the metadata associated to a node in the graph","type":"object","properties":{"id":{"title":"ID","type":"string","description":"identifier for the node","required":true},"metadata":{"title":"Metadata","type":"object","description":"structure of key-value pairs for node metadata","required":true},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"addedge":{"description":"Add an edge to the graph","type":"object","properties":{"src":{"title":"Source","type":"object","description":"source node for the edge","required":true,"properties":{"node":{"title":"Node","type":"string","description":"node identifier","required":true},"port":{"title":"Port","type":"string","description":"port name","required":true},"index":{"title":"Index","type":["string","number"],"description":"connection index (optional, for addressable ports)"}}},"tgt":{"title":"Target","type":"object","description":"target node for the edge","required":true,"properties":{"node":{"title":"Node","type":"string","description":"node identifier","required":true},"port":{"title":"Port","type":"string","description":"port name","required":true},"index":{"title":"Index","type":"string","description":"connection index (optional, for addressable ports)"}}},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for edge metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"removeedge":{"title":"Remove edge","description":"Remove an edge from the graph","type":"object","properties":{"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true},"src":{"title":"Source","type":"object","description":"source node for the edge","required":true,"properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}}},"tgt":{"title":"Target","type":"object","description":"target node for the edge","required":true,"properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}}}}},"changeedge":{"title":"Change edge","description":"Change an edge's metadata","type":"object","properties":{"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true},"metadata":{"title":"Metadata","type":"object","description":"struct of key-value pairs for edge metadata"},"src":{"title":"Source","type":"object","description":"source node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}}},"tgt":{"title":"Target","type":"object","description":"target node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}}}}},"addinitial":{"title":"Add initial","description":"Add an IIP to the graph","type":"object","properties":{"graph":{"title":"Graph","type":"string","description":"graph the action targets"},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for edge metadata"},"src":{"title":"Source","type":"object","properties":{"data":{"title":"Data","type":"any","description":"IIP value in its actual data type"}}},"tgt":{"title":"Target","type":"object","description":"target node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"},"index":{"title":"Index","type":["string","number"],"description":"connection index (optional, for addressable ports)"}}}}},"removeinitial":{"title":"Remove initial","description":"Remove an IIP from the graph","type":"object","properties":{"tgt":{"title":"Target","type":"object","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}},"description":"target node for the edge"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"addinport":{"title":"Add inport","description":"Add an exported inport to the graph.","type":"object","properties":{"public":{"title":"Public","type":"string","description":"the exported name of the port"},"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"internal port name"},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for node metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"removeinport":{"title":"Remove inport","description":"Remove an exported port from the graph","type":"object","properties":{"public":{"title":"Public","type":"string","description":"the exported name of the port to remove"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"renameinport":{"title":"Rename inport","description":"Rename an exported port in the graph","type":"object","properties":{"from":{"title":"From","type":"string","description":"original exported port name"},"to":{"title":"To","type":"string","description":"new exported port name"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"addoutport":{"title":"Add outport","description":"Add an exported outport to the graph.","type":"object","properties":{"public":{"title":"Public","type":"string","description":"the exported name of the port"},"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"internal port name"},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for port metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"removeoutport":{"title":"Remove outport","description":"Remove an exported port from the graph","type":"object","properties":{"public":{"title":"Public","type":"string","description":"the exported name of the port to remove"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"renameoutport":{"title":"Rename outport","description":"Rename an exported port in the graph","type":"object","properties":{"from":{"title":"From","type":"string","description":"original exported port name"},"to":{"title":"To","type":"string","description":"new exported port name"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"addgroup":{"title":"Add group","description":"Add a group to the graph","type":"object","properties":{"name":{"title":"Name","type":"string","description":"the group name"},"nodes":{"title":"Nodes","type":"array","description":"an array of node ids part of the group"},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for group metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"removegroup":{"title":"Remove group","description":"Remove a group from the graph","type":"object","properties":{"name":{"title":"Name","type":"string","description":"the group name"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"renamegroup":{"title":"Rename group","description":"Rename a group in the graph.","type":"object","properties":{"from":{"title":"From","type":"string","description":"original group name"},"to":{"title":"To","type":"string","description":"new group name"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"changegroup":{"title":"Change group","description":"Change a group's metadata","type":"object","properties":{"name":{"title":"Name","type":"string","description":"the group name","required":true},"metadata":{"title":"Metadata","type":"object","description":"structure of key-value pairs for group metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}}},"input":{"error":{"title":"Error","description":"Graph error","type":"object"},"clear":{"title":"Clear","description":"Initialize an empty graph.","type":"object","properties":{"id":{"title":"ID","type":"string","description":"identifier for the graph being created. Used for all subsequent messages related to the graph instance","required":true},"name":{"title":"Name","type":"string","description":"(optional) Human-readable label for the graph"},"library":{"title":"Library","type":"string","description":"(optional) Component library identifier"},"main":{"title":"Main","type":"boolean","description":"(optional) Identifies the graph as a main graph of a project that should not be registered as a component\nGraphs registered in this way should also be available for use as subgraphs in other graphs. Therefore a graph registration and later changes to it may cause component messages of the Component protocol to be sent back to the client informing of possible changes in the ports of the subgraph component."}}},"subscribe":{"title":"Subscribe","description":"Subscribe to a graph.","type":"object","properties":{"graph":{"title":"Graph","type":"string","description":"graph to subscribe to","required":true}}},"unsubscribe":{"title":"Unsubscribe","description":"Unsubscribe to a graph.","type":"object","properties":{"graph":{"title":"Graph","type":"string","description":"graph to unsubscribe from","required":true}}},"addnode":{"title":"Add node","description":"Add node to a graph.","type":"object","properties":{"id":{"title":"ID","type":"string","description":"identifier for the node","required":true},"component":{"title":"Component","type":"string","description":"component name used for the node","required":true},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for node metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"removenode":{"title":"Removenode","description":"Remove a node from a graph.","type":"object","properties":{"id":{"title":"ID","type":"string","description":"identifier for the node","required":true},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"renamenode":{"title":"Rename node","description":"Change the ID of a node in the graph","type":"object","properties":{"from":{"title":"From","type":"string","description":"original identifier for the node","required":true},"to":{"title":"To","type":"string","description":"new identifier for the node","required":true},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"changenode":{"title":"Change node","description":"Change the metadata associated to a node in the graph","type":"object","properties":{"id":{"title":"ID","type":"string","description":"identifier for the node","required":true},"metadata":{"title":"Metadata","type":"object","description":"structure of key-value pairs for node metadata","required":true},"graph":{"title":"Graph","type":"string","description":"graph the action targets","required":true}}},"addedge":{"title":"Add edge","description":"Add an edge to the graph","type":"object","properties":{"src":{"title":"Source","type":"object","description":"source node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"},"index":{"title":"Index","type":["string","number"],"description":"connection index (optional, for addressable ports)"}}},"tgt":{"title":"Target","type":"object","description":"target node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"},"index":{"title":"Index","type":["string","number"],"description":"connection index (optional, for addressable ports)"}}},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for edge metadata"},"graph":{"title":"Graph","description":"graph the action targets"}}},"removeedge":{"title":"Remove edge","description":"Remove an edge from the graph","type":"object","properties":{"graph":{"titile":"Graph","type":"string","description":"graph the action targets"},"src":{"titile":"Source","type":"object","description":"source node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}}},"tgt":{"title":"Target","type":"object","description":"target node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}}}}},"changeedge":{"title":"Change edge","description":"Change an edge's metadata","type":"object","properties":{"graph":{"title":"Graph","type":"string","description":"graph the action targets"},"metadata":{"title":"Metadata","type":"object","description":"struct of key-value pairs for edge metadata"},"src":{"title":"Source","type":"object","description":"source node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}}},"tgt":{"title":"Target","type":"object","description":"target node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}}}}},"addinitial":{"title":"Add initial","description":"Add an IIP to the graph","type":"object","properties":{"graph":{"title":"Graph","type":"string","description":"graph the action targets"},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for edge metadata"},"src":{"title":"Source","type":"object","properties":{"data":{"title":"Data","type":"any","description":"IIP value in its actual data type"}}},"tgt":{"title":"Target","type":"object","description":"target node for the edge","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"},"index":{"title":"Index","type":["string","number"],"description":"connection index (optional, for addressable ports)"}}}}},"removeinitial":{"title":"Remove initial","description":"Remove an IIP from the graph","type":"object","properties":{"tgt":{"title":"Target","type":"object","properties":{"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"port name"}},"description":"target node for the edge"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"addinport":{"title":"Add inport","description":"Add an exported inport to the graph.","type":"object","properties":{"public":{"title":"Public","type":"string","description":"the exported name of the port"},"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"internal port name"},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for node metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"removeinport":{"title":"Remove inport","description":"Remove an exported port from the graph","type":"object","properties":{"public":{"title":"Public","type":"string","description":"the exported name of the port to remove"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"renameinport":{"title":"Rename inport","description":"Rename an exported port in the graph","type":"object","properties":{"from":{"title":"Rename inport","type":"string","description":"original exported port name"},"to":{"title":"To","type":"string","description":"new exported port name"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"addoutport":{"title":"Add outport","description":"Add an exported outport to the graph.","type":"object","properties":{"public":{"title":"Public","type":"string","description":"the exported name of the port"},"node":{"title":"Node","type":"string","description":"node identifier"},"port":{"title":"Port","type":"string","description":"internal port name"},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for port metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"removeoutport":{"title":"Remove outport","description":"Remove an exported port from the graph","type":"object","properties":{"public":{"title":"Public","type":"string","description":"the exported name of the port to remove"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"renameoutport":{"title":"Rename outport","description":"Rename an exported port in the graph","type":"object","properties":{"from":{"title":"From","type":"string","description":"original exported port name"},"to":{"title":"To","type":"string","description":"new exported port name"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"addgroup":{"title":"Add group","description":"Add a group to the graph","type":"object","properties":{"name":{"title":"Name","type":"string","description":"the group name"},"nodes":{"title":"Nodes","type":"array","description":"an array of node ids part of the group"},"metadata":{"title":"Metadata","type":"object","description":"(optional): structure of key-value pairs for group metadata"},"graph":{"type":"string","description":"graph the action targets"}}},"removegroup":{"title":"Remove group","description":"Remove a group from the graph","type":"object","properties":{"name":{"title":"Name","type":"string","description":"the group name"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"renamegroup":{"title":"Rename group","description":"Rename a group in the graph.","type":"object","properties":{"from":{"title":"From","type":"string","description":"original group name"},"to":{"title":"To","type":"string","description":"new group name"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}},"changegroup":{"title":"Change group","description":"Change a group's metadata","type":"object","properties":{"name":{"title":"Name","type":"string","description":"the group name"},"metadata":{"title":"Metadata","type":"object","description":"structure of key-value pairs for group metadata"},"graph":{"title":"Graph","type":"string","description":"graph the action targets"}}}}}}}},{"id":"a87dd71f-48c0-4d33-9542-5e3ad9a2116f","title":"Log","ns":"console","name":"log"},{"id":"1c055b93-da6f-4355-8969-453f4c9aaa12","title":"CommandKey","ns":"object","name":"keys"},{"id":"d8846fbe-e4b8-4b1e-9783-04dd8efc504c","title":"GetCommands","ns":"object","name":"keys"},{"id":"cc238c96-9745-489a-849c-1f4829e65747","title":"BuildPath","ns":"string","name":"append","context":{"append":".input"}},{"id":"1092c08a-8c34-48ab-b638-28473005b5cb","title":"PrepareCommand","ns":"array","name":"map","context":{"fn":"\n return {\n label: val,\n value: val\n }\n"}},{"id":"a35d78f2-9115-4286-8bf9-8b52bf866c9c","title":"PickSchema","ns":"data","name":"pick"}],"links":[{"id":"68fb67c0-ba2a-43fe-b93d-b977871c1285","source":{"id":"d8846fbe-e4b8-4b1e-9783-04dd8efc504c","port":"out","setting":{"index":0}},"target":{"id":"cc238c96-9745-489a-849c-1f4829e65747","port":"in"},"metadata":{"title":"GetCommands out -> in BuildPath"}},{"id":"49b066f1-fc0d-4ef4-b13d-740bf2f1e04b","source":{"id":"cc238c96-9745-489a-849c-1f4829e65747","port":"out"},"target":{"id":"c47086e4-d7b0-4ccf-a7d1-fc8b0860cd2a","port":"path"},"metadata":{"title":"BuildPath out -> path CommandsPicker"}},{"id":"d65023e9-b935-4cdf-81d4-82f612f5f803","source":{"id":"c47086e4-d7b0-4ccf-a7d1-fc8b0860cd2a","port":"out"},"target":{"id":"a87dd71f-48c0-4d33-9542-5e3ad9a2116f","port":"msg"},"metadata":{"title":"CommandsPicker out -> msg Log"}},{"id":"9f726fd4-c9c3-42a7-bdea-2c5af6002293","source":{"id":"cc238c96-9745-489a-849c-1f4829e65747","port":"out"},"target":{"id":"a87dd71f-48c0-4d33-9542-5e3ad9a2116f","port":"msg"},"metadata":{"title":"BuildPath out -> msg Log"}},{"id":"29b9c018-1257-4662-bcb2-b27ff2f0eb8a","source":{"id":"609c2042-7b9d-48ac-bcd5-7e81138d8ab6","port":"out"},"target":{"id":"c47086e4-d7b0-4ccf-a7d1-fc8b0860cd2a","port":"in","setting":{"persist":true}},"metadata":{"title":"ProtocolSchemas out -> in CommandsPicker"}},{"id":"d89be0fd-6603-4834-9ca8-08d4430f1c8e","source":{"id":"c47086e4-d7b0-4ccf-a7d1-fc8b0860cd2a","port":"out"},"target":{"id":"1eab118d-a16f-418a-b559-995ce08661b2","port":"in"},"metadata":{"title":"CommandsPicker out -> in Commands"}},{"id":"6f2b1148-d225-4905-a851-62d966bab78a","source":{"id":"1eab118d-a16f-418a-b559-995ce08661b2","port":"out"},"target":{"id":"a87dd71f-48c0-4d33-9542-5e3ad9a2116f","port":"msg"},"metadata":{"title":"Commands out -> msg Log"}},{"id":"f6093a34-6d79-4889-b1c9-1b0835d3c065","source":{"id":"1eab118d-a16f-418a-b559-995ce08661b2","port":"out"},"target":{"id":"1092c08a-8c34-48ab-b638-28473005b5cb","port":"in"},"metadata":{"title":"Commands out -> in PrepareCommand"}},{"id":"0b18a0c3-970b-4157-add6-dfadafc9a870","source":{"id":"c47086e4-d7b0-4ccf-a7d1-fc8b0860cd2a","port":"out"},"target":{"id":"a87dd71f-48c0-4d33-9542-5e3ad9a2116f","port":"msg"},"metadata":{"title":"CommandsPicker out -> msg Log"}},{"id":"c5506037-ccca-40c3-bf92-e159f769ea85","source":{"id":"c47086e4-d7b0-4ccf-a7d1-fc8b0860cd2a","port":"out"},"target":{"id":"a35d78f2-9115-4286-8bf9-8b52bf866c9c","port":"in","setting":{"persist":true}},"metadata":{"title":"CommandsPicker out -> in PickSchema"}},{"id":"49faf9dd-1121-469b-af82-f0701d7d6edc","source":{"id":"1c055b93-da6f-4355-8969-453f4c9aaa12","port":"out","setting":{"index":0}},"target":{"id":"a35d78f2-9115-4286-8bf9-8b52bf866c9c","port":"path"},"metadata":{"title":"CommandKey out -> path PickSchema"}},{"id":"e17c8d9b-9b8d-4d13-934b-d74fa9bbb995","source":{"id":"1c055b93-da6f-4355-8969-453f4c9aaa12","port":"out"},"target":{"id":"a87dd71f-48c0-4d33-9542-5e3ad9a2116f","port":"msg"},"metadata":{"title":"CommandKey out -> msg Log"}},{"id":"7173a8a5-4994-40d8-92cd-7e22dde81637","source":{"id":"a35d78f2-9115-4286-8bf9-8b52bf866c9c","port":"error"},"target":{"id":"a87dd71f-48c0-4d33-9542-5e3ad9a2116f","port":"msg"},"metadata":{"title":"PickSchema error -> msg Log"}}],"title":"Modelling","ns":"models","name":"model","ports":{"input":{"command":{"nodeId":"1c055b93-da6f-4355-8969-453f4c9aaa12","title":"Command","name":"in"},"in":{"nodeId":"d8846fbe-e4b8-4b1e-9783-04dd8efc504c","title":"In","name":"in"}},"output":{"schema":{"nodeId":"a35d78f2-9115-4286-8bf9-8b52bf866c9c","title":"Schema","name":"out"},"options":{"nodeId":"1092c08a-8c34-48ab-b638-28473005b5cb","title":"Options","name":"out"}}},"providers":{"@":{"url":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"provider":"./graphs/{ns}/{name}.fbp"}}},"./graphs/{name}.fbp":{"protocol":{"message":{"id":"MessageBox","type":"flow","nodes":[{"id":"d23bb485-af77-4344-8586-842dbba6a979","title":"MessageEl","ns":"dom","name":"querySelector","context":{"selector":"#messages"}},{"id":"6636c6c1-6d12-4a18-8d74-0364ebd98fc3","title":"View","ns":"template","name":"mustache","context":{"body":"<div class=\"message panel panel-info\">\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">{{title}}<button type=\"button\" class=\"close pull-right\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button></h3>\n </div>\n <div class=\"panel-body\">\n {{body}}\n </div>\n</div>\n"}},{"id":"b26425df-7a19-4349-bd69-1f51fd5506db","title":"Button","ns":"bootstrap","name":"button"},{"id":"def9bef6-b6e3-4e00-9ef0-3c2c7da14180","title":"Click","ns":"dom","name":"addMouseEvent","context":{"event":"click"}},{"id":"63675a30-a1a2-45c0-85b5-059bf58ebfd8","title":"AddMessage","ns":"dom","name":"appendChild"},{"id":"4087ce06-a876-49a7-9afe-5d8012143b66","title":"ToHtml","ns":"dom","name":"domify"},{"id":"ea8f0c35-cf45-48a5-a97c-ea21fae9fcd6","title":"Log","ns":"console","name":"log"},{"id":"7729647c-37f3-4e79-a729-f5d1d1e02233","title":"d","ns":"utils","name":"dummy"}],"links":[{"id":"29867ec4-9080-4e34-be92-adca4c5b3dee","source":{"id":"d23bb485-af77-4344-8586-842dbba6a979","port":"selection"},"target":{"id":"63675a30-a1a2-45c0-85b5-059bf58ebfd8","port":"element","setting":{"persist":true}},"metadata":{"title":"MessageEl selection -> element AddMessage"}},{"id":"b3452d6f-4931-46f7-85a3-fa2fb80c9852","source":{"id":"4087ce06-a876-49a7-9afe-5d8012143b66","port":"out"},"target":{"id":"63675a30-a1a2-45c0-85b5-059bf58ebfd8","port":"child"},"metadata":{"title":"ToHtml out -> child AddMessage"}},{"id":"9bd92ea3-357f-4009-b4a4-fe519f4a5227","source":{"id":"63675a30-a1a2-45c0-85b5-059bf58ebfd8","port":"element"},"target":{"id":"def9bef6-b6e3-4e00-9ef0-3c2c7da14180","port":"element"},"metadata":{"title":"AddMessage element -> element Click"}},{"id":"174f37e2-e825-47ca-9e9a-5b97d8bd3ee0","source":{"id":"d23bb485-af77-4344-8586-842dbba6a979","port":"selection"},"target":{"id":"ea8f0c35-cf45-48a5-a97c-ea21fae9fcd6","port":"msg"},"metadata":{"title":"MessageEl selection -> msg Log"}},{"id":"31ffea29-024a-4c3c-8cf0-afd832057587","source":{"id":"7729647c-37f3-4e79-a729-f5d1d1e02233","port":"out"},"target":{"id":"def9bef6-b6e3-4e00-9ef0-3c2c7da14180","port":"in"},"metadata":{"title":"d out -> in Click"}},{"id":"03281cf6-b895-4a5b-bc2d-2126c0fa7c1a","source":{"id":"6636c6c1-6d12-4a18-8d74-0364ebd98fc3","port":"out"},"target":{"id":"4087ce06-a876-49a7-9afe-5d8012143b66","port":"in"},"metadata":{"title":"View out -> in ToHtml"}}],"title":"Message Box","ns":"protocol","name":"message","ports":{"input":{"in":{"nodeId":"7729647c-37f3-4e79-a729-f5d1d1e02233","title":"In","name":"in"},"vars":{"nodeId":"6636c6c1-6d12-4a18-8d74-0364ebd98fc3","title":"Vars","name":"vars"}},"output":{"out":{"nodeId":"def9bef6-b6e3-4e00-9ef0-3c2c7da14180","title":"Out","name":"out"},"event":{"nodeId":"def9bef6-b6e3-4e00-9ef0-3c2c7da14180","title":"Event","name":"event"}}},"providers":{"@":{"url":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"provider":"./graphs/{name}.fbp"}}},"https://serve-chix.rhcloud.com/nodes/{ns}/{name}":{"console":{"log":{"_id":"52645993df5da0102500004e","name":"log","ns":"console","description":"Console log","async":true,"phrases":{"active":"Logging to console"},"ports":{"input":{"msg":{"type":"any","title":"Log message","description":"Logs a message to the console","async":true,"required":true}},"output":{"out":{"type":"any","title":"Log message"}}},"fn":"on.input.msg = function() {\n console.log(data);\n output( { out: data });\n}\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"dom":{"querySelector":{"_id":"527299bb30b8af4b8910216b","name":"querySelector","ns":"dom","title":"querySelector","description":"[Document query selector](https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector)","expose":["document"],"phrases":{"active":"Gathering elements matching criteria: {{input.selector}}"},"ports":{"input":{"element":{"title":"Element","type":"HTMLElement","default":null},"selector":{"title":"Selector","type":"string"}},"output":{"element":{"title":"Element","type":"HTMLElement"},"selection":{"title":"Selection","type":"HTMLElement"},"error":{"title":"Error","type":"Error"}}},"fn":"var el = input.element ? input.element : document;\noutput = {\n element: el\n};\n\nvar selection = el.querySelector(input.selector);\nif(selection) {\n output.selection = selection;\n} else {\n output.error = Error('Selector ' + input.selector + ' did not match');\n}\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"},"setHtml":{"_id":"52be32d46a14bb6fbd924a24","name":"setHtml","ns":"dom","description":"dom setHtml","async":true,"phrases":{"active":"Adding html"},"ports":{"input":{"element":{"type":"HTMLElement","title":"Dom Element"},"html":{"type":"string","format":"html","title":"html","async":true}},"output":{"element":{"type":"HTMLElement","title":"Dom Element"}}},"fn":"on.input.html = function(data) {\n input.element.innerHTML = data;\n output({ element: input.element });\n};\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"},"addMouseEvent":{"_id":"52be4f096a14bb6fbd924a28","name":"addMouseEvent","ns":"dom","description":"Add Mouse Event Listener","async":true,"phrases":{"active":"Adding {{input.event}} handler"},"ports":{"input":{"in":{"title":"Input","type":"any","async":true,"default":null},"element":{"type":"HTMLElement","title":"Dom Element","async":true},"preventDefault":{"type":"boolean","title":"Prevent Default Event","default":true},"event":{"type":"string","enum":["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","dragstart","drag","dragenter","dragleave","dragover","drop","dragend"],"title":"Dom Event"}},"output":{"element":{"type":"any","title":"Element"},"out":{"type":"any","title":"Output"},"event":{"type":"MouseEvent","title":"Event"}}},"fn":"state.in = null;\nstate.event = null;\nstate.preventDefault = null;\n\nstate.clickHandler = function(ev) {\n if(state.preventDefault) ev.preventDefault();\n output({\n out: state.in,\n event: ev\n });\n};\n\non.input.in = function() {\n state.in = data;\n};\n\non.input.element = function() {\n\n if (!state.in) return false;\n\n if(state.el) {\n state.el.removeEventListener(state.event);\n }\n state.el = input.element;\n state.event = input.event;\n state.preventDefault = input.preventDefault;\n\n state.el.addEventListener(input.event, state.clickHandler, false);\n output({element: input.element});\n};\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"},"appendChild":{"_id":"52be32d46a14bb6fbd924a20","name":"appendChild","ns":"dom","description":"dom appendChild","async":true,"phrases":{"active":"Adding child node"},"ports":{"input":{"element":{"type":"HTMLElement","title":"Dom Element"},"child":{"type":"HTMLElement","async":true,"title":"Child Element"}},"output":{"element":{"type":"HTMLElement","title":"Dom Element"},"out":{"type":"object"}}},"fn":"on.input.child = function() {\n\n output( {\n element: input.element,\n out: input.element.appendChild(data)\n } );\n\n}\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"},"domify":{"_id":"530556db041b29b9e16b1d1f","name":"domify","ns":"dom","title":"Domify","description":"Turn HTML into DOM elements x-browser","phrases":{"active":"Domifying HTML"},"ports":{"input":{"in":{"title":"Html","type":"string","format":"html","required":"true"}},"output":{"out":{"title":"Dom Elements","type":["HTMLElement","DocumentFragment"]}}},"dependencies":{"npm":{"domify":"0.x.x"}},"fn":"output.out = domify(input.in);\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"bootstrap":{"select":{"_id":"54b74927fa15e75e679fd19c","name":"select","ns":"bootstrap","title":"Select","description":"Bootstrap - select","async":true,"dependencies":{"npm":{"mustache":"latest","domify":"latest"}},"ports":{"input":{"element":{"type":"HTMLElement","title":"Parent Element","async":true},"template":{"title":"Template","type":"string","default":"<div>{{#label}}<label>{{label}}</label>{{/label}}<select id=\"{{id}}\" class=\"form-control\">{{#options}}<option value=\"{{value}}\">{{label}}</option>{{/options}}</select></div>","format":"html"},"id":{"type":"string","title":"ID","default":""},"label":{"type":"string","title":"Label","default":""},"options":{"title":"Variables","type":"array","items":{"type":"object","properties":{"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"},"additionalProperties":false}}}},"output":{"element":{"title":"Element","type":"HTMLFragment"},"out":{"title":"Value","type":"object","properties":{"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"}}}}},"fn":"state.select = null;\nstate.view = {};\nstate.changed = function () {\n\n var out = {};\n var self = this;\n\n out[this.value] = state.view.options.filter(function(opt) {\n return opt.value === self.value;\n }).pop();\n\n output({out: out});\n};\n\non.input.element = function () {\n\n if (state.select) {\n state.select.removeEventListener('change', state.changed);\n input.element.innerHTML = null;\n }\n\n state.view = {\n id: input.id,\n label: input.label,\n options: input.options\n };\n\n var el = domify(mustache.render(input.template, state.view));\n\n input.element.appendChild(el);\n\n state.select = input.element.querySelector('select');\n state.select.addEventListener('change', state.changed);\n\n output({\n element: input.element\n });\n\n};\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"},"button":{"_id":"54bc6765fa15e75e679fd1ac","name":"button","ns":"bootstrap","title":"Button","description":"Bootstrap - button","async":true,"ports":{"input":{"element":{"title":"Parent Element","type":"HTMLElement","async":true},"classList":{"title":"Class list","type":"string","default":"btn btn-default"},"in":{"type":"any","description":"Input to send to output when clicked","title":"Input","async":true},"label":{"type":"string","title":"Label","default":"Click!"},"attr":{"title":"Attributes","type":"object","default":{}}},"output":{"element":{"title":"Element","type":"HTMLElement"},"error":{"title":"Error","type":"Error"},"event":{"title":"Event","type":"MouseEvent"},"out":{"title":"Output","type":"any"}}},"fn":"state.el = null;\nstate.clickHandler = function(ev) {\n output({\n event: ev,\n out: state.in\n });\n};\n\non.input.element = function() {\n if (state.el) {\n state.el.removeEventListener('click', state.clickHandler);\n state.el.innerHTML = null;\n }\n state.el = document.createElement('button');\n state.el.setAttribute('type', 'button');\n state.el.innerHTML = input.label;\n state.el.className = input.classList;\n Object.keys(input.attr).forEach(function(name) {\n state.el.setAttribute(name, input.attr[name]);\n });\n state.el.addEventListener('click', state.clickHandler);\n input.element.appendChild(state.el);\n output({\n element: input.element\n });\n};\n\non.input.in = function () {\n state.in = data;\n};\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"json-editor":{"editor":{"_id":"54b36348b314b122580582fa","name":"editor","ns":"json-editor","title":"JSON Editor","description":"JSON Editor","async":true,"phrases":{"active":"Creating JSON Editor"},"dependencies":{"npm":{"json-editor":"psichi/json-editor"}},"ports":{"input":{"element":{"title":"Element","description":"Element","type":"HTMLElement"},"in":{"title":"Json","type":"object","description":"JSON Object","async":true},"schema":{"title":"Schema","type":"object","description":"A valid JSON Schema to use for the editor. Version 3 and Version 4 of the draft specification are supported.","async":true},"enable":{"title":"Enable","description":"Enable","async":true},"disable":{"title":"Disable","description":"Disable","async":true},"options":{"title":"Options","type":"object","properties":{"ajax":{"title":"Ajax","description":"If true, JSON Editor will load external URLs in $ref via ajax.","type":"boolean","default":false},"disable_array_add":{"title":"Disable array add","description":"If true, remove all `add row` buttons from arrays.","type":"boolean","default":false},"disable_array_delete":{"title":"Disable array delete","description":"If true, remove all `delete row` buttons from arrays.","type":"boolean","default":false},"disable_array_reorder":{"title":"Disable array reorder","description":"If true, remove all `move up` and `move down` buttons from arrays.","type":"boolean","default":false},"disable_collapse":{"title":"Disable collapse","description":"If true, remove all collapse buttons from objects and arrays.","type":"boolean","default":false},"disable_edit_json":{"title":"Disable edit json","description":"If true, remove all Edit JSON buttons from objects.","type":"boolean","default":false},"disable_properties":{"title":"Disable properties","description":"If true, remove all Edit Properties buttons from objects.","type":"boolean","default":false},"form_name_root":{"title":"Form name root","description":"The first part of the `name` attribute of form inputs in the editor. An full example name is `root[person][name]` where `root` is the form_name_root.","type":"boolean","default":"root"},"iconlib":{"title":"Iconlib","description":"The icon library to use for the editor. See the CSS Integration section below for more info.","type":"string","enum":["bootstrap3","bootstrap2","foundation3","foundation2","jqueryui","fontawesome4","fontawesome3"],"default":null},"no_additional_properties":{"title":"No additional properties","description":"If true, objects can only contain properties defined with the properties keyword.","type":"boolean","default":false},"refs":{"title":"Refs","description":"An object containing schema definitions for URLs. Allows you to pre-define external schemas.","type":"object","default":{}},"required_by_default":{"title":"Required by default","description":"If true, all schemas that don't explicitly set the required property will be required.","type":"boolean","default":false},"show_errors":{"title":"Show errors","description":"When to show validation errors in the UI. Valid values are interaction, change, always, and never.","type":"string","enum":["interaction","change","always","never"],"default":"interaction"},"startval":{"title":"Start value","description":" Seed the editor with an initial value. This should be valid against the editor's schema.","type":"any","default":null},"template":{"title":"Template","description":"The JS template engine to use. See the Templates and Variables section below for more info.","type":"string","enum":["default","ejs","hogan","markup","mustache","swig","underscore"],"default":"default"},"theme":{"title":"Theme","description":"The CSS theme to use. See the CSS Integration section below for more info.","type":"string","enum":["html","bootstrap3","bootstrap2","foundation5","foundation4","foundation3","jqueryui"],"default":"html"}}}},"output":{"out":{"title":"out","type":"string"},"editor":{"title":"Editor","type":"JSONEditor"}}},"fn":"state.jsonEditor = null;\nstate.changeHandler = function() {\n output({out: state.jsonEditor.getValue()});\n};\n\non.input.in = function() {\n state.in = data;\n if (state.jsonEditor) {\n state.jsonEditor.setValue(state.in);\n }\n};\n\non.input.schema = function() {\n state.schema = input.options.schema = input.schema;\n if (state.jsonEditor) {\n state.jsonEditor.off('change', state.changeHandler);\n state.jsonEditor.destroy();\n }\n state.jsonEditor = new json_editor(input.element, input.options);\n // problem if state.in is not about this schema..\n state.jsonEditor.on('ready', function() {\n if (state.in) {\n state.jsonEditor.setValue(state.in);\n }\n state.jsonEditor.on('change', state.changeHandler);\n output({editor: state.jsonEditor});\n });\n};\n\non.input.enable = function() {\n if (state.jsonEditor) {\n state.jsonEditor.enable();\n }\n};\n\non.input.disable = function() {\n if (state.jsonEditor) {\n state.jsonEditor.disable();\n }\n};\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"},"validate":{"_id":"54bc6c5cfa15e75e679fd1ad","name":"validate","ns":"json-editor","title":"JSON Editor Validate","description":"JSON Editor Validate","async":true,"phrases":{"active":"Validating form"},"ports":{"input":{"in":{"title":"Json","type":"object","description":"JSON Object","async":true},"editor":{"title":"Editor","type":"function","description":"JSONEditor instance"}},"output":{"out":{"title":"Output","type":"string"},"errors":{"title":"Errors","type":"array","items":{"type":"object","properties":{"path":{"title":"Path","description":"a dot separated path into the JSON object (e.g. `root.path.to.field`)","type":"string"},"property":{"title":"Property","description":"schema keyword that triggered the validation error (e.g. `minLength`)","type":"string"},"message":{"title":"Message","type":"string"}}}}}},"fn":"on.input.in = function() {\n var errors = input.editor.validate(data);\n if(errors.length) {\n output({errors: errors});\n } else {\n output({out: data});\n }\n};\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"object":{"keys":{"_id":"52ef3630cf8e1bab142d5394","name":"keys","ns":"object","async":true,"description":"Retrieve all the names of the object's properties","phrases":{"active":"Retrieving object properties"},"ports":{"input":{"in":{"title":"Object","type":"object","async":true},"path":{"title":"Path","type":"string","default":null}},"output":{"out":{"title":"out","type":"array"}}},"dependencies":{"npm":{"underscore":"1.x.x","dot-object":"0.x.x"}},"fn":"on.input.in = function() {\n var val = input.path ? dot_object().pick(input.path, data) : data;\n output( { out: underscore.keys(val) } );\n}\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"},"create":{"_id":"52fa908e909495ebbe6ded4c","name":"create","ns":"object","async":true,"description":"Create an object, if input is a direct object it just returns a copy of the object","phrases":{"active":"Creating object"},"ports":{"input":{"in":{"title":"Object","type":"object","async":true}},"output":{"out":{"title":"out","type":"object"}}},"fn":"on.input.in = function(data) { output({out: data}); };\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"data":{"pick":{"_id":"527d857e83f0adcc47800e7c","name":"pick","ns":"data","title":"Pick","async":true,"description":"Pick one value from an object","phrases":{"active":"Picking {{input.path}} from object"},"ports":{"input":{"in":{"title":"Object","description":"An Object, e.g { name: { first: 'John', last: 'Doe' } }","type":"object","async":true},"path":{"title":"Path","description":"Specify a path with . syntax (e.g. name.last )","type":"string","required":true}},"output":{"out":{"title":"Output","type":"any"},"error":{"title":"Error","type":"Error"}}},"dependencies":{"npm":{"dot-object":"0.x.x"}},"fn":"on.input.in = function(data) {\n // dot_object api should be fixed..\n var res = dot_object().pick(input.path, data);\n if(typeof res !== 'undefined') {\n output({out: res});\n } else {\n output({error: Error(input.path + ' not found')});\n }\n};\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"string":{"append":{"_id":"52ef363bcf8e1bab142d53b7","name":"append","ns":"string","description":"Appends a string to an other string","phrases":{"active":"Appending string"},"ports":{"input":{"in":{"title":"String","type":"string","required":true},"append":{"title":"Other String","type":"string","required":true}},"output":{"out":{"title":"String","type":"string"}}},"fn":"output.out = input.in + input.append\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"array":{"map":{"_id":"54b8835afa15e75e679fd19d","name":"map","ns":"array","async":true,"description":"Creates new array output with the results of calling the provided function on every element in this array","phrases":{"active":"Mapping array"},"ports":{"input":{"in":{"title":"Value","type":"array","async":true},"fn":{"title":"Function","type":"function","args":["val","index","array"]}},"output":{"out":{"title":"Output","type":"array"}}},"fn":"on.input.in = function() {\n output({\n out: data.map(input.fn)\n });\n};\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"template":{"mustache":{"_id":"52645993df5da0102500005e","name":"mustache","ns":"template","description":"Mustache Template engine","phrases":{"active":"Compiling mustache template"},"ports":{"input":{"body":{"type":"string","format":"html","title":"Template body","description":"The body of the mustache template","required":true},"vars":{"type":"object","title":"Input variables","description":"the input variables for this template","required":true,"readonly":true}},"output":{"out":{"title":"String","type":"string"}}},"dependencies":{"npm":{"mustache":"latest"}},"fn":"output = {\n out: mustache.render(input.body, input.vars)\n}\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}},"utils":{"dummy":{"_id":"52ef363dcf8e1bab142d53bb","name":"dummy","ns":"utils","title":"Dummy","description":"Takes an input and passes it to output.","phrases":{"active":"Dummy"},"ports":{"input":{"in":{"type":"any","title":"Input"}},"output":{"out":{"type":"any","title":"Output"}}},"fn":"output.out = input. in\n","provider":"https://serve-chix.rhcloud.com/nodes/{ns}/{name}"}}}}}