Built motion from commit (unavailable).|2.5.31
[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 _0x6b24=['save','update','then','get','Plugins','UserProfileResource','destroy','sendStatus','error','name','send','index','map','Plugin','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','order','where','pick','filter','options','findAll','rows','rawAttributes','includeAll','include','catch','download','find','params','path','join','server/files/plugins','%s.zip','basename','createWriteStream','zip','warning','code','Error\x20while\x20generating\x20the\x20zip\x20archive','Sequelize','Error','pipe','glob','**/*','root','node_modules/**/*','attachments/**/*','close','existsSync','Plugin\x20not\x20found','format','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','file','filename','extname','Plugin\x20upload\x20destination:\x20%s','0777','readdirSync','length','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','manifest.json','readFileSync','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','html','views','Invalid\x20manifest:\x20views\x20missing','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','description','sidebar','icon','icon-apps','admin','test','Warning:\x20admin\x20view\x20not\x20specified','plugins','Warning:\x20agent\x20view\x20not\x20specified','create','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','body','delete','dirname','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','headers','content-length','content-type','endsWith','statusCode','webhookPost','%s%s','rimraf','zip-dir','fast-json-patch','request-promise','util','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','extract-zip','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','status','end','json','offset','undefined','count','limit','set','Content-Range','apply'];(function(_0x1e9424,_0x191cba){var _0x1bd96c=function(_0x5e952d){while(--_0x5e952d){_0x1e9424['push'](_0x1e9424['shift']());}};_0x1bd96c(++_0x191cba);}(_0x6b24,0x1ce));var _0x46b2=function(_0x57111f,_0x2a7bde){_0x57111f=_0x57111f-0x0;var _0xe10f6f=_0x6b24[_0x57111f];return _0xe10f6f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x46b2('0x0'));var zipdir=require(_0x46b2('0x1'));var jsonpatch=require(_0x46b2('0x2'));var rp=require(_0x46b2('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x46b2('0x4'));var path=require('path');var sox=require(_0x46b2('0x5'));var csv=require('to-csv');var ejs=require(_0x46b2('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x46b2('0x7'));var crypto=require(_0x46b2('0x8'));var jsforce=require(_0x46b2('0x9'));var deskjs=require(_0x46b2('0xa'));var toCsv=require(_0x46b2('0xb'));var querystring=require(_0x46b2('0xc'));var Papa=require(_0x46b2('0xd'));var extract=require(_0x46b2('0xe'));var rimraf=require(_0x46b2('0x0'));var archiver=require('archiver');var Redis=require('ioredis');var authService=require(_0x46b2('0xf'));var qs=require(_0x46b2('0x10'));var as=require(_0x46b2('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x46b2('0x12'))(_0x46b2('0x13'));var utils=require(_0x46b2('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x46b2('0x15'));var db=require(_0x46b2('0x16'))['db'];config[_0x46b2('0x17')]=_[_0x46b2('0x18')](config[_0x46b2('0x17')],{'host':_0x46b2('0x19'),'port':0x18eb});var socket=require(_0x46b2('0x1a'))(new Redis(config[_0x46b2('0x17')]));require(_0x46b2('0x1b'))[_0x46b2('0x1c')](socket);function respondWithStatusCode(_0x563b05,_0x43e0d9){_0x43e0d9=_0x43e0d9||0xcc;return function(_0x5b49da){if(_0x5b49da){return _0x563b05['sendStatus'](_0x43e0d9);}return _0x563b05[_0x46b2('0x1d')](_0x43e0d9)[_0x46b2('0x1e')]();};}function respondWithResult(_0xe3d3d9,_0x3c62c6){_0x3c62c6=_0x3c62c6||0xc8;return function(_0x373c49){if(_0x373c49){return _0xe3d3d9[_0x46b2('0x1d')](_0x3c62c6)[_0x46b2('0x1f')](_0x373c49);}};}function respondWithFilteredResult(_0x5bd251,_0x316c39){return function(_0x57e403){if(_0x57e403){var _0x2fc246=typeof _0x316c39[_0x46b2('0x20')]===_0x46b2('0x21')&&typeof _0x316c39['limit']===_0x46b2('0x21');var _0x1c232f=_0x57e403[_0x46b2('0x22')];var _0x1e5c35=_0x2fc246?0x0:_0x316c39[_0x46b2('0x20')];var _0x321033=_0x2fc246?_0x57e403[_0x46b2('0x22')]:_0x316c39[_0x46b2('0x20')]+_0x316c39[_0x46b2('0x23')];var _0x259f2f;if(_0x321033>=_0x1c232f){_0x321033=_0x1c232f;_0x259f2f=0xc8;}else{_0x259f2f=0xce;}_0x5bd251[_0x46b2('0x1d')](_0x259f2f);return _0x5bd251[_0x46b2('0x24')](_0x46b2('0x25'),_0x1e5c35+'-'+_0x321033+'/'+_0x1c232f)[_0x46b2('0x1f')](_0x57e403);}return null;};}function patchUpdates(_0x1caa77){return function(_0x50011b){try{jsonpatch[_0x46b2('0x26')](_0x50011b,_0x1caa77,!![]);}catch(_0x4c2983){return BPromise['reject'](_0x4c2983);}return _0x50011b[_0x46b2('0x27')]();};}function saveUpdates(_0x310a77,_0x4277e4){return function(_0x134526){if(_0x134526){return _0x134526[_0x46b2('0x28')](_0x310a77)['then'](function(_0x95d2cf){return _0x95d2cf;});}return null;};}function removeEntity(_0x138f6c,_0x5ca1c7){return function(_0x3c5997){if(_0x3c5997){return _0x3c5997['destroy']()[_0x46b2('0x29')](function(){var _0xf8e785=_0x3c5997[_0x46b2('0x2a')]({'plain':!![]});var _0x150a8b=_0x46b2('0x2b');return db[_0x46b2('0x2c')][_0x46b2('0x2d')]({'where':{'type':_0x150a8b,'resourceId':_0xf8e785['id']}})[_0x46b2('0x29')](function(){return _0x3c5997;});})[_0x46b2('0x29')](function(){_0x138f6c[_0x46b2('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e2a9b,_0x4dcee5){return function(_0x2c619b){if(!_0x2c619b){_0x4e2a9b[_0x46b2('0x2e')](0x194);}return _0x2c619b;};}function handleError(_0x2a2f8d,_0x58fd96){_0x58fd96=_0x58fd96||0x1f4;return function(_0x3ae316){logger[_0x46b2('0x2f')](_0x3ae316['stack']);if(_0x3ae316[_0x46b2('0x30')]){delete _0x3ae316[_0x46b2('0x30')];}_0x2a2f8d[_0x46b2('0x1d')](_0x58fd96)[_0x46b2('0x31')](_0x3ae316);};}exports[_0x46b2('0x32')]=function(_0x3341df,_0x36a746){var _0x15eabd={},_0x428ce3={},_0x50825a={'count':0x0,'rows':[]};var _0x293310=_[_0x46b2('0x33')](db[_0x46b2('0x34')]['rawAttributes'],function(_0x6af9d2){return{'name':_0x6af9d2[_0x46b2('0x35')],'type':_0x6af9d2[_0x46b2('0x36')][_0x46b2('0x37')]};});_0x428ce3['model']=_[_0x46b2('0x33')](_0x293310,'name');_0x428ce3[_0x46b2('0x38')]=_[_0x46b2('0x39')](_0x3341df[_0x46b2('0x38')]);_0x428ce3[_0x46b2('0x3a')]=_[_0x46b2('0x3b')](_0x428ce3[_0x46b2('0x3c')],_0x428ce3[_0x46b2('0x38')]);_0x15eabd['attributes']=_[_0x46b2('0x3b')](_0x428ce3[_0x46b2('0x3c')],qs[_0x46b2('0x3d')](_0x3341df[_0x46b2('0x38')][_0x46b2('0x3d')]));_0x15eabd[_0x46b2('0x3e')]=_0x15eabd[_0x46b2('0x3e')]['length']?_0x15eabd['attributes']:_0x428ce3['model'];if(!_0x3341df[_0x46b2('0x38')][_0x46b2('0x3f')]('nolimit')){_0x15eabd[_0x46b2('0x23')]=qs['limit'](_0x3341df['query'][_0x46b2('0x23')]);_0x15eabd[_0x46b2('0x20')]=qs[_0x46b2('0x20')](_0x3341df[_0x46b2('0x38')]['offset']);}_0x15eabd[_0x46b2('0x40')]=qs['sort'](_0x3341df['query']['sort']);_0x15eabd[_0x46b2('0x41')]=qs[_0x46b2('0x3a')](_[_0x46b2('0x42')](_0x3341df['query'],_0x428ce3[_0x46b2('0x3a')]),_0x293310);if(_0x3341df['query'][_0x46b2('0x43')]){_0x15eabd[_0x46b2('0x41')]=_['merge'](_0x15eabd[_0x46b2('0x41')],{'$or':_['map'](_0x293310,function(_0x49466a){if(_0x49466a[_0x46b2('0x36')]!=='VIRTUAL'){var _0x22c896={};_0x22c896[_0x49466a[_0x46b2('0x30')]]={'$like':'%'+_0x3341df[_0x46b2('0x38')][_0x46b2('0x43')]+'%'};return _0x22c896;}})});}_0x15eabd=_['merge']({},_0x15eabd,_0x3341df[_0x46b2('0x44')]);var _0x13343e={'where':_0x15eabd[_0x46b2('0x41')]};return db['Plugin']['count'](_0x13343e)[_0x46b2('0x29')](function(_0x1b3867){_0x50825a[_0x46b2('0x22')]=_0x1b3867;if(_0x3341df[_0x46b2('0x38')]['includeAll']){_0x15eabd['include']=[{'all':!![]}];}return db[_0x46b2('0x34')][_0x46b2('0x45')](_0x15eabd);})[_0x46b2('0x29')](function(_0x46ebfc){_0x50825a[_0x46b2('0x46')]=_0x46ebfc;return _0x50825a;})[_0x46b2('0x29')](respondWithFilteredResult(_0x36a746,_0x15eabd))['catch'](handleError(_0x36a746,null));};exports['show']=function(_0x39a45c,_0x2205bc){var _0x21efe8={'raw':!![],'where':{'id':_0x39a45c['params']['id']}},_0x435e55={};_0x435e55[_0x46b2('0x3c')]=_[_0x46b2('0x39')](db[_0x46b2('0x34')][_0x46b2('0x47')]);_0x435e55['query']=_[_0x46b2('0x39')](_0x39a45c[_0x46b2('0x38')]);_0x435e55[_0x46b2('0x3a')]=_[_0x46b2('0x3b')](_0x435e55[_0x46b2('0x3c')],_0x435e55[_0x46b2('0x38')]);_0x21efe8[_0x46b2('0x3e')]=_['intersection'](_0x435e55[_0x46b2('0x3c')],qs[_0x46b2('0x3d')](_0x39a45c['query'][_0x46b2('0x3d')]));_0x21efe8['attributes']=_0x21efe8[_0x46b2('0x3e')]['length']?_0x21efe8[_0x46b2('0x3e')]:_0x435e55[_0x46b2('0x3c')];if(_0x39a45c['query'][_0x46b2('0x48')]){_0x21efe8[_0x46b2('0x49')]=[{'all':!![]}];}_0x21efe8=_['merge']({},_0x21efe8,_0x39a45c['options']);return db[_0x46b2('0x34')]['find'](_0x21efe8)[_0x46b2('0x29')](handleEntityNotFound(_0x2205bc,null))['then'](respondWithResult(_0x2205bc,null))[_0x46b2('0x4a')](handleError(_0x2205bc,null));};exports[_0x46b2('0x4b')]=function(_0x124516,_0x1fc13c,_0x27a9cf){return db[_0x46b2('0x34')][_0x46b2('0x4c')]({'where':{'id':_0x124516[_0x46b2('0x4d')]['id']},'attributes':[_0x46b2('0x30'),_0x46b2('0x4e')],'raw':!![]})[_0x46b2('0x29')](handleEntityNotFound(_0x1fc13c,null))[_0x46b2('0x29')](function(_0x4ee758){if(_0x4ee758){var _0x229c3e=path[_0x46b2('0x4f')](config['root'],_0x46b2('0x50'),util['format'](_0x46b2('0x51'),path[_0x46b2('0x52')](_0x4ee758[_0x46b2('0x4e')])));var _0xf07804=fs[_0x46b2('0x53')](_0x229c3e);var _0x24b174=archiver(_0x46b2('0x54'),{'zlib':{'level':0x9}});_0x24b174['on'](_0x46b2('0x55'),function(_0x2dce5b){if(_0x2dce5b[_0x46b2('0x56')]==='ENOENT'){logger[_0x46b2('0x2f')](_0x2dce5b);}else{throw new db['Sequelize']['Error'](_0x46b2('0x57'));}});_0x24b174['on'](_0x46b2('0x2f'),function(_0x510719){throw new db[(_0x46b2('0x58'))][(_0x46b2('0x59'))](_0x46b2('0x57'));});_0x24b174[_0x46b2('0x5a')](_0xf07804);_0x24b174[_0x46b2('0x5b')](_0x46b2('0x5c'),{'cwd':path[_0x46b2('0x4f')](config[_0x46b2('0x5d')],_0x46b2('0x50'),path['dirname'](_0x4ee758[_0x46b2('0x4e')])),'ignore':[path[_0x46b2('0x4f')](path[_0x46b2('0x52')](_0x4ee758[_0x46b2('0x4e')]),_0x46b2('0x5e')),path[_0x46b2('0x4f')](path['basename'](_0x4ee758[_0x46b2('0x4e')]),_0x46b2('0x5f'))],'nodir':!![]})['finalize']();_0xf07804['on'](_0x46b2('0x60'),function(){if(!fs[_0x46b2('0x61')](_0x229c3e)){throw new db['Sequelize']['Error'](_0x46b2('0x62'));}return _0x1fc13c[_0x46b2('0x4b')](_0x229c3e,util[_0x46b2('0x63')]('%s.zip',path['basename'](_0x4ee758[_0x46b2('0x4e')])),function(_0xfd511f){if(_0xfd511f){throw new db[(_0x46b2('0x58'))]['Error'](_0x46b2('0x64'));}fs[_0x46b2('0x65')](_0x229c3e);logger[_0x46b2('0x66')](_0x46b2('0x67'));logger[_0x46b2('0x66')](_0x46b2('0x68'));});});}return null;})['catch'](handleError(_0x1fc13c,null));};exports['upload']=function(_0x18280e,_0x47ea50,_0x18bf28){var _0x121c73=path[_0x46b2('0x52')](_0x18280e[_0x46b2('0x69')][_0x46b2('0x6a')],path[_0x46b2('0x6b')](_0x18280e[_0x46b2('0x69')][_0x46b2('0x6a')]));var _0x3e9d7b=path[_0x46b2('0x4f')](config[_0x46b2('0x5d')],'server/files/plugins',_0x18280e[_0x46b2('0x69')][_0x46b2('0x6a')]);var _0x11e778=path['join'](config['root'],_0x46b2('0x50'),_0x121c73);logger[_0x46b2('0x66')]('Plugin\x20upload\x20filepath:\x20%s',_0x3e9d7b);logger[_0x46b2('0x66')](_0x46b2('0x6c'),_0x11e778);try{fs['chmodSync'](_0x3e9d7b,parseInt(_0x46b2('0x6d'),0x8));extract(_0x3e9d7b,{'dir':_0x11e778},function(_0x56f179){if(_0x56f179){logger[_0x46b2('0x2f')](_0x56f179);handleError(_0x56f179,!![]);};var _0xb40ed4=fs[_0x46b2('0x6e')](_0x11e778);if(_0xb40ed4[_0x46b2('0x6f')]>0x1){removeReferences(_0x3e9d7b,_0x11e778);logger[_0x46b2('0x2f')](_0x46b2('0x70'));return _0x18bf28(new Error('Invalid\x20plugin\x20structure'));}var _0x400262=fs[_0x46b2('0x71')](path[_0x46b2('0x4f')](_0x11e778,_0xb40ed4[0x0]));if(_0x400262[_0x46b2('0x72')]()){removeReferences(_0x3e9d7b,_0x11e778);logger[_0x46b2('0x2f')](_0x46b2('0x70'));return _0x18bf28(new Error(_0x46b2('0x70')));}if(_0x400262[_0x46b2('0x73')]()){var _0x559246=fs[_0x46b2('0x6e')](path['join'](_0x11e778,_0xb40ed4[0x0]));if(_0x559246['length']===0x0){removeReferences(_0x3e9d7b,_0x11e778);logger['error'](_0x46b2('0x70'));return _0x18bf28(new Error(_0x46b2('0x70')));}var _0x139444=_0x559246['some'](function(_0x2f2ee7){return _0x2f2ee7===_0x46b2('0x74');});if(!_0x139444){return _0x18bf28(new Error('Plugin\x20manifest\x20missing'));}var _0x10e060=fs[_0x46b2('0x75')](path[_0x46b2('0x4f')](_0x11e778,_0xb40ed4[0x0],'manifest.json'));var _0x4e310a=JSON['parse'](_0x10e060);if('undefined'==typeof _0x4e310a[_0x46b2('0x30')]){return _0x18bf28(new Error('Invalid\x20manifest:\x20name\x20missing'));}if(_0x46b2('0x21')==typeof _0x4e310a[_0x46b2('0x36')]){return _0x18bf28(new Error(_0x46b2('0x76')));}if('undefined'==typeof _0x4e310a[_0x46b2('0x77')]){return _0x18bf28(new Error(_0x46b2('0x78')));}if(_0x46b2('0x21')==typeof _0x4e310a[_0x46b2('0x79')]){return _0x18bf28(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x4e310a['type']===_0x46b2('0x7a')){if(_0x46b2('0x21')==typeof _0x4e310a['parameters'][_0x46b2('0x7b')]){return _0x18bf28(new Error(_0x46b2('0x7c')));}if('undefined'==typeof _0x4e310a[_0x46b2('0x79')]['views']['admin']&&_0x46b2('0x21')==typeof _0x4e310a[_0x46b2('0x79')]['views'][_0x46b2('0x7d')]){return _0x18bf28(new Error(_0x46b2('0x7e')));}}else if(_0x4e310a[_0x46b2('0x36')]===_0x46b2('0x7f')){if(_0x46b2('0x21')==typeof _0x4e310a[_0x46b2('0x79')][_0x46b2('0x80')]){return _0x18bf28(new Error(_0x46b2('0x81')));}if(_0x46b2('0x21')==typeof _0x4e310a[_0x46b2('0x79')][_0x46b2('0x82')]){return _0x18bf28(new Error(_0x46b2('0x83')));}}else{return _0x18bf28(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0x2412cc=_0x4e310a[_0x46b2('0x30')];var _0x4b7c07=_0x4e310a[_0x46b2('0x84')];var _0x134757=_0x4e310a[_0x46b2('0x36')];var _0x220c1=_0x4e310a[_0x46b2('0x85')]?_0x4e310a[_0x46b2('0x85')]:'always';var _0x151dc6=_0x4e310a[_0x46b2('0x86')]?_0x4e310a[_0x46b2('0x86')]:_0x46b2('0x87');var _0x5a8713='';var _0x5a729c='';var _0x551787='';var _0x2508e8='';var _0x232339=_0x4e310a['version'];if(_0x134757===_0x46b2('0x7a')){if('undefined'!=typeof _0x4e310a['parameters'][_0x46b2('0x7b')][_0x46b2('0x88')]){var _0x23aa91=_0x4e310a[_0x46b2('0x79')][_0x46b2('0x7b')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0x46b2('0x89')](_0x23aa91)){_0x5a8713=path[_0x46b2('0x4f')]('plugins',_0x121c73,_0xb40ed4[0x0],_0x23aa91);}else{_0x5a8713=_0x23aa91;}}else{logger[_0x46b2('0x66')](_0x46b2('0x8a'));}if(_0x46b2('0x21')!=typeof _0x4e310a[_0x46b2('0x79')][_0x46b2('0x7b')][_0x46b2('0x7d')]){var _0xb6df84=_0x4e310a[_0x46b2('0x79')][_0x46b2('0x7b')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0x46b2('0x89')](_0xb6df84)){_0x5a729c=path[_0x46b2('0x4f')](_0x46b2('0x8b'),_0x121c73,_0xb40ed4[0x0],_0xb6df84);}else{_0x5a729c=_0xb6df84;}}else{logger['info'](_0x46b2('0x8c'));}}else if(_0x134757==='script'){_0x551787=_0x4e310a['parameters'][_0x46b2('0x80')];_0x2508e8=_0x4e310a[_0x46b2('0x79')][_0x46b2('0x82')];if(_0x46b2('0x21')!=typeof _0x4e310a[_0x46b2('0x79')][_0x46b2('0x7b')]){if(_0x46b2('0x21')!=typeof _0x4e310a[_0x46b2('0x79')][_0x46b2('0x7b')][_0x46b2('0x88')]){var _0x23aa91=_0x4e310a[_0x46b2('0x79')][_0x46b2('0x7b')][_0x46b2('0x88')];if(!/^(f|ht)tps?:\/\//i[_0x46b2('0x89')](_0x23aa91)){_0x5a8713=path[_0x46b2('0x4f')](_0x46b2('0x8b'),_0x121c73,_0xb40ed4[0x0],_0x23aa91);}else{_0x5a8713=_0x23aa91;}}if(_0x46b2('0x21')!=typeof _0x4e310a[_0x46b2('0x79')]['views'][_0x46b2('0x7d')]){var _0xb6df84=_0x4e310a['parameters'][_0x46b2('0x7b')][_0x46b2('0x7d')];if(!/^(f|ht)tps?:\/\//i['test'](_0xb6df84)){_0x5a729c=path['join'](_0x46b2('0x8b'),_0x121c73,_0xb40ed4[0x0],_0xb6df84);}else{_0x5a729c=_0xb6df84;}}}}var _0x3488bd={'name':_0x2412cc,'description':_0x4b7c07,'path':path[_0x46b2('0x4f')](_0x121c73,_0xb40ed4[0x0]),'type':_0x134757,'sidebar':_0x220c1,'icon':_0x151dc6,'adminUrl':_0x5a8713,'agentUrl':_0x5a729c,'scriptName':_0x551787,'scriptPath':_0x2508e8,'version':_0x232339};removeReferences(_0x3e9d7b,null);return db['Plugin'][_0x46b2('0x8d')](_0x3488bd)[_0x46b2('0x29')](function(_0x32fad3){var _0x1cd762={'role':_0x18280e['body'][_0x46b2('0x8e')],'userProfileId':_0x18280e['body']['userProfileId']};if(!_0x1cd762)throw new Error(_0x46b2('0x8f'));if(_0x1cd762['role']==='user'){var _0x47c626=_0x32fad3['get']({'plain':!![]});return db['UserProfileSection'][_0x46b2('0x4c')]({'where':{'name':'Plugins','userProfileId':_0x1cd762[_0x46b2('0x90')]},'raw':!![]})['then'](function(_0x1e70fb){if(_0x1e70fb&&_0x1e70fb['autoAssociation']===0x0){return db[_0x46b2('0x2c')][_0x46b2('0x8d')]({'name':_0x47c626[_0x46b2('0x30')],'resourceId':_0x47c626['id'],'type':_0x1e70fb['name'],'sectionId':_0x1e70fb['id']},{})['then'](function(){return _0x32fad3;});}else{return _0x32fad3;}})[_0x46b2('0x4a')](function(_0x10b136){logger[_0x46b2('0x2f')](_0x46b2('0x91'),_0x10b136);throw _0x10b136;});}return _0x32fad3;})[_0x46b2('0x29')](respondWithResult(_0x47ea50,null))[_0x46b2('0x4a')](handleError(_0x47ea50,null));}});}catch(_0x1975e8){_0x47ea50[_0x46b2('0x1d')](0x1f4)[_0x46b2('0x31')](_0x1975e8);}};function removeReferences(_0x1dd4d1,_0x11b643){try{if(_0x1dd4d1){fs[_0x46b2('0x65')](_0x1dd4d1);logger[_0x46b2('0x66')](_0x46b2('0x92'));}if(_0x11b643){rimraf(_0x11b643,function(){});logger[_0x46b2('0x66')](_0x46b2('0x93'));}}catch(_0x356764){logger['error'](_0x356764);}}exports[_0x46b2('0x28')]=function(_0xbc9357,_0x258f5f,_0x1bbd86){return db['Plugin'][_0x46b2('0x4c')]({'where':{'id':_0xbc9357[_0x46b2('0x4d')]['id']}})['then'](handleEntityNotFound(_0x258f5f,null))['then'](saveUpdates(_0xbc9357[_0x46b2('0x94')],null))[_0x46b2('0x29')](respondWithResult(_0x258f5f,null))[_0x46b2('0x4a')](handleError(_0x258f5f,null));};exports[_0x46b2('0x95')]=function(_0x526b8a,_0x185693,_0x22aa93){return db[_0x46b2('0x34')][_0x46b2('0x4c')]({'where':{'id':_0x526b8a[_0x46b2('0x4d')]['id']}})[_0x46b2('0x29')](function(_0x172573){if(_0x172573){return _0x172573[_0x46b2('0x2d')]();}})[_0x46b2('0x29')](function(_0x41f49f){rimraf(path[_0x46b2('0x4f')](config['root'],_0x46b2('0x50'),path[_0x46b2('0x96')](_0x41f49f[_0x46b2('0x4e')])),function(){});return _0x41f49f;})['then'](handleEntityNotFound(_0x185693,null))['then'](respondWithStatusCode(_0x185693,null))[_0x46b2('0x4a')](handleError(_0x185693,null));};exports[_0x46b2('0x97')]=function(_0x95f001,_0x55402c,_0xe4efb7){return BPromise[_0x46b2('0x98')]()[_0x46b2('0x29')](function(){if(!_0x95f001['query']['path']){throw new Error(_0x46b2('0x99'));}if(!_0x95f001['query'][_0x46b2('0x9a')]){throw new Error(_0x46b2('0x9b'));}var _0x5903e0=_0x95f001['query'][_0x46b2('0x9c')]?_0x95f001[_0x46b2('0x38')][_0x46b2('0x9c')]+':'+_0x95f001[_0x46b2('0x38')]['port']:_0x46b2('0x9d')+_0x95f001[_0x46b2('0x38')][_0x46b2('0x9a')];var _0x47a63e=_0x95f001[_0x46b2('0x38')]['json']?_0x95f001[_0x46b2('0x38')][_0x46b2('0x1f')]:!![];var _0x3a0887=_0x95f001[_0x46b2('0x38')][_0x46b2('0x9e')]?_0x95f001[_0x46b2('0x38')][_0x46b2('0x9e')]:null;var _0x29504a={'method':_0x95f001[_0x46b2('0x9f')],'uri':util[_0x46b2('0x63')]('%s%s',_0x5903e0,_0x95f001[_0x46b2('0x38')][_0x46b2('0x4e')]),'json':_0x47a63e,'resolveWithFullResponse':!![],'encoding':_0x3a0887,'qs':_0x95f001[_0x46b2('0x38')]};if(_0x95f001[_0x46b2('0xa0')]){_0x29504a[_0x46b2('0xa0')]=_0x95f001[_0x46b2('0xa0')];if(_0x29504a[_0x46b2('0xa0')][_0x46b2('0xa1')]){delete _0x29504a[_0x46b2('0xa0')][_0x46b2('0xa1')];}}if(_0x29504a[_0x46b2('0xa0')]['content-type']){delete _0x29504a[_0x46b2('0xa0')][_0x46b2('0xa2')];}return rp(_0x29504a);})['then'](function(_0xa4bc){if(_0xa4bc){_0x55402c['set'](_0xa4bc[_0x46b2('0xa0')]);logger[_0x46b2('0x66')](_0xa4bc[_0x46b2('0x94')]);if(_[_0x46b2('0xa3')](_0x95f001[_0x46b2('0x38')][_0x46b2('0x4e')],'download')&&_0xa4bc['statusCode']==0x1f4){return _0x55402c[_0x46b2('0x2e')](_0xa4bc[_0x46b2('0xa4')]);}else{return _0x55402c[_0x46b2('0x1d')](_0xa4bc[_0x46b2('0xa4')])[_0x46b2('0x31')](_0xa4bc['body']);}}else{return _0x55402c[_0x46b2('0x2e')](0xc8);}})[_0x46b2('0x4a')](handleError(_0x55402c,null));};exports[_0x46b2('0xa5')]=function(_0x28c1a2,_0x49f3ed,_0x50a588){return BPromise['resolve']()[_0x46b2('0x29')](function(){if(!_0x28c1a2[_0x46b2('0x38')]['path']){throw new Error(_0x46b2('0x99'));}if(!_0x28c1a2[_0x46b2('0x38')]['port']){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x1e24fc=_0x28c1a2[_0x46b2('0x38')][_0x46b2('0x9c')]?_0x28c1a2[_0x46b2('0x38')][_0x46b2('0x9c')]+':'+_0x28c1a2['query'][_0x46b2('0x9a')]:'http://localhost:'+_0x28c1a2[_0x46b2('0x38')][_0x46b2('0x9a')];var _0x519bda=_0x28c1a2[_0x46b2('0x38')][_0x46b2('0x1f')]?_0x28c1a2['query'][_0x46b2('0x1f')]:!![];var _0xebc8dd=_0x28c1a2[_0x46b2('0x38')][_0x46b2('0x9e')]?_0x28c1a2[_0x46b2('0x38')][_0x46b2('0x9e')]:null;var _0x57e09a={'method':_0x28c1a2[_0x46b2('0x9f')],'uri':util[_0x46b2('0x63')](_0x46b2('0xa6'),_0x1e24fc,_0x28c1a2[_0x46b2('0x38')][_0x46b2('0x4e')]),'json':_0x519bda,'resolveWithFullResponse':!![],'encoding':_0xebc8dd,'body':_0x28c1a2['body']};if(_0x28c1a2['headers']){_0x57e09a['headers']=_0x28c1a2[_0x46b2('0xa0')];if(_0x57e09a[_0x46b2('0xa0')][_0x46b2('0xa1')]){delete _0x57e09a[_0x46b2('0xa0')][_0x46b2('0xa1')];}}if(_0x57e09a[_0x46b2('0xa0')][_0x46b2('0xa2')]){delete _0x57e09a['headers'][_0x46b2('0xa2')];}return rp(_0x57e09a);})[_0x46b2('0x29')](function(_0x14b311){if(_0x14b311){_0x49f3ed[_0x46b2('0x24')](_0x14b311[_0x46b2('0xa0')]);logger['info'](_0x14b311[_0x46b2('0x94')]);return _0x49f3ed[_0x46b2('0x1d')](_0x14b311[_0x46b2('0xa4')])[_0x46b2('0x31')](_0x14b311[_0x46b2('0x94')]);}else{return _0x49f3ed['sendStatus'](0xc8);}})['catch'](handleError(_0x49f3ed,null));};