@gregoriusrippenstein/node-red-contrib-introspection 0.6.5 → 0.6.6

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.
@@ -1,5 +1,6 @@
1
1
  module.exports = function(RED) {
2
- let UglifyJS = require('uglify-js')
2
+ let UglifyJS = require('uglify-js');
3
+ let CleanCSS = require('clean-css');
3
4
 
4
5
  function ClientCodeFunctionality(config) {
5
6
  RED.nodes.createNode(this,config);
@@ -78,9 +79,36 @@ module.exports = function(RED) {
78
79
  if (req.body ) {
79
80
  req.body.nodes.forEach( n => {
80
81
 
82
+ if ( n.format == "css") {
83
+ let output = new CleanCSS(req.body.csscfg).minify(n.template);
84
+ if ( output.styles && (output.errors || []).length == 0 ) {
85
+ n.template = output.styles
86
+ } else {
87
+ n._error = output.errors
88
+ n._cssoutput = output
89
+ }
90
+ }
91
+
92
+ if (n.format == "json") {
93
+ let result = {}
94
+ try {
95
+ result.code = JSON.stringify(JSON.parse(n.template))
96
+ } catch (ex) {
97
+ result.error = ex
98
+ }
99
+
100
+ if (result.code && !result.error) {
101
+ n.template = result.code
102
+ } else {
103
+ n._error = result.error
104
+ n._code = result.code
105
+ }
106
+ }
107
+
81
108
  if ( n.format == "javascript") {
82
109
  /* this handles PkgFile nodes and template nodes */
83
- let result = UglifyJS.minify(n.template, req.body.cfg)
110
+ let result = UglifyJS.minify(n.template, req.body.jscfg)
111
+
84
112
  if ( result.code && !result.error) {
85
113
  n.template = result.code
86
114
  } else {
@@ -90,7 +118,8 @@ module.exports = function(RED) {
90
118
  }
91
119
 
92
120
  if (n.type == "function") {
93
- let result = UglifyJS.minify(n.func, req.body.cfg)
121
+ let result = UglifyJS.minify(n.func, req.body.jscfg)
122
+
94
123
  if (result.code && !result.error) {
95
124
  n.func = result.code
96
125
  } else {
@@ -98,6 +127,7 @@ module.exports = function(RED) {
98
127
  n._code = result.code
99
128
  }
100
129
  }
130
+
101
131
  })
102
132
  res.status(200).send(req.body.nodes);
103
133
  } else {
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@gregoriusrippenstein/node-red-contrib-introspection",
3
- "version": "0.6.5",
3
+ "version": "0.6.6",
4
4
  "dependencies": {
5
5
  "got": "^13",
6
- "uglify-js": "^3.17.4"
6
+ "uglify-js": "^3.17.4",
7
+ "clean-css": "^5.3.3"
7
8
  },
8
9
 
9
10
  "keywords": [
@@ -2,7 +2,7 @@
2
2
  (function() {
3
3
  var globalRefToSvgData;
4
4
 
5
- let obfuscateHelpers={getFlowDataFromCurrentWorkspace:e=>{var e=e||RED.workspaces.active(),r=RED.nodes.groups(e),e=(r=(r=r.concat(RED.nodes.junctions(e))).concat(RED.nodes.filterNodes({z:e})),RED.nodes.eachConfig(function(e){e.z===RED.workspaces.active()&&!1===e._def.hasUsers&&r.push(e)}),RED.nodes.workspace(e)||RED.nodes.subflow(e));return r.unshift(e),RED.nodes.createExportableNodeSet(r)},openImportDialog:e=>{RED.clipboard.import();let r=e;setTimeout(()=>{$("#red-ui-clipboard-dialog-import-text").val(JSON.stringify(r)).trigger("paste")},300)}};function obfuscatieCurrentFlow(r){let l=obfuscateHelpers.getFlowDataFromCurrentWorkspace(),u=(r.remove_groups&&(l=l.filter(e=>"group"!=e.type)).forEach(e=>{delete e.g}),{}),o=[],s={},d={},c={},i=[],a={};if(l.forEach(e=>{"subflow"==(u[e.id]=e).type&&(a[e.id]=e),"junction"==e.type&&(s[e.id]=e),"link out"==e.type&&(c[e.id]=e),"link in"==e.type&&(d[e.id]=e),"link call"==e.type&&i.push(e.id),!r.javascript||"javascript"!=e.format&&"function"!=e.type||o.push(e)}),r.remove_junctions&&(Object.keys(s).forEach(t=>{let i=s[t];a[i.z]||l.forEach(r=>{for(let e=0;e<(r.wires||[]).length;e++){var o=r.wires[e].indexOf(t);-1<o&&(r.wires[e].splice(o,1),r.wires[e].push(...i.wires[0]))}})}),l=l.filter(e=>!("junction"==e.type&&!a[e.z]))),r.remove_linkout_nodes||r.remove_linkcall_nodes){let t=[],o=[],s=[],a=(r.remove_linkout_nodes&&!r.copy_linkin_nodes&&Object.keys(c).forEach(i=>{var e=c[i],r=e.links||[];r.reduce((e,r)=>e&&!!d[r],!0)&&"return"!=e.mode&&(t.push(i),r.forEach(t=>{l.forEach(r=>{for(let e=0;e<(r.wires||[]).length;e++){var o=r.wires[e].indexOf(i);-1<o&&(r.wires[e].splice(o,1),r.wires[e].push(...d[t].wires[0]))}})}))}),(i,e)=>{if(!e)return!1;let r=[],n=[],o=[];function s(e){if(o.indexOf(e.id)<0)if(o.push(e.id),r.push(e),"link out"===e.type){if("return"!=e.mode)throw"not handable"}else RED.nodes.getNodeLinks(e).forEach(function(e){s(e.target)})}try{if(RED.nodes.getNodeLinks(e).forEach(function(e){s(e.target),n.push(e.target.id)}),0==r.length)return!1;let o={};var a=r[0];let t={x:i.x-a.x,y:i.y-a.y};var l=r.map(e=>{var r=structuredClone(u[e.id]);return r||console.log("WARNING: nodeid not found",[e.id,u[e.id]]),r.id=RED.nodes.id(),r.x+=t.x,r.y+=t.y,o[e.id]=r});return l.forEach(e=>{e.wires&&(e.wires=e.wires.map(e=>e.map(e=>{var r=o[e];return r&&"link out"==r.type?[...i.wires[0],(r||{}).id||e]:(r||{}).id||e}).flat()))}),{nodes:l.filter(e=>"link out"!=e.type),entryNodes:n.map(e=>o[e])}}catch(e){return console.log(e),!1}});r.remove_linkout_nodes&&r.copy_linkin_nodes&&Object.keys(c).forEach(n=>{let o=c[n];var e=o.links||[];"return"!=o.mode&&(e=e.map(e=>{var r=d[e],r=a(o,r);if(r)return[e,r]})).reduce((e,r)=>e&&!!r,!0)&&(t.push(n),e.forEach(([,i])=>{l.forEach(r=>{for(let e=0;e<(r.wires||[]).length;e++){var o,t=r.wires[e].indexOf(n);-1<t&&(o=i.entryNodes.map(e=>e.id),r.wires[e].splice(t,1),r.wires[e].push(...o),s.push(...i.nodes))}})}))}),r.remove_linkcall_nodes&&i.forEach(i=>{var e=u[i],r=d[e.links[0]];let n=a(e,r);r&&n&&(o.push(e.id),l.forEach(r=>{for(let e=0;e<(r.wires||[]).length;e++){var o,t=r.wires[e].indexOf(i);-1<t&&(o=n.entryNodes.map(e=>e.id),r.wires[e].splice(t,1),r.wires[e].push(...o),s.push(...n.nodes))}}))}),(l=l.filter(e=>t.indexOf(e.id)<0&&o.indexOf(e.id)<0)).push(...s)}var e;(l=r.remove_debugs?l.filter(e=>"debug"!=e.type):l).forEach(e=>{r.name&&(e.name=e.id),r.info&&(e.info="",delete e.outputLabels,delete e.inputLabels),r.position&&(e.x=150,e.y=150),r.remove_icons&&delete e.icon}),0<o.length?(e={parse:{},compress:{},mangle:{reserved:["$","export","require"]},output:null,sourceMap:null,nameCache:null,toplevel:!1,warnings:!1},$.ajax({url:"ClientCode/"+RED.nodes.id()+"/ugify",type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({nodes:o,cfg:e}),success:function(e){e.forEach(e=>{var r=u[e.id];"function"==r.type?r.func=e.func:"javascript"==r.format&&(r.template=e.template)}),obfuscateHelpers.openImportDialog(l)},error:function(e,r,o){RED.notify("ClientCode Communcation Failure: "+n.id+": "+r,{type:"error",timeout:3e3})}})):obfuscateHelpers.openImportDialog(l)}
5
+ let obfuscateHelpers={getFlowDataFromCurrentWorkspace:e=>{var e=e||RED.workspaces.active(),r=RED.nodes.groups(e),e=(r=(r=r.concat(RED.nodes.junctions(e))).concat(RED.nodes.filterNodes({z:e})),RED.nodes.eachConfig(function(e){e.z===RED.workspaces.active()&&!1===e._def.hasUsers&&r.push(e)}),RED.nodes.workspace(e)||RED.nodes.subflow(e));return r.unshift(e),RED.nodes.createExportableNodeSet(r)},openImportDialog:e=>{RED.clipboard.import();let r=e;setTimeout(()=>{$("#red-ui-clipboard-dialog-import-text").val(JSON.stringify(r)).trigger("paste")},300)}};function obfuscatieCurrentFlow(r){let l=obfuscateHelpers.getFlowDataFromCurrentWorkspace(),c=(r.remove_groups&&(l=l.filter(e=>"group"!=e.type)).forEach(e=>{delete e.g}),{}),o={},u={},d={},i=[],s={};if(l.forEach(e=>{"subflow"==(c[e.id]=e).type&&(s[e.id]=e),"junction"==e.type&&(o[e.id]=e),"link out"==e.type&&(d[e.id]=e),"link in"==e.type&&(u[e.id]=e),"link call"==e.type&&i.push(e.id)}),r.remove_junctions&&(Object.keys(o).forEach(t=>{let i=o[t];s[i.z]||l.forEach(r=>{for(let e=0;e<(r.wires||[]).length;e++){var o=r.wires[e].indexOf(t);-1<o&&(r.wires[e].splice(o,1),r.wires[e].push(...i.wires[0]))}})}),l=l.filter(e=>!("junction"==e.type&&!s[e.z]))),r.remove_linkout_nodes||r.remove_linkcall_nodes){let t=[],o=[],s=[],a=(r.remove_linkout_nodes&&!r.copy_linkin_nodes&&Object.keys(d).forEach(i=>{var e=d[i],r=e.links||[];r.reduce((e,r)=>e&&!!u[r],!0)&&"return"!=e.mode&&(t.push(i),r.forEach(t=>{l.forEach(r=>{for(let e=0;e<(r.wires||[]).length;e++){var o=r.wires[e].indexOf(i);-1<o&&(r.wires[e].splice(o,1),r.wires[e].push(...u[t].wires[0]))}})}))}),(i,e)=>{if(!e)return!1;let r=[],n=[],o=[];function s(e){if(o.indexOf(e.id)<0)if(o.push(e.id),r.push(e),"link out"===e.type){if("return"!=e.mode)throw"not handable"}else RED.nodes.getNodeLinks(e).forEach(function(e){s(e.target)})}try{if(RED.nodes.getNodeLinks(e).forEach(function(e){s(e.target),n.push(e.target.id)}),0==r.length)return!1;let o={};var a=r[0];let t={x:i.x-a.x,y:i.y-a.y};var l=r.map(e=>{var r=structuredClone(c[e.id]);return r||console.log("WARNING: nodeid not found",[e.id,c[e.id]]),r.id=RED.nodes.id(),r.x+=t.x,r.y+=t.y,o[e.id]=r});return l.forEach(e=>{e.wires&&(e.wires=e.wires.map(e=>e.map(e=>{var r=o[e];return r&&"link out"==r.type?[...i.wires[0],(r||{}).id||e]:(r||{}).id||e}).flat()))}),{nodes:l.filter(e=>"link out"!=e.type),entryNodes:n.map(e=>o[e])}}catch(e){return console.log(e),!1}});r.remove_linkout_nodes&&r.copy_linkin_nodes&&Object.keys(d).forEach(n=>{let o=d[n];var e=o.links||[];"return"!=o.mode&&(e=e.map(e=>{var r=u[e],r=a(o,r);if(r)return[e,r]})).reduce((e,r)=>e&&!!r,!0)&&(t.push(n),e.forEach(([,i])=>{l.forEach(r=>{for(let e=0;e<(r.wires||[]).length;e++){var o,t=r.wires[e].indexOf(n);-1<t&&(o=i.entryNodes.map(e=>e.id),r.wires[e].splice(t,1),r.wires[e].push(...o),s.push(...i.nodes))}})}))}),r.remove_linkcall_nodes&&i.forEach(i=>{var e=c[i],r=u[e.links[0]];let n=a(e,r);r&&n&&(o.push(e.id),l.forEach(r=>{for(let e=0;e<(r.wires||[]).length;e++){var o,t=r.wires[e].indexOf(i);-1<t&&(o=n.entryNodes.map(e=>e.id),r.wires[e].splice(t,1),r.wires[e].push(...o),s.push(...n.nodes))}}))}),(l=l.filter(e=>t.indexOf(e.id)<0&&o.indexOf(e.id)<0)).push(...s)}if((l=r.remove_debugs?l.filter(e=>"debug"!=e.type):l).forEach(e=>{r.name&&(e.name=e.id),r.info&&(e.info="",delete e.outputLabels,delete e.inputLabels),r.position&&(e.x=150,e.y=150),r.remove_icons&&delete e.icon}),r.javascript){let o={},r=[];l.forEach(e=>{"javascript"!=(o[e.id]=e).format&&"function"!=e.type&&"css"!=e.format&&"json"!=e.format||r.push(e)});var e={parse:{bare_returns:!0,expression:!1},compress:{},mangle:{reserved:["$","export","require"]},output:null,sourceMap:null,nameCache:null,toplevel:!1,warnings:!1},t={compatibility:"*",level:2};$.ajax({url:"ClientCode/"+RED.nodes.id()+"/ugify",type:"POST",contentType:"application/json; charset=utf-8",data:JSON.stringify({nodes:r,jscfg:e,csscfg:t}),success:function(e){e.forEach(e=>{var r=o[e.id];e._error&&console.log("ERROR NODE",e),"function"==r.type?r.func=e.func:"javascript"!=r.format&&"css"!=r.format&&"json"!=r.format||(r.template=e.template)}),obfuscateHelpers.openImportDialog(l)},error:function(e,r,o){RED.notify("ClientCode Communcation Failure: "+n.id+": "+r,{type:"error",timeout:3e3})}})}else obfuscateHelpers.openImportDialog(l)}
6
6
 
7
7
  function setupTreelist(){var e=collectOrphans();if(0==e.length){RED.notify("No Orphans Found",{type:"warning",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 n;t.node&&(n=t.node.id,setTimeout(()=>{var e=RED.nodes.node(n);e&&(RED.view.reveal(e.id),RED.view.select(e.id),RED.editor.edit(e)),n==RED.workspaces.active()&&RED.workspaces.edit()},50))}),$("#node-input-orphan-target-filter").show();var n=$("#node-input-orphan-target-filter").searchBox({style:"compact",delay:300,change:function(){var e,t=$(this).val().trim().toLowerCase();""===t?($("#node-input-orphan-target-container-div").treeList("filter",null),n.searchBox("count","")):(e=$("#node-input-orphan-target-container-div").treeList("filter",function(e){return-1<e.label.toLowerCase().indexOf(t)||-1<e.node.type.toLowerCase().indexOf(t)}),n.searchBox("count",e+" / "+$("#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 collectOrphans(){const t=new Set;var n=[],i=(RED.nodes.eachLink(e=>{t.add(e.source),t.add(e.target)}),RED.nodes.eachNode(e=>{t.has(e)||n.push(e)}),[]),r={};return n.forEach(function(e){var t=RED.nodes.getType(e.type);if(t){var n=t.label,n=("function"==typeof n?n.call(e):n)||"",o=e.type;if(0===o.indexOf("subflow:"))return}t&&n||(n=e.type),r[e.id]={node:e,label:n,sublabel:o,selected:!1,checkbox:!1},i.push(r[e.id])}),i}
8
8