4dc1f9a791a4fe3a3535e22cbfa88ec680379a80
[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 _0xdb54=['select','field','NOW()','scheduledAt','toString','updatedAt','from','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','id\x20IN\x20?','str','calleridnum','into','cm_hopper_black','VoiceQueue','dialCheckDuplicateType','CmList','Lists','get','VoiceQueueId','sequelize','query','all','findAll','outbound','BlackLists','Campaign','always','onlyIfOpen','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','emit','resume','resolve','contact:csv_','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','util','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','api','defaults','redis','localhost','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','birthDate','YYYY-MM-DD','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','keys','then','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','inspect','insert','cm_hopper','fromQuery','phone','ContactId','createdAt'];(function(_0x2aa47b,_0x2d19f0){var _0x4b05d5=function(_0xe6e71){while(--_0xe6e71){_0x2aa47b['push'](_0x2aa47b['shift']());}};_0x4b05d5(++_0x2d19f0);}(_0xdb54,0xa6));var _0x4db5=function(_0x359dd6,_0x33078c){_0x359dd6=_0x359dd6-0x0;var _0x49fb07=_0xdb54[_0x359dd6];return _0x49fb07;};'use strict';var BPromise=require('bluebird');var util=require(_0x4db5('0x0'));var _=require('lodash');var fs=require('fs');var squel=require(_0x4db5('0x1'));var Papa=require(_0x4db5('0x2'));var Redis=require(_0x4db5('0x3'));var db=require(_0x4db5('0x4'))['db'];var config=require(_0x4db5('0x5'));var logger=require('../../../config/logger')(_0x4db5('0x6'));config['redis']=_[_0x4db5('0x7')](config[_0x4db5('0x8')],{'host':_0x4db5('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x4db5('0xa'))[_0x4db5('0xb')](socket);try{if(!process['argv'][0x2]||process[_0x4db5('0xc')][0x2]===_0x4db5('0xd')||process[_0x4db5('0xc')][0x2]===_0x4db5('0xe')){throw new Error(_0x4db5('0xf'));}var FILEPATH=process[_0x4db5('0xc')][0x2];if(!process['argv'][0x3]||process[_0x4db5('0xc')][0x3]===_0x4db5('0xd')||process['argv'][0x3]===_0x4db5('0xe')||!process['argv'][0x4]||process[_0x4db5('0xc')][0x4]===_0x4db5('0xd')||process[_0x4db5('0xc')][0x4]===_0x4db5('0xe')){throw new Error(_0x4db5('0x10'));}var FIELDS=_['zipObject'](process[_0x4db5('0xc')][0x3][_0x4db5('0x11')](','),process[_0x4db5('0xc')][0x4][_0x4db5('0x11')](','));if(!process[_0x4db5('0xc')][0x5]||process[_0x4db5('0xc')][0x5]===_0x4db5('0xd')||process['argv'][0x5]===_0x4db5('0xe')){throw new Error(_0x4db5('0x12'));}var LISTID=process[_0x4db5('0xc')][0x5];var COMPANYID=process[_0x4db5('0xc')][0x6]&&process[_0x4db5('0xc')][0x6]!=='undefined'&&process[_0x4db5('0xc')][0x6]!==_0x4db5('0xe')?process[_0x4db5('0xc')][0x6]:null;var DUPLICATES=process[_0x4db5('0xc')][0x7]&&process['argv'][0x7]!==_0x4db5('0xd')&&process['argv'][0x7]!==_0x4db5('0xe')?process[_0x4db5('0xc')][0x7]:null;if(!process['argv'][0x8]||process[_0x4db5('0xc')][0x8]===_0x4db5('0xd')||process[_0x4db5('0xc')][0x8]===_0x4db5('0xe')){throw new Error(_0x4db5('0x13'));}var SOCKET_TIMESTAMP=process[_0x4db5('0xc')][0x8];}catch(_0x15e3f4){logger[_0x4db5('0x14')](_0x15e3f4);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(_0x362da0,_0x41bf52,_0x11342f,_0x4d42e5){var _0x1a0e9c={'message':_0x41bf52};_0x1a0e9c[_0x362da0]=!![];if(_0x11342f){_0x1a0e9c[_0x4db5('0x15')]=_0x11342f;}if(_0x4d42e5){_0x1a0e9c['index']=_0x4d42e5;}return _0x1a0e9c;}function isEmail(_0x27b1e5){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))*$/[_0x4db5('0x16')](_0x27b1e5);}function checkRow(_0x220b9a,_0x2d2218,_0xf5e222){return new BPromise(function(_0x191ff9,_0x2cdcee){if(_[_0x4db5('0x17')](_0x220b9a)){return _0x2cdcee(handleCheckRowError(_0x4db5('0x14'),_0x4db5('0x18'),null,_0xf5e222));}if(_0x220b9a[_0x4db5('0x19')]&&_0x220b9a[_0x4db5('0x19')][_0x4db5('0x1a')]){var _0x4bb591=_[_0x4db5('0x1b')](_0x220b9a['errors'],_0x4db5('0x1c'))[_0x4db5('0x1d')](';');return _0x2cdcee(handleCheckRowError(_0x4db5('0x14'),_0x4bb591,null,_0xf5e222));}var _0xa324c1={};for(var _0x3d3b85 in FIELDS){if(FIELDS[_0x4db5('0x1e')](_0x3d3b85)&&FIELDS[_0x3d3b85]){_0xa324c1[_0x3d3b85]=_0x220b9a[_0x4db5('0x1f')][0x0][FIELDS[_0x3d3b85]]||_0x220b9a[_0x4db5('0x1f')][0x0]['\ufeff'+FIELDS[_0x3d3b85]];}}if(!_0xa324c1[_0x4db5('0x20')]){return _0x2cdcee(handleCheckRowError(_0x4db5('0x14'),_0x4db5('0x21'),null,_0xf5e222));}if(!_0xa324c1['phone']){return _0x2cdcee(handleCheckRowError(_0x4db5('0x14'),'phone\x20not\x20specified!',null,_0xf5e222));}if(_0xa324c1[_0x4db5('0x22')]){var _0x3598f4=moment(_0xa324c1[_0x4db5('0x22')],_0x4db5('0x23'));if(!_0x3598f4['isValid']()){return _0x2cdcee(handleCheckRowError(_0x4db5('0x14'),_0x4db5('0x24'),null,_0xf5e222));}}if(_0xa324c1[_0x4db5('0x25')]){if(!isEmail(_0xa324c1['email'])){return _0x2cdcee(handleCheckRowError('error','email\x20format\x20is\x20not\x20valid!',null,_0xf5e222));}}_0xa324c1[_0x4db5('0x26')]=LISTID;_0xa324c1[_0x4db5('0x27')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x4db5('0x1a')]&&_0x2d2218){var _0x27fc70={};for(var _0x15f52b=0x0,_0x3fab4c=DUPLICATES[_0x4db5('0x1a')];_0x15f52b<_0x3fab4c;_0x15f52b+=0x1){_0x27fc70[DUPLICATES[_0x15f52b]]=_0xa324c1[DUPLICATES[_0x15f52b]];}var _0x65ed29=_[_0x4db5('0x28')](_0x2d2218,_0x27fc70);if(_0x65ed29){return _0x2cdcee(handleCheckRowError(_0x4db5('0x29'),_0x4db5('0x2a'),_0x65ed29,_0xf5e222));}}return db[_0x4db5('0x2b')][_0x4db5('0x2c')](_0xa324c1,{'raw':!![],'hooks':![],'fields':_[_0x4db5('0x2d')](_0xa324c1)})[_0x4db5('0x2e')](function(_0x3b82ac){if(DUPLICATES&&DUPLICATES['length']&&_0x2d2218){_0x2d2218[_0x4db5('0x2f')](_[_0x4db5('0x30')](_0xa324c1,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x3b82ac['id'];return _0x191ff9();})[_0x4db5('0x31')](function(_0x12d3a7){return _0x2cdcee(handleCheckRowError(_0x4db5('0x14'),_0x4db5('0x32')+(_0x12d3a7[_0x4db5('0x1c')]||JSON[_0x4db5('0x33')](_0x12d3a7)),null,_0xf5e222));});});}function checkHopper(){function _0xc35549(){return function(_0x31eca5){logger['error'](_0x4db5('0x34'),'checkHopper',util[_0x4db5('0x35')](_0x31eca5,{'showHidden':![],'depth':null}));};}var _0x1fb596=function(_0x4d1d17,_0x440467){var _0x1fcb49=squel[_0x4db5('0x36')]()['into'](_0x4db5('0x37'))[_0x4db5('0x38')]([_0x4db5('0x39'),'scheduledAt',_0x4db5('0x3a'),_0x4db5('0x26'),_0x440467,_0x4db5('0x3b'),'updatedAt'],squel[_0x4db5('0x3c')]()[_0x4db5('0x3d')](_0x4db5('0x39'),_0x4db5('0x39'))[_0x4db5('0x3d')](_0x4db5('0x3e'),_0x4db5('0x3f'))['field']('id',_0x4db5('0x3a'))[_0x4db5('0x3d')](LISTID['toString'](),_0x4db5('0x26'))[_0x4db5('0x3d')](_0x4d1d17['id'][_0x4db5('0x40')](),_0x440467)[_0x4db5('0x3d')]('NOW()',_0x4db5('0x3b'))['field'](_0x4db5('0x3e'),_0x4db5('0x41'))[_0x4db5('0x42')](_0x4db5('0x43'))[_0x4db5('0x44')](_0x4db5('0x45'))[_0x4db5('0x44')](_0x4db5('0x46'),LISTID[_0x4db5('0x40')]())[_0x4db5('0x44')](_0x4db5('0x47'))[_0x4db5('0x44')](_0x4db5('0x48'),squel['select']()[_0x4db5('0x3d')](_0x4db5('0x39'))[_0x4db5('0x42')](_0x4db5('0x37'))[_0x4db5('0x44')](_0x440467+_0x4db5('0x49'),_0x4d1d17['id']['toString']())))[_0x4db5('0x40')]();return _0x1fcb49;};var _0x321741=function(_0x12402d,_0x34b5d0){var _0x4466fe=squel[_0x4db5('0x36')]()['into']('cm_hopper')[_0x4db5('0x38')]([_0x4db5('0x39'),'scheduledAt',_0x4db5('0x3a'),'ListId',_0x34b5d0,_0x4db5('0x3b'),_0x4db5('0x41')],squel[_0x4db5('0x3c')]()[_0x4db5('0x3d')]('phone',_0x4db5('0x39'))['field'](_0x4db5('0x3e'),_0x4db5('0x3f'))[_0x4db5('0x3d')]('id',_0x4db5('0x3a'))[_0x4db5('0x3d')](LISTID[_0x4db5('0x40')](),'ListId')[_0x4db5('0x3d')](_0x12402d['id'][_0x4db5('0x40')](),_0x34b5d0)[_0x4db5('0x3d')](_0x4db5('0x3e'),_0x4db5('0x3b'))[_0x4db5('0x3d')](_0x4db5('0x3e'),_0x4db5('0x41'))['from']('cm_contacts')[_0x4db5('0x44')]('deletedAt\x20IS\x20NULL')[_0x4db5('0x44')](_0x4db5('0x46'),LISTID[_0x4db5('0x40')]())[_0x4db5('0x44')](_0x4db5('0x4a'),squel[_0x4db5('0x4b')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL')[_0x4db5('0x44')]('phone\x20NOT\x20IN\x20(?)',squel[_0x4db5('0x3c')]()[_0x4db5('0x3d')](_0x4db5('0x4c'))[_0x4db5('0x42')]('cm_hopper_final')[_0x4db5('0x44')](_0x34b5d0+_0x4db5('0x49'),_0x12402d['id'][_0x4db5('0x40')]()))['where']('phone\x20NOT\x20IN\x20(?)',squel['select']()['field']('phone')['from'](_0x4db5('0x37'))['where'](_0x34b5d0+_0x4db5('0x49'),_0x12402d['id'][_0x4db5('0x40')]())))[_0x4db5('0x40')]();return _0x4466fe;};function _0x447f9c(_0x3bc530,_0x202484){var _0x9bbfde=squel[_0x4db5('0x36')]()[_0x4db5('0x4d')]('cm_hopper')[_0x4db5('0x38')](['phone',_0x4db5('0x3f'),_0x4db5('0x3a'),_0x4db5('0x26'),_0x202484,_0x4db5('0x3b'),_0x4db5('0x41')],squel[_0x4db5('0x3c')]()[_0x4db5('0x3d')](_0x4db5('0x39'),_0x4db5('0x39'))[_0x4db5('0x3d')]('NOW()','scheduledAt')[_0x4db5('0x3d')]('id',_0x4db5('0x3a'))[_0x4db5('0x3d')](LISTID['toString'](),_0x4db5('0x26'))[_0x4db5('0x3d')](_0x3bc530['id'][_0x4db5('0x40')](),_0x202484)[_0x4db5('0x3d')](_0x4db5('0x3e'),_0x4db5('0x3b'))[_0x4db5('0x3d')]('NOW()','updatedAt')['from'](_0x4db5('0x43'))[_0x4db5('0x44')](_0x4db5('0x45'))[_0x4db5('0x44')](_0x4db5('0x46'),LISTID[_0x4db5('0x40')]())[_0x4db5('0x44')](_0x4db5('0x4a'),squel[_0x4db5('0x4b')](hopperContacts))[_0x4db5('0x44')](_0x4db5('0x47')))[_0x4db5('0x40')]();return _0x9bbfde;}function _0x18a6a4(_0x2bd738,_0x533563){var _0x2c17bc=squel['insert']()['into'](_0x4db5('0x4e'))['fromQuery']([_0x4db5('0x39'),'ContactId','ListId',_0x533563,_0x4db5('0x3b'),_0x4db5('0x41')],squel[_0x4db5('0x3c')]()[_0x4db5('0x3d')]('phone',_0x4db5('0x39'))[_0x4db5('0x3d')]('id',_0x4db5('0x3a'))[_0x4db5('0x3d')](LISTID[_0x4db5('0x40')](),'ListId')[_0x4db5('0x3d')](_0x2bd738['id']['toString'](),_0x533563)[_0x4db5('0x3d')](_0x4db5('0x3e'),'createdAt')[_0x4db5('0x3d')](_0x4db5('0x3e'),'updatedAt')[_0x4db5('0x42')](_0x4db5('0x43'))['where'](_0x4db5('0x45'))[_0x4db5('0x44')](_0x4db5('0x46'),LISTID[_0x4db5('0x40')]())[_0x4db5('0x44')](_0x4db5('0x4a'),squel[_0x4db5('0x4b')](hopperContacts))[_0x4db5('0x44')]('phone\x20IS\x20NOT\x20NULL'))[_0x4db5('0x40')]();return _0x2c17bc;}return db[_0x4db5('0x4f')]['findAll']({'where':{'type':'outbound'},'attributes':['id',_0x4db5('0x50')],'include':[{'model':db[_0x4db5('0x51')],'as':_0x4db5('0x52'),'where':{'id':LISTID}}]})[_0x4db5('0x2e')](function(_0x21a696){var _0x5db16a=[];if(_0x21a696){var _0x2756d4;for(var _0x584bb8=0x0,_0xf8b597;_0x584bb8<_0x21a696['length'];_0x584bb8+=0x1){_0xf8b597=_0x21a696[_0x584bb8][_0x4db5('0x53')]({'plain':!![]});switch(_0xf8b597[_0x4db5('0x50')]){case'always':_0x5db16a[_0x4db5('0x2f')](db['sequelize']['query'](_0x321741(_0xf8b597,_0x4db5('0x54')))['then'](function(){})[_0x4db5('0x31')](_0xc35549()));break;case'onlyIfOpen':_0x5db16a[_0x4db5('0x2f')](db['sequelize']['query'](_0x1fb596(_0xf8b597,_0x4db5('0x54')))[_0x4db5('0x2e')](function(){})[_0x4db5('0x31')](_0xc35549()));break;default:_0x5db16a[_0x4db5('0x2f')](db[_0x4db5('0x55')][_0x4db5('0x56')](_0x447f9c(_0xf8b597,_0x4db5('0x54')))[_0x4db5('0x2e')](function(){})[_0x4db5('0x31')](_0xc35549()));}}}return _0x5db16a;})[_0x4db5('0x57')]()[_0x4db5('0x2e')](function(){return db[_0x4db5('0x4f')][_0x4db5('0x58')]({'where':{'type':_0x4db5('0x59')},'attributes':['id'],'include':[{'model':db[_0x4db5('0x51')],'as':_0x4db5('0x5a'),'where':{'id':LISTID}}]})[_0x4db5('0x2e')](function(_0x34b873){var _0x2c7814=[];if(_0x34b873){var _0x13cf2d;for(var _0x40e2a4=0x0,_0x338c05;_0x40e2a4<_0x34b873['length'];_0x40e2a4+=0x1){_0x338c05=_0x34b873[_0x40e2a4][_0x4db5('0x53')]({'plain':!![]});_0x2c7814[_0x4db5('0x2f')](db[_0x4db5('0x55')][_0x4db5('0x56')](_0x18a6a4(_0x338c05,_0x4db5('0x54')))[_0x4db5('0x2e')](function(){})[_0x4db5('0x31')](_0xc35549()));}}return _0x2c7814;})[_0x4db5('0x57')]();})[_0x4db5('0x2e')](function(){return db[_0x4db5('0x5b')][_0x4db5('0x58')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x4db5('0x51')],'as':_0x4db5('0x52'),'where':{'id':LISTID}}]})[_0x4db5('0x2e')](function(_0x52d293){var _0x4ac9ef=[];if(_0x52d293){for(var _0x2aea29=0x0,_0x2742f8;_0x2aea29<_0x52d293[_0x4db5('0x1a')];_0x2aea29+=0x1){_0x2742f8=_0x52d293[_0x2aea29][_0x4db5('0x53')]({'plain':!![]});switch(_0x2742f8['dialCheckDuplicateType']){case _0x4db5('0x5c'):_0x4ac9ef[_0x4db5('0x2f')](db[_0x4db5('0x55')][_0x4db5('0x56')](_0x321741(_0x2742f8,'CampaignId'))[_0x4db5('0x2e')](function(){})[_0x4db5('0x31')](_0xc35549()));break;case _0x4db5('0x5d'):_0x4ac9ef['push'](db[_0x4db5('0x55')]['query'](_0x1fb596(_0x2742f8,_0x4db5('0x5e')))[_0x4db5('0x2e')](function(){})[_0x4db5('0x31')](_0xc35549()));break;default:_0x4ac9ef[_0x4db5('0x2f')](db[_0x4db5('0x55')][_0x4db5('0x56')](_0x447f9c(_0x2742f8,_0x4db5('0x5e')))[_0x4db5('0x2e')](function(){})['catch'](_0xc35549()));}}}return _0x4ac9ef;})[_0x4db5('0x57')]();})[_0x4db5('0x2e')](function(){return db[_0x4db5('0x5b')][_0x4db5('0x58')]({'attributes':['id'],'include':[{'model':db[_0x4db5('0x51')],'as':_0x4db5('0x5a'),'where':{'id':LISTID}}]})[_0x4db5('0x2e')](function(_0x5b687a){var _0x2c12fb=[];if(_0x5b687a){for(var _0x3aba03=0x0,_0x15c5fe;_0x3aba03<_0x5b687a[_0x4db5('0x1a')];_0x3aba03+=0x1){_0x15c5fe=_0x5b687a[_0x3aba03][_0x4db5('0x53')]({'plain':!![]});_0x2c12fb[_0x4db5('0x2f')](db['sequelize'][_0x4db5('0x56')](_0x18a6a4(_0x15c5fe,_0x4db5('0x5e')))['then'](function(){})[_0x4db5('0x31')](_0xc35549()));}}return _0x2c12fb;})[_0x4db5('0x57')]();})[_0x4db5('0x31')](function(_0xd10d04){logger['error'](_0x4db5('0x5f'),_0x4db5('0x60'),_0xd10d04[_0x4db5('0x1c')]);});}var processPromises=function(_0x2f9146){return BPromise[_0x4db5('0x57')](promises)[_0x4db5('0x2e')](function(_0x2f8cab){})['catch'](function(_0x1f7504){logger['error'](_0x4db5('0x61'),JSON[_0x4db5('0x33')](_0x1f7504));})['finally'](function(){socket[_0x4db5('0x62')]('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x2f9146){return _0x2f9146[_0x4db5('0x63')]();}});};var endCsv=function(){return BPromise[_0x4db5('0x64')]()[_0x4db5('0x2e')](function(){if(hopperContacts){return checkHopper();}})[_0x4db5('0x2e')](function(){socket[_0x4db5('0x62')](_0x4db5('0x65')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x4db5('0x66')](FILEPATH);}catch(_0x37d4ae){logger[_0x4db5('0x14')](_0x4db5('0x67'),JSON[_0x4db5('0x33')](_0x37d4ae));}finally{process[_0x4db5('0x68')](0x0);}});};process['on']('SIGINT',function(){logger[_0x4db5('0x69')](_0x4db5('0x6a'));endCsv();});function main(){return BPromise[_0x4db5('0x64')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x4db5('0x11')](',');return db[_0x4db5('0x2b')][_0x4db5('0x58')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x4db5('0x2e')](function(_0x2ee525){var _0x1c6e46=fs[_0x4db5('0x6b')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x4db5('0x6c')](_0x1c6e46,{'header':!![],'skipEmptyLines':!![],'step':function(_0x2578d6,_0x4bce50){total+=0x1;var _0x585f1b=total;promises['push'](checkRow(_0x2578d6,_0x2ee525,_0x585f1b)['then'](function(){success+=0x1;})['catch'](function(_0x5e9196){if(_0x5e9196['error']){errors+=0x1;delete _0x5e9196[_0x4db5('0x14')];}else if(_0x5e9196[_0x4db5('0x29')]){duplicates+=0x1;delete _0x5e9196[_0x4db5('0x29')];}rows['push'](_0x5e9196);}));if(total%0xc8===0x0){_0x4bce50[_0x4db5('0x6d')]();return processPromises(_0x4bce50);}},'complete':function(){return processPromises()[_0x4db5('0x2e')](function(){logger[_0x4db5('0x69')](_0x4db5('0x6e'));endCsv();});},'error':function(_0x1943a7,_0x1d7303){logger['info'](_0x4db5('0x6f'),JSON[_0x4db5('0x33')](_0x1943a7));endCsv();}});})['catch'](function(_0x4c728b){logger[_0x4db5('0x14')](_0x4db5('0x70'),JSON[_0x4db5('0x33')](_0x4c728b));});}main();