0172ebc3ea65fb9b97c0c7912c5b6a812780e032
[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 _0xe688=['YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','keys','then','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','checkHopper','inspect','insert','into','createdAt','updatedAt','select','field','NOW()','scheduledAt','ContactId','toString','from','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper','fromQuery','id\x20IN\x20?','str','calleridnum','\x20=\x20?','cm_hopper_black','VoiceQueue','findAll','outbound','Lists','get','dialCheckDuplicateType','always','sequelize','query','VoiceQueueId','onlyIfOpen','all','BlackLists','CmList','CampaignId','cmContact,\x20%s,\x20%s','finally','emit','contact:csv_','resume','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','createReadStream','pause','CSV\x20parsed\x20correctly!','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis','localhost','socket.io-emitter','undefined','argv','null','Missing\x20filepath\x20parameter!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','message','hasOwnProperty','firstName','phone','phone\x20not\x20specified!','birthDate'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xe688,0xb5));var _0x8e68=function(_0x3961ee,_0x4f7e4f){_0x3961ee=_0x3961ee-0x0;var _0x22adcb=_0xe688[_0x3961ee];return _0x22adcb;};'use strict';var BPromise=require(_0x8e68('0x0'));var util=require(_0x8e68('0x1'));var _=require(_0x8e68('0x2'));var fs=require('fs');var squel=require('squel');var Papa=require(_0x8e68('0x3'));var Redis=require(_0x8e68('0x4'));var db=require(_0x8e68('0x5'))['db'];var config=require(_0x8e68('0x6'));var logger=require(_0x8e68('0x7'))(_0x8e68('0x8'));config['redis']=_['defaults'](config[_0x8e68('0x9')],{'host':_0x8e68('0xa'),'port':0x18eb});var socket=require(_0x8e68('0xb'))(new Redis(config[_0x8e68('0x9')]));require('../../../api/cmContact/cmContact.socket')['register'](socket);try{if(!process['argv'][0x2]||process['argv'][0x2]===_0x8e68('0xc')||process[_0x8e68('0xd')][0x2]===_0x8e68('0xe')){throw new Error(_0x8e68('0xf'));}var FILEPATH=process[_0x8e68('0xd')][0x2];if(!process['argv'][0x3]||process[_0x8e68('0xd')][0x3]==='undefined'||process[_0x8e68('0xd')][0x3]===_0x8e68('0xe')||!process[_0x8e68('0xd')][0x4]||process[_0x8e68('0xd')][0x4]===_0x8e68('0xc')||process[_0x8e68('0xd')][0x4]===_0x8e68('0xe')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0x8e68('0x10')](process['argv'][0x3][_0x8e68('0x11')](','),process['argv'][0x4]['split'](','));if(!process[_0x8e68('0xd')][0x5]||process['argv'][0x5]===_0x8e68('0xc')||process[_0x8e68('0xd')][0x5]===_0x8e68('0xe')){throw new Error(_0x8e68('0x12'));}var LISTID=process[_0x8e68('0xd')][0x5];var COMPANYID=process[_0x8e68('0xd')][0x6]&&process[_0x8e68('0xd')][0x6]!==_0x8e68('0xc')&&process[_0x8e68('0xd')][0x6]!==_0x8e68('0xe')?process[_0x8e68('0xd')][0x6]:null;var DUPLICATES=process[_0x8e68('0xd')][0x7]&&process[_0x8e68('0xd')][0x7]!=='undefined'&&process[_0x8e68('0xd')][0x7]!==_0x8e68('0xe')?process[_0x8e68('0xd')][0x7]:null;if(!process[_0x8e68('0xd')][0x8]||process[_0x8e68('0xd')][0x8]===_0x8e68('0xc')||process[_0x8e68('0xd')][0x8]==='null'){throw new Error(_0x8e68('0x13'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x4ebd6d){logger[_0x8e68('0x14')](_0x4ebd6d);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(_0x30e408,_0x457d69,_0x213501,_0x43214c){var _0x499f66={'message':_0x457d69};_0x499f66[_0x30e408]=!![];if(_0x213501){_0x499f66[_0x8e68('0x15')]=_0x213501;}if(_0x43214c){_0x499f66['index']=_0x43214c;}return _0x499f66;}function isEmail(_0x314578){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'](_0x314578);}function checkRow(_0x26a093,_0x33c6fe,_0x564700){return new BPromise(function(_0x3dfb00,_0x2c1c10){if(_['isNil'](_0x26a093)){return _0x2c1c10(handleCheckRowError(_0x8e68('0x14'),_0x8e68('0x16'),null,_0x564700));}if(_0x26a093[_0x8e68('0x17')]&&_0x26a093['errors'][_0x8e68('0x18')]){var _0xa98b5b=_['map'](_0x26a093[_0x8e68('0x17')],_0x8e68('0x19'))['join'](';');return _0x2c1c10(handleCheckRowError(_0x8e68('0x14'),_0xa98b5b,null,_0x564700));}var _0x421742={};for(var _0x3e51b5 in FIELDS){if(FIELDS[_0x8e68('0x1a')](_0x3e51b5)&&FIELDS[_0x3e51b5]){_0x421742[_0x3e51b5]=_0x26a093['data'][0x0][FIELDS[_0x3e51b5]]||_0x26a093['data'][0x0]['\ufeff'+FIELDS[_0x3e51b5]];}}if(!_0x421742[_0x8e68('0x1b')]){return _0x2c1c10(handleCheckRowError(_0x8e68('0x14'),'firstName\x20not\x20specified!',null,_0x564700));}if(!_0x421742[_0x8e68('0x1c')]){return _0x2c1c10(handleCheckRowError(_0x8e68('0x14'),_0x8e68('0x1d'),null,_0x564700));}if(_0x421742['birthDate']){var _0x23131a=moment(_0x421742[_0x8e68('0x1e')],_0x8e68('0x1f'));if(!_0x23131a[_0x8e68('0x20')]()){return _0x2c1c10(handleCheckRowError('error',_0x8e68('0x21'),null,_0x564700));}}if(_0x421742[_0x8e68('0x22')]){if(!isEmail(_0x421742['email'])){return _0x2c1c10(handleCheckRowError('error',_0x8e68('0x23'),null,_0x564700));}}_0x421742[_0x8e68('0x24')]=LISTID;_0x421742[_0x8e68('0x25')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x8e68('0x18')]&&_0x33c6fe){var _0x390f1f={};for(var _0x3097a8=0x0,_0x5d666b=DUPLICATES[_0x8e68('0x18')];_0x3097a8<_0x5d666b;_0x3097a8+=0x1){_0x390f1f[DUPLICATES[_0x3097a8]]=_0x421742[DUPLICATES[_0x3097a8]];}var _0x59e665=_[_0x8e68('0x26')](_0x33c6fe,_0x390f1f);if(_0x59e665){return _0x2c1c10(handleCheckRowError(_0x8e68('0x27'),_0x8e68('0x28'),_0x59e665,_0x564700));}}return db[_0x8e68('0x29')][_0x8e68('0x2a')](_0x421742,{'raw':!![],'hooks':![],'fields':_[_0x8e68('0x2b')](_0x421742)})[_0x8e68('0x2c')](function(_0x64c2f3){if(DUPLICATES&&DUPLICATES[_0x8e68('0x18')]&&_0x33c6fe){_0x33c6fe[_0x8e68('0x2d')](_[_0x8e68('0x2e')](_0x421742,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x64c2f3['id'];return _0x3dfb00();})[_0x8e68('0x2f')](function(_0x223b63){return _0x2c1c10(handleCheckRowError('error',_0x8e68('0x30')+(_0x223b63[_0x8e68('0x19')]||JSON[_0x8e68('0x31')](_0x223b63)),null,_0x564700));});});}function checkHopper(){function _0x41e53b(){return function(_0x4e6d73){logger[_0x8e68('0x14')]('cmContact',_0x8e68('0x32'),util[_0x8e68('0x33')](_0x4e6d73,{'showHidden':![],'depth':null}));};}var _0x4fd71f=function(_0xf8f1a4,_0x473e95){var _0x4f11e2=squel[_0x8e68('0x34')]()[_0x8e68('0x35')]('cm_hopper')['fromQuery']([_0x8e68('0x1c'),'scheduledAt','ContactId',_0x8e68('0x24'),_0x473e95,_0x8e68('0x36'),_0x8e68('0x37')],squel[_0x8e68('0x38')]()[_0x8e68('0x39')](_0x8e68('0x1c'),'phone')[_0x8e68('0x39')](_0x8e68('0x3a'),_0x8e68('0x3b'))[_0x8e68('0x39')]('id',_0x8e68('0x3c'))[_0x8e68('0x39')](LISTID['toString'](),'ListId')[_0x8e68('0x39')](_0xf8f1a4['id'][_0x8e68('0x3d')](),_0x473e95)[_0x8e68('0x39')]('NOW()',_0x8e68('0x36'))['field'](_0x8e68('0x3a'),_0x8e68('0x37'))[_0x8e68('0x3e')](_0x8e68('0x3f'))[_0x8e68('0x40')](_0x8e68('0x41'))[_0x8e68('0x40')](_0x8e68('0x42'),LISTID[_0x8e68('0x3d')]())[_0x8e68('0x40')](_0x8e68('0x43'))[_0x8e68('0x40')](_0x8e68('0x44'),squel[_0x8e68('0x38')]()['field']('phone')[_0x8e68('0x3e')]('cm_hopper')[_0x8e68('0x40')](_0x473e95+'\x20=\x20?',_0xf8f1a4['id'][_0x8e68('0x3d')]())))[_0x8e68('0x3d')]();return _0x4f11e2;};var _0x23587a=function(_0x4fbb70,_0x42a6c0){var _0x318157=squel[_0x8e68('0x34')]()[_0x8e68('0x35')](_0x8e68('0x45'))[_0x8e68('0x46')]([_0x8e68('0x1c'),_0x8e68('0x3b'),'ContactId',_0x8e68('0x24'),_0x42a6c0,_0x8e68('0x36'),_0x8e68('0x37')],squel[_0x8e68('0x38')]()['field'](_0x8e68('0x1c'),'phone')['field'](_0x8e68('0x3a'),_0x8e68('0x3b'))[_0x8e68('0x39')]('id',_0x8e68('0x3c'))[_0x8e68('0x39')](LISTID['toString'](),_0x8e68('0x24'))['field'](_0x4fbb70['id']['toString'](),_0x42a6c0)['field'](_0x8e68('0x3a'),_0x8e68('0x36'))[_0x8e68('0x39')](_0x8e68('0x3a'),_0x8e68('0x37'))[_0x8e68('0x3e')](_0x8e68('0x3f'))[_0x8e68('0x40')](_0x8e68('0x41'))[_0x8e68('0x40')](_0x8e68('0x42'),LISTID['toString']())[_0x8e68('0x40')](_0x8e68('0x47'),squel[_0x8e68('0x48')](hopperContacts))[_0x8e68('0x40')]('phone\x20IS\x20NOT\x20NULL')[_0x8e68('0x40')](_0x8e68('0x44'),squel['select']()['field'](_0x8e68('0x49'))[_0x8e68('0x3e')]('cm_hopper_final')[_0x8e68('0x40')](_0x42a6c0+_0x8e68('0x4a'),_0x4fbb70['id'][_0x8e68('0x3d')]()))['where'](_0x8e68('0x44'),squel[_0x8e68('0x38')]()['field']('phone')['from'](_0x8e68('0x45'))[_0x8e68('0x40')](_0x42a6c0+'\x20=\x20?',_0x4fbb70['id'][_0x8e68('0x3d')]())))[_0x8e68('0x3d')]();return _0x318157;};function _0x131194(_0x2f6010,_0x3b9a67){var _0x525441=squel[_0x8e68('0x34')]()[_0x8e68('0x35')](_0x8e68('0x45'))[_0x8e68('0x46')]([_0x8e68('0x1c'),_0x8e68('0x3b'),'ContactId',_0x8e68('0x24'),_0x3b9a67,_0x8e68('0x36'),_0x8e68('0x37')],squel[_0x8e68('0x38')]()[_0x8e68('0x39')](_0x8e68('0x1c'),'phone')[_0x8e68('0x39')]('NOW()',_0x8e68('0x3b'))['field']('id',_0x8e68('0x3c'))[_0x8e68('0x39')](LISTID[_0x8e68('0x3d')](),'ListId')[_0x8e68('0x39')](_0x2f6010['id'][_0x8e68('0x3d')](),_0x3b9a67)[_0x8e68('0x39')]('NOW()',_0x8e68('0x36'))['field'](_0x8e68('0x3a'),'updatedAt')['from'](_0x8e68('0x3f'))[_0x8e68('0x40')](_0x8e68('0x41'))[_0x8e68('0x40')](_0x8e68('0x42'),LISTID[_0x8e68('0x3d')]())['where']('id\x20IN\x20?',squel[_0x8e68('0x48')](hopperContacts))[_0x8e68('0x40')](_0x8e68('0x43')))[_0x8e68('0x3d')]();return _0x525441;}function _0x23c80f(_0x1adb5b,_0xe5b325){var _0x34d91f=squel['insert']()['into'](_0x8e68('0x4b'))[_0x8e68('0x46')]([_0x8e68('0x1c'),_0x8e68('0x3c'),_0x8e68('0x24'),_0xe5b325,_0x8e68('0x36'),'updatedAt'],squel[_0x8e68('0x38')]()['field'](_0x8e68('0x1c'),_0x8e68('0x1c'))[_0x8e68('0x39')]('id','ContactId')[_0x8e68('0x39')](LISTID[_0x8e68('0x3d')](),_0x8e68('0x24'))[_0x8e68('0x39')](_0x1adb5b['id']['toString'](),_0xe5b325)[_0x8e68('0x39')](_0x8e68('0x3a'),_0x8e68('0x36'))['field'](_0x8e68('0x3a'),_0x8e68('0x37'))[_0x8e68('0x3e')](_0x8e68('0x3f'))[_0x8e68('0x40')](_0x8e68('0x41'))[_0x8e68('0x40')](_0x8e68('0x42'),LISTID[_0x8e68('0x3d')]())[_0x8e68('0x40')](_0x8e68('0x47'),squel[_0x8e68('0x48')](hopperContacts))[_0x8e68('0x40')](_0x8e68('0x43')))[_0x8e68('0x3d')]();return _0x34d91f;}return db[_0x8e68('0x4c')][_0x8e68('0x4d')]({'where':{'type':_0x8e68('0x4e')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db['CmList'],'as':_0x8e68('0x4f'),'where':{'id':LISTID}}]})[_0x8e68('0x2c')](function(_0xb5cafc){var _0x5aa6c2=[];if(_0xb5cafc){var _0x465c13;for(var _0x53c2c0=0x0,_0x1f7c32;_0x53c2c0<_0xb5cafc[_0x8e68('0x18')];_0x53c2c0+=0x1){_0x1f7c32=_0xb5cafc[_0x53c2c0][_0x8e68('0x50')]({'plain':!![]});switch(_0x1f7c32[_0x8e68('0x51')]){case _0x8e68('0x52'):_0x5aa6c2[_0x8e68('0x2d')](db[_0x8e68('0x53')][_0x8e68('0x54')](_0x23587a(_0x1f7c32,_0x8e68('0x55')))[_0x8e68('0x2c')](function(){})['catch'](_0x41e53b()));break;case _0x8e68('0x56'):_0x5aa6c2[_0x8e68('0x2d')](db[_0x8e68('0x53')]['query'](_0x4fd71f(_0x1f7c32,_0x8e68('0x55')))[_0x8e68('0x2c')](function(){})[_0x8e68('0x2f')](_0x41e53b()));break;default:_0x5aa6c2['push'](db[_0x8e68('0x53')]['query'](_0x131194(_0x1f7c32,_0x8e68('0x55')))[_0x8e68('0x2c')](function(){})[_0x8e68('0x2f')](_0x41e53b()));}}}return _0x5aa6c2;})[_0x8e68('0x57')]()[_0x8e68('0x2c')](function(){return db[_0x8e68('0x4c')]['findAll']({'where':{'type':_0x8e68('0x4e')},'attributes':['id'],'include':[{'model':db['CmList'],'as':_0x8e68('0x58'),'where':{'id':LISTID}}]})[_0x8e68('0x2c')](function(_0x22e92e){var _0x447d19=[];if(_0x22e92e){var _0x46cabb;for(var _0x22781c=0x0,_0x3d2331;_0x22781c<_0x22e92e[_0x8e68('0x18')];_0x22781c+=0x1){_0x3d2331=_0x22e92e[_0x22781c][_0x8e68('0x50')]({'plain':!![]});_0x447d19[_0x8e68('0x2d')](db['sequelize'][_0x8e68('0x54')](_0x23c80f(_0x3d2331,_0x8e68('0x55')))['then'](function(){})[_0x8e68('0x2f')](_0x41e53b()));}}return _0x447d19;})[_0x8e68('0x57')]();})[_0x8e68('0x2c')](function(){return db['Campaign'][_0x8e68('0x4d')]({'attributes':['id',_0x8e68('0x51')],'include':[{'model':db[_0x8e68('0x59')],'as':_0x8e68('0x4f'),'where':{'id':LISTID}}]})[_0x8e68('0x2c')](function(_0x1a3399){var _0x52feb5=[];if(_0x1a3399){for(var _0x4fb0fb=0x0,_0x19caa3;_0x4fb0fb<_0x1a3399[_0x8e68('0x18')];_0x4fb0fb+=0x1){_0x19caa3=_0x1a3399[_0x4fb0fb][_0x8e68('0x50')]({'plain':!![]});switch(_0x19caa3[_0x8e68('0x51')]){case'always':_0x52feb5['push'](db[_0x8e68('0x53')][_0x8e68('0x54')](_0x23587a(_0x19caa3,'CampaignId'))[_0x8e68('0x2c')](function(){})[_0x8e68('0x2f')](_0x41e53b()));break;case'onlyIfOpen':_0x52feb5[_0x8e68('0x2d')](db['sequelize'][_0x8e68('0x54')](_0x4fd71f(_0x19caa3,_0x8e68('0x5a')))['then'](function(){})['catch'](_0x41e53b()));break;default:_0x52feb5['push'](db[_0x8e68('0x53')][_0x8e68('0x54')](_0x131194(_0x19caa3,'CampaignId'))['then'](function(){})[_0x8e68('0x2f')](_0x41e53b()));}}}return _0x52feb5;})[_0x8e68('0x57')]();})[_0x8e68('0x2c')](function(){return db['Campaign'][_0x8e68('0x4d')]({'attributes':['id'],'include':[{'model':db[_0x8e68('0x59')],'as':_0x8e68('0x58'),'where':{'id':LISTID}}]})[_0x8e68('0x2c')](function(_0x243514){var _0x585f7e=[];if(_0x243514){for(var _0x194685=0x0,_0x5a1d6d;_0x194685<_0x243514[_0x8e68('0x18')];_0x194685+=0x1){_0x5a1d6d=_0x243514[_0x194685][_0x8e68('0x50')]({'plain':!![]});_0x585f7e[_0x8e68('0x2d')](db[_0x8e68('0x53')]['query'](_0x23c80f(_0x5a1d6d,_0x8e68('0x5a')))['then'](function(){})[_0x8e68('0x2f')](_0x41e53b()));}}return _0x585f7e;})[_0x8e68('0x57')]();})[_0x8e68('0x2f')](function(_0x3e9be6){logger[_0x8e68('0x14')](_0x8e68('0x5b'),'generalCheckHopper',_0x3e9be6['message']);});}var processPromises=function(_0x3bc907){return BPromise[_0x8e68('0x57')](promises)[_0x8e68('0x2c')](function(_0xd50237){})[_0x8e68('0x2f')](function(_0x22efdf){logger[_0x8e68('0x14')]('Error\x20processing\x20rows\x20block:',JSON[_0x8e68('0x31')](_0x22efdf));})[_0x8e68('0x5c')](function(){socket[_0x8e68('0x5d')](_0x8e68('0x5e')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x3bc907){return _0x3bc907[_0x8e68('0x5f')]();}});};var endCsv=function(){return BPromise[_0x8e68('0x60')]()[_0x8e68('0x2c')](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket[_0x8e68('0x5d')](_0x8e68('0x5e')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x8e68('0x61')](FILEPATH);}catch(_0x10f1f9){logger[_0x8e68('0x14')](_0x8e68('0x62'),JSON[_0x8e68('0x31')](_0x10f1f9));}finally{process[_0x8e68('0x63')](0x0);}});};process['on'](_0x8e68('0x64'),function(){logger[_0x8e68('0x65')]('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise[_0x8e68('0x60')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x8e68('0x11')](',');return db[_0x8e68('0x29')][_0x8e68('0x4d')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x299882){var _0x26c5d5=fs[_0x8e68('0x66')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x26c5d5,{'header':!![],'skipEmptyLines':!![],'step':function(_0x238cd8,_0x583095){total+=0x1;var _0x23dbab=total;promises[_0x8e68('0x2d')](checkRow(_0x238cd8,_0x299882,_0x23dbab)[_0x8e68('0x2c')](function(){success+=0x1;})['catch'](function(_0x5c7c8c){if(_0x5c7c8c[_0x8e68('0x14')]){errors+=0x1;delete _0x5c7c8c[_0x8e68('0x14')];}else if(_0x5c7c8c[_0x8e68('0x27')]){duplicates+=0x1;delete _0x5c7c8c[_0x8e68('0x27')];}rows[_0x8e68('0x2d')](_0x5c7c8c);}));if(total%0xc8===0x0){_0x583095[_0x8e68('0x67')]();return processPromises(_0x583095);}},'complete':function(){return processPromises()['then'](function(){logger[_0x8e68('0x65')](_0x8e68('0x68'));endCsv();});},'error':function(_0x4f29f0,_0x5d93c7){logger[_0x8e68('0x65')]('CSV\x20parse\x20error',JSON[_0x8e68('0x31')](_0x4f29f0));endCsv();}});})['catch'](function(_0x3bf217){logger[_0x8e68('0x14')](_0x8e68('0x69'),JSON['stringify'](_0x3bf217));});}main();