@gregoriusrippenstein/node-red-contrib-introspection 0.15.6 → 0.15.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/nodes/60-client-code.js +12 -5
- package/package.json +1 -1
- package/plugins/sidebar.html +1 -1
package/nodes/60-client-code.js
CHANGED
|
@@ -11,16 +11,17 @@ module.exports = function (RED) {
|
|
|
11
11
|
|
|
12
12
|
function msgTracerOnReceiveHook(evnt) {
|
|
13
13
|
try {
|
|
14
|
-
let nde = RED.nodes.getNode(evnt.destination.id)
|
|
15
|
-
|
|
16
|
-
nde.status({ fill: "green", shape: "ring", text: "msg received" })
|
|
17
|
-
setTimeout(() => { nde.status({}) }, 1000)
|
|
18
|
-
|
|
19
14
|
RED.comms.publish("msgtracer:node-received",
|
|
20
15
|
RED.util.encodeObject({
|
|
21
16
|
nodeid: evnt.destination.id
|
|
22
17
|
})
|
|
23
18
|
)
|
|
19
|
+
|
|
20
|
+
let nde = RED.nodes.getNode(evnt.destination.id)
|
|
21
|
+
if (nde) {
|
|
22
|
+
nde.status({ fill: "green", shape: "ring", text: "msg received" })
|
|
23
|
+
setTimeout(() => { nde.status({}) }, 1000)
|
|
24
|
+
}
|
|
24
25
|
} catch (ex) {
|
|
25
26
|
console.error(ex)
|
|
26
27
|
}
|
|
@@ -30,6 +31,12 @@ module.exports = function (RED) {
|
|
|
30
31
|
try {
|
|
31
32
|
let nde = RED.nodes.getNode(evnt.destination.id)
|
|
32
33
|
|
|
34
|
+
if (!nde) {
|
|
35
|
+
console.log(`MsgTracer: ignoring event, node '${evnt.destination.id}' not found`)
|
|
36
|
+
console.log(evnt)
|
|
37
|
+
return
|
|
38
|
+
}
|
|
39
|
+
|
|
33
40
|
// don't publish debug messages for junctions because they
|
|
34
41
|
// cause errors in handleDebugMessages in the client.
|
|
35
42
|
if (nde.type == "junction") { return }
|
package/package.json
CHANGED
package/plugins/sidebar.html
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
function setupTreelistAllLinksForLinkIn(e){e=collectAllLinksNodes(e);if(0==e.length){RED.notify("No links found",{type:"error",timeout:2e3});try{$("#node-input-orphan-target-container-div").treeList("empty")}catch(e){}}else{try{$("#node-input-orphan-target-container-div").treeList("empty")}catch(e){$("#node-input-orphan-target-container-div").css({width:"100%",height:"calc(100%)"}).treeList({multi:!1}).on("treelistitemmouseover",function(e,t){}).on("treelistitemmouseout",function(e,t){}).on("treelistselect",function(e,t){t.node&&(RED.workspaces.show(t.node.z,!1,!1,!0),RED.view.reveal(t.node.id,!0),RED.view.redraw())}).on("treelistconfirm",function(e,t){var o;t.node&&(o=t.node.id,setTimeout(()=>{var e=RED.nodes.node(o);e&&(RED.view.reveal(e.id),RED.view.select(e.id),RED.editor.edit(e,"editor-tab-description")),o==RED.workspaces.active()&&RED.workspaces.edit()},50))}),$("#node-input-orphan-target-filter").show();var i=$("#node-input-orphan-target-filter").searchBox({style:"compact",delay:300,change:function(){if(""===(r=$(this).val().trim()))$("#node-input-orphan-target-container-div").treeList("filter",null),i.searchBox("count","");else{let o=e=>!0,e=r.match(/flow:(current|[a-f0-9]{16})/i);if(e){let t="current"==e[1].toLowerCase()?RED.workspaces.active():e[1].toLowerCase();o=e=>e.z==t,r=r.replaceAll(/flow:(current|[a-f0-9]{16})/gi,"")}let n=e=>!0;if(e=r.match(/type:("([^"]+)"|'([^']+)'|([^'"\s]+))/i)){let t=e.filter(e=>!!e).reverse()[0];n=e=>e.type==t,r=r.replaceAll(/type:("([^"]+)"|'([^']+)'|([^'"\s]+))/gi,"")}var r=r.trim().toLowerCase(),t=$("#node-input-orphan-target-container-div").treeList("filter",function(e){return(""===r||-1<e._label.toLowerCase().indexOf(r))&&o(e.node)&&n(e.node)});i.searchBox("count",t+" / "+$("#node-input-orphan-target-container-div").treeList("data").length)}}})}$("#node-input-orphan-target-container-div").treeList("data",e.sort((e,t)=>e.node.z>t.node.z))}}function collectAllLinksNodes(t){let o=[];RED.nodes.eachNode(e=>{"link call"!=e.type&&"link out"!=e.type||-1<e.links.indexOf(t)&&o.push(e)});var n=[];return o.forEach(function(e){n.push({node:e,label:"",_label:RED.utils.getNodeLabel(e),icon:RED.utils.createNodeIcon(e,!0),sublabel:RED.utils.getNodeLabel(RED.nodes.workspace(e.z)||RED.nodes.subflow(e.z)),selected:!1,checkbox:!1})}),n}function collectNodeStats(){let t={},o=[],n={workspaces:0,junctions:0,subflows:0,configs:0,groups:0,wires:0,nodes:0},r=(RED.nodes.eachConfig(e=>{n.configs+=1}),RED.nodes.eachLink(e=>{n.wires+=1}),RED.nodes.eachJunction(e=>{n.junctions+=1}),RED.nodes.eachGroup(e=>{n.groups+=1}),RED.nodes.eachWorkspace(e=>{n.workspaces+=1}),RED.nodes.eachSubflow(e=>{n.subflows+=1}),RED.nodes.eachNode(e=>{n.nodes+=1,t[e.type]=(t[e.type]||0)+1}),Object.keys(t).forEach(e=>{o.push({label:e,sublabel:t[e],selected:!1,checkbox:!1})}),[]),i=0;return Object.keys(n).forEach(e=>{i+=n[e],r.push({label:e,sublabel:n[e],selected:!1,checkbox:!1})}),[{label:"__ TOTALS",sublabel:i,selected:!1,checkbox:!1,children:r}].concat(o.sort((e,t)=>e.label>t.label))}function setupTreeListForNodeStats(){var e=collectNodeStats();try{$("#node-input-orphan-target-container-div").treeList("empty")}catch(e){$("#node-input-orphan-target-container-div").css({width:"100%",height:"calc(100%)"}).treeList({multi:!1}).on("treelistitemmouseover",function(e,t){}).on("treelistitemmouseout",function(e,t){}).on("treelistselect",function(e,t){}).on("treelistconfirm",function(e,t){}),$("#node-input-orphan-target-filter").show();var i=$("#node-input-orphan-target-filter").searchBox({style:"compact",delay:300,change:function(){if(""===(r=$(this).val().trim()))$("#node-input-orphan-target-container-div").treeList("filter",null),i.searchBox("count","");else{let o=e=>!0,e=r.match(/flow:(current|[a-f0-9]{16})/i);if(e){let t="current"==e[1].toLowerCase()?RED.workspaces.active():e[1].toLowerCase();o=e=>e.z==t,r=r.replaceAll(/flow:(current|[a-f0-9]{16})/gi,"")}let n=e=>!0;if(e=r.match(/type:("([^"]+)"|'([^']+)'|([^'"\s]+))/i)){let t=e.filter(e=>!!e).reverse()[0];n=e=>e.type==t,r=r.replaceAll(/type:("([^"]+)"|'([^']+)'|([^'"\s]+))/gi,"")}var r=r.trim().toLowerCase(),t=$("#node-input-orphan-target-container-div").treeList("filter",function(e){return(""===r||-1<e._label.toLowerCase().indexOf(r))&&o(e.node)&&n(e.node)});i.searchBox("count",t+" / "+$("#node-input-orphan-target-container-div").treeList("data").length)}}})}$("#node-input-orphan-target-container-div").treeList("data",e)}
|
|
16
16
|
|
|
17
|
-
function setupTreeMsgTracerlist(){try{$("#node-input-msgtracer-trace-treelist").treeList("empty"),$("#node-input-msgtracer-trace-treelist").treeList("data",[])}catch(e){$("#node-input-msgtracer-trace-treelist").css({width:"100%",height:"calc(100%)"}).treeList({multi:!1}).on("treelistitemmouseover",function(e,t){
|
|
17
|
+
function setupTreeMsgTracerlist(){try{$("#node-input-msgtracer-trace-treelist").treeList("empty"),$("#node-input-msgtracer-trace-treelist").treeList("data",[])}catch(e){$("#node-input-msgtracer-trace-treelist").css({width:"100%",height:"calc(100%)"}).treeList({multi:!1}).on("treelistitemmouseover",function(e,t){}).on("treelistitemmouseout",function(e,t){}).on("treelistselect",function(e,t){t.node&&(RED.workspaces.show(t.node.z,!1,!1,!0),RED.view.reveal(t.node.id,!0),RED.view.redraw(),$(".red-ui-debug-msg").css("background-color",""),$(".red-ui-debug-msg-node-"+t.node.id).css("background-color","red"))}).on("treelistconfirm",function(e,t){var r;t.node&&(r=t.node.id,setTimeout(()=>{var e=RED.nodes.node(r);e&&(RED.view.reveal(e.id),RED.view.select(e.id),RED.editor.edit(e)),r==RED.workspaces.active()&&RED.workspaces.edit()},50))}),$("#node-input-msgtracer-trace-treelist-filter").show();var r=$("#node-input-msgtracer-trace-treelist-filter").searchBox({style:"compact",delay:300,change:function(){var e,t=$(this).val().trim().toLowerCase();""===t?($("#node-input-msgtracer-trace-treelist").treeList("filter",null),r.searchBox("count","")):(e=$("#node-input-msgtracer-trace-treelist").treeList("filter",function(e){return-1<e._label.toLowerCase().indexOf(t)||-1<e.node.type.toLowerCase().indexOf(t)||-1<e.node.id.toLowerCase().indexOf(t)||-1<e.sublabel.toLowerCase().indexOf(t)}),r.searchBox("count",e+" / "+$("#node-input-msgtracer-trace-treelist").treeList("data").length))}})}}function msgTracerDebugOff(){$.ajax({url:"MsgTracer/debug/off",type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({}),success:function(e){},error:function(e,t,r){}})}function msgTracerTracingOff(){$.ajax({url:"MsgTracer/msgtracing/off",type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({}),success:function(e){},error:function(e,t,r){}})}function uncheckAllTracing(){$("#node-input-msgtracer-toggle-all").prop("checked",!1),$("#node-input-msgtracer-toggle").prop("checked",!1),$("#node-input-msgtracer-msgtodebug").prop("checked",!1),$("#node-input-msgtracer-msgtodebug-all").prop("checked",!1)}function setupFailsafe(){clearInterval(window.msgTracerInterval),window.msgTracerCounter=0,window.msgTracerInterval=setInterval(()=>{window.msgTracerCounter>window.msgTracer_MAX_MSG_PER_SECOND&&(RED.notify("Message tracing flooding detected, deactivating tracing automatically.",{type:"error",timeout:3e3}),uncheckAllTracing(),msgTracerDebugOff(),msgTracerTracingOff(),clearInterval(window.msgTracerInterval)),window.msgTracerCounter=0},1e3)}function setupFailsafeForClampMode(){clearInterval(window.msgTracerInterval),window.msgTracerCounter=0,window.msgTracerInterval=setInterval(()=>{window.msgTracerCounter>window.msgTracer_MAX_MSG_PER_SECOND&&(RED.notify("Message tracing flooding detected, deactivating tracing automatically.",{type:"error",timeout:3e3}),RED.view.select([]),uncheckAllTracing(),$("#node-input-msgtracer-clamp-mode-with-debug").prop("checked",!1),$("#node-input-msgtracer-clamp-mode-with-debug").prop("disabled",!1),$("#node-input-msgtracer-clamp-mode-status").hide(),$("#node-input-msgtracer-clamp-mode").prop("checked",!1),msgTracerDebugOff(),msgTracerTracingOff(),clearInterval(window.msgTracerInterval)),window.msgTracerCounter=0},1e3)}function toggleClampWithDebug(e){$("#node-input-msgtracer-clamp-mode-with-debug").is(":checked")||(msgTracerDebugOff(),$("#node-input-msgtracer-clamp-mode").is(":checked")&&$("#node-input-msgtracer-clamp-mode-with-debug").prop("disabled",!0))}function toggleClampWireTappingInBackend(e){if($("#node-input-msgtracer-clamp-mode").is(":checked")){$("#node-input-msgtracer-clamp-mode-with-debug").is("checked")||$("#node-input-msgtracer-clamp-mode-with-debug").prop("disabled",!0);let o=e=>{var t,r,n=t=>{uncheckAllTracing(),$.ajax({url:"MsgTracer/msgtracing/off",type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({}),error:function(e,t,r){},success:function(e){$.ajax({url:"MsgTracer/msgtracing/on",type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({nodesSelected:t,allIsOn:!1}),error:function(e,t,r){},success:function(e){setupFailsafeForClampMode(),$("#node-input-msgtracer-clamp-mode-with-debug").is(":checked")?$.ajax({url:"MsgTracer/debug/on",type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({nodesSelected:t,allIsOn:!1}),success:function(e){},error:function(e,t,r){}}):($("#node-input-msgtracer-clamp-mode-with-debug").prop("disabled",!0),msgTracerDebugOff())}})}})};$("#node-input-msgtracer-clamp-mode").is(":checked")?(t=RED.view.selection()).links&&1==t.links.length?(r=[(r=RED.view.selection().links[0]).source.id,r.target.id],setupTreeMsgTracerlist(),n(r),$("#node-input-msgtracer-clamp-mode-status").show()):t.nodes&&0<t.nodes.length?(setupTreeMsgTracerlist(),n(t.nodes.map(e=>e.id)),$("#node-input-msgtracer-clamp-mode-status").show()):($("#node-input-msgtracer-clamp-mode-status").hide(),msgTracerTracingOff(),msgTracerDebugOff()):($("#node-input-msgtracer-clamp-mode-with-debug").prop("disabled",!1),clearInterval(window.msgTracerInterval),RED.events.off("view:selection-changed",o),$("#node-input-msgtracer-clamp-mode-status").hide())};RED.events.on("view:selection-changed",o)}else $("#node-input-msgtracer-clamp-mode-status").hide(),$("#node-input-msgtracer-clamp-mode-with-debug").prop("disabled",!1),msgTracerTracingOff(),msgTracerDebugOff()}function deactivateClampMode(){$("#node-input-msgtracer-clamp-mode").is(":checked")?(msgTracerTracingOff(),$("#node-input-msgtracer-clamp-mode").prop("checked",!1),$("#node-input-msgtracer-clamp-mode-with-debug").is(":checked")&&(msgTracerDebugOff(),$("#node-input-msgtracer-clamp-mode-with-debug").prop("checked",!1))):$("#node-input-msgtracer-clamp-mode-with-debug").prop("checked",!1),$("#node-input-msgtracer-clamp-mode-status").hide()}function toggleDebugTracingInBackend(e){let t=$("#node-input-msgtracer-msgtodebug").is(":checked");var r=$("#node-input-msgtracer-msgtodebug-all").is(":checked"),n=RED.view.selection().nodes;clearInterval(window.msgTracerInterval),n||r||!t?n&&0<n.length&&r&&t?($("#node-input-msgtracer-msgtodebug").prop("checked",!1),$("#node-input-msgtracer-msgtodebug-all").prop("checked",!1),msgTracerDebugOff(),RED.notify("Debug Messages not toggled, both nodes selected and all nodes is on.",{type:"error",timeout:3e3})):(t?deactivateClampMode():$("#node-input-msgtracer-msgtodebug-all").prop("checked",!1),$.ajax({url:"MsgTracer/debug/"+(t?"on":"off"),type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({nodesSelected:selectionToNodeIdList(RED.view.selection().nodes),allIsOn:r}),success:function(e){RED.notify("Message debugging is <b>"+(t?"on":"off")+"</b>",{type:"success",timeout:3e3}),t&&setupFailsafe()},error:function(e,t,r){RED.notify("Message tracing failed: "+t,{type:"error",timeout:3e3})}})):($("#node-input-msgtracer-msgtodebug").prop("checked",!1),msgTracerDebugOff(),RED.notify("Debug Messages not toggled, first select nodes to be debugged <b>or</b> toggle 'all nodes' to on.",{type:"error",timeout:3e3}))}function toggleMsgTracingInBackend(e){let t=$("#node-input-msgtracer-toggle").is(":checked");var r=$("#node-input-msgtracer-toggle-all").is(":checked"),n=RED.view.selection().nodes;clearInterval(window.msgTracerInterval),n||r||!t?n&&0<n.length&&r&&t?($("#node-input-msgtracer-toggle-all").prop("checked",!1),$("#node-input-msgtracer-toggle").prop("checked",!1),msgTracerTracingOff(),RED.notify("Message tracing not toggled, nodes are selected <b>and</b> all nodes is checked.",{type:"error",timeout:3e3})):(t?deactivateClampMode():$("#node-input-msgtracer-toggle-all").prop("checked",!1),t&&setupTreeMsgTracerlist(),$.ajax({url:"MsgTracer/msgtracing/"+(t?"on":"off"),type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({nodesSelected:selectionToNodeIdList(RED.view.selection().nodes),allIsOn:r}),success:function(e){RED.notify("Message tracing is <b>"+(t?"on":"off")+"</b>",{type:"success",timeout:3e3}),t&&setupFailsafe()},error:function(e,t,r){RED.notify("Message tracing failed: "+t,{type:"error",timeout:3e3})}})):($("#node-input-msgtracer-toggle").prop("checked",!1),msgTracerTracingOff(),RED.notify("Message tracing not toggled, first select nodes to be traced <b>or</b> toggle 'all nodes' to on.",{type:"error",timeout:3e3}))}function selectionToNodeIdList(e){return!e||Array.isArray(e)&&0==e.length?[]:e.map(e=>"group"==e.type?selectionToNodeIdList(RED.nodes.group(e.id).nodes):e.id).flat(1/0)}window.msgTracer_MAX_MSG_PER_SECOND=100;
|
|
18
18
|
|
|
19
19
|
function transformInjectToChangeNode(t){t&&t.preventDefault();t=[...(RED.view.selection().nodes||[]).filter(e=>"inject"==e.type),...(RED.view.selection().nodes||[]).filter(e=>"group"==e.type).map(e=>e.nodes.filter(e=>"inject"==e.type))].flat();if(0==(t=RED.nodes.createExportableNodeSet(t)).length)RED.notify("No inject nodes found in node selection",{type:"warning"});else{let e=t.map(o=>{var e={id:RED.nodes.id(),type:"change",name:o.name,action:"",property:"",from:"",to:"",reg:!1,x:0,y:0,wires:[[]]};return e.rules=o.props.map(e=>{var t={t:"set",p:e.p,pt:"msg",to:e.v,tot:e.vt};return"payload"==e.p?(t.to=o.payload,t.tot=o.payloadType):"topic"==e.p&&(t.to=o.topic),t}),e});setTimeout(()=>{RED.clipboard.import(),setTimeout(()=>{$("#red-ui-clipboard-dialog-import-text").val(JSON.stringify(e)).trigger("paste")},300)},400)}}function insertJunctionBeforeNode(){var t,o,n;RED.view.selection().nodes&&1==RED.view.selection().nodes?.length?(t=RED.view.selection().nodes[0],o=RED.nodes.addJunction({type:"junction",id:RED.nodes.id(),x:t.x,y:t.y-40,z:t.z,w:0,h:0,_def:{defaults:{}},inputs:1,outputs:1,_config:{x:t.x,y:t.y-40}}),n=[],RED.nodes.eachLink(e=>{e.target.id==t.id&&(RED.nodes.addLink({source:e.source,sourcePort:e.sourcePort,target:o}),n.push(e))}),n.forEach(e=>RED.nodes.removeLink(e)),RED.nodes.addLink({source:o,sourcePort:0,target:t}),RED.nodes.dirty(!0),RED.view.redraw(!0,!0)):RED.notify("Only one node to be selected",{type:"error"})}
|
|
20
20
|
|