UNPKG

irctc-connect

Version:

⚠️ DEPRECATED: This package has been renamed to `railkit`. It still works for now but will not receive updates. Please migrate to `railkit` as soon as possible.

1 lines 9.32 kB
function a0_0x4b5b(){const _0x49030c=['l2fWAs9NzxrbDMfPBgfIAwXPDhKV','C3rYAw5N','ndu1ndr0BLnPweG','zgLNzxn0','w2LYy3rJlwnVBM5Ly3rDignVBMzPz3vYzsGPihjLCxvPCMvZigeGDMfSAwqGqvbjigTLEsbZDhjPBMCU','u3rHDgLVBIbJB2rLigLZihjLCxvPCMvKigfUzcbTDxn0igjLigeGC3rYAw5NlG','l2fWAs9MyxjLtg9VA3vWlW','yxbWBgLJyxrPB24VANnVBG','l2fWAs9SAxzLqxrtDgf0Aw9UlW','ANnVBG','nda1mJm1mLzktu1iqW','Agv4','r0vu','l2fWAs90CMfJA1rYywLUlW','l3rVzgf5','DgvZDa','sw52ywXPzcaNAg91CNmNihzHBhvLlIbbBgXVD2vKihzHBhvLCZOGmIWGncWGoc4','Aw5JBhvKzxm','p2rHDgu9','Dg9vChbLCKnHC2u','l2fWAs9JAgvJA1bouLn0yxr1CY8','BgvUz3rO','Dg9tDhjPBMC','l2fWAs90CMfPBKHPC3rVCNKV','sM91CM5LEsbKyxrLigLZihjLCxvPCMvKigfUzcbTDxn0igjLigLUierelu1nlvLzwvKGzM9YBwf0lG','DhjPBq','qM90AcbMCM9TigfUzcb0BYbZDgf0Aw9UignVzgvZigfYzsbYzxf1AxjLzcbHBMqGBxvZDcbIzsbZDhjPBMDZlG','sw5JB21WBgv0zsbKyxrHlIbqBgvHC2uGChjVDMLKzsbHBgWGCMvXDwLYzwqGzMLLBgrZlG','nteZotaWowH5v3H6Cq','ohDSv25Tzq','otDJntzLmdHImJDImtyXmti0zJG4ywnKngyYngqXyMq1mgy0oda3nwyXmwrJmJnIowvHnMmWyMm5yJjModC5na','Ahr0Chm6lY9PCMn0yY1HCgKUCMfQAxzKDwjLEs5Kzxy','mJDfvwziAKe','CMvWBgfJzq','ntC5mty3nu1LterbCG','l2fWAs9ZzwfYy2HuCMfPBKjLDhDLzw5tDgf0Aw9UCY8','mtiWntu4mZbPs25zwwC','sw52ywXPzcb0CMfPBIbUDw1IzxiUieL0ig11C3qGyMuGysa1lwnOyxjHy3rLCIbZDhjPBMCU','ue5sig51BwjLCIbPCYbYzxf1AxjLzcbHBMqGBxvZDcbIzsbHihn0CMLUzY4','mZm1ntu4m3LlB0vQzq','DxbKyxrL','ndC3mte2D3DTExPw','m0nmD25rza'];a0_0x4b5b=function(){return _0x49030c;};return a0_0x4b5b();}const a0_0x49908d=a0_0x39f7;(function(_0x100d92,_0x4f3660){const _0x517d40=a0_0x39f7,_0x439c4a=_0x100d92();while(!![]){try{const _0x326f36=parseInt(_0x517d40(0x102))/0x1*(-parseInt(_0x517d40(0x105))/0x2)+parseInt(_0x517d40(0xf8))/0x3*(parseInt(_0x517d40(0x101))/0x4)+parseInt(_0x517d40(0xfa))/0x5+parseInt(_0x517d40(0x10d))/0x6+parseInt(_0x517d40(0xff))/0x7*(-parseInt(_0x517d40(0xf5))/0x8)+-parseInt(_0x517d40(0xf4))/0x9+-parseInt(_0x517d40(0xfc))/0xa;if(_0x326f36===_0x4f3660)break;else _0x439c4a['push'](_0x439c4a['shift']());}catch(_0x318d78){_0x439c4a['push'](_0x439c4a['shift']());}}}(a0_0x4b5b,0x8e539));import{createHash,createHmac,randomBytes}from'node:crypto';const _baseUrl=a0_0x49908d(0xf7),_sdkVersion='1',_defaultSdkSigningSecret=a0_0x49908d(0xf6);function a0_0x39f7(_0x67b03c,_0x2807b8){_0x67b03c=_0x67b03c-0xe7;const _0x4b5baf=a0_0x4b5b();let _0x39f704=_0x4b5baf[_0x67b03c];if(a0_0x39f7['xBMPZo']===undefined){var _0x300258=function(_0x4031f3){const _0xac50a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f206b='',_0x3c58e1='';for(let _0x5752f2=0x0,_0x22ede5,_0x564442,_0x4bea14=0x0;_0x564442=_0x4031f3['charAt'](_0x4bea14++);~_0x564442&&(_0x22ede5=_0x5752f2%0x4?_0x22ede5*0x40+_0x564442:_0x564442,_0x5752f2++%0x4)?_0x2f206b+=String['fromCharCode'](0xff&_0x22ede5>>(-0x2*_0x5752f2&0x6)):0x0){_0x564442=_0xac50a['indexOf'](_0x564442);}for(let _0x1d7f72=0x0,_0x3ba150=_0x2f206b['length'];_0x1d7f72<_0x3ba150;_0x1d7f72++){_0x3c58e1+='%'+('00'+_0x2f206b['charCodeAt'](_0x1d7f72)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c58e1);};a0_0x39f7['DcaUgk']=_0x300258,a0_0x39f7['uEuuzN']={},a0_0x39f7['xBMPZo']=!![];}const _0x2daf48=_0x4b5baf[0x0],_0x40f298=_0x67b03c+_0x2daf48,_0x55eb28=a0_0x39f7['uEuuzN'][_0x40f298];return!_0x55eb28?(_0x39f704=a0_0x39f7['DcaUgk'](_0x39f704),a0_0x39f7['uEuuzN'][_0x40f298]=_0x39f704):_0x39f704=_0x55eb28,_0x39f704;}let _apiKey='',_sdkSigningSecret=_defaultSdkSigningSecret;function configure(_0x2f206b){const _0x115baa=a0_0x49908d;if(!_0x2f206b||typeof _0x2f206b!==_0x115baa(0x104))throw new Error(_0x115baa(0x107));_apiKey=_0x2f206b['trim']();}function _hashPayload(_0x3c58e1){const _0x4cd59f=a0_0x49908d;return createHash('sha256')[_0x4cd59f(0x100)](_0x3c58e1)[_0x4cd59f(0x106)](_0x4cd59f(0x10e));}function _buildSignature({method:_0x5752f2,path:_0x22ede5,timestamp:_0x564442,nonce:_0x4bea14,payloadHash:_0x1d7f72}){const _0x2db9b8=a0_0x49908d,_0x3ba150=[_0x5752f2['toUpperCase'](),_0x22ede5,_0x564442,_0x4bea14,_0x1d7f72,_apiKey]['join']('\x0a');return createHmac('sha256',_sdkSigningSecret)[_0x2db9b8(0x100)](_0x3ba150)['digest'](_0x2db9b8(0x10e));}function _getSdkSecurityHeaders(_0xe21181,_0x131630,_0x3182d6=''){const _0x39aa6b=a0_0x49908d,_0x546a81=String(Date['now']()),_0x11205f=randomBytes(0x20)[_0x39aa6b(0xee)](_0x39aa6b(0x10e)),_0x57093c=_hashPayload(_0x3182d6),_0x2cbf9f=_buildSignature({'method':_0xe21181,'path':_0x131630,'timestamp':_0x546a81,'nonce':_0x11205f,'payloadHash':_0x57093c});return{'x-irctc-sdk-ts':_0x546a81,'x-irctc-sdk-nonce':_0x11205f,'x-irctc-sdk-payload-sha256':_0x57093c,'x-irctc-sdk-signature':_0x2cbf9f,'x-irctc-sdk-version':_sdkVersion};}async function _get(_0xacb9ca){const _0x56271d=a0_0x49908d;if(!_apiKey)return{'success':![],'error':'irctc-connect\x20is\x20not\x20configured.\x20Call\x20configure(apiKey)\x20first.'};try{const _0x46b902=_getSdkSecurityHeaders(_0x56271d(0x10f),_0xacb9ca,''),_0x34dece=await fetch(''+_baseUrl+_0xacb9ca,{'method':_0x56271d(0x10f),'headers':{'x-api-key':_apiKey,'Accept':_0x56271d(0x10a),..._0x46b902}}),_0x10bf7e=await _0x34dece[_0x56271d(0x10c)]();return _0x10bf7e;}catch(_0x4ab1e2){return{'success':![],'error':'Request\x20failed:\x20'+_0x4ab1e2['message']};}}async function checkPNRStatus(_0x5ba777){const _0x2a1c33=a0_0x49908d;if(!_0x5ba777||typeof _0x5ba777!==_0x2a1c33(0x104))return{'success':![],'error':_0x2a1c33(0xfe)};const _0x1fa603=_0x5ba777[_0x2a1c33(0xf1)]()[_0x2a1c33(0xf9)](/\D/g,'');if(_0x1fa603[_0x2a1c33(0xed)]!==0xa)return{'success':![],'error':'PNR\x20number\x20must\x20be\x20exactly\x2010\x20digits.'};return _get(_0x2a1c33(0xec)+_0x1fa603);}async function getTrainInfo(_0x49d270){const _0x9e3ced=a0_0x49908d;if(!_0x49d270||typeof _0x49d270!==_0x9e3ced(0x104)||_0x49d270['trim']()[_0x9e3ced(0xed)]!==0x5)return{'success':![],'error':_0x9e3ced(0xfd)};return _get('/api/getTrainInfo/'+_0x49d270[_0x9e3ced(0xf1)]());}async function trackTrain(_0x2f60ce,_0x44f568){const _0x2a1673=a0_0x49908d;if(!_0x2f60ce||typeof _0x2f60ce!==_0x2a1673(0x104)||_0x2f60ce[_0x2a1673(0xf1)]()[_0x2a1673(0xed)]!==0x5)return{'success':![],'error':'Invalid\x20train\x20number.\x20It\x20must\x20be\x20a\x205-character\x20string.'};const _0x238844=_0x44f568?_0x2a1673(0x110)+_0x2f60ce[_0x2a1673(0xf1)]()+'/'+encodeURIComponent(_0x44f568[_0x2a1673(0xf1)]()):_0x2a1673(0x110)+_0x2f60ce[_0x2a1673(0xf1)]()+_0x2a1673(0x111);return _get(_0x238844);}async function getTrainHistory(_0x40ebe8,_0x54270f){const _0x1a12de=a0_0x49908d;if(!_0x40ebe8||typeof _0x40ebe8!==_0x1a12de(0x104)||_0x40ebe8[_0x1a12de(0xf1)]()['length']!==0x5)return{'success':![],'error':_0x1a12de(0xfd)};if(!_0x54270f||typeof _0x54270f!=='string'||!/^\d{2}-\d{2}-\d{4}$/[_0x1a12de(0xe7)](_0x54270f[_0x1a12de(0xf1)]()))return{'success':![],'error':_0x1a12de(0xf0)};return _get(_0x1a12de(0xef)+_0x40ebe8[_0x1a12de(0xf1)]()+'/'+encodeURIComponent(_0x54270f[_0x1a12de(0xf1)]()));}async function liveAtStation(_0x349382,_0x5592a7){const _0x2ba620=a0_0x49908d;if(!_0x349382||typeof _0x349382!==_0x2ba620(0x104))return{'success':![],'error':_0x2ba620(0x108)};let _0x258373='';if(_0x5592a7!==undefined&&_0x5592a7!==null){const _0x12108a=Number(_0x5592a7);if(![0x2,0x4,0x8][_0x2ba620(0xe9)](_0x12108a))return{'success':![],'error':_0x2ba620(0xe8)};_0x258373='?hrs='+_0x12108a;}return _get(_0x2ba620(0x10b)+_0x349382[_0x2ba620(0xf1)]()[_0x2ba620(0xeb)]()+_0x258373);}async function searchTrainBetweenStations(_0x20cea6,_0x213a67,_0x4dce16){const _0x12bb9f=a0_0x49908d;if(!_0x20cea6||typeof _0x20cea6!==_0x12bb9f(0x104)||!_0x213a67||typeof _0x213a67!=='string'||_0x4dce16&&typeof _0x4dce16!==_0x12bb9f(0x104))return{'success':![],'error':_0x12bb9f(0xf2)};let _0x115cbc=_0x12bb9f(0xfb)+_0x20cea6['trim']()[_0x12bb9f(0xeb)]()+'/'+_0x213a67[_0x12bb9f(0xf1)]()['toUpperCase']();return _0x4dce16&&(_0x115cbc+=_0x12bb9f(0xea)+encodeURIComponent(_0x4dce16[_0x12bb9f(0xf1)]())),_get(_0x115cbc);}async function getAvailability(_0x3b374d,_0x373d1f,_0x229535,_0x200086,_0x11852a,_0x15bec8){const _0x3c073a=a0_0x49908d;if(!_0x3b374d||!_0x373d1f||!_0x229535||!_0x200086||!_0x11852a||!_0x15bec8)return{'success':![],'error':_0x3c073a(0xf3)};const _0x50b3c5=_0x373d1f[_0x3c073a(0xf1)]()[_0x3c073a(0xeb)](),_0x90eeed=_0x229535['trim']()[_0x3c073a(0xeb)](),_0x578116=_0x11852a[_0x3c073a(0xf1)]()[_0x3c073a(0xeb)](),_0x13e68f=_0x15bec8[_0x3c073a(0xf1)]()['toUpperCase'](),_0x5c435a=_0x3b374d['trim']();return _get(_0x3c073a(0x103)+_0x5c435a+'/'+_0x50b3c5+'/'+_0x90eeed+'/'+encodeURIComponent(_0x200086[_0x3c073a(0xf1)]())+'/'+_0x578116+'/'+_0x13e68f);}async function fareLookup(_0x5df4c5,_0x5deece,_0x35fa7e,_0x593cb1,_0x269835,_0x38b166){const _0x5c3994=a0_0x49908d;if(!_0x5df4c5||!_0x5deece||!_0x35fa7e||!_0x593cb1||!_0x269835||!_0x38b166)return{'success':![],'error':'Incomplete\x20data.\x20Please\x20provide\x20all\x20required\x20fields.'};const _0x35676f=_0x5deece[_0x5c3994(0xf1)]()[_0x5c3994(0xeb)](),_0x551681=_0x35fa7e[_0x5c3994(0xf1)]()[_0x5c3994(0xeb)](),_0x46ee71=_0x269835[_0x5c3994(0xf1)]()[_0x5c3994(0xeb)](),_0x4d918c=_0x38b166['trim']()[_0x5c3994(0xeb)](),_0x529f4d=_0x5df4c5[_0x5c3994(0xf1)]();return _get(_0x5c3994(0x109)+_0x529f4d+'/'+encodeURIComponent(_0x593cb1[_0x5c3994(0xf1)]())+'/'+_0x35676f+'/'+_0x551681+'/'+_0x46ee71+'/'+_0x4d918c);}export{configure,checkPNRStatus,getTrainInfo,trackTrain,getTrainHistory,liveAtStation,searchTrainBetweenStations,getAvailability,fareLookup};