barcode-js
Version:
A node addon to perform barcode recognition and analysis
1 lines • 9.35 kB
JavaScript
function a1_0x369f(_0x5bab36,_0x2afc72){const _0x5ad7fb=a1_0x5ad7();return a1_0x369f=function(_0x369f15,_0x459e2e){_0x369f15=_0x369f15-0x101;let _0x5d5f64=_0x5ad7fb[_0x369f15];return _0x5d5f64;},a1_0x369f(_0x5bab36,_0x2afc72);}const a1_0x4dea18=a1_0x369f;(function(_0x2dbe55,_0x52269b){const _0x1a64a2=a1_0x369f,_0x195cb1=_0x2dbe55();while(!![]){try{const _0x5b38b9=-parseInt(_0x1a64a2(0x150))/0x1*(parseInt(_0x1a64a2(0x14b))/0x2)+parseInt(_0x1a64a2(0x137))/0x3*(parseInt(_0x1a64a2(0x132))/0x4)+-parseInt(_0x1a64a2(0x152))/0x5*(parseInt(_0x1a64a2(0x105))/0x6)+parseInt(_0x1a64a2(0x11e))/0x7+-parseInt(_0x1a64a2(0x136))/0x8+-parseInt(_0x1a64a2(0x111))/0x9+parseInt(_0x1a64a2(0x154))/0xa*(parseInt(_0x1a64a2(0x147))/0xb);if(_0x5b38b9===_0x52269b)break;else _0x195cb1['push'](_0x195cb1['shift']());}catch(_0x2c7a35){_0x195cb1['push'](_0x195cb1['shift']());}}}(a1_0x5ad7,0x7e61a));function a1_0x5ad7(){const _0x59da33=['solution_key','utf-8','code','child_process','solution_name','\x20-\x20','error','area.height','analyze','area.width','6763218OdmFJg','stdout','url','path','forEach','\x27\x20in\x20array\x20\x27','object','./licensing.js','stderr','royalMailVariableLengthDecoding','width','then','Engine\x20process\x20closed\x20with\x20code\x20','cpus','Invalid\x20input\x20type.\x20See\x20documentation\x20for\x20valid\x20input\x20types.','stdin','decode','platform','isBuffer','join','404QSkVee','concat','stream','bx-wrapper.exe','4212176CflqCn','17322mdsXXn','base64','message','Invalid\x20type\x20\x27','bitmap','type','close','toString','\x27\x20for\x20parameter\x20\x27params\x27;\x20should\x20be\x20\x27object\x27','Readable','data','reject','acquire','valueRaw','end','\x27\x20for\x20parameter\x20\x27','6812069IsGwdM','dependencies','read','EPIPE','66680XkxRBN','convertToDib','parse','\x27;\x20should\x20be\x20\x27string\x27','getOemLicenseKey','31tRFyrn','additionalReadingPass','1420795gfHMPj','nextTick','20RnlFlv','sendAnalyzeRequest','./protocol.js','jimp','area.x','oem_license_key','area.y','from','solutionKey','value64','filter','linux','./dib.js','area','6dYPcxs','oemLicenseKey','solutionName','win32','getSolutionKey','spawn','isArray','\x27;\x20should\x20be\x20\x27object\x27','value','undefined','string','number','3834243caoCuc','unknown','Sema'];a1_0x5ad7=function(){return _0x59da33;};return a1_0x5ad7();}const jimp=require(a1_0x4dea18(0x157)),child_process=require(a1_0x4dea18(0x117)),path=require(a1_0x4dea18(0x121)),os=require('os'),sema=require('async-sema')[a1_0x4dea18(0x113)],stream=require(a1_0x4dea18(0x134)),protocol=require(a1_0x4dea18(0x156)),licensing=require(a1_0x4dea18(0x125)),dib=require(a1_0x4dea18(0x103)),cpuCount=os[a1_0x4dea18(0x12b)]()['length'],maxProcessCount=cpuCount>0x0?cpuCount*0x1:0x1,processSema=new sema(maxProcessCount),adjustResults=_0x328377=>{const _0x180e84=a1_0x4dea18;return _0x328377[_0x180e84(0x122)](_0x261467=>{const _0x361c9d=_0x180e84;_0x261467['valueRaw']=Buffer[_0x361c9d(0x15b)](_0x261467['value64'],_0x361c9d(0x138)),_0x261467[_0x361c9d(0x10d)]=_0x261467[_0x361c9d(0x144)][_0x361c9d(0x13e)](_0x361c9d(0x115)),delete _0x261467[_0x361c9d(0x15d)];}),_0x328377[_0x180e84(0x101)](_0x33b9e5=>{const _0x547799=_0x180e84;if(_0x33b9e5[_0x547799(0x13c)]==_0x547799(0x112))return![];return!![];});},streamToBuffer=async _0x42ccab=>{return new Promise((_0x2cea76,_0xf8ad19)=>{const _0x62d8fc=a1_0x369f;var _0x415adc=[],_0x56b4e5=![];_0x42ccab['on'](_0x62d8fc(0x141),function(_0x27de5e){_0x415adc['push'](_0x27de5e);}),_0x42ccab['on'](_0x62d8fc(0x145),function(){const _0x41cb8a=_0x62d8fc;if(!_0x56b4e5){const _0x1ed7e1=Buffer[_0x41cb8a(0x133)](_0x415adc);_0x415adc=[],_0x56b4e5=!![],_0x2cea76(_0x1ed7e1);}}),_0x42ccab['on']('close',function(){if(!_0x56b4e5){const _0x4107e8=Buffer['concat'](_0x415adc);_0x415adc=[],_0x56b4e5=!![],_0x2cea76(_0x4107e8);}}),_0x42ccab['on'](_0x62d8fc(0x11a),function(_0x2830f8){_0xf8ad19(_0x2830f8);});});},sanitize=(_0x1bea58,_0x22c1f4)=>{const _0x1298b0=a1_0x4dea18;switch(_0x1bea58){case'type':if(typeof _0x22c1f4==='string')return[_0x22c1f4];if(!Array[_0x1298b0(0x10b)](_0x22c1f4))throw new Error(_0x1298b0(0x13a)+typeof _0x22c1f4+_0x1298b0(0x146)+_0x1bea58+'\x27;\x20should\x20be\x20\x27string\x27\x20or\x20array\x20of\x20strings');_0x22c1f4[_0x1298b0(0x122)](_0x1d2a19=>{const _0x13b444=_0x1298b0;if(typeof _0x1d2a19!==_0x13b444(0x10f))throw new Error('Invalid\x20type\x20\x27'+typeof _0x1d2a19+_0x13b444(0x123)+_0x1bea58+_0x13b444(0x14e));});return _0x22c1f4;case _0x1298b0(0x104):if(typeof _0x22c1f4!==_0x1298b0(0x124))throw new Error(_0x1298b0(0x13a)+typeof _0x22c1f4+_0x1298b0(0x146)+_0x1bea58+_0x1298b0(0x10c));return{'x':sanitize(_0x1298b0(0x158),_0x22c1f4['x']),'y':sanitize(_0x1298b0(0x15a),_0x22c1f4['y']),'width':sanitize(_0x1298b0(0x11d),_0x22c1f4[_0x1298b0(0x128)]),'height':sanitize('area.height',_0x22c1f4['height'])};case _0x1298b0(0x158):case _0x1298b0(0x15a):case _0x1298b0(0x11d):case _0x1298b0(0x11b):const _0x58b0f5=Number['parseInt'](_0x22c1f4);if(_0x58b0f5===NaN)throw new Error('Invalid\x20integer\x20value\x20for\x20parameter\x20\x27'+_0x1bea58+'\x27');return _0x58b0f5;case _0x1298b0(0x127):case'code39StartStopPatternsAreMandatory':case _0x1298b0(0x151):return!!_0x22c1f4;};return undefined;},preprocessOutgoingData=(_0x5a4767,_0x24ad21,_0x319a69)=>{const _0x5630a5=a1_0x4dea18;let _0x5c63d7={'input':_0x5a4767};for(param in _0x24ad21){let _0x58e7d7=sanitize(param,_0x24ad21[param]);if(typeof _0x58e7d7!==_0x5630a5(0x10e))_0x5c63d7[param]=_0x58e7d7;}return null!=_0x319a69[_0x5630a5(0x106)]&&(_0x5c63d7[_0x5630a5(0x159)]=_0x319a69[_0x5630a5(0x106)]),null!=_0x319a69['solutionName']&&(_0x5c63d7[_0x5630a5(0x118)]=_0x319a69[_0x5630a5(0x107)]),null!=_0x319a69[_0x5630a5(0x15c)]&&(_0x5c63d7[_0x5630a5(0x114)]=_0x319a69['solutionKey']),_0x5c63d7;},getWrapper=()=>{const _0x59010a=a1_0x4dea18;if(process['platform']!==_0x59010a(0x108)&&process[_0x59010a(0x12f)]!==_0x59010a(0x102))throw new Error('Unsupported\x20Operating\x20System\x20(allowed:\x20Linux\x2064\x20bit,\x20Windows\x2064\x20bit)');return path[_0x59010a(0x131)](__dirname,'..',_0x59010a(0x148),process['platform'],_0x59010a(0x135));},analyzeImage=async(_0x43f4eb,_0x47fe8e,_0x4e8c34)=>{return new Promise((_0x4e241f,_0x49eb4d)=>{const _0x265de4=a1_0x369f;let _0x28087b=preprocessOutgoingData(_0x43f4eb,_0x47fe8e,_0x4e8c34);const _0x44d1b5=child_process[_0x265de4(0x10a)](getWrapper()),_0x3ebdeb=[];_0x44d1b5[_0x265de4(0x11f)]['on']('data',_0x2fe052=>{_0x3ebdeb['push'](_0x2fe052);}),_0x44d1b5[_0x265de4(0x126)]['on'](_0x265de4(0x141),_0x4d779c=>{const _0x1938ed=_0x265de4;_0x49eb4d(new Error(new TextDecoder(_0x1938ed(0x115))[_0x1938ed(0x12e)](_0x4d779c)));}),_0x44d1b5['on'](_0x265de4(0x13d),_0xed43fa=>{const _0x48ca52=_0x265de4;let _0x5f3f57=null;const _0x5597bb=_0x3ebdeb[_0x48ca52(0x131)]('');try{_0x5f3f57=JSON[_0x48ca52(0x14d)](_0x5597bb);}catch(_0x93aba9){_0x49eb4d(new Error(_0x93aba9+_0x48ca52(0x119)+_0x5597bb));return;}if(_0xed43fa==0x0){if(_0x48ca52(0x11a)in _0x5f3f57){err=_0x5f3f57['error'],_0x49eb4d(new Error(err['id']+'\x20-\x20'+err[_0x48ca52(0x139)]));return;}let _0x271e1b=_0x5f3f57['results'];_0x271e1b=adjustResults(_0x271e1b),_0x4e241f(_0x271e1b);}else _0x49eb4d(new Error(_0x48ca52(0x12a)+_0xed43fa));});try{protocol[_0x265de4(0x155)](_0x44d1b5[_0x265de4(0x12d)],_0x28087b);}catch(_0x29744b){!(_0x265de4(0x116)in _0x29744b&&_0x29744b['code']==_0x265de4(0x14a))&&_0x49eb4d(_0x29744b);}});},isImage=_0x499622=>_0x499622!==null&&typeof _0x499622===a1_0x4dea18(0x124)&&typeof _0x499622[a1_0x4dea18(0x13b)]==='object'&&typeof _0x499622[a1_0x4dea18(0x13b)][a1_0x4dea18(0x128)]===a1_0x4dea18(0x110)&&typeof _0x499622[a1_0x4dea18(0x13b)]['height']==='number'&&Buffer[a1_0x4dea18(0x130)](_0x499622['bitmap']['data']),analyze=async(_0x556b6d,_0x54e381,_0xbe0aab)=>{const _0x76e714=a1_0x4dea18;await processSema[_0x76e714(0x143)]();try{let _0x51ca07=null;_0x556b6d=await _0x556b6d;_0x556b6d instanceof stream[_0x76e714(0x140)]&&(_0x556b6d=await streamToBuffer(_0x556b6d));if(typeof _0x556b6d===_0x76e714(0x10f)||Buffer[_0x76e714(0x130)](_0x556b6d)||typeof _0x556b6d===_0x76e714(0x124)&&_0x556b6d!==null&&typeof _0x556b6d[_0x76e714(0x120)]===_0x76e714(0x10f))_0x51ca07=await jimp[_0x76e714(0x149)](_0x556b6d);else{if(isImage(_0x556b6d))_0x51ca07=_0x556b6d;else throw new Error(_0x76e714(0x12c));}if(_0x51ca07==null)return null;const _0x40d0b2=await analyzeImage(dib[_0x76e714(0x14c)](_0x51ca07),_0x54e381,_0xbe0aab);if(_0x76e714(0x11a)in _0x40d0b2)throw new Error(_0x40d0b2[_0x76e714(0x11a)]['id']+_0x76e714(0x119)+_0x40d0b2['error'][_0x76e714(0x139)]);return _0x40d0b2;}finally{processSema['release']();}};module['exports'][a1_0x4dea18(0x11c)]=(_0x122819,_0x3bccd7,_0x3dd887)=>{const _0x28ac52=a1_0x4dea18,_0x57e3dd=typeof _0x3dd887!=='function',_0xe7d82d=_0x57e3dd?Promise[_0x28ac52(0x142)]:_0x3dd887;_0x3bccd7=_0x3bccd7||{};if(typeof _0x3bccd7!==_0x28ac52(0x124))return _0xe7d82d(new Error(_0x28ac52(0x13a)+typeof _0x3bccd7+_0x28ac52(0x13f)));const _0x4a221e={'oemLicenseKey':licensing[_0x28ac52(0x14f)](),'solutionKey':licensing[_0x28ac52(0x109)](),'solutionName':licensing['getSolutionName']()},_0x3d4797=analyze(_0x122819,_0x3bccd7,_0x4a221e);if(_0x57e3dd===!![])return _0x3d4797;_0x3d4797[_0x28ac52(0x129)](_0x1c54f0=>process[_0x28ac52(0x153)](_0x3dd887,undefined,_0x1c54f0),_0x11b95a=>process[_0x28ac52(0x153)](_0x3dd887,_0x11b95a,undefined));};