233004397a4cfa40caf063db602c3cacc26f76ab
[motion2.git] / server / api / plugin / plugin.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xac1a=['code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','%s.zip','Error\x20while\x20downloading\x20the\x20plugin','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','some','Plugin\x20manifest\x20missing','manifest.json','Invalid\x20manifest:\x20type\x20missing','version','parameters','html','views','Invalid\x20manifest:\x20views\x20missing','admin','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','sidebar','always','icon','icon-apps','plugins','Warning:\x20admin\x20view\x20not\x20specified','agent','test','Warning:\x20agent\x20view\x20not\x20specified','create','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','Plugins','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','unlinkSync','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','update','delete','params','dirname','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','headers','content-length','content-type','set','endsWith','statusCode','webhookPost','%s%s','eml-format','rimraf','request-promise','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','archiver','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','limit','count','apply','save','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Plugin','includeAll','include','findAll','rows','catch','show','rawAttributes','find','download','join','root','server/files/plugins','format','basename','createWriteStream','zip','warning'];(function(_0x35a5d2,_0x26dd88){var _0x109435=function(_0x5ea0a9){while(--_0x5ea0a9){_0x35a5d2['push'](_0x35a5d2['shift']());}};_0x109435(++_0x26dd88);}(_0xac1a,0x100));var _0xaac1=function(_0x222c9f,_0x515cd0){_0x222c9f=_0x222c9f-0x0;var _0x3e74b5=_0xac1a[_0x222c9f];return _0x3e74b5;};'use strict';var emlformat=require(_0xaac1('0x0'));var rimraf=require(_0xaac1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xaac1('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xaac1('0x3'));var path=require(_0xaac1('0x4'));var sox=require(_0xaac1('0x5'));var csv=require('to-csv');var ejs=require(_0xaac1('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xaac1('0x7'));var squel=require(_0xaac1('0x8'));var crypto=require('crypto');var jsforce=require(_0xaac1('0x9'));var deskjs=require(_0xaac1('0xa'));var toCsv=require(_0xaac1('0xb'));var querystring=require(_0xaac1('0xc'));var Papa=require(_0xaac1('0xd'));var extract=require('extract-zip');var rimraf=require(_0xaac1('0x1'));var archiver=require(_0xaac1('0xe'));var Redis=require(_0xaac1('0xf'));var authService=require(_0xaac1('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xaac1('0x11'));var hardwareService=require(_0xaac1('0x12'));var logger=require(_0xaac1('0x13'))(_0xaac1('0x14'));var utils=require(_0xaac1('0x15'));var config=require(_0xaac1('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xaac1('0x17'))['db'];config[_0xaac1('0x18')]=_[_0xaac1('0x19')](config[_0xaac1('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0xaac1('0x1a'))(new Redis(config[_0xaac1('0x18')]));require('./plugin.socket')[_0xaac1('0x1b')](socket);function respondWithStatusCode(_0x161c54,_0x54643d){_0x54643d=_0x54643d||0xcc;return function(_0x1c1d2c){if(_0x1c1d2c){return _0x161c54[_0xaac1('0x1c')](_0x54643d);}return _0x161c54[_0xaac1('0x1d')](_0x54643d)[_0xaac1('0x1e')]();};}function respondWithResult(_0x1a6c3d,_0x385d61){_0x385d61=_0x385d61||0xc8;return function(_0x4967c4){if(_0x4967c4){return _0x1a6c3d[_0xaac1('0x1d')](_0x385d61)[_0xaac1('0x1f')](_0x4967c4);}};}function respondWithFilteredResult(_0x38f451,_0x5bf419){return function(_0x1dbaf1){if(_0x1dbaf1){var _0x53d783=typeof _0x5bf419[_0xaac1('0x20')]===_0xaac1('0x21')&&typeof _0x5bf419[_0xaac1('0x22')]===_0xaac1('0x21');var _0x3b5603=_0x1dbaf1[_0xaac1('0x23')];var _0xb484cd=_0x53d783?0x0:_0x5bf419['offset'];var _0x51f7e4=_0x53d783?_0x1dbaf1[_0xaac1('0x23')]:_0x5bf419[_0xaac1('0x20')]+_0x5bf419[_0xaac1('0x22')];var _0x3dbf1b;if(_0x51f7e4>=_0x3b5603){_0x51f7e4=_0x3b5603;_0x3dbf1b=0xc8;}else{_0x3dbf1b=0xce;}_0x38f451[_0xaac1('0x1d')](_0x3dbf1b);return _0x38f451['set']('Content-Range',_0xb484cd+'-'+_0x51f7e4+'/'+_0x3b5603)['json'](_0x1dbaf1);}return null;};}function patchUpdates(_0x3fe6a){return function(_0x3b0aea){try{jsonpatch[_0xaac1('0x24')](_0x3b0aea,_0x3fe6a,!![]);}catch(_0x27e7a1){return BPromise['reject'](_0x27e7a1);}return _0x3b0aea[_0xaac1('0x25')]();};}function saveUpdates(_0x2a476d,_0x4063fc){return function(_0x390fb7){if(_0x390fb7){return _0x390fb7['update'](_0x2a476d)[_0xaac1('0x26')](function(_0x2a58a9){return _0x2a58a9;});}return null;};}function removeEntity(_0xed551b,_0x1878f8){return function(_0x1d45a8){if(_0x1d45a8){return _0x1d45a8[_0xaac1('0x27')]()[_0xaac1('0x26')](function(){var _0x343420=_0x1d45a8[_0xaac1('0x28')]({'plain':!![]});var _0x1416cc='Plugins';return db[_0xaac1('0x29')][_0xaac1('0x27')]({'where':{'type':_0x1416cc,'resourceId':_0x343420['id']}})['then'](function(){return _0x1d45a8;});})[_0xaac1('0x26')](function(){_0xed551b[_0xaac1('0x1d')](0xcc)[_0xaac1('0x1e')]();});}};}function handleEntityNotFound(_0x58a207,_0x2b1c82){return function(_0x45f471){if(!_0x45f471){_0x58a207[_0xaac1('0x1c')](0x194);}return _0x45f471;};}function handleError(_0x38817e,_0x23182f){_0x23182f=_0x23182f||0x1f4;return function(_0x202168){logger[_0xaac1('0x2a')](_0x202168[_0xaac1('0x2b')]);if(_0x202168[_0xaac1('0x2c')]){delete _0x202168[_0xaac1('0x2c')];}_0x38817e[_0xaac1('0x1d')](_0x23182f)[_0xaac1('0x2d')](_0x202168);};}exports[_0xaac1('0x2e')]=function(_0x35e710,_0x5dc10c){var _0xb469a7={},_0x3e6854={},_0xceea93={'count':0x0,'rows':[]};var _0x49e137=_[_0xaac1('0x2f')](db['Plugin']['rawAttributes'],function(_0x39585e){return{'name':_0x39585e[_0xaac1('0x30')],'type':_0x39585e[_0xaac1('0x31')]['key']};});_0x3e6854[_0xaac1('0x32')]=_[_0xaac1('0x2f')](_0x49e137,_0xaac1('0x2c'));_0x3e6854[_0xaac1('0x33')]=_[_0xaac1('0x34')](_0x35e710[_0xaac1('0x33')]);_0x3e6854[_0xaac1('0x35')]=_[_0xaac1('0x36')](_0x3e6854[_0xaac1('0x32')],_0x3e6854[_0xaac1('0x33')]);_0xb469a7['attributes']=_[_0xaac1('0x36')](_0x3e6854['model'],qs[_0xaac1('0x37')](_0x35e710['query'][_0xaac1('0x37')]));_0xb469a7[_0xaac1('0x38')]=_0xb469a7[_0xaac1('0x38')][_0xaac1('0x39')]?_0xb469a7[_0xaac1('0x38')]:_0x3e6854[_0xaac1('0x32')];if(!_0x35e710[_0xaac1('0x33')][_0xaac1('0x3a')](_0xaac1('0x3b'))){_0xb469a7['limit']=qs[_0xaac1('0x22')](_0x35e710['query'][_0xaac1('0x22')]);_0xb469a7[_0xaac1('0x20')]=qs[_0xaac1('0x20')](_0x35e710['query'][_0xaac1('0x20')]);}_0xb469a7[_0xaac1('0x3c')]=qs['sort'](_0x35e710[_0xaac1('0x33')][_0xaac1('0x3d')]);_0xb469a7[_0xaac1('0x3e')]=qs[_0xaac1('0x35')](_[_0xaac1('0x3f')](_0x35e710[_0xaac1('0x33')],_0x3e6854[_0xaac1('0x35')]),_0x49e137);if(_0x35e710[_0xaac1('0x33')][_0xaac1('0x40')]){_0xb469a7[_0xaac1('0x3e')]=_[_0xaac1('0x41')](_0xb469a7[_0xaac1('0x3e')],{'$or':_[_0xaac1('0x2f')](_0x49e137,function(_0x3108de){if(_0x3108de[_0xaac1('0x31')]!==_0xaac1('0x42')){var _0x189283={};_0x189283[_0x3108de[_0xaac1('0x2c')]]={'$like':'%'+_0x35e710[_0xaac1('0x33')][_0xaac1('0x40')]+'%'};return _0x189283;}})});}_0xb469a7=_['merge']({},_0xb469a7,_0x35e710[_0xaac1('0x43')]);var _0x519f0c={'where':_0xb469a7[_0xaac1('0x3e')]};return db[_0xaac1('0x44')][_0xaac1('0x23')](_0x519f0c)[_0xaac1('0x26')](function(_0x117637){_0xceea93[_0xaac1('0x23')]=_0x117637;if(_0x35e710[_0xaac1('0x33')][_0xaac1('0x45')]){_0xb469a7[_0xaac1('0x46')]=[{'all':!![]}];}return db['Plugin'][_0xaac1('0x47')](_0xb469a7);})[_0xaac1('0x26')](function(_0x5d9b8b){_0xceea93[_0xaac1('0x48')]=_0x5d9b8b;return _0xceea93;})['then'](respondWithFilteredResult(_0x5dc10c,_0xb469a7))[_0xaac1('0x49')](handleError(_0x5dc10c,null));};exports[_0xaac1('0x4a')]=function(_0x9e2d34,_0x428a8b){var _0x6dc84d={'raw':!![],'where':{'id':_0x9e2d34['params']['id']}},_0x184a91={};_0x184a91[_0xaac1('0x32')]=_[_0xaac1('0x34')](db['Plugin'][_0xaac1('0x4b')]);_0x184a91[_0xaac1('0x33')]=_[_0xaac1('0x34')](_0x9e2d34['query']);_0x184a91[_0xaac1('0x35')]=_[_0xaac1('0x36')](_0x184a91['model'],_0x184a91['query']);_0x6dc84d[_0xaac1('0x38')]=_[_0xaac1('0x36')](_0x184a91['model'],qs[_0xaac1('0x37')](_0x9e2d34[_0xaac1('0x33')][_0xaac1('0x37')]));_0x6dc84d[_0xaac1('0x38')]=_0x6dc84d[_0xaac1('0x38')][_0xaac1('0x39')]?_0x6dc84d['attributes']:_0x184a91[_0xaac1('0x32')];if(_0x9e2d34[_0xaac1('0x33')][_0xaac1('0x45')]){_0x6dc84d[_0xaac1('0x46')]=[{'all':!![]}];}_0x6dc84d=_[_0xaac1('0x41')]({},_0x6dc84d,_0x9e2d34[_0xaac1('0x43')]);return db[_0xaac1('0x44')][_0xaac1('0x4c')](_0x6dc84d)[_0xaac1('0x26')](handleEntityNotFound(_0x428a8b,null))[_0xaac1('0x26')](respondWithResult(_0x428a8b,null))['catch'](handleError(_0x428a8b,null));};exports[_0xaac1('0x4d')]=function(_0x2467f2,_0x1b2e68,_0x289850){return db[_0xaac1('0x44')][_0xaac1('0x4c')]({'where':{'id':_0x2467f2['params']['id']},'attributes':[_0xaac1('0x2c'),_0xaac1('0x4')],'raw':!![]})[_0xaac1('0x26')](handleEntityNotFound(_0x1b2e68,null))[_0xaac1('0x26')](function(_0x278849){if(_0x278849){var _0x4946ee=path[_0xaac1('0x4e')](config[_0xaac1('0x4f')],_0xaac1('0x50'),util[_0xaac1('0x51')]('%s.zip',path[_0xaac1('0x52')](_0x278849[_0xaac1('0x4')])));var _0x5d4564=fs[_0xaac1('0x53')](_0x4946ee);var _0x28dcce=archiver(_0xaac1('0x54'),{'zlib':{'level':0x9}});_0x28dcce['on'](_0xaac1('0x55'),function(_0x406448){if(_0x406448[_0xaac1('0x56')]===_0xaac1('0x57')){logger[_0xaac1('0x2a')](_0x406448);}else{throw new db[(_0xaac1('0x58'))][(_0xaac1('0x59'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');}});_0x28dcce['on']('error',function(_0x25c1d1){throw new db[(_0xaac1('0x58'))][(_0xaac1('0x59'))](_0xaac1('0x5a'));});_0x28dcce[_0xaac1('0x5b')](_0x5d4564);_0x28dcce['glob']('**/*',{'cwd':path['join'](config['root'],_0xaac1('0x50'),path['dirname'](_0x278849[_0xaac1('0x4')])),'ignore':[path[_0xaac1('0x4e')](path[_0xaac1('0x52')](_0x278849['path']),'node_modules/**/*'),path[_0xaac1('0x4e')](path['basename'](_0x278849[_0xaac1('0x4')]),_0xaac1('0x5c'))],'nodir':!![]})[_0xaac1('0x5d')]();_0x5d4564['on'](_0xaac1('0x5e'),function(){if(!fs[_0xaac1('0x5f')](_0x4946ee)){throw new db['Sequelize']['Error'](_0xaac1('0x60'));}return _0x1b2e68[_0xaac1('0x4d')](_0x4946ee,util[_0xaac1('0x51')](_0xaac1('0x61'),path[_0xaac1('0x52')](_0x278849['path'])),function(_0x270384){if(_0x270384){throw new db[(_0xaac1('0x58'))]['Error'](_0xaac1('0x62'));}fs['unlinkSync'](_0x4946ee);logger[_0xaac1('0x63')](_0xaac1('0x64'));logger[_0xaac1('0x63')](_0xaac1('0x65'));});});}return null;})[_0xaac1('0x49')](handleError(_0x1b2e68,null));};exports[_0xaac1('0x66')]=function(_0x15ab0c,_0x33259e,_0x3e2c9f){var _0x911076=path[_0xaac1('0x52')](_0x15ab0c['file']['filename'],path['extname'](_0x15ab0c[_0xaac1('0x67')][_0xaac1('0x68')]));var _0x1b7458=path[_0xaac1('0x4e')](config['root'],_0xaac1('0x50'),_0x15ab0c[_0xaac1('0x67')][_0xaac1('0x68')]);var _0x30dadf=path[_0xaac1('0x4e')](config[_0xaac1('0x4f')],_0xaac1('0x50'),_0x911076);logger[_0xaac1('0x63')]('Plugin\x20upload\x20filepath:\x20%s',_0x1b7458);logger[_0xaac1('0x63')]('Plugin\x20upload\x20destination:\x20%s',_0x30dadf);try{fs[_0xaac1('0x69')](_0x1b7458,parseInt(_0xaac1('0x6a'),0x8));extract(_0x1b7458,{'dir':_0x30dadf},function(_0x53797e){if(_0x53797e){logger[_0xaac1('0x2a')](_0x53797e);handleError(_0x53797e,!![]);};var _0x230bf0=fs[_0xaac1('0x6b')](_0x30dadf);if(_0x230bf0[_0xaac1('0x39')]>0x1){removeReferences(_0x1b7458,_0x30dadf);logger[_0xaac1('0x2a')](_0xaac1('0x6c'));return _0x3e2c9f(new Error(_0xaac1('0x6c')));}var _0x5ea5f9=fs[_0xaac1('0x6d')](path[_0xaac1('0x4e')](_0x30dadf,_0x230bf0[0x0]));if(_0x5ea5f9[_0xaac1('0x6e')]()){removeReferences(_0x1b7458,_0x30dadf);logger[_0xaac1('0x2a')](_0xaac1('0x6c'));return _0x3e2c9f(new Error(_0xaac1('0x6c')));}if(_0x5ea5f9['isDirectory']()){var _0x3a7f30=fs[_0xaac1('0x6b')](path[_0xaac1('0x4e')](_0x30dadf,_0x230bf0[0x0]));if(_0x3a7f30[_0xaac1('0x39')]===0x0){removeReferences(_0x1b7458,_0x30dadf);logger[_0xaac1('0x2a')](_0xaac1('0x6c'));return _0x3e2c9f(new Error(_0xaac1('0x6c')));}var _0x2cf45f=_0x3a7f30[_0xaac1('0x6f')](function(_0x45cee0){return _0x45cee0==='manifest.json';});if(!_0x2cf45f){return _0x3e2c9f(new Error(_0xaac1('0x70')));}var _0x303deb=fs['readFileSync'](path['join'](_0x30dadf,_0x230bf0[0x0],_0xaac1('0x71')));var _0x3d67cb=JSON['parse'](_0x303deb);if(_0xaac1('0x21')==typeof _0x3d67cb[_0xaac1('0x2c')]){return _0x3e2c9f(new Error('Invalid\x20manifest:\x20name\x20missing'));}if('undefined'==typeof _0x3d67cb['type']){return _0x3e2c9f(new Error(_0xaac1('0x72')));}if('undefined'==typeof _0x3d67cb[_0xaac1('0x73')]){return _0x3e2c9f(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if(_0xaac1('0x21')==typeof _0x3d67cb[_0xaac1('0x74')]){return _0x3e2c9f(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x3d67cb[_0xaac1('0x31')]===_0xaac1('0x75')){if('undefined'==typeof _0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')]){return _0x3e2c9f(new Error(_0xaac1('0x77')));}if(_0xaac1('0x21')==typeof _0x3d67cb[_0xaac1('0x74')]['views'][_0xaac1('0x78')]&&_0xaac1('0x21')==typeof _0x3d67cb['parameters'][_0xaac1('0x76')]['agent']){return _0x3e2c9f(new Error(_0xaac1('0x79')));}}else if(_0x3d67cb[_0xaac1('0x31')]===_0xaac1('0x7a')){if(_0xaac1('0x21')==typeof _0x3d67cb[_0xaac1('0x74')][_0xaac1('0x7b')]){return _0x3e2c9f(new Error(_0xaac1('0x7c')));}if(_0xaac1('0x21')==typeof _0x3d67cb[_0xaac1('0x74')][_0xaac1('0x7d')]){return _0x3e2c9f(new Error(_0xaac1('0x7e')));}}else{return _0x3e2c9f(new Error(_0xaac1('0x7f')));}var _0x395a0b=_0x3d67cb[_0xaac1('0x2c')];var _0x1ce7af=_0x3d67cb['description'];var _0x28b0a6=_0x3d67cb[_0xaac1('0x31')];var _0x3d81c3=_0x3d67cb[_0xaac1('0x80')]?_0x3d67cb[_0xaac1('0x80')]:_0xaac1('0x81');var _0xa03201=_0x3d67cb[_0xaac1('0x82')]?_0x3d67cb['icon']:_0xaac1('0x83');var _0xc21a91='';var _0x2ce3e7='';var _0x3eb5c0='';var _0x59fa02='';var _0x37e202=_0x3d67cb[_0xaac1('0x73')];if(_0x28b0a6===_0xaac1('0x75')){if(_0xaac1('0x21')!=typeof _0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')][_0xaac1('0x78')]){var _0xdf410=_0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')][_0xaac1('0x78')];if(!/^(f|ht)tps?:\/\//i['test'](_0xdf410)){_0xc21a91=path[_0xaac1('0x4e')](_0xaac1('0x84'),_0x911076,_0x230bf0[0x0],_0xdf410);}else{_0xc21a91=_0xdf410;}}else{logger[_0xaac1('0x63')](_0xaac1('0x85'));}if(_0xaac1('0x21')!=typeof _0x3d67cb['parameters']['views'][_0xaac1('0x86')]){var _0x5bea42=_0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')][_0xaac1('0x86')];if(!/^(f|ht)tps?:\/\//i[_0xaac1('0x87')](_0x5bea42)){_0x2ce3e7=path[_0xaac1('0x4e')]('plugins',_0x911076,_0x230bf0[0x0],_0x5bea42);}else{_0x2ce3e7=_0x5bea42;}}else{logger[_0xaac1('0x63')](_0xaac1('0x88'));}}else if(_0x28b0a6===_0xaac1('0x7a')){_0x3eb5c0=_0x3d67cb[_0xaac1('0x74')]['scriptName'];_0x59fa02=_0x3d67cb['parameters']['scriptPath'];if(_0xaac1('0x21')!=typeof _0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')]){if(_0xaac1('0x21')!=typeof _0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')][_0xaac1('0x78')]){var _0xdf410=_0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')][_0xaac1('0x78')];if(!/^(f|ht)tps?:\/\//i[_0xaac1('0x87')](_0xdf410)){_0xc21a91=path['join'](_0xaac1('0x84'),_0x911076,_0x230bf0[0x0],_0xdf410);}else{_0xc21a91=_0xdf410;}}if(_0xaac1('0x21')!=typeof _0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')][_0xaac1('0x86')]){var _0x5bea42=_0x3d67cb[_0xaac1('0x74')][_0xaac1('0x76')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0xaac1('0x87')](_0x5bea42)){_0x2ce3e7=path[_0xaac1('0x4e')](_0xaac1('0x84'),_0x911076,_0x230bf0[0x0],_0x5bea42);}else{_0x2ce3e7=_0x5bea42;}}}}var _0x305898={'name':_0x395a0b,'description':_0x1ce7af,'path':path[_0xaac1('0x4e')](_0x911076,_0x230bf0[0x0]),'type':_0x28b0a6,'sidebar':_0x3d81c3,'icon':_0xa03201,'adminUrl':_0xc21a91,'agentUrl':_0x2ce3e7,'scriptName':_0x3eb5c0,'scriptPath':_0x59fa02,'version':_0x37e202};removeReferences(_0x1b7458,null);return db[_0xaac1('0x44')][_0xaac1('0x89')](_0x305898)[_0xaac1('0x26')](function(_0x864393){var _0x6af101={'role':_0x15ab0c[_0xaac1('0x8a')][_0xaac1('0x8b')],'userProfileId':_0x15ab0c[_0xaac1('0x8a')]['userProfileId']};if(!_0x6af101)throw new Error(_0xaac1('0x8c'));if(_0x6af101[_0xaac1('0x8b')]===_0xaac1('0x8d')){var _0xcfc87c=_0x864393['get']({'plain':!![]});return db[_0xaac1('0x8e')]['find']({'where':{'name':_0xaac1('0x8f'),'userProfileId':_0x6af101[_0xaac1('0x90')]},'raw':!![]})[_0xaac1('0x26')](function(_0x270eef){if(_0x270eef&&_0x270eef[_0xaac1('0x91')]===0x0){return db[_0xaac1('0x29')][_0xaac1('0x89')]({'name':_0xcfc87c[_0xaac1('0x2c')],'resourceId':_0xcfc87c['id'],'type':_0x270eef[_0xaac1('0x2c')],'sectionId':_0x270eef['id']},{})[_0xaac1('0x26')](function(){return _0x864393;});}else{return _0x864393;}})[_0xaac1('0x49')](function(_0x15d3d7){logger[_0xaac1('0x2a')](_0xaac1('0x92'),_0x15d3d7);throw _0x15d3d7;});}return _0x864393;})['then'](respondWithResult(_0x33259e,null))[_0xaac1('0x49')](handleError(_0x33259e,null));}});}catch(_0x209bfc){_0x33259e[_0xaac1('0x1d')](0x1f4)['send'](_0x209bfc);}};function removeReferences(_0xe13f0,_0x5b7788){try{if(_0xe13f0){fs[_0xaac1('0x93')](_0xe13f0);logger['info'](_0xaac1('0x94'));}if(_0x5b7788){rimraf(_0x5b7788,function(){});logger['info'](_0xaac1('0x95'));}}catch(_0x1763fb){logger[_0xaac1('0x2a')](_0x1763fb);}}exports[_0xaac1('0x96')]=function(_0x1ee9d8,_0x340782,_0x58f4ea){return db[_0xaac1('0x44')][_0xaac1('0x4c')]({'where':{'id':_0x1ee9d8['params']['id']}})[_0xaac1('0x26')](handleEntityNotFound(_0x340782,null))[_0xaac1('0x26')](saveUpdates(_0x1ee9d8[_0xaac1('0x8a')],null))[_0xaac1('0x26')](respondWithResult(_0x340782,null))[_0xaac1('0x49')](handleError(_0x340782,null));};exports[_0xaac1('0x97')]=function(_0x132564,_0x585868,_0x1b3cf6){return db[_0xaac1('0x44')][_0xaac1('0x4c')]({'where':{'id':_0x132564[_0xaac1('0x98')]['id']}})[_0xaac1('0x26')](function(_0x391e09){if(_0x391e09){return _0x391e09['destroy']();}})['then'](function(_0x278fe8){rimraf(path[_0xaac1('0x4e')](config['root'],'server/files/plugins',path[_0xaac1('0x99')](_0x278fe8[_0xaac1('0x4')])),function(){});return _0x278fe8;})[_0xaac1('0x26')](handleEntityNotFound(_0x585868,null))[_0xaac1('0x26')](respondWithStatusCode(_0x585868,null))[_0xaac1('0x49')](handleError(_0x585868,null));};exports[_0xaac1('0x9a')]=function(_0x594dcb,_0x7c75c1,_0x57ab90){return BPromise[_0xaac1('0x9b')]()[_0xaac1('0x26')](function(){if(!_0x594dcb[_0xaac1('0x33')][_0xaac1('0x4')]){throw new Error(_0xaac1('0x9c'));}if(!_0x594dcb[_0xaac1('0x33')][_0xaac1('0x9d')]){throw new Error(_0xaac1('0x9e'));}var _0x3a16c4=_0x594dcb[_0xaac1('0x33')][_0xaac1('0x9f')]?_0x594dcb[_0xaac1('0x33')]['hostname']+':'+_0x594dcb['query']['port']:_0xaac1('0xa0')+_0x594dcb[_0xaac1('0x33')]['port'];var _0x2ee470=_0x594dcb[_0xaac1('0x33')][_0xaac1('0x1f')]?_0x594dcb[_0xaac1('0x33')][_0xaac1('0x1f')]:!![];var _0x46ea5e=_0x594dcb[_0xaac1('0x33')][_0xaac1('0xa1')]?_0x594dcb[_0xaac1('0x33')][_0xaac1('0xa1')]:null;var _0x2cc0a2={'method':_0x594dcb[_0xaac1('0xa2')],'uri':util[_0xaac1('0x51')]('%s%s',_0x3a16c4,_0x594dcb[_0xaac1('0x33')][_0xaac1('0x4')]),'json':_0x2ee470,'resolveWithFullResponse':!![],'encoding':_0x46ea5e,'qs':_0x594dcb[_0xaac1('0x33')]};if(_0x594dcb[_0xaac1('0xa3')]){_0x2cc0a2[_0xaac1('0xa3')]=_0x594dcb[_0xaac1('0xa3')];if(_0x2cc0a2[_0xaac1('0xa3')]['content-length']){delete _0x2cc0a2[_0xaac1('0xa3')][_0xaac1('0xa4')];}}if(_0x2cc0a2[_0xaac1('0xa3')][_0xaac1('0xa5')]){delete _0x2cc0a2['headers'][_0xaac1('0xa5')];}return rp(_0x2cc0a2);})['then'](function(_0xa33327){if(_0xa33327){_0x7c75c1[_0xaac1('0xa6')](_0xa33327[_0xaac1('0xa3')]);logger[_0xaac1('0x63')](_0xa33327[_0xaac1('0x8a')]);if(_[_0xaac1('0xa7')](_0x594dcb[_0xaac1('0x33')][_0xaac1('0x4')],_0xaac1('0x4d'))&&_0xa33327[_0xaac1('0xa8')]==0x1f4){return _0x7c75c1[_0xaac1('0x1c')](_0xa33327[_0xaac1('0xa8')]);}else{return _0x7c75c1[_0xaac1('0x1d')](_0xa33327[_0xaac1('0xa8')])[_0xaac1('0x2d')](_0xa33327[_0xaac1('0x8a')]);}}else{return _0x7c75c1[_0xaac1('0x1c')](0xc8);}})[_0xaac1('0x49')](handleError(_0x7c75c1,null));};exports[_0xaac1('0xa9')]=function(_0x2ea151,_0x3912a3,_0x10dee7){return BPromise[_0xaac1('0x9b')]()[_0xaac1('0x26')](function(){if(!_0x2ea151[_0xaac1('0x33')]['path']){throw new Error(_0xaac1('0x9c'));}if(!_0x2ea151[_0xaac1('0x33')][_0xaac1('0x9d')]){throw new Error(_0xaac1('0x9e'));}var _0x58fbb8=_0x2ea151[_0xaac1('0x33')][_0xaac1('0x9f')]?_0x2ea151[_0xaac1('0x33')][_0xaac1('0x9f')]+':'+_0x2ea151[_0xaac1('0x33')][_0xaac1('0x9d')]:'http://localhost:'+_0x2ea151['query'][_0xaac1('0x9d')];var _0x542492=_0x2ea151['query'][_0xaac1('0x1f')]?_0x2ea151[_0xaac1('0x33')][_0xaac1('0x1f')]:!![];var _0x304aa0=_0x2ea151['query'][_0xaac1('0xa1')]?_0x2ea151[_0xaac1('0x33')][_0xaac1('0xa1')]:null;var _0x19e4d7={'method':_0x2ea151[_0xaac1('0xa2')],'uri':util[_0xaac1('0x51')](_0xaac1('0xaa'),_0x58fbb8,_0x2ea151['query'][_0xaac1('0x4')]),'json':_0x542492,'resolveWithFullResponse':!![],'encoding':_0x304aa0,'body':_0x2ea151[_0xaac1('0x8a')]};if(_0x2ea151['headers']){_0x19e4d7['headers']=_0x2ea151[_0xaac1('0xa3')];if(_0x19e4d7[_0xaac1('0xa3')]['content-length']){delete _0x19e4d7['headers']['content-length'];}}if(_0x19e4d7[_0xaac1('0xa3')][_0xaac1('0xa5')]){delete _0x19e4d7['headers'][_0xaac1('0xa5')];}return rp(_0x19e4d7);})[_0xaac1('0x26')](function(_0x3ac211){if(_0x3ac211){_0x3912a3[_0xaac1('0xa6')](_0x3ac211[_0xaac1('0xa3')]);logger[_0xaac1('0x63')](_0x3ac211[_0xaac1('0x8a')]);return _0x3912a3[_0xaac1('0x1d')](_0x3ac211[_0xaac1('0xa8')])[_0xaac1('0x2d')](_0x3ac211[_0xaac1('0x8a')]);}else{return _0x3912a3[_0xaac1('0x1c')](0xc8);}})['catch'](handleError(_0x3912a3,null));};