@allanoricil/nrg-sentinel 1.0.3 → 1.0.4

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/README.md CHANGED
@@ -52,7 +52,7 @@ The table below is updated automatically after each CI run on `main`.
52
52
  | 32 | Flows Inject | ✅ | `4.1.7` |
53
53
  | 33 | Node Event Hijack | ✅ | `4.1.7` |
54
54
  | 34 | Config Node Credentials | ✅ | `4.1.7` |
55
- _Last updated: 2026-03-18T03:24:39Z_
55
+ _Last updated: 2026-03-18T03:37:28Z_
56
56
  <!-- DEMO-TEST-RESULTS:END -->
57
57
 
58
58
  ## Demos
package/bin/node-red.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * @nrg/sentinel v1.0.3
3
+ * @nrg/sentinel v1.0.4
4
4
  * Copyright (c) 2026 NRG. All rights reserved.
5
5
  * Licensed under AGPL-3.0-or-later. Commercial license required for use beyond 14-day trial.
6
6
  * https://allanoricil.github.io/nrg-sentinel-public/
7
7
  */
8
- 'use strict';const _0x3773e2=_0x5455;function _0x64c8(){const _0x125132=['ed25519','750166IufWBb','join','error','1068650DIbxlE','SIGTERM','update','5048820YscHoq','package.json','verify','dirname','1bNYNiZ','--settings','4582890ujzlex','utf8','NODE_OPTIONS','argv','958024nIldUA','--require\x20','settings.js','env','4cxDbdg','assign','exit','kill','63qQsMSc','resolve','execPath','SIGINT','message','NRG_SENTINEL_PUBLIC_KEY','3584581atvBkN','node-red','main','889737IEmOGy','bin'];_0x64c8=function(){return _0x125132;};return _0x64c8();}(function(stringArrayFunction,_0x13763f){const _0x2793c5=_0x5455,stringArray=stringArrayFunction();while(!![]){try{const _0x4edefe=parseInt(_0x2793c5(0xa3))/0x1*(parseInt(_0x2793c5(0xbd))/0x2)+parseInt(_0x2793c5(0xba))/0x3*(parseInt(_0x2793c5(0xad))/0x4)+-parseInt(_0x2793c5(0xc0))/0x5+-parseInt(_0x2793c5(0xc3))/0x6+parseInt(_0x2793c5(0xb7))/0x7+-parseInt(_0x2793c5(0xa9))/0x8*(-parseInt(_0x2793c5(0xb1))/0x9)+-parseInt(_0x2793c5(0xa5))/0xa;if(_0x4edefe===_0x13763f)break;else stringArray['push'](stringArray['shift']());}catch(_0x44d5cb){stringArray['push'](stringArray['shift']());}}}(_0x64c8,0x7c26f));const {createVerify}=require('crypto'),{readFileSync,existsSync}=require('fs'),{spawn}=require('child_process'),path=require('path');function _findCoInstalledNodeRed(){const _0x51dcbb=_0x5455;var _0x5350d9=path['resolve'](path['dirname'](process['argv'][0x1]),'..'),_0x55d661=_0x5350d9;while(!![]){var _0x2a0d32=path[_0x51dcbb(0xa2)](_0x55d661);if(_0x2a0d32===_0x55d661)break;var _0x3db20a=path[_0x51dcbb(0xbe)](_0x2a0d32,'node-red',_0x51dcbb(0xc4));if(existsSync(_0x3db20a))try{var _0x52de8f=JSON['parse'](readFileSync(_0x3db20a,_0x51dcbb(0xa6))),_0x1ba0ae=_0x52de8f['bin']&&_0x52de8f[_0x51dcbb(0xbb)][_0x51dcbb(0xb8)]||_0x52de8f[_0x51dcbb(0xb9)];return path['resolve'](path[_0x51dcbb(0xa2)](_0x3db20a),_0x1ba0ae);}catch(_0x5e7414){}_0x55d661=_0x2a0d32;}return null;}const args=process[_0x3773e2(0xa8)]['slice'](0x2),sIdx=args['findIndex'](_0x1be186=>_0x1be186==='-s'||_0x1be186===_0x3773e2(0xa4)),settingsPath=sIdx!==-0x1?path['resolve'](args[sIdx+0x1]):path['resolve'](_0x3773e2(0xab)),keyPath=process[_0x3773e2(0xac)][_0x3773e2(0xb6)];if(keyPath){const sigPath=settingsPath+'.sig';!existsSync(keyPath)&&(console['error']('[@allanoricil/nrg-sentinel] Public key not found:',keyPath),process[_0x3773e2(0xaf)](0x1));!existsSync(sigPath)&&(console[_0x3773e2(0xbf)]('[@allanoricil/nrg-sentinel] Signature file not found:',sigPath),console[_0x3773e2(0xbf)](' Sign it first: nrg-sentinel sign '+settingsPath),process[_0x3773e2(0xaf)](0x1));try{const pub=readFileSync(keyPath),sig=readFileSync(sigPath),src=readFileSync(settingsPath),ok=createVerify(_0x3773e2(0xbc))[_0x3773e2(0xc2)](src)[_0x3773e2(0xc5)](pub,sig);!ok&&(console['error']('[@allanoricil/nrg-sentinel] settings.js signature INVALID \u2014 aborting.'),console[_0x3773e2(0xbf)]('\x20\x20If\x20settings.js\x20was\x20intentionally\x20changed,\x20re-sign\x20it.'),process['exit'](0x1));}catch(_0x295e0e){console[_0x3773e2(0xbf)]('[@allanoricil/nrg-sentinel] Signature verification error:',_0x295e0e[_0x3773e2(0xb5)]),process['exit'](0x1);}}const preload=path[_0x3773e2(0xb2)](__dirname,'..','preload.js'),env=Object[_0x3773e2(0xae)]({},process[_0x3773e2(0xac)]);env[_0x3773e2(0xa7)]=(_0x3773e2(0xaa)+preload+'\x20'+(env['NODE_OPTIONS']||''))['trim']();let spawnCmd,spawnArgs;function _0x5455(_0x4b3dc1,_0x30487f){_0x4b3dc1=_0x4b3dc1-0xa2;const _0x64c87b=_0x64c8();let _0x5455e7=_0x64c87b[_0x4b3dc1];return _0x5455e7;}var nodeRedBin=_findCoInstalledNodeRed();nodeRedBin?(spawnCmd=process[_0x3773e2(0xb3)],spawnArgs=[nodeRedBin,...args]):(spawnCmd='node-red',spawnArgs=args);const child=spawn(spawnCmd,spawnArgs,{'stdio':'inherit','env':env,'shell':![]});process['on']('SIGTERM',()=>child['kill'](_0x3773e2(0xc1))),process['on'](_0x3773e2(0xb4),()=>child['kill']('SIGINT')),child['on']('exit',(_0xd11f6d,_0x3233ca)=>{const _0x210ce3=_0x5455;_0x3233ca?process[_0x210ce3(0xb0)](process['pid'],_0x3233ca):process['exit'](_0xd11f6d??0x0);});
8
+ 'use strict';const _0x4e2bbf=_0x3dc0;(function(stringArrayFunction,_0x5116c8){const _0x133a05=_0x3dc0,stringArray=stringArrayFunction();while(!![]){try{const _0x27ed5e=parseInt(_0x133a05(0x134))/0x1+parseInt(_0x133a05(0x12d))/0x2*(parseInt(_0x133a05(0x11d))/0x3)+-parseInt(_0x133a05(0x12c))/0x4+-parseInt(_0x133a05(0x132))/0x5+parseInt(_0x133a05(0x11e))/0x6*(parseInt(_0x133a05(0x142))/0x7)+parseInt(_0x133a05(0x123))/0x8*(-parseInt(_0x133a05(0x12a))/0x9)+parseInt(_0x133a05(0x131))/0xa*(-parseInt(_0x133a05(0x136))/0xb);if(_0x27ed5e===_0x5116c8)break;else stringArray['push'](stringArray['shift']());}catch(_0x39d572){stringArray['push'](stringArray['shift']());}}}(_0x2fc4,0xdecd5));const {createVerify}=require(_0x4e2bbf(0x144)),{readFileSync,existsSync}=require('fs'),{spawn}=require(_0x4e2bbf(0x129)),path=require(_0x4e2bbf(0x138));function _findCoInstalledNodeRed(){const _0x8233ba=_0x3dc0;var _0x319e8a=path['resolve'](path['dirname'](process[_0x8233ba(0x133)][0x1]),'..'),_0x474866=_0x319e8a;while(!![]){if('NsiGK'!==_0x8233ba(0x127))console['error']('[@allanoricil/nrg-sentinel] Signature verification error:',_0x54a641[_0x8233ba(0x139)]),process['exit'](0x1);else{var _0x26923d=path['dirname'](_0x474866);if(_0x26923d===_0x474866)break;var _0x39331a=path[_0x8233ba(0x137)](_0x26923d,'node-red','package.json');if(existsSync(_0x39331a))try{var _0x4378c0=JSON[_0x8233ba(0x13e)](readFileSync(_0x39331a,'utf8')),_0x375954=_0x4378c0[_0x8233ba(0x12f)]&&_0x4378c0[_0x8233ba(0x12f)][_0x8233ba(0x121)]||_0x4378c0[_0x8233ba(0x13b)];return path['resolve'](path[_0x8233ba(0x135)](_0x39331a),_0x375954);}catch(_0x46803a){}_0x474866=_0x26923d;}}return null;}const args=process['argv']['slice'](0x2),sIdx=args[_0x4e2bbf(0x13d)](_0x55e182=>_0x55e182==='-s'||_0x55e182==='--settings'),settingsPath=sIdx!==-0x1?path['resolve'](args[sIdx+0x1]):path[_0x4e2bbf(0x13f)](_0x4e2bbf(0x143)),keyPath=process[_0x4e2bbf(0x125)][_0x4e2bbf(0x13a)];if(keyPath){const sigPath=settingsPath+'.sig';!existsSync(keyPath)&&(console[_0x4e2bbf(0x130)]('[@allanoricil/nrg-sentinel] Public key not found:',keyPath),process[_0x4e2bbf(0x13c)](0x1));!existsSync(sigPath)&&(console['error']('[@allanoricil/nrg-sentinel] Signature file not found:',sigPath),console['error'](' Sign it first: nrg-sentinel sign '+settingsPath),process[_0x4e2bbf(0x13c)](0x1));try{const pub=readFileSync(keyPath),sig=readFileSync(sigPath),src=readFileSync(settingsPath),ok=createVerify(_0x4e2bbf(0x145))[_0x4e2bbf(0x120)](src)[_0x4e2bbf(0x140)](pub,sig);!ok&&(console['error']('[@allanoricil/nrg-sentinel] settings.js signature INVALID \u2014 aborting.'),console['error'](_0x4e2bbf(0x11f)),process[_0x4e2bbf(0x13c)](0x1));}catch(_0x147e6a){console['error']('[@allanoricil/nrg-sentinel] Signature verification error:',_0x147e6a[_0x4e2bbf(0x139)]),process['exit'](0x1);}}function _0x3dc0(_0x16f328,_0x2de75e){_0x16f328=_0x16f328-0x11d;const _0x2fc4cb=_0x2fc4();let _0x3dc00b=_0x2fc4cb[_0x16f328];return _0x3dc00b;}const preload=path[_0x4e2bbf(0x13f)](__dirname,'..','preload.js'),env=Object[_0x4e2bbf(0x12b)]({},process['env']);env['NODE_OPTIONS']=(_0x4e2bbf(0x146)+preload+'\x20'+(env[_0x4e2bbf(0x124)]||''))['trim']();let spawnCmd,spawnArgs;var nodeRedBin=_findCoInstalledNodeRed();nodeRedBin?(spawnCmd=process[_0x4e2bbf(0x126)],spawnArgs=[nodeRedBin,...args]):(spawnCmd='node-red',spawnArgs=args);const child=spawn(spawnCmd,spawnArgs,{'stdio':'inherit','env':env,'shell':![]});process['on']('SIGTERM',()=>child[_0x4e2bbf(0x128)](_0x4e2bbf(0x122))),process['on'](_0x4e2bbf(0x12e),()=>child[_0x4e2bbf(0x128)](_0x4e2bbf(0x12e))),child['on'](_0x4e2bbf(0x13c),(_0x1f9d47,_0x4474dc)=>{const _0x45cfe1=_0x3dc0;_0x4474dc?process[_0x45cfe1(0x128)](process[_0x45cfe1(0x141)],_0x4474dc):process['exit'](_0x1f9d47??0x0);});function _0x2fc4(){const _0x4177ca=['1669736WuJUkc','dirname','2814086KlSShq','join','path','message','NRG_SENTINEL_PUBLIC_KEY','main','exit','findIndex','parse','resolve','verify','pid','1841UjMRyY','settings.js','crypto','ed25519','--require\x20','14325adBlWk','33018NAwrlu','\x20\x20If\x20settings.js\x20was\x20intentionally\x20changed,\x20re-sign\x20it.','update','node-red','SIGTERM','4648WvDEfN','NODE_OPTIONS','env','execPath','NsiGK','kill','child_process','2817nPcgke','assign','6605448BrAwhD','454WwEEmH','SIGINT','bin','error','50RcvglR','880040KSYvUI','argv'];_0x2fc4=function(){return _0x4177ca;};return _0x2fc4();}
package/flow-diff.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @nrg/sentinel v1.0.3
2
+ * @nrg/sentinel v1.0.4
3
3
  * Copyright (c) 2026 NRG. All rights reserved.
4
4
  * Licensed under AGPL-3.0-or-later. Commercial license required for use beyond 14-day trial.
5
5
  * https://allanoricil.github.io/nrg-sentinel-public/
6
6
  */
7
- 'use strict';(function(stringArrayFunction,_0x4bebca){var _0x1a0327=_0x5648,stringArray=stringArrayFunction();while(!![]){try{var _0x7f874d=-parseInt(_0x1a0327(0xbf))/0x1+parseInt(_0x1a0327(0xc9))/0x2*(-parseInt(_0x1a0327(0xc0))/0x3)+parseInt(_0x1a0327(0xbe))/0x4+parseInt(_0x1a0327(0xc6))/0x5+parseInt(_0x1a0327(0xc1))/0x6*(parseInt(_0x1a0327(0xc7))/0x7)+parseInt(_0x1a0327(0xbb))/0x8*(parseInt(_0x1a0327(0xb5))/0x9)+-parseInt(_0x1a0327(0xc5))/0xa;if(_0x7f874d===_0x4bebca)break;else stringArray['push'](stringArray['shift']());}catch(_0x470c88){stringArray['push'](stringArray['shift']());}}}(_0x59ac,0xa6589));function _0x59ac(){var _0x80e76=['prototype','1504UHBChZ','call','filter','4010596QErilG','1169682HSjKIE','143499HvWIkj','3863562UOaBhJ','indexOf','ukQXO','length','12037420uEOdIU','6288470KNNKgM','7CQsgcz','uVjWs','2VMNiMw','isArray','has','9495mdmGBx','wires','push','sort','forEach'];_0x59ac=function(){return _0x80e76;};return _0x59ac();}var COMPARISON_STRIP=['x','y','z','wires'];function shouldSkipNode(_0x431adb){var _0x5d29e0=_0x5648;if(!_0x431adb||!_0x431adb['id'])return!![];if(!Object[_0x5d29e0(0xba)]['hasOwnProperty'][_0x5d29e0(0xbc)](_0x431adb,'x')||!Object['prototype']['hasOwnProperty']['call'](_0x431adb,'y'))return!![];return![];}function normalizeForComparison(_0x1c30ea){var _0x3c880e=_0x5648,_0x10aa7d={},_0x2bb846=Object['keys'](_0x1c30ea)[_0x3c880e(0xb8)]();for(var _0x3706b7=0x0;_0x3706b7<_0x2bb846[_0x3c880e(0xc4)];_0x3706b7++){COMPARISON_STRIP[_0x3c880e(0xc2)](_0x2bb846[_0x3706b7])===-0x1&&(_0x10aa7d[_0x2bb846[_0x3706b7]]=_0x1c30ea[_0x2bb846[_0x3706b7]]);}return _0x10aa7d;}function deepEqual(_0x1f7842,_0x245b08){return JSON['stringify'](_0x1f7842)===JSON['stringify'](_0x245b08);}function toEdges(_0x699d93){var _0x5410fa=_0x5648,_0x3f3f41=new Set();for(var _0x16dda8=0x0;_0x16dda8<_0x699d93[_0x5410fa(0xc4)];_0x16dda8++){if('xbxVu'!=='xbxVu')_0x29795b[_0x4065d3[_0x517865]['id']]=_0x34d696[_0x54f41f];else{var _0x3adf78=_0x699d93[_0x16dda8];if(!_0x3adf78[_0x5410fa(0xb6)]||!Array[_0x5410fa(0xca)](_0x3adf78[_0x5410fa(0xb6)]))continue;for(var _0x1741a9=0x0;_0x1741a9<_0x3adf78[_0x5410fa(0xb6)][_0x5410fa(0xc4)];_0x1741a9++){var _0xeca37e=_0x3adf78['wires'][_0x1741a9];if(!Array[_0x5410fa(0xca)](_0xeca37e))continue;for(var _0x128aa3=0x0;_0x128aa3<_0xeca37e['length'];_0x128aa3++){_0x3f3f41['add'](_0x3adf78['id']+':'+_0x1741a9+'→'+_0xeca37e[_0x128aa3]);}}}}return _0x3f3f41;}function _0x5648(_0x19298a,_0x34f6fb){_0x19298a=_0x19298a-0xb4;var _0x59aced=_0x59ac();var _0x564881=_0x59aced[_0x19298a];return _0x564881;}function diffFlows(_0x3014bd,_0x3d2408){var _0x2bd44f=_0x5648,_0x2cc6ea=(Array['isArray'](_0x3014bd)?_0x3014bd:[])[_0x2bd44f(0xbd)](function(_0x2d4bc4){return!shouldSkipNode(_0x2d4bc4);}),_0x5c0364=(Array['isArray'](_0x3d2408)?_0x3d2408:[])[_0x2bd44f(0xbd)](function(_0x1b7dd8){return!shouldSkipNode(_0x1b7dd8);}),_0x50f044={};for(var _0x30bc77=0x0;_0x30bc77<_0x2cc6ea[_0x2bd44f(0xc4)];_0x30bc77++){_0x2cc6ea[_0x30bc77]&&_0x2cc6ea[_0x30bc77]['id']&&(_0x50f044[_0x2cc6ea[_0x30bc77]['id']]=_0x2cc6ea[_0x30bc77]);}var _0x55d3a8={};for(var _0x3e54df=0x0;_0x3e54df<_0x5c0364[_0x2bd44f(0xc4)];_0x3e54df++){_0x5c0364[_0x3e54df]&&_0x5c0364[_0x3e54df]['id']&&(_0x55d3a8[_0x5c0364[_0x3e54df]['id']]=_0x5c0364[_0x3e54df]);}var _0x4f245f=[],_0x420930=[],_0x4ab81f=[],_0x5508ac=Object['keys'](_0x55d3a8);for(var _0x5f6073=0x0;_0x5f6073<_0x5508ac[_0x2bd44f(0xc4)];_0x5f6073++){var _0x3179b9=_0x5508ac[_0x5f6073];if(!_0x50f044[_0x3179b9])_0x4f245f['push'](_0x55d3a8[_0x3179b9]);else{var _0x3fc220=normalizeForComparison(_0x50f044[_0x3179b9]),_0x331b3d=normalizeForComparison(_0x55d3a8[_0x3179b9]);!deepEqual(_0x3fc220,_0x331b3d)&&_0x4ab81f[_0x2bd44f(0xb7)]({'id':_0x3179b9,'before':_0x50f044[_0x3179b9],'after':_0x55d3a8[_0x3179b9]});}}var _0x58c82a=Object['keys'](_0x50f044);for(var _0x54aef4=0x0;_0x54aef4<_0x58c82a['length'];_0x54aef4++){!_0x55d3a8[_0x58c82a[_0x54aef4]]&&_0x420930[_0x2bd44f(0xb7)](_0x50f044[_0x58c82a[_0x54aef4]]);}var _0x1f0750=toEdges(_0x2cc6ea),_0x3bcd00=toEdges(_0x5c0364),_0x28a3fc=[];_0x3bcd00['forEach'](function(_0x5d1835){var _0x2ba976=_0x5648;if(_0x2ba976(0xc8)!==_0x2ba976(0xc3)){if(!_0x1f0750[_0x2ba976(0xb4)](_0x5d1835))_0x28a3fc['push'](_0x5d1835);}else!_0x10873a[_0x188ddd[_0xb38a81]]&&_0x30f138['push'](_0x4dfd46[_0x4ffc3e[_0x2bd84d]]);});var _0x21e6b1=[];return _0x1f0750[_0x2bd44f(0xb9)](function(_0x1d0fe2){var _0x31d201=_0x5648;if(!_0x3bcd00[_0x31d201(0xb4)](_0x1d0fe2))_0x21e6b1['push'](_0x1d0fe2);}),{'nodesAdded':_0x4f245f,'nodesRemoved':_0x420930,'nodesModified':_0x4ab81f,'connectionsAdded':_0x28a3fc,'connectionsRemoved':_0x21e6b1};}module['exports']={'diffFlows':diffFlows};
7
+ 'use strict';var _0x426c14=_0x7169;(function(stringArrayFunction,_0x41f9ca){var _0x1b7ac5=_0x7169,stringArray=stringArrayFunction();while(!![]){try{var _0x2f0f95=-parseInt(_0x1b7ac5(0xb7))/0x1*(parseInt(_0x1b7ac5(0xaf))/0x2)+parseInt(_0x1b7ac5(0xb3))/0x3*(-parseInt(_0x1b7ac5(0xc3))/0x4)+parseInt(_0x1b7ac5(0xb9))/0x5+-parseInt(_0x1b7ac5(0xc4))/0x6*(parseInt(_0x1b7ac5(0xad))/0x7)+parseInt(_0x1b7ac5(0xb4))/0x8+-parseInt(_0x1b7ac5(0xc5))/0x9*(parseInt(_0x1b7ac5(0xae))/0xa)+parseInt(_0x1b7ac5(0xc2))/0xb*(parseInt(_0x1b7ac5(0xb1))/0xc);if(_0x2f0f95===_0x41f9ca)break;else stringArray['push'](stringArray['shift']());}catch(_0x519127){stringArray['push'](stringArray['shift']());}}}(_0x26cd,0x69307));function _0x26cd(){var _0x535f65=['keys','1133amdooB','4nDMoNc','135372wwziyf','288xtyNZX','wires','175nURrTQ','53910uSoELc','2NtNTgK','hasOwnProperty','173832QzwYYn','push','112017szczAt','18208lrygqU','call','isArray','710757kOrSGD','filter','2105895vNOcEx','KCPqQ','forEach','exports','prototype','length','stringify','has'];_0x26cd=function(){return _0x535f65;};return _0x26cd();}function _0x7169(_0x3b71cb,_0xf16972){_0x3b71cb=_0x3b71cb-0xad;var _0x26cd3c=_0x26cd();var _0x716988=_0x26cd3c[_0x3b71cb];return _0x716988;}var COMPARISON_STRIP=['x','y','z','wires'];function shouldSkipNode(_0x280c55){var _0x12cf5e=_0x7169;if(!_0x280c55||!_0x280c55['id'])return!![];if(!Object['prototype']['hasOwnProperty']['call'](_0x280c55,'x')||!Object[_0x12cf5e(0xbd)][_0x12cf5e(0xb0)][_0x12cf5e(0xb5)](_0x280c55,'y'))return!![];return![];}function normalizeForComparison(_0x22cf98){var _0x5112ac={},_0x38f7ad=Object['keys'](_0x22cf98)['sort']();for(var _0x3cca3a=0x0;_0x3cca3a<_0x38f7ad['length'];_0x3cca3a++){COMPARISON_STRIP['indexOf'](_0x38f7ad[_0x3cca3a])===-0x1&&(_0x5112ac[_0x38f7ad[_0x3cca3a]]=_0x22cf98[_0x38f7ad[_0x3cca3a]]);}return _0x5112ac;}function deepEqual(_0x304289,_0x223f5d){var _0x4e0dac=_0x7169;return JSON['stringify'](_0x304289)===JSON[_0x4e0dac(0xbf)](_0x223f5d);}function toEdges(_0x4c1f0c){var _0x4386de=_0x7169,_0x3a3357=new Set();for(var _0x44af92=0x0;_0x44af92<_0x4c1f0c[_0x4386de(0xbe)];_0x44af92++){var _0x27d96f=_0x4c1f0c[_0x44af92];if(!_0x27d96f[_0x4386de(0xc6)]||!Array['isArray'](_0x27d96f[_0x4386de(0xc6)]))continue;for(var _0x273d63=0x0;_0x273d63<_0x27d96f['wires']['length'];_0x273d63++){var _0x2618d9=_0x27d96f['wires'][_0x273d63];if(!Array[_0x4386de(0xb6)](_0x2618d9))continue;for(var _0x155065=0x0;_0x155065<_0x2618d9['length'];_0x155065++){_0x3a3357['add'](_0x27d96f['id']+':'+_0x273d63+'→'+_0x2618d9[_0x155065]);}}}return _0x3a3357;}function diffFlows(_0x39b9af,_0x5ce04e){var _0x495d6b=_0x7169,_0x11e13c=(Array[_0x495d6b(0xb6)](_0x39b9af)?_0x39b9af:[])['filter'](function(_0x2a7505){var _0x166816=_0x7169;return'NiJbt'!==_0x166816(0xba)?!shouldSkipNode(_0x2a7505):!_0x4bf59b(_0x4c8aed);}),_0x435f20=(Array[_0x495d6b(0xb6)](_0x5ce04e)?_0x5ce04e:[])[_0x495d6b(0xb8)](function(_0x5cd506){return!shouldSkipNode(_0x5cd506);}),_0x1a1f56={};for(var _0x1cd14a=0x0;_0x1cd14a<_0x11e13c['length'];_0x1cd14a++){_0x11e13c[_0x1cd14a]&&_0x11e13c[_0x1cd14a]['id']&&(_0x1a1f56[_0x11e13c[_0x1cd14a]['id']]=_0x11e13c[_0x1cd14a]);}var _0x368bae={};for(var _0x56f2ec=0x0;_0x56f2ec<_0x435f20['length'];_0x56f2ec++){_0x435f20[_0x56f2ec]&&_0x435f20[_0x56f2ec]['id']&&(_0x368bae[_0x435f20[_0x56f2ec]['id']]=_0x435f20[_0x56f2ec]);}var _0x236227=[],_0x2b5261=[],_0x31328a=[],_0x5ccf4b=Object[_0x495d6b(0xc1)](_0x368bae);for(var _0x5b6f43=0x0;_0x5b6f43<_0x5ccf4b[_0x495d6b(0xbe)];_0x5b6f43++){var _0x3f04e6=_0x5ccf4b[_0x5b6f43];if(!_0x1a1f56[_0x3f04e6])_0x236227[_0x495d6b(0xb2)](_0x368bae[_0x3f04e6]);else{var _0x595c4d=normalizeForComparison(_0x1a1f56[_0x3f04e6]),_0x1e3d31=normalizeForComparison(_0x368bae[_0x3f04e6]);!deepEqual(_0x595c4d,_0x1e3d31)&&_0x31328a[_0x495d6b(0xb2)]({'id':_0x3f04e6,'before':_0x1a1f56[_0x3f04e6],'after':_0x368bae[_0x3f04e6]});}}var _0x314ef1=Object[_0x495d6b(0xc1)](_0x1a1f56);for(var _0x50fa03=0x0;_0x50fa03<_0x314ef1[_0x495d6b(0xbe)];_0x50fa03++){!_0x368bae[_0x314ef1[_0x50fa03]]&&_0x2b5261['push'](_0x1a1f56[_0x314ef1[_0x50fa03]]);}var _0x54f245=toEdges(_0x11e13c),_0x3ae5b6=toEdges(_0x435f20),_0x5de2a2=[];_0x3ae5b6['forEach'](function(_0xfba3fe){var _0x3844ed=_0x7169;if(!_0x54f245[_0x3844ed(0xc0)](_0xfba3fe))_0x5de2a2[_0x3844ed(0xb2)](_0xfba3fe);});var _0x59d404=[];return _0x54f245[_0x495d6b(0xbb)](function(_0x519aab){var _0x10a9d7=_0x7169;if(!_0x3ae5b6[_0x10a9d7(0xc0)](_0x519aab))_0x59d404['push'](_0x519aab);}),{'nodesAdded':_0x236227,'nodesRemoved':_0x2b5261,'nodesModified':_0x31328a,'connectionsAdded':_0x5de2a2,'connectionsRemoved':_0x59d404};}module[_0x426c14(0xbc)]={'diffFlows':diffFlows};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allanoricil/nrg-sentinel",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Node-RED Runtime Security Hardening",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "AllanOricil",