Built motion from commit f7863d46.|2.5.41
[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 _0x5d96=['toString','field','createdAt','from','cm_contacts','where','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','fromQuery','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','id\x20IN\x20?','str','calleridnum','cm_hopper_final','updatedAt','cm_hopper_black','VoiceQueue','findAll','Lists','get','always','sequelize','query','VoiceQueueId','catch','onlyIfOpen','push','all','outbound','BlackLists','Campaign','dialCheckDuplicateType','CmList','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','parse','pause','CSV\x20parsed\x20correctly!','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','defaults','redis','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','index','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','message','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','keys','then','pick','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','insert','into','cm_hopper','scheduledAt','ContactId','select','phone','NOW()'];(function(_0x59659d,_0xb17019){var _0x2adbb5=function(_0x22ea94){while(--_0x22ea94){_0x59659d['push'](_0x59659d['shift']());}};_0x2adbb5(++_0xb17019);}(_0x5d96,0x11b));var _0x65d9=function(_0x387f93,_0x3266ca){_0x387f93=_0x387f93-0x0;var _0x41b457=_0x5d96[_0x387f93];return _0x41b457;};'use strict';var BPromise=require(_0x65d9('0x0'));var util=require(_0x65d9('0x1'));var _=require(_0x65d9('0x2'));var fs=require('fs');var squel=require('squel');var Papa=require(_0x65d9('0x3'));var Redis=require(_0x65d9('0x4'));var db=require(_0x65d9('0x5'))['db'];var config=require(_0x65d9('0x6'));var logger=require(_0x65d9('0x7'))(_0x65d9('0x8'));config['redis']=_[_0x65d9('0x9')](config[_0x65d9('0xa')],{'host':_0x65d9('0xb'),'port':0x18eb});var socket=require(_0x65d9('0xc'))(new Redis(config[_0x65d9('0xa')]));require(_0x65d9('0xd'))[_0x65d9('0xe')](socket);try{if(!process['argv'][0x2]||process[_0x65d9('0xf')][0x2]===_0x65d9('0x10')||process[_0x65d9('0xf')][0x2]===_0x65d9('0x11')){throw new Error(_0x65d9('0x12'));}var FILEPATH=process[_0x65d9('0xf')][0x2];if(!process[_0x65d9('0xf')][0x3]||process[_0x65d9('0xf')][0x3]===_0x65d9('0x10')||process[_0x65d9('0xf')][0x3]===_0x65d9('0x11')||!process['argv'][0x4]||process[_0x65d9('0xf')][0x4]===_0x65d9('0x10')||process['argv'][0x4]===_0x65d9('0x11')){throw new Error(_0x65d9('0x13'));}var FIELDS=_['zipObject'](process[_0x65d9('0xf')][0x3][_0x65d9('0x14')](','),process[_0x65d9('0xf')][0x4]['split'](','));if(!process[_0x65d9('0xf')][0x5]||process[_0x65d9('0xf')][0x5]===_0x65d9('0x10')||process[_0x65d9('0xf')][0x5]===_0x65d9('0x11')){throw new Error(_0x65d9('0x15'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0x65d9('0xf')][0x6]&&process['argv'][0x6]!==_0x65d9('0x10')&&process['argv'][0x6]!==_0x65d9('0x11')?process[_0x65d9('0xf')][0x6]:null;var DUPLICATES=process[_0x65d9('0xf')][0x7]&&process[_0x65d9('0xf')][0x7]!=='undefined'&&process['argv'][0x7]!=='null'?process[_0x65d9('0xf')][0x7]:null;if(!process[_0x65d9('0xf')][0x8]||process[_0x65d9('0xf')][0x8]===_0x65d9('0x10')||process[_0x65d9('0xf')][0x8]===_0x65d9('0x11')){throw new Error(_0x65d9('0x16'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x49b577){logger[_0x65d9('0x17')](_0x49b577);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(_0xd90cb2,_0x8b7413,_0x1ef247,_0x26eea2){var _0x5eef49={'message':_0x8b7413};_0x5eef49[_0xd90cb2]=!![];if(_0x1ef247){_0x5eef49[_0x65d9('0x18')]=_0x1ef247;}if(_0x26eea2){_0x5eef49[_0x65d9('0x19')]=_0x26eea2;}return _0x5eef49;}function isEmail(_0x3a560f){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))*$/[_0x65d9('0x1a')](_0x3a560f);}function checkRow(_0x4c9f0c,_0x9c6477,_0x4ad471){return new BPromise(function(_0x375b40,_0x574888){if(_[_0x65d9('0x1b')](_0x4c9f0c)){return _0x574888(handleCheckRowError(_0x65d9('0x17'),_0x65d9('0x1c'),null,_0x4ad471));}if(_0x4c9f0c[_0x65d9('0x1d')]&&_0x4c9f0c[_0x65d9('0x1d')][_0x65d9('0x1e')]){var _0x5e205=_['map'](_0x4c9f0c[_0x65d9('0x1d')],_0x65d9('0x1f'))['join'](';');return _0x574888(handleCheckRowError(_0x65d9('0x17'),_0x5e205,null,_0x4ad471));}var _0x169e2a={};for(var _0x323ce2 in FIELDS){if(FIELDS[_0x65d9('0x20')](_0x323ce2)&&FIELDS[_0x323ce2]){_0x169e2a[_0x323ce2]=_0x4c9f0c[_0x65d9('0x21')][0x0][FIELDS[_0x323ce2]]||_0x4c9f0c[_0x65d9('0x21')][0x0]['\ufeff'+FIELDS[_0x323ce2]];}}if(!_0x169e2a[_0x65d9('0x22')]){return _0x574888(handleCheckRowError(_0x65d9('0x17'),_0x65d9('0x23'),null,_0x4ad471));}if(!_0x169e2a['phone']){return _0x574888(handleCheckRowError(_0x65d9('0x17'),_0x65d9('0x24'),null,_0x4ad471));}if(_0x169e2a[_0x65d9('0x25')]){var _0x3185fd=moment(_0x169e2a[_0x65d9('0x25')],_0x65d9('0x26'));if(!_0x3185fd['isValid']()){return _0x574888(handleCheckRowError(_0x65d9('0x17'),_0x65d9('0x27'),null,_0x4ad471));}}if(_0x169e2a[_0x65d9('0x28')]){if(!isEmail(_0x169e2a[_0x65d9('0x28')])){return _0x574888(handleCheckRowError(_0x65d9('0x17'),_0x65d9('0x29'),null,_0x4ad471));}}_0x169e2a[_0x65d9('0x2a')]=LISTID;_0x169e2a[_0x65d9('0x2b')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x65d9('0x1e')]&&_0x9c6477){var _0x4e08fc={};for(var _0x24df62=0x0,_0x32c61e=DUPLICATES[_0x65d9('0x1e')];_0x24df62<_0x32c61e;_0x24df62+=0x1){_0x4e08fc[DUPLICATES[_0x24df62]]=_0x169e2a[DUPLICATES[_0x24df62]];}var _0x2ae7c8=_[_0x65d9('0x2c')](_0x9c6477,_0x4e08fc);if(_0x2ae7c8){return _0x574888(handleCheckRowError(_0x65d9('0x2d'),_0x65d9('0x2e'),_0x2ae7c8,_0x4ad471));}}return db[_0x65d9('0x2f')]['create'](_0x169e2a,{'raw':!![],'hooks':![],'fields':_[_0x65d9('0x30')](_0x169e2a)})[_0x65d9('0x31')](function(_0x35bb79){if(DUPLICATES&&DUPLICATES[_0x65d9('0x1e')]&&_0x9c6477){_0x9c6477['push'](_[_0x65d9('0x32')](_0x169e2a,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x35bb79['id'];return _0x375b40();})['catch'](function(_0x22a5cc){return _0x574888(handleCheckRowError(_0x65d9('0x17'),_0x65d9('0x33')+(_0x22a5cc['message']||JSON[_0x65d9('0x34')](_0x22a5cc)),null,_0x4ad471));});});}function checkHopper(){function _0x4d0500(){return function(_0x52e5be){logger[_0x65d9('0x17')](_0x65d9('0x35'),'checkHopper',util['inspect'](_0x52e5be,{'showHidden':![],'depth':null}));};}var _0x4e0ec4=function(_0x19ce31,_0x271dad){var _0x795c5f=squel[_0x65d9('0x36')]()[_0x65d9('0x37')](_0x65d9('0x38'))['fromQuery'](['phone',_0x65d9('0x39'),_0x65d9('0x3a'),'ListId',_0x271dad,'createdAt','updatedAt'],squel[_0x65d9('0x3b')]()['field'](_0x65d9('0x3c'),_0x65d9('0x3c'))['field'](_0x65d9('0x3d'),_0x65d9('0x39'))['field']('id','ContactId')['field'](LISTID[_0x65d9('0x3e')](),_0x65d9('0x2a'))[_0x65d9('0x3f')](_0x19ce31['id']['toString'](),_0x271dad)[_0x65d9('0x3f')](_0x65d9('0x3d'),_0x65d9('0x40'))['field'](_0x65d9('0x3d'),'updatedAt')[_0x65d9('0x41')](_0x65d9('0x42'))[_0x65d9('0x43')]('deletedAt\x20IS\x20NULL')[_0x65d9('0x43')]('ListId\x20=\x20?',LISTID[_0x65d9('0x3e')]())[_0x65d9('0x43')](_0x65d9('0x44'))[_0x65d9('0x43')](_0x65d9('0x45'),squel[_0x65d9('0x3b')]()[_0x65d9('0x3f')](_0x65d9('0x3c'))[_0x65d9('0x41')](_0x65d9('0x38'))[_0x65d9('0x43')](_0x271dad+_0x65d9('0x46'),_0x19ce31['id'][_0x65d9('0x3e')]())))[_0x65d9('0x3e')]();return _0x795c5f;};var _0x32741b=function(_0x4be40d,_0x49a439){var _0xe9575e=squel[_0x65d9('0x36')]()[_0x65d9('0x37')](_0x65d9('0x38'))[_0x65d9('0x47')]([_0x65d9('0x3c'),_0x65d9('0x39'),_0x65d9('0x3a'),_0x65d9('0x2a'),_0x49a439,_0x65d9('0x40'),'updatedAt'],squel[_0x65d9('0x3b')]()['field'](_0x65d9('0x3c'),_0x65d9('0x3c'))[_0x65d9('0x3f')]('NOW()',_0x65d9('0x39'))[_0x65d9('0x3f')]('id',_0x65d9('0x3a'))[_0x65d9('0x3f')](LISTID[_0x65d9('0x3e')](),_0x65d9('0x2a'))['field'](_0x4be40d['id']['toString'](),_0x49a439)[_0x65d9('0x3f')](_0x65d9('0x3d'),'createdAt')[_0x65d9('0x3f')]('NOW()','updatedAt')[_0x65d9('0x41')](_0x65d9('0x42'))[_0x65d9('0x43')](_0x65d9('0x48'))[_0x65d9('0x43')](_0x65d9('0x49'),LISTID[_0x65d9('0x3e')]())['where'](_0x65d9('0x4a'),squel[_0x65d9('0x4b')](hopperContacts))[_0x65d9('0x43')]('phone\x20IS\x20NOT\x20NULL')[_0x65d9('0x43')](_0x65d9('0x45'),squel[_0x65d9('0x3b')]()['field'](_0x65d9('0x4c'))[_0x65d9('0x41')](_0x65d9('0x4d'))[_0x65d9('0x43')](_0x49a439+_0x65d9('0x46'),_0x4be40d['id'][_0x65d9('0x3e')]()))['where'](_0x65d9('0x45'),squel[_0x65d9('0x3b')]()['field']('phone')['from'](_0x65d9('0x38'))[_0x65d9('0x43')](_0x49a439+_0x65d9('0x46'),_0x4be40d['id']['toString']())))[_0x65d9('0x3e')]();return _0xe9575e;};function _0x2b9794(_0x2e4425,_0x31f5c8){var _0x12bed3=squel[_0x65d9('0x36')]()[_0x65d9('0x37')](_0x65d9('0x38'))['fromQuery']([_0x65d9('0x3c'),_0x65d9('0x39'),_0x65d9('0x3a'),_0x65d9('0x2a'),_0x31f5c8,_0x65d9('0x40'),_0x65d9('0x4e')],squel[_0x65d9('0x3b')]()[_0x65d9('0x3f')](_0x65d9('0x3c'),_0x65d9('0x3c'))[_0x65d9('0x3f')](_0x65d9('0x3d'),_0x65d9('0x39'))['field']('id',_0x65d9('0x3a'))['field'](LISTID[_0x65d9('0x3e')](),_0x65d9('0x2a'))[_0x65d9('0x3f')](_0x2e4425['id'][_0x65d9('0x3e')](),_0x31f5c8)[_0x65d9('0x3f')](_0x65d9('0x3d'),_0x65d9('0x40'))[_0x65d9('0x3f')]('NOW()',_0x65d9('0x4e'))[_0x65d9('0x41')](_0x65d9('0x42'))[_0x65d9('0x43')](_0x65d9('0x48'))[_0x65d9('0x43')](_0x65d9('0x49'),LISTID[_0x65d9('0x3e')]())[_0x65d9('0x43')](_0x65d9('0x4a'),squel[_0x65d9('0x4b')](hopperContacts))['where'](_0x65d9('0x44')))[_0x65d9('0x3e')]();return _0x12bed3;}function _0x4c6a23(_0x413259,_0x300152){var _0x3ab2e7=squel['insert']()[_0x65d9('0x37')](_0x65d9('0x4f'))[_0x65d9('0x47')](['phone','ContactId',_0x65d9('0x2a'),_0x300152,_0x65d9('0x40'),_0x65d9('0x4e')],squel[_0x65d9('0x3b')]()['field'](_0x65d9('0x3c'),_0x65d9('0x3c'))[_0x65d9('0x3f')]('id','ContactId')[_0x65d9('0x3f')](LISTID[_0x65d9('0x3e')](),_0x65d9('0x2a'))['field'](_0x413259['id'][_0x65d9('0x3e')](),_0x300152)[_0x65d9('0x3f')]('NOW()','createdAt')['field'](_0x65d9('0x3d'),_0x65d9('0x4e'))[_0x65d9('0x41')](_0x65d9('0x42'))[_0x65d9('0x43')](_0x65d9('0x48'))['where'](_0x65d9('0x49'),LISTID[_0x65d9('0x3e')]())[_0x65d9('0x43')](_0x65d9('0x4a'),squel[_0x65d9('0x4b')](hopperContacts))[_0x65d9('0x43')]('phone\x20IS\x20NOT\x20NULL'))[_0x65d9('0x3e')]();return _0x3ab2e7;}return db[_0x65d9('0x50')][_0x65d9('0x51')]({'where':{'type':'outbound'},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db['CmList'],'as':_0x65d9('0x52'),'where':{'id':LISTID}}]})['then'](function(_0x267384){var _0x1f9e93=[];if(_0x267384){var _0x3c5dae;for(var _0x27f670=0x0,_0xd24c54;_0x27f670<_0x267384[_0x65d9('0x1e')];_0x27f670+=0x1){_0xd24c54=_0x267384[_0x27f670][_0x65d9('0x53')]({'plain':!![]});switch(_0xd24c54['dialCheckDuplicateType']){case _0x65d9('0x54'):_0x1f9e93['push'](db[_0x65d9('0x55')][_0x65d9('0x56')](_0x32741b(_0xd24c54,_0x65d9('0x57')))[_0x65d9('0x31')](function(){})[_0x65d9('0x58')](_0x4d0500()));break;case _0x65d9('0x59'):_0x1f9e93['push'](db[_0x65d9('0x55')][_0x65d9('0x56')](_0x4e0ec4(_0xd24c54,_0x65d9('0x57')))['then'](function(){})[_0x65d9('0x58')](_0x4d0500()));break;default:_0x1f9e93[_0x65d9('0x5a')](db[_0x65d9('0x55')][_0x65d9('0x56')](_0x2b9794(_0xd24c54,_0x65d9('0x57')))[_0x65d9('0x31')](function(){})[_0x65d9('0x58')](_0x4d0500()));}}}return _0x1f9e93;})[_0x65d9('0x5b')]()[_0x65d9('0x31')](function(){return db[_0x65d9('0x50')]['findAll']({'where':{'type':_0x65d9('0x5c')},'attributes':['id'],'include':[{'model':db['CmList'],'as':_0x65d9('0x5d'),'where':{'id':LISTID}}]})[_0x65d9('0x31')](function(_0x273f9e){var _0x5d5e71=[];if(_0x273f9e){var _0x623fc9;for(var _0x57e0f3=0x0,_0x899b25;_0x57e0f3<_0x273f9e['length'];_0x57e0f3+=0x1){_0x899b25=_0x273f9e[_0x57e0f3]['get']({'plain':!![]});_0x5d5e71[_0x65d9('0x5a')](db['sequelize'][_0x65d9('0x56')](_0x4c6a23(_0x899b25,_0x65d9('0x57')))[_0x65d9('0x31')](function(){})[_0x65d9('0x58')](_0x4d0500()));}}return _0x5d5e71;})[_0x65d9('0x5b')]();})['then'](function(){return db[_0x65d9('0x5e')][_0x65d9('0x51')]({'attributes':['id',_0x65d9('0x5f')],'include':[{'model':db[_0x65d9('0x60')],'as':_0x65d9('0x52'),'where':{'id':LISTID}}]})[_0x65d9('0x31')](function(_0x414049){var _0x559d5e=[];if(_0x414049){for(var _0x4d8348=0x0,_0x4910c8;_0x4d8348<_0x414049[_0x65d9('0x1e')];_0x4d8348+=0x1){_0x4910c8=_0x414049[_0x4d8348]['get']({'plain':!![]});switch(_0x4910c8[_0x65d9('0x5f')]){case _0x65d9('0x54'):_0x559d5e['push'](db[_0x65d9('0x55')][_0x65d9('0x56')](_0x32741b(_0x4910c8,'CampaignId'))['then'](function(){})[_0x65d9('0x58')](_0x4d0500()));break;case'onlyIfOpen':_0x559d5e[_0x65d9('0x5a')](db[_0x65d9('0x55')]['query'](_0x4e0ec4(_0x4910c8,_0x65d9('0x61')))[_0x65d9('0x31')](function(){})[_0x65d9('0x58')](_0x4d0500()));break;default:_0x559d5e[_0x65d9('0x5a')](db[_0x65d9('0x55')]['query'](_0x2b9794(_0x4910c8,_0x65d9('0x61')))[_0x65d9('0x31')](function(){})[_0x65d9('0x58')](_0x4d0500()));}}}return _0x559d5e;})[_0x65d9('0x5b')]();})[_0x65d9('0x31')](function(){return db[_0x65d9('0x5e')][_0x65d9('0x51')]({'attributes':['id'],'include':[{'model':db[_0x65d9('0x60')],'as':_0x65d9('0x5d'),'where':{'id':LISTID}}]})[_0x65d9('0x31')](function(_0x2efcf4){var _0x3159e5=[];if(_0x2efcf4){for(var _0x46e743=0x0,_0x2eaf6b;_0x46e743<_0x2efcf4[_0x65d9('0x1e')];_0x46e743+=0x1){_0x2eaf6b=_0x2efcf4[_0x46e743][_0x65d9('0x53')]({'plain':!![]});_0x3159e5[_0x65d9('0x5a')](db['sequelize'][_0x65d9('0x56')](_0x4c6a23(_0x2eaf6b,_0x65d9('0x61')))[_0x65d9('0x31')](function(){})[_0x65d9('0x58')](_0x4d0500()));}}return _0x3159e5;})[_0x65d9('0x5b')]();})[_0x65d9('0x58')](function(_0x5df19a){logger[_0x65d9('0x17')](_0x65d9('0x62'),_0x65d9('0x63'),_0x5df19a['message']);});}var processPromises=function(_0x5b686f){return BPromise[_0x65d9('0x5b')](promises)['then'](function(_0x29e94a){})['catch'](function(_0x2e92ae){logger[_0x65d9('0x17')](_0x65d9('0x64'),JSON['stringify'](_0x2e92ae));})[_0x65d9('0x65')](function(){socket[_0x65d9('0x66')](_0x65d9('0x67')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x5b686f){return _0x5b686f['resume']();}});};var endCsv=function(){return BPromise[_0x65d9('0x68')]()[_0x65d9('0x31')](function(){if(hopperContacts){return checkHopper();}})[_0x65d9('0x31')](function(){socket[_0x65d9('0x66')](_0x65d9('0x67')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x65d9('0x69')](FILEPATH);}catch(_0x674458){logger[_0x65d9('0x17')](_0x65d9('0x6a'),JSON[_0x65d9('0x34')](_0x674458));}finally{process[_0x65d9('0x6b')](0x0);}});};process['on'](_0x65d9('0x6c'),function(){logger[_0x65d9('0x6d')](_0x65d9('0x6e'));endCsv();});function main(){return BPromise[_0x65d9('0x68')]()[_0x65d9('0x31')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x65d9('0x14')](',');return db[_0x65d9('0x2f')][_0x65d9('0x51')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x65d9('0x31')](function(_0x4de061){var _0x240fb2=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x65d9('0x6f')](_0x240fb2,{'header':!![],'skipEmptyLines':!![],'step':function(_0x1817a9,_0xa4a651){total+=0x1;var _0x4eebf6=total;promises[_0x65d9('0x5a')](checkRow(_0x1817a9,_0x4de061,_0x4eebf6)['then'](function(){success+=0x1;})[_0x65d9('0x58')](function(_0x2c4bb5){if(_0x2c4bb5[_0x65d9('0x17')]){errors+=0x1;delete _0x2c4bb5['error'];}else if(_0x2c4bb5[_0x65d9('0x2d')]){duplicates+=0x1;delete _0x2c4bb5[_0x65d9('0x2d')];}rows[_0x65d9('0x5a')](_0x2c4bb5);}));if(total%0xc8===0x0){_0xa4a651[_0x65d9('0x70')]();return processPromises(_0xa4a651);}},'complete':function(){return processPromises()[_0x65d9('0x31')](function(){logger['info'](_0x65d9('0x71'));endCsv();});},'error':function(_0x4bfccc,_0xf796a0){logger[_0x65d9('0x6d')]('CSV\x20parse\x20error',JSON['stringify'](_0x4bfccc));endCsv();}});})[_0x65d9('0x58')](function(_0x18b8c){logger[_0x65d9('0x17')](_0x65d9('0x72'),JSON[_0x65d9('0x34')](_0x18b8c));});}main();