Built motion from commit 2b9af5da.|2.6.26
[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 _0xd07f=['ListId','NOW()','from','deletedAt\x20IS\x20NULL','where','phone\x20IS\x20NOT\x20NULL','\x20=\x20?','insert','cm_contacts','ListId\x20=\x20?','id\x20IN\x20?','phone\x20NOT\x20IN\x20(?)','calleridnum','cm_hopper_final','str','cm_hopper_black','VoiceQueue','findAll','dialCheckDuplicateType','CmList','get','always','sequelize','query','VoiceQueueId','outbound','BlackLists','Campaign','Lists','CampaignId','onlyIfOpen','all','cmContact,\x20%s,\x20%s','generalCheckHopper','message','finally','emit','contact:csv_','resolve','Unable\x20to\x20delete\x20temp\x20file:','info','CSV\x20import\x20process\x20stopped!','parse','pause','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','util','squel','papaparse','ioredis','../../../config/logger','api','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','zipObject','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','join','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','then','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','checkHopper','inspect','into','cm_hopper','fromQuery','scheduledAt','ContactId','createdAt','updatedAt','select','field','toString'];(function(_0x59d957,_0x5dc0cb){var _0x406bdf=function(_0x319d80){while(--_0x319d80){_0x59d957['push'](_0x59d957['shift']());}};_0x406bdf(++_0x5dc0cb);}(_0xd07f,0x9a));var _0xfd07=function(_0x5daefa,_0x3d8a1b){_0x5daefa=_0x5daefa-0x0;var _0x1698c1=_0xd07f[_0x5daefa];return _0x1698c1;};'use strict';var BPromise=require('bluebird');var util=require(_0xfd07('0x0'));var _=require('lodash');var fs=require('fs');var squel=require(_0xfd07('0x1'));var Papa=require(_0xfd07('0x2'));var Redis=require(_0xfd07('0x3'));var db=require('../../../mysqldb')['db'];var config=require('../../../config/environment');var logger=require(_0xfd07('0x4'))(_0xfd07('0x5'));config[_0xfd07('0x6')]=_[_0xfd07('0x7')](config[_0xfd07('0x6')],{'host':_0xfd07('0x8'),'port':0x18eb});var socket=require(_0xfd07('0x9'))(new Redis(config[_0xfd07('0x6')]));require(_0xfd07('0xa'))['register'](socket);try{if(!process[_0xfd07('0xb')][0x2]||process['argv'][0x2]===_0xfd07('0xc')||process[_0xfd07('0xb')][0x2]===_0xfd07('0xd')){throw new Error(_0xfd07('0xe'));}var FILEPATH=process[_0xfd07('0xb')][0x2];if(!process[_0xfd07('0xb')][0x3]||process[_0xfd07('0xb')][0x3]===_0xfd07('0xc')||process[_0xfd07('0xb')][0x3]===_0xfd07('0xd')||!process[_0xfd07('0xb')][0x4]||process[_0xfd07('0xb')][0x4]===_0xfd07('0xc')||process['argv'][0x4]==='null'){throw new Error(_0xfd07('0xf'));}var FIELDS=_[_0xfd07('0x10')](process[_0xfd07('0xb')][0x3][_0xfd07('0x11')](','),process[_0xfd07('0xb')][0x4][_0xfd07('0x11')](','));if(!process[_0xfd07('0xb')][0x5]||process[_0xfd07('0xb')][0x5]==='undefined'||process[_0xfd07('0xb')][0x5]==='null'){throw new Error(_0xfd07('0x12'));}var LISTID=process[_0xfd07('0xb')][0x5];var COMPANYID=process[_0xfd07('0xb')][0x6]&&process[_0xfd07('0xb')][0x6]!==_0xfd07('0xc')&&process['argv'][0x6]!==_0xfd07('0xd')?process['argv'][0x6]:null;var DUPLICATES=process[_0xfd07('0xb')][0x7]&&process[_0xfd07('0xb')][0x7]!=='undefined'&&process[_0xfd07('0xb')][0x7]!==_0xfd07('0xd')?process[_0xfd07('0xb')][0x7]:null;if(!process[_0xfd07('0xb')][0x8]||process[_0xfd07('0xb')][0x8]===_0xfd07('0xc')||process['argv'][0x8]==='null'){throw new Error(_0xfd07('0x13'));}var SOCKET_TIMESTAMP=process[_0xfd07('0xb')][0x8];}catch(_0x24477e){logger[_0xfd07('0x14')](_0x24477e);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(_0x9b925d,_0x1e5e02,_0x1d3f4a,_0x3e6671){var _0x356db3={'message':_0x1e5e02};_0x356db3[_0x9b925d]=!![];if(_0x1d3f4a){_0x356db3[_0xfd07('0x15')]=_0x1d3f4a;}if(_0x3e6671){_0x356db3[_0xfd07('0x16')]=_0x3e6671;}return _0x356db3;}function isEmail(_0x287524){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))*$/[_0xfd07('0x17')](_0x287524);}function checkRow(_0x1e642b,_0x26409d,_0x348d4e){return new BPromise(function(_0x5d8929,_0x56963a){if(_[_0xfd07('0x18')](_0x1e642b)){return _0x56963a(handleCheckRowError(_0xfd07('0x14'),_0xfd07('0x19'),null,_0x348d4e));}if(_0x1e642b[_0xfd07('0x1a')]&&_0x1e642b['errors'][_0xfd07('0x1b')]){var _0x2c3d22=_['map'](_0x1e642b[_0xfd07('0x1a')],'message')[_0xfd07('0x1c')](';');return _0x56963a(handleCheckRowError(_0xfd07('0x14'),_0x2c3d22,null,_0x348d4e));}var _0x6b5c3c={};for(var _0x452099 in FIELDS){if(FIELDS['hasOwnProperty'](_0x452099)&&FIELDS[_0x452099]){_0x6b5c3c[_0x452099]=_0x1e642b['data'][0x0][FIELDS[_0x452099]]||_0x1e642b[_0xfd07('0x1d')][0x0]['\ufeff'+FIELDS[_0x452099]];}}if(!_0x6b5c3c[_0xfd07('0x1e')]){return _0x56963a(handleCheckRowError(_0xfd07('0x14'),_0xfd07('0x1f'),null,_0x348d4e));}if(!_0x6b5c3c[_0xfd07('0x20')]){return _0x56963a(handleCheckRowError(_0xfd07('0x14'),_0xfd07('0x21'),null,_0x348d4e));}if(_0x6b5c3c[_0xfd07('0x22')]){var _0x648aef=moment(_0x6b5c3c[_0xfd07('0x22')],_0xfd07('0x23'));if(!_0x648aef[_0xfd07('0x24')]()){return _0x56963a(handleCheckRowError('error',_0xfd07('0x25'),null,_0x348d4e));}}if(_0x6b5c3c[_0xfd07('0x26')]){if(!isEmail(_0x6b5c3c[_0xfd07('0x26')])){return _0x56963a(handleCheckRowError(_0xfd07('0x14'),'email\x20format\x20is\x20not\x20valid!',null,_0x348d4e));}}_0x6b5c3c['ListId']=LISTID;_0x6b5c3c[_0xfd07('0x27')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xfd07('0x1b')]&&_0x26409d){var _0x1438f6={};for(var _0x53e060=0x0,_0x2fd62b=DUPLICATES[_0xfd07('0x1b')];_0x53e060<_0x2fd62b;_0x53e060+=0x1){_0x1438f6[DUPLICATES[_0x53e060]]=_0x6b5c3c[DUPLICATES[_0x53e060]];}var _0x4a1b6b=_[_0xfd07('0x28')](_0x26409d,_0x1438f6);if(_0x4a1b6b){return _0x56963a(handleCheckRowError(_0xfd07('0x29'),_0xfd07('0x2a'),_0x4a1b6b,_0x348d4e));}}return db[_0xfd07('0x2b')]['create'](_0x6b5c3c,{'raw':!![],'hooks':![],'fields':_['keys'](_0x6b5c3c)})[_0xfd07('0x2c')](function(_0x5d9254){if(DUPLICATES&&DUPLICATES[_0xfd07('0x1b')]&&_0x26409d){_0x26409d[_0xfd07('0x2d')](_[_0xfd07('0x2e')](_0x6b5c3c,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x5d9254['id'];return _0x5d8929();})[_0xfd07('0x2f')](function(_0x39b34f){return _0x56963a(handleCheckRowError(_0xfd07('0x14'),_0xfd07('0x30')+(_0x39b34f['message']||JSON[_0xfd07('0x31')](_0x39b34f)),null,_0x348d4e));});});}function checkHopper(){function _0x1a721c(){return function(_0x1a4b85){logger[_0xfd07('0x14')]('cmContact',_0xfd07('0x32'),util[_0xfd07('0x33')](_0x1a4b85,{'showHidden':![],'depth':null}));};}var _0x16a22f=function(_0x311d23,_0x215ba6){var _0x4e5fa1=squel['insert']()[_0xfd07('0x34')](_0xfd07('0x35'))[_0xfd07('0x36')]([_0xfd07('0x20'),_0xfd07('0x37'),_0xfd07('0x38'),'ListId',_0x215ba6,_0xfd07('0x39'),_0xfd07('0x3a')],squel[_0xfd07('0x3b')]()['field']('phone',_0xfd07('0x20'))[_0xfd07('0x3c')]('NOW()',_0xfd07('0x37'))[_0xfd07('0x3c')]('id',_0xfd07('0x38'))[_0xfd07('0x3c')](LISTID[_0xfd07('0x3d')](),_0xfd07('0x3e'))['field'](_0x311d23['id']['toString'](),_0x215ba6)[_0xfd07('0x3c')](_0xfd07('0x3f'),_0xfd07('0x39'))[_0xfd07('0x3c')](_0xfd07('0x3f'),'updatedAt')[_0xfd07('0x40')]('cm_contacts')['where'](_0xfd07('0x41'))[_0xfd07('0x42')]('ListId\x20=\x20?',LISTID[_0xfd07('0x3d')]())['where'](_0xfd07('0x43'))['where']('phone\x20NOT\x20IN\x20(?)',squel[_0xfd07('0x3b')]()['field'](_0xfd07('0x20'))[_0xfd07('0x40')]('cm_hopper')['where'](_0x215ba6+_0xfd07('0x44'),_0x311d23['id'][_0xfd07('0x3d')]())))[_0xfd07('0x3d')]();return _0x4e5fa1;};var _0x5a496a=function(_0x18a84d,_0x236453){var _0xcbfcc3=squel[_0xfd07('0x45')]()['into'](_0xfd07('0x35'))[_0xfd07('0x36')]([_0xfd07('0x20'),_0xfd07('0x37'),'ContactId',_0xfd07('0x3e'),_0x236453,_0xfd07('0x39'),_0xfd07('0x3a')],squel['select']()[_0xfd07('0x3c')](_0xfd07('0x20'),_0xfd07('0x20'))[_0xfd07('0x3c')](_0xfd07('0x3f'),_0xfd07('0x37'))[_0xfd07('0x3c')]('id',_0xfd07('0x38'))['field'](LISTID['toString'](),_0xfd07('0x3e'))[_0xfd07('0x3c')](_0x18a84d['id']['toString'](),_0x236453)['field'](_0xfd07('0x3f'),_0xfd07('0x39'))[_0xfd07('0x3c')](_0xfd07('0x3f'),_0xfd07('0x3a'))[_0xfd07('0x40')](_0xfd07('0x46'))[_0xfd07('0x42')](_0xfd07('0x41'))[_0xfd07('0x42')](_0xfd07('0x47'),LISTID[_0xfd07('0x3d')]())[_0xfd07('0x42')](_0xfd07('0x48'),squel['str'](hopperContacts))['where'](_0xfd07('0x43'))[_0xfd07('0x42')](_0xfd07('0x49'),squel[_0xfd07('0x3b')]()[_0xfd07('0x3c')](_0xfd07('0x4a'))[_0xfd07('0x40')](_0xfd07('0x4b'))[_0xfd07('0x42')](_0x236453+_0xfd07('0x44'),_0x18a84d['id'][_0xfd07('0x3d')]()))['where'](_0xfd07('0x49'),squel[_0xfd07('0x3b')]()[_0xfd07('0x3c')](_0xfd07('0x20'))['from']('cm_hopper')[_0xfd07('0x42')](_0x236453+_0xfd07('0x44'),_0x18a84d['id'][_0xfd07('0x3d')]())))['toString']();return _0xcbfcc3;};function _0x2fa2b6(_0xf9478f,_0x297174){var _0x256d5e=squel[_0xfd07('0x45')]()[_0xfd07('0x34')](_0xfd07('0x35'))[_0xfd07('0x36')](['phone',_0xfd07('0x37'),_0xfd07('0x38'),_0xfd07('0x3e'),_0x297174,_0xfd07('0x39'),_0xfd07('0x3a')],squel[_0xfd07('0x3b')]()[_0xfd07('0x3c')](_0xfd07('0x20'),_0xfd07('0x20'))[_0xfd07('0x3c')](_0xfd07('0x3f'),_0xfd07('0x37'))['field']('id','ContactId')['field'](LISTID[_0xfd07('0x3d')](),_0xfd07('0x3e'))[_0xfd07('0x3c')](_0xf9478f['id']['toString'](),_0x297174)[_0xfd07('0x3c')](_0xfd07('0x3f'),_0xfd07('0x39'))[_0xfd07('0x3c')](_0xfd07('0x3f'),_0xfd07('0x3a'))[_0xfd07('0x40')](_0xfd07('0x46'))[_0xfd07('0x42')](_0xfd07('0x41'))['where'](_0xfd07('0x47'),LISTID[_0xfd07('0x3d')]())[_0xfd07('0x42')](_0xfd07('0x48'),squel[_0xfd07('0x4c')](hopperContacts))[_0xfd07('0x42')](_0xfd07('0x43')))[_0xfd07('0x3d')]();return _0x256d5e;}function _0x201bde(_0x131122,_0x50d498){var _0x29eceb=squel['insert']()['into'](_0xfd07('0x4d'))[_0xfd07('0x36')](['phone','ContactId','ListId',_0x50d498,_0xfd07('0x39'),_0xfd07('0x3a')],squel[_0xfd07('0x3b')]()[_0xfd07('0x3c')](_0xfd07('0x20'),_0xfd07('0x20'))[_0xfd07('0x3c')]('id',_0xfd07('0x38'))[_0xfd07('0x3c')](LISTID[_0xfd07('0x3d')](),_0xfd07('0x3e'))['field'](_0x131122['id']['toString'](),_0x50d498)['field'](_0xfd07('0x3f'),_0xfd07('0x39'))['field'](_0xfd07('0x3f'),'updatedAt')[_0xfd07('0x40')](_0xfd07('0x46'))[_0xfd07('0x42')](_0xfd07('0x41'))[_0xfd07('0x42')]('ListId\x20=\x20?',LISTID[_0xfd07('0x3d')]())[_0xfd07('0x42')](_0xfd07('0x48'),squel[_0xfd07('0x4c')](hopperContacts))[_0xfd07('0x42')](_0xfd07('0x43')))['toString']();return _0x29eceb;}return db[_0xfd07('0x4e')][_0xfd07('0x4f')]({'where':{'type':'outbound'},'attributes':['id',_0xfd07('0x50')],'include':[{'model':db[_0xfd07('0x51')],'as':'Lists','where':{'id':LISTID}}]})[_0xfd07('0x2c')](function(_0x526dd3){var _0x5b3a39=[];if(_0x526dd3){var _0x53c233;for(var _0x11005d=0x0,_0x271d91;_0x11005d<_0x526dd3['length'];_0x11005d+=0x1){_0x271d91=_0x526dd3[_0x11005d][_0xfd07('0x52')]({'plain':!![]});switch(_0x271d91[_0xfd07('0x50')]){case _0xfd07('0x53'):_0x5b3a39['push'](db[_0xfd07('0x54')][_0xfd07('0x55')](_0x5a496a(_0x271d91,_0xfd07('0x56')))[_0xfd07('0x2c')](function(){})[_0xfd07('0x2f')](_0x1a721c()));break;case'onlyIfOpen':_0x5b3a39[_0xfd07('0x2d')](db[_0xfd07('0x54')][_0xfd07('0x55')](_0x16a22f(_0x271d91,_0xfd07('0x56')))[_0xfd07('0x2c')](function(){})['catch'](_0x1a721c()));break;default:_0x5b3a39[_0xfd07('0x2d')](db[_0xfd07('0x54')][_0xfd07('0x55')](_0x2fa2b6(_0x271d91,'VoiceQueueId'))[_0xfd07('0x2c')](function(){})['catch'](_0x1a721c()));}}}return _0x5b3a39;})['all']()[_0xfd07('0x2c')](function(){return db[_0xfd07('0x4e')][_0xfd07('0x4f')]({'where':{'type':_0xfd07('0x57')},'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xfd07('0x58'),'where':{'id':LISTID}}]})['then'](function(_0x4e589f){var _0x39b603=[];if(_0x4e589f){var _0x394833;for(var _0x4cd96b=0x0,_0x36e241;_0x4cd96b<_0x4e589f[_0xfd07('0x1b')];_0x4cd96b+=0x1){_0x36e241=_0x4e589f[_0x4cd96b][_0xfd07('0x52')]({'plain':!![]});_0x39b603[_0xfd07('0x2d')](db['sequelize'][_0xfd07('0x55')](_0x201bde(_0x36e241,_0xfd07('0x56')))['then'](function(){})[_0xfd07('0x2f')](_0x1a721c()));}}return _0x39b603;})['all']();})[_0xfd07('0x2c')](function(){return db[_0xfd07('0x59')][_0xfd07('0x4f')]({'attributes':['id',_0xfd07('0x50')],'include':[{'model':db[_0xfd07('0x51')],'as':_0xfd07('0x5a'),'where':{'id':LISTID}}]})[_0xfd07('0x2c')](function(_0x1f8a14){var _0x823077=[];if(_0x1f8a14){for(var _0x26103f=0x0,_0x5a01bb;_0x26103f<_0x1f8a14[_0xfd07('0x1b')];_0x26103f+=0x1){_0x5a01bb=_0x1f8a14[_0x26103f][_0xfd07('0x52')]({'plain':!![]});switch(_0x5a01bb['dialCheckDuplicateType']){case _0xfd07('0x53'):_0x823077['push'](db['sequelize']['query'](_0x5a496a(_0x5a01bb,_0xfd07('0x5b')))[_0xfd07('0x2c')](function(){})[_0xfd07('0x2f')](_0x1a721c()));break;case _0xfd07('0x5c'):_0x823077[_0xfd07('0x2d')](db['sequelize'][_0xfd07('0x55')](_0x16a22f(_0x5a01bb,_0xfd07('0x5b')))[_0xfd07('0x2c')](function(){})['catch'](_0x1a721c()));break;default:_0x823077[_0xfd07('0x2d')](db[_0xfd07('0x54')]['query'](_0x2fa2b6(_0x5a01bb,'CampaignId'))[_0xfd07('0x2c')](function(){})[_0xfd07('0x2f')](_0x1a721c()));}}}return _0x823077;})[_0xfd07('0x5d')]();})[_0xfd07('0x2c')](function(){return db[_0xfd07('0x59')]['findAll']({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xfd07('0x58'),'where':{'id':LISTID}}]})['then'](function(_0x3662d8){var _0x41ecab=[];if(_0x3662d8){for(var _0xf9c02c=0x0,_0x260d43;_0xf9c02c<_0x3662d8['length'];_0xf9c02c+=0x1){_0x260d43=_0x3662d8[_0xf9c02c][_0xfd07('0x52')]({'plain':!![]});_0x41ecab[_0xfd07('0x2d')](db[_0xfd07('0x54')][_0xfd07('0x55')](_0x201bde(_0x260d43,'CampaignId'))[_0xfd07('0x2c')](function(){})[_0xfd07('0x2f')](_0x1a721c()));}}return _0x41ecab;})['all']();})[_0xfd07('0x2f')](function(_0x49460d){logger[_0xfd07('0x14')](_0xfd07('0x5e'),_0xfd07('0x5f'),_0x49460d[_0xfd07('0x60')]);});}var processPromises=function(_0x22f1df){return BPromise[_0xfd07('0x5d')](promises)[_0xfd07('0x2c')](function(_0x5e74ac){})['catch'](function(_0x17f3e8){logger[_0xfd07('0x14')]('Error\x20processing\x20rows\x20block:',JSON['stringify'](_0x17f3e8));})[_0xfd07('0x61')](function(){socket[_0xfd07('0x62')](_0xfd07('0x63')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x22f1df){return _0x22f1df['resume']();}});};var endCsv=function(){return BPromise[_0xfd07('0x64')]()[_0xfd07('0x2c')](function(){if(hopperContacts){return checkHopper();}})[_0xfd07('0x2c')](function(){socket['emit'](_0xfd07('0x63')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x29bf25){logger[_0xfd07('0x14')](_0xfd07('0x65'),JSON['stringify'](_0x29bf25));}finally{process['exit'](0x0);}});};process['on']('SIGINT',function(){logger[_0xfd07('0x66')](_0xfd07('0x67'));endCsv();});function main(){return BPromise[_0xfd07('0x64')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xfd07('0x11')](',');return db[_0xfd07('0x2b')][_0xfd07('0x4f')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x4c97b3){var _0x46f8fc=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xfd07('0x68')](_0x46f8fc,{'header':!![],'skipEmptyLines':!![],'step':function(_0x20ff03,_0xb42b77){total+=0x1;var _0x2922f6=total;promises[_0xfd07('0x2d')](checkRow(_0x20ff03,_0x4c97b3,_0x2922f6)[_0xfd07('0x2c')](function(){success+=0x1;})[_0xfd07('0x2f')](function(_0x312396){if(_0x312396[_0xfd07('0x14')]){errors+=0x1;delete _0x312396[_0xfd07('0x14')];}else if(_0x312396[_0xfd07('0x29')]){duplicates+=0x1;delete _0x312396[_0xfd07('0x29')];}rows[_0xfd07('0x2d')](_0x312396);}));if(total%0xc8===0x0){_0xb42b77[_0xfd07('0x69')]();return processPromises(_0xb42b77);}},'complete':function(){return processPromises()[_0xfd07('0x2c')](function(){logger[_0xfd07('0x66')]('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x2b06c3,_0x2566d3){logger[_0xfd07('0x66')](_0xfd07('0x6a'),JSON[_0xfd07('0x31')](_0x2b06c3));endCsv();}});})[_0xfd07('0x2f')](function(_0x471caf){logger['error'](_0xfd07('0x6b'),JSON[_0xfd07('0x31')](_0x471caf));});}main();