Built motion from commit f8768ebe.|2.6.15
[motion2.git] / server / components / import / cm / csv.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 _0x419a=['VoiceQueue','Campaign','CampaignId','BlackLists','generalCheckHopper','emit','contact:csv_','resume','resolve','exit','SIGINT','info','createReadStream','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','util','lodash','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','redis','localhost','register','argv','undefined','Missing\x20filepath\x20parameter!','null','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','error','contact','index','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','length','find','duplicate','CmContact','keys','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','into','cm_hopper','fromQuery','scheduledAt','ContactId','createdAt','updatedAt','select','field','toString','NOW()','from','cm_contacts','deletedAt\x20IS\x20NULL','where','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','insert','id\x20IN\x20?','calleridnum','cm_hopper_final','str','cm_hopper_black','findAll','outbound','dialCheckDuplicateType','CmList','Lists','get','always','sequelize','query','VoiceQueueId','onlyIfOpen','then','all'];(function(_0x5c2b3a,_0x1152a6){var _0x5b2abf=function(_0x158126){while(--_0x158126){_0x5c2b3a['push'](_0x5c2b3a['shift']());}};_0x5b2abf(++_0x1152a6);}(_0x419a,0x1c0));var _0xa419=function(_0x4e4fe0,_0x52a224){_0x4e4fe0=_0x4e4fe0-0x0;var _0x59e725=_0x419a[_0x4e4fe0];return _0x59e725;};'use strict';var BPromise=require('bluebird');var util=require(_0xa419('0x0'));var _=require(_0xa419('0x1'));var fs=require('fs');var squel=require(_0xa419('0x2'));var Papa=require(_0xa419('0x3'));var Redis=require(_0xa419('0x4'));var db=require(_0xa419('0x5'))['db'];var config=require(_0xa419('0x6'));var logger=require(_0xa419('0x7'))('api');config['redis']=_['defaults'](config[_0xa419('0x8')],{'host':_0xa419('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa419('0x8')]));require('../../../api/cmContact/cmContact.socket')[_0xa419('0xa')](socket);try{if(!process[_0xa419('0xb')][0x2]||process[_0xa419('0xb')][0x2]===_0xa419('0xc')||process['argv'][0x2]==='null'){throw new Error(_0xa419('0xd'));}var FILEPATH=process['argv'][0x2];if(!process[_0xa419('0xb')][0x3]||process[_0xa419('0xb')][0x3]==='undefined'||process[_0xa419('0xb')][0x3]===_0xa419('0xe')||!process[_0xa419('0xb')][0x4]||process[_0xa419('0xb')][0x4]===_0xa419('0xc')||process['argv'][0x4]===_0xa419('0xe')){throw new Error(_0xa419('0xf'));}var FIELDS=_[_0xa419('0x10')](process[_0xa419('0xb')][0x3]['split'](','),process[_0xa419('0xb')][0x4][_0xa419('0x11')](','));if(!process[_0xa419('0xb')][0x5]||process[_0xa419('0xb')][0x5]===_0xa419('0xc')||process[_0xa419('0xb')][0x5]===_0xa419('0xe')){throw new Error(_0xa419('0x12'));}var LISTID=process[_0xa419('0xb')][0x5];var COMPANYID=process[_0xa419('0xb')][0x6]&&process[_0xa419('0xb')][0x6]!==_0xa419('0xc')&&process[_0xa419('0xb')][0x6]!=='null'?process['argv'][0x6]:null;var DUPLICATES=process[_0xa419('0xb')][0x7]&&process[_0xa419('0xb')][0x7]!==_0xa419('0xc')&&process[_0xa419('0xb')][0x7]!==_0xa419('0xe')?process['argv'][0x7]:null;if(!process[_0xa419('0xb')][0x8]||process[_0xa419('0xb')][0x8]===_0xa419('0xc')||process[_0xa419('0xb')][0x8]==='null'){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0xa419('0xb')][0x8];}catch(_0xda1e72){logger[_0xa419('0x13')](_0xda1e72);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x2d6a88,_0x5c0b7b,_0x28d32d,_0x2d1fff){var _0x26935c={'message':_0x5c0b7b};_0x26935c[_0x2d6a88]=!![];if(_0x28d32d){_0x26935c[_0xa419('0x14')]=_0x28d32d;}if(_0x2d1fff){_0x26935c[_0xa419('0x15')]=_0x2d1fff;}return _0x26935c;}function isEmail(_0x41bf63){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/['test'](_0x41bf63);}function checkRow(_0x4f6298,_0x7896c,_0xd91db0){return new BPromise(function(_0x464913,_0x25eb06){if(_[_0xa419('0x16')](_0x4f6298)){return _0x25eb06(handleCheckRowError(_0xa419('0x13'),_0xa419('0x17'),null,_0xd91db0));}if(_0x4f6298[_0xa419('0x18')]&&_0x4f6298[_0xa419('0x18')]['length']){var _0xb64143=_[_0xa419('0x19')](_0x4f6298[_0xa419('0x18')],_0xa419('0x1a'))[_0xa419('0x1b')](';');return _0x25eb06(handleCheckRowError('error',_0xb64143,null,_0xd91db0));}var _0x54f183={};for(var _0x997939 in FIELDS){if(FIELDS[_0xa419('0x1c')](_0x997939)&&FIELDS[_0x997939]){_0x54f183[_0x997939]=_0x4f6298[_0xa419('0x1d')][0x0][FIELDS[_0x997939]]||_0x4f6298['data'][0x0]['\ufeff'+FIELDS[_0x997939]];}}if(!_0x54f183[_0xa419('0x1e')]){return _0x25eb06(handleCheckRowError(_0xa419('0x13'),_0xa419('0x1f'),null,_0xd91db0));}if(!_0x54f183[_0xa419('0x20')]){return _0x25eb06(handleCheckRowError(_0xa419('0x13'),_0xa419('0x21'),null,_0xd91db0));}if(_0x54f183[_0xa419('0x22')]){var _0x2f3b86=moment(_0x54f183[_0xa419('0x22')],_0xa419('0x23'));if(!_0x2f3b86[_0xa419('0x24')]()){return _0x25eb06(handleCheckRowError(_0xa419('0x13'),'birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0xd91db0));}}if(_0x54f183['email']){if(!isEmail(_0x54f183[_0xa419('0x25')])){return _0x25eb06(handleCheckRowError(_0xa419('0x13'),_0xa419('0x26'),null,_0xd91db0));}}_0x54f183[_0xa419('0x27')]=LISTID;_0x54f183[_0xa419('0x28')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xa419('0x29')]&&_0x7896c){var _0x418e60={};for(var _0x204ea0=0x0,_0x1cf874=DUPLICATES[_0xa419('0x29')];_0x204ea0<_0x1cf874;_0x204ea0+=0x1){_0x418e60[DUPLICATES[_0x204ea0]]=_0x54f183[DUPLICATES[_0x204ea0]];}var _0x316978=_[_0xa419('0x2a')](_0x7896c,_0x418e60);if(_0x316978){return _0x25eb06(handleCheckRowError(_0xa419('0x2b'),'Duplicate\x20Contact',_0x316978,_0xd91db0));}}return db[_0xa419('0x2c')]['create'](_0x54f183,{'raw':!![],'hooks':![],'fields':_[_0xa419('0x2d')](_0x54f183)})['then'](function(_0x11a457){if(DUPLICATES&&DUPLICATES['length']&&_0x7896c){_0x7896c[_0xa419('0x2e')](_[_0xa419('0x2f')](_0x54f183,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x11a457['id'];return _0x464913();})[_0xa419('0x30')](function(_0x1bb372){return _0x25eb06(handleCheckRowError(_0xa419('0x13'),_0xa419('0x31')+(_0x1bb372['message']||JSON[_0xa419('0x32')](_0x1bb372)),null,_0xd91db0));});});}function checkHopper(){function _0x162c91(){return function(_0x520a95){logger['error'](_0xa419('0x33'),_0xa419('0x34'),util[_0xa419('0x35')](_0x520a95,{'showHidden':![],'depth':null}));};}var _0xd14e1=function(_0x26af13,_0x1067e6){var _0x457d3f=squel['insert']()[_0xa419('0x36')](_0xa419('0x37'))[_0xa419('0x38')]([_0xa419('0x20'),_0xa419('0x39'),_0xa419('0x3a'),_0xa419('0x27'),_0x1067e6,_0xa419('0x3b'),_0xa419('0x3c')],squel[_0xa419('0x3d')]()['field']('phone',_0xa419('0x20'))[_0xa419('0x3e')]('NOW()',_0xa419('0x39'))[_0xa419('0x3e')]('id','ContactId')['field'](LISTID[_0xa419('0x3f')](),_0xa419('0x27'))[_0xa419('0x3e')](_0x26af13['id'][_0xa419('0x3f')](),_0x1067e6)['field'](_0xa419('0x40'),_0xa419('0x3b'))[_0xa419('0x3e')](_0xa419('0x40'),'updatedAt')[_0xa419('0x41')](_0xa419('0x42'))['where'](_0xa419('0x43'))[_0xa419('0x44')](_0xa419('0x45'),LISTID[_0xa419('0x3f')]())[_0xa419('0x44')](_0xa419('0x46'))[_0xa419('0x44')](_0xa419('0x47'),squel[_0xa419('0x3d')]()[_0xa419('0x3e')](_0xa419('0x20'))[_0xa419('0x41')](_0xa419('0x37'))[_0xa419('0x44')](_0x1067e6+_0xa419('0x48'),_0x26af13['id'][_0xa419('0x3f')]())))['toString']();return _0x457d3f;};var _0x31c66c=function(_0x1ee710,_0x473319){var _0x2422cb=squel[_0xa419('0x49')]()[_0xa419('0x36')](_0xa419('0x37'))[_0xa419('0x38')](['phone','scheduledAt',_0xa419('0x3a'),_0xa419('0x27'),_0x473319,_0xa419('0x3b'),_0xa419('0x3c')],squel[_0xa419('0x3d')]()[_0xa419('0x3e')]('phone',_0xa419('0x20'))[_0xa419('0x3e')]('NOW()','scheduledAt')['field']('id',_0xa419('0x3a'))[_0xa419('0x3e')](LISTID[_0xa419('0x3f')](),'ListId')[_0xa419('0x3e')](_0x1ee710['id'][_0xa419('0x3f')](),_0x473319)[_0xa419('0x3e')]('NOW()',_0xa419('0x3b'))['field'](_0xa419('0x40'),'updatedAt')[_0xa419('0x41')](_0xa419('0x42'))[_0xa419('0x44')]('deletedAt\x20IS\x20NULL')['where'](_0xa419('0x45'),LISTID['toString']())[_0xa419('0x44')](_0xa419('0x4a'),squel['str'](hopperContacts))[_0xa419('0x44')](_0xa419('0x46'))['where'](_0xa419('0x47'),squel[_0xa419('0x3d')]()[_0xa419('0x3e')](_0xa419('0x4b'))[_0xa419('0x41')](_0xa419('0x4c'))[_0xa419('0x44')](_0x473319+'\x20=\x20?',_0x1ee710['id'][_0xa419('0x3f')]()))['where'](_0xa419('0x47'),squel['select']()[_0xa419('0x3e')](_0xa419('0x20'))[_0xa419('0x41')]('cm_hopper')['where'](_0x473319+_0xa419('0x48'),_0x1ee710['id'][_0xa419('0x3f')]())))[_0xa419('0x3f')]();return _0x2422cb;};function _0x561878(_0x32c5a0,_0x383483){var _0x5a90f5=squel['insert']()[_0xa419('0x36')](_0xa419('0x37'))[_0xa419('0x38')]([_0xa419('0x20'),_0xa419('0x39'),_0xa419('0x3a'),_0xa419('0x27'),_0x383483,_0xa419('0x3b'),_0xa419('0x3c')],squel['select']()[_0xa419('0x3e')](_0xa419('0x20'),_0xa419('0x20'))[_0xa419('0x3e')](_0xa419('0x40'),_0xa419('0x39'))[_0xa419('0x3e')]('id',_0xa419('0x3a'))[_0xa419('0x3e')](LISTID[_0xa419('0x3f')](),_0xa419('0x27'))[_0xa419('0x3e')](_0x32c5a0['id'][_0xa419('0x3f')](),_0x383483)['field'](_0xa419('0x40'),'createdAt')['field'](_0xa419('0x40'),_0xa419('0x3c'))[_0xa419('0x41')](_0xa419('0x42'))[_0xa419('0x44')](_0xa419('0x43'))[_0xa419('0x44')](_0xa419('0x45'),LISTID[_0xa419('0x3f')]())[_0xa419('0x44')]('id\x20IN\x20?',squel[_0xa419('0x4d')](hopperContacts))[_0xa419('0x44')]('phone\x20IS\x20NOT\x20NULL'))[_0xa419('0x3f')]();return _0x5a90f5;}function _0x121b0d(_0x32aa12,_0xd6836a){var _0x3d464f=squel['insert']()[_0xa419('0x36')](_0xa419('0x4e'))[_0xa419('0x38')]([_0xa419('0x20'),_0xa419('0x3a'),_0xa419('0x27'),_0xd6836a,'createdAt',_0xa419('0x3c')],squel[_0xa419('0x3d')]()[_0xa419('0x3e')](_0xa419('0x20'),_0xa419('0x20'))[_0xa419('0x3e')]('id',_0xa419('0x3a'))[_0xa419('0x3e')](LISTID['toString'](),_0xa419('0x27'))[_0xa419('0x3e')](_0x32aa12['id'][_0xa419('0x3f')](),_0xd6836a)[_0xa419('0x3e')](_0xa419('0x40'),_0xa419('0x3b'))[_0xa419('0x3e')](_0xa419('0x40'),'updatedAt')[_0xa419('0x41')](_0xa419('0x42'))[_0xa419('0x44')](_0xa419('0x43'))[_0xa419('0x44')](_0xa419('0x45'),LISTID[_0xa419('0x3f')]())[_0xa419('0x44')](_0xa419('0x4a'),squel['str'](hopperContacts))[_0xa419('0x44')](_0xa419('0x46')))[_0xa419('0x3f')]();return _0x3d464f;}return db['VoiceQueue'][_0xa419('0x4f')]({'where':{'type':_0xa419('0x50')},'attributes':['id',_0xa419('0x51')],'include':[{'model':db[_0xa419('0x52')],'as':_0xa419('0x53'),'where':{'id':LISTID}}]})['then'](function(_0x4f128d){var _0x5a6944=[];if(_0x4f128d){var _0x4c2cc4;for(var _0x47ae8f=0x0,_0x77ff19;_0x47ae8f<_0x4f128d[_0xa419('0x29')];_0x47ae8f+=0x1){_0x77ff19=_0x4f128d[_0x47ae8f][_0xa419('0x54')]({'plain':!![]});switch(_0x77ff19['dialCheckDuplicateType']){case _0xa419('0x55'):_0x5a6944['push'](db[_0xa419('0x56')][_0xa419('0x57')](_0x31c66c(_0x77ff19,_0xa419('0x58')))['then'](function(){})[_0xa419('0x30')](_0x162c91()));break;case _0xa419('0x59'):_0x5a6944[_0xa419('0x2e')](db[_0xa419('0x56')][_0xa419('0x57')](_0xd14e1(_0x77ff19,_0xa419('0x58')))[_0xa419('0x5a')](function(){})['catch'](_0x162c91()));break;default:_0x5a6944[_0xa419('0x2e')](db[_0xa419('0x56')][_0xa419('0x57')](_0x561878(_0x77ff19,_0xa419('0x58')))[_0xa419('0x5a')](function(){})[_0xa419('0x30')](_0x162c91()));}}}return _0x5a6944;})[_0xa419('0x5b')]()[_0xa419('0x5a')](function(){return db[_0xa419('0x5c')][_0xa419('0x4f')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0xa419('0x52')],'as':'BlackLists','where':{'id':LISTID}}]})[_0xa419('0x5a')](function(_0x343397){var _0x1e989f=[];if(_0x343397){var _0x12eba1;for(var _0x140380=0x0,_0x28b3f9;_0x140380<_0x343397[_0xa419('0x29')];_0x140380+=0x1){_0x28b3f9=_0x343397[_0x140380]['get']({'plain':!![]});_0x1e989f[_0xa419('0x2e')](db['sequelize']['query'](_0x121b0d(_0x28b3f9,'VoiceQueueId'))[_0xa419('0x5a')](function(){})[_0xa419('0x30')](_0x162c91()));}}return _0x1e989f;})[_0xa419('0x5b')]();})[_0xa419('0x5a')](function(){return db[_0xa419('0x5d')][_0xa419('0x4f')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xa419('0x52')],'as':_0xa419('0x53'),'where':{'id':LISTID}}]})['then'](function(_0x4b08d5){var _0x7f204d=[];if(_0x4b08d5){for(var _0x3de8f3=0x0,_0x3da4ba;_0x3de8f3<_0x4b08d5[_0xa419('0x29')];_0x3de8f3+=0x1){_0x3da4ba=_0x4b08d5[_0x3de8f3]['get']({'plain':!![]});switch(_0x3da4ba[_0xa419('0x51')]){case _0xa419('0x55'):_0x7f204d[_0xa419('0x2e')](db[_0xa419('0x56')][_0xa419('0x57')](_0x31c66c(_0x3da4ba,_0xa419('0x5e')))[_0xa419('0x5a')](function(){})[_0xa419('0x30')](_0x162c91()));break;case _0xa419('0x59'):_0x7f204d[_0xa419('0x2e')](db[_0xa419('0x56')][_0xa419('0x57')](_0xd14e1(_0x3da4ba,_0xa419('0x5e')))[_0xa419('0x5a')](function(){})[_0xa419('0x30')](_0x162c91()));break;default:_0x7f204d[_0xa419('0x2e')](db[_0xa419('0x56')][_0xa419('0x57')](_0x561878(_0x3da4ba,_0xa419('0x5e')))['then'](function(){})['catch'](_0x162c91()));}}}return _0x7f204d;})[_0xa419('0x5b')]();})[_0xa419('0x5a')](function(){return db['Campaign'][_0xa419('0x4f')]({'attributes':['id'],'include':[{'model':db[_0xa419('0x52')],'as':_0xa419('0x5f'),'where':{'id':LISTID}}]})[_0xa419('0x5a')](function(_0x45af23){var _0x5af20b=[];if(_0x45af23){for(var _0xa74fc8=0x0,_0x1fe1ad;_0xa74fc8<_0x45af23[_0xa419('0x29')];_0xa74fc8+=0x1){_0x1fe1ad=_0x45af23[_0xa74fc8]['get']({'plain':!![]});_0x5af20b['push'](db[_0xa419('0x56')][_0xa419('0x57')](_0x121b0d(_0x1fe1ad,'CampaignId'))[_0xa419('0x5a')](function(){})[_0xa419('0x30')](_0x162c91()));}}return _0x5af20b;})[_0xa419('0x5b')]();})[_0xa419('0x30')](function(_0x242131){logger['error']('cmContact,\x20%s,\x20%s',_0xa419('0x60'),_0x242131[_0xa419('0x1a')]);});}var processPromises=function(_0x23e373){return BPromise[_0xa419('0x5b')](promises)[_0xa419('0x5a')](function(_0x190881){})[_0xa419('0x30')](function(_0x5e29ca){logger[_0xa419('0x13')]('Error\x20processing\x20rows\x20block:',JSON[_0xa419('0x32')](_0x5e29ca));})['finally'](function(){socket[_0xa419('0x61')](_0xa419('0x62')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x23e373){return _0x23e373[_0xa419('0x63')]();}});};var endCsv=function(){return BPromise[_0xa419('0x64')]()[_0xa419('0x5a')](function(){if(hopperContacts){return checkHopper();}})[_0xa419('0x5a')](function(){socket[_0xa419('0x61')](_0xa419('0x62')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x1362c6){logger[_0xa419('0x13')]('Unable\x20to\x20delete\x20temp\x20file:',JSON['stringify'](_0x1362c6));}finally{process[_0xa419('0x65')](0x0);}});};process['on'](_0xa419('0x66'),function(){logger[_0xa419('0x67')]('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise[_0xa419('0x64')]()[_0xa419('0x5a')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xa419('0x11')](',');return db[_0xa419('0x2c')][_0xa419('0x4f')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xa419('0x5a')](function(_0x48dbb2){var _0x36216b=fs[_0xa419('0x68')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x36216b,{'header':!![],'skipEmptyLines':!![],'step':function(_0x5f1588,_0x347cfe){total+=0x1;var _0x174d46=total;promises[_0xa419('0x2e')](checkRow(_0x5f1588,_0x48dbb2,_0x174d46)[_0xa419('0x5a')](function(){success+=0x1;})[_0xa419('0x30')](function(_0x3955b8){if(_0x3955b8[_0xa419('0x13')]){errors+=0x1;delete _0x3955b8[_0xa419('0x13')];}else if(_0x3955b8['duplicate']){duplicates+=0x1;delete _0x3955b8[_0xa419('0x2b')];}rows[_0xa419('0x2e')](_0x3955b8);}));if(total%0xc8===0x0){_0x347cfe[_0xa419('0x69')]();return processPromises(_0x347cfe);}},'complete':function(){return processPromises()[_0xa419('0x5a')](function(){logger[_0xa419('0x67')](_0xa419('0x6a'));endCsv();});},'error':function(_0x24c4f9,_0x107028){logger[_0xa419('0x67')](_0xa419('0x6b'),JSON[_0xa419('0x32')](_0x24c4f9));endCsv();}});})[_0xa419('0x30')](function(_0x535075){logger['error']('Error\x20executing\x20contact\x20csv\x20import:',JSON[_0xa419('0x32')](_0x535075));});}main();