terminal-gateway 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -34,7 +34,7 @@ $ yarn add terminal-gateway
34
34
 
35
35
  ``` javascript
36
36
  import Terminal from 'terminal-gateway'
37
-
37
+
38
38
  const terminal = new Terminal({
39
39
  key: '',
40
40
  timeout: 50000,
@@ -45,14 +45,12 @@ $ yarn add terminal-gateway
45
45
 
46
46
  ## Sale transaction
47
47
  __onSale():__ This method allows you to do sale transactions. user needs to call this function to get the result failed or successful. It is required four parameters:
48
- | Parameter name | Data type | Require | Default | Description |
49
- | --------- | --- | --- | --- | --- |
48
+ | Parameter name | Data type | Require | Default | Description |
49
+ | --- | --- | --- | --- | --- |
50
50
  | amount | String | Yes | 0 | amount define transaction |
51
- | type | String | Yes | SHOWQR | SHOWQR: sale by screen QR code <br> EDC: sale by card |
51
+ | type | String | Yes | SHOWQR | SHOWQR: sale by screen QR codeEDC: sale by card |
52
52
  | invoice | String | Yes | The invoice number must be unique. Example: INV0011620291635 |
53
-
54
- &nbsp;
55
-
53
+ <br />
56
54
  ``` javascript
57
55
  terminal.onSale({amount: '0.01', type: 'SHOWQR', currency: 'USD', invoice: 'INV0011620291635'})
58
56
  ```
@@ -61,10 +59,9 @@ __onEnquiry():__ This method allows you to receive the response back with the re
61
59
 
62
60
  | Parameter name | Data type | Require | Default |Description |
63
61
  | --- | --- | --- | --- | --- |
64
- | invoice | String | Yes | | The invoice number must be unique. example: `INV0011620291635`|
65
-
66
- &nbsp;
62
+ | invoice | String | Yes | | The invoice number must be unique. example: `INV0011620291635`|
67
63
 
64
+ <br />
68
65
  ``` javascript
69
66
  terminal.onEnquiry({invoice: 'INV0011620291635'})
70
67
  ```
package/lib/terminal.js CHANGED
@@ -1 +1 @@
1
- function a0_0xa428(){const _0x2935d9=['replace','getTesting','addEventListener','3771834RfJgrw','message','error','your\x20testing\x20it\x20ok','onErrors','297fcduLh','then','serial','cancel','split','catch','617230rSpRWx','toString','2236116epMgYD','disconnect','onSuccess','pipeTo','Timeout','stringify','Your\x20browser\x20is\x20not\x20supported.','onVoid','length','handleReleasePort','184rmcodk','Key\x20is\x20not\x20empty.','453303WzYjMs','toUpperCase','MEMENQ','toISOString','5457753jsWrue','getPorts','onConnected','Connected','287138QQkwEt','onCancel','getWriter','Device\x20lost\x20connection','Device\x20has\x20connected.','readable','open','1048044HVLofG','releaseLock','SALE','VOID','close','SALE_CANCEL','5eAOImx','writable','connect','1bcTzIN'];a0_0xa428=function(){return _0x2935d9;};return a0_0xa428();}const a0_0x34a15c=a0_0x19df;(function(_0x4ade39,_0x995568){const _0x5931f9=a0_0x19df,_0x23a920=_0x4ade39();while(!![]){try{const _0x4a3779=parseInt(_0x5931f9(0x1cf))/0x1*(parseInt(_0x5931f9(0x1f4))/0x2)+parseInt(_0x5931f9(0x1fb))/0x3+-parseInt(_0x5931f9(0x1e0))/0x4+-parseInt(_0x5931f9(0x1cc))/0x5*(parseInt(_0x5931f9(0x1d3))/0x6)+parseInt(_0x5931f9(0x1f0))/0x7+parseInt(_0x5931f9(0x1ea))/0x8*(-parseInt(_0x5931f9(0x1ec))/0x9)+parseInt(_0x5931f9(0x1de))/0xa*(parseInt(_0x5931f9(0x1d8))/0xb);if(_0x4a3779===_0x995568)break;else _0x23a920['push'](_0x23a920['shift']());}catch(_0x31a708){_0x23a920['push'](_0x23a920['shift']());}}}(a0_0xa428,0x90c70));import a0_0x4bc3f7,{enc}from'crypto-js';function a0_0x19df(_0x42fa0d,_0x4e97a1){const _0xa42853=a0_0xa428();return a0_0x19df=function(_0x19df78,_0x3b367b){_0x19df78=_0x19df78-0x1c8;let _0x5820bb=_0xa42853[_0x19df78];return _0x5820bb;},a0_0x19df(_0x42fa0d,_0x4e97a1);}class Terminal{#KEY=null;#DATA=null;#PORT=null;#TIMER=null;#WRITER=null;#READER=null;#TIMEOUT=null;#DATE_BITS=0x8;#STOP_BITS=0x1;#BAUD_RATE=0x1c200;#PARITY='none';#BUFFER_SIZE=0x400;#MD5_ENCRYPTION=null;#WRITABLE_STREAM_CLOSED=null;#READABLE_STREAM_CLOSED=null;#DATE_FORMAT=new Date()[a0_0x34a15c(0x1ef)]()[a0_0x34a15c(0x1d0)]('T','\x20')[a0_0x34a15c(0x1d0)]('Z','')[a0_0x34a15c(0x1dc)]('.')[0x0];#FILTERS=[{'usbVendorId':0x5c6,'usbProductId':0x9025},{'usbVendorId':0x67b,'usbProductId':0x2303}];#SUPPORTED_BROWSER=0x1;#OPEN_SERIAL_PORT_ERROR=0x2;#OPEN_SERIAL_PORT_PAIR_ERROR=0x3;#WRITE_STREAM_ERROR=0x4;#READ_STREAM_ERROR=0x5;#VALIDATE_KEY=0x6;#CONNECTED_SERIAL_PORT=0x7;#DISCONNECTED_SERIAL_PORT=0x8;constructor({key:_0x5d0e3c,timeout:_0x21ad15,onConnected:_0x9f380a,onSuccess:_0x21c26b,onErrors:_0x551c78}){const _0x53adcb=a0_0x34a15c;if(!_0x5d0e3c)console[_0x53adcb(0x1d5)]('You\x20do\x20not\x20provide\x20me\x20your\x20key.\x20Please\x20help\x20provide\x20me\x20your\x20key.');this.#KEY=_0x5d0e3c,this.#TIMEOUT=_0x21ad15||0xea60,this[_0x53adcb(0x1e2)]=_0x21c26b||function(){},this[_0x53adcb(0x1d7)]=_0x551c78||function(){},this[_0x53adcb(0x1f2)]=_0x9f380a||function(){},!this.#isSupportedBrowser()&&(console['error']('Your\x20browser\x20is\x20not\x20supported.'),this[_0x53adcb(0x1d7)]({'status':this.#SUPPORTED_BROWSER,'message':'Your\x20browser\x20is\x20not\x20supported.'})),navigator[_0x53adcb(0x1da)]['addEventListener'](_0x53adcb(0x1ce),_0x50002d=>{const _0x27ffce=_0x53adcb;this[_0x27ffce(0x1e2)]({'status':this.#CONNECTED_SERIAL_PORT,'message':_0x27ffce(0x1f8)});if(this.#TIMER)clearTimeout(this.#TIMER);}),navigator[_0x53adcb(0x1da)][_0x53adcb(0x1d2)](_0x53adcb(0x1e1),async _0x40022d=>{const _0x441254=_0x53adcb;this[_0x441254(0x1e2)]({'status':this.#DISCONNECTED_SERIAL_PORT,'message':_0x441254(0x1f7)});if(this.#TIMER)clearTimeout(this.#TIMER);});}#handleRequestSerialPort(){return new Promise((_0x3f0c49,_0x23fa31)=>{const _0x1c63e2=a0_0x19df;return navigator[_0x1c63e2(0x1da)]['requestPort']({'filters':this.#FILTERS})['then'](_0xe3df6c=>{_0x3f0c49(_0xe3df6c);})[_0x1c63e2(0x1dd)](_0x192e38=>{const _0x1552ec=_0x1c63e2;_0x23fa31({'status':this.#OPEN_SERIAL_PORT_ERROR,'message':_0x192e38?.[_0x1552ec(0x1d4)]});});});}#handleOpenSerialPort(){return new Promise((_0x9ac568,_0x57e6c8)=>{const _0x14e7f1=a0_0x19df;return this.#PORT[_0x14e7f1(0x1fa)]({'baudRate':this.#BAUD_RATE,'dataBits':this.#DATE_BITS,'stopBits':this.#STOP_BITS,'parity':this.#PARITY,'bufferSize':this.#BUFFER_SIZE})[_0x14e7f1(0x1d9)](_0x23480b=>_0x9ac568(_0x23480b))[_0x14e7f1(0x1dd)](_0x1c7c9b=>{const _0x191fbd=_0x14e7f1;_0x57e6c8({'status':this.#OPEN_SERIAL_PORT_PAIR_ERROR,'message':_0x1c7c9b?.[_0x191fbd(0x1d4)]});});});}async['onSale']({amount:_0x2b5200,type:_0x5e4828,currency:_0x36c091,invoice:_0x15c903}){const _0x50d60c=a0_0x34a15c;try{if(!this.#isSupportedBrowser()){console[_0x50d60c(0x1d5)](_0x50d60c(0x1e6)),this['onErrors']({'status':this.#SUPPORTED_BROWSER,'message':_0x50d60c(0x1e6)});return;}if(!this.#KEY){this[_0x50d60c(0x1d7)]({'status':this.#VALIDATE_KEY,'message':'Key\x20is\x20not\x20empty.'});return;}const _0x364bec=await navigator[_0x50d60c(0x1da)][_0x50d60c(0x1f1)]();!this.#PORT&&!_0x364bec[_0x50d60c(0x1e8)]?(this.#PORT=await this.#handleRequestSerialPort(),await this.#handleOpenSerialPort(),this[_0x50d60c(0x1e2)]({'status':this.#SUPPORTED_BROWSER,'message':'Connected'})):(this.#PORT=_0x364bec[0x0],await this.#handleOpenSerialPort());this.#DATA=this.#handleGenerateJSONObject({'CMD':'SALE','type':_0x5e4828,'amount':_0x2b5200,'currency':_0x36c091,'invoice':_0x15c903});const _0x14aa71=this.#handleGenerateMD5(this.#DATA);await this.#handleWriteStream(_0x14aa71),this.#handleSetTimeout(),this.#handleReadStream(),await this.#listenToTerminal();}catch(_0x3028ff){this[_0x50d60c(0x1d7)](_0x3028ff);}}async[a0_0x34a15c(0x1e7)]({traceId:_0x14b924}){const _0x4ee489=a0_0x34a15c;try{if(!this.#isSupportedBrowser()){console[_0x4ee489(0x1d5)]('Your\x20browser\x20is\x20not\x20supported.'),this[_0x4ee489(0x1d7)]({'status':this.#SUPPORTED_BROWSER,'message':_0x4ee489(0x1e6)});return;}if(!this.#KEY){this['onErrors']({'status':this.#VALIDATE_KEY,'message':_0x4ee489(0x1eb)});return;}if(!this.#PORT&&!ports[_0x4ee489(0x1e8)])this.#PORT=await this.#handleRequestSerialPort(),await this.#handleOpenSerialPort(),this['onSuccess']({'status':this.#SUPPORTED_BROWSER,'message':_0x4ee489(0x1f3)});else{const _0x3d4d90=await navigator[_0x4ee489(0x1da)][_0x4ee489(0x1f1)]();this.#PORT=_0x3d4d90[0x0],await this.#handleOpenSerialPort();}const _0x28f7fe=this.#handleGenerateJSONObject({'CMD':_0x4ee489(0x1c9),'traceId':_0x14b924}),_0x147534=this.#handleGenerateMD5(_0x28f7fe);await this.#handleWriteStream(_0x147534),this.#handleReadStream(),await this.#listenToTerminal();}catch(_0x1dd4ca){this[_0x4ee489(0x1d7)](_0x1dd4ca);}}async['onEnquiry']({invoice:_0x182c9e}){const _0x54b79d=a0_0x34a15c;try{if(!this.#isSupportedBrowser()){console[_0x54b79d(0x1d5)](_0x54b79d(0x1e6)),this[_0x54b79d(0x1d7)]({'status':this.#SUPPORTED_BROWSER,'message':'Your\x20browser\x20is\x20not\x20supported.'});return;}if(!this.#KEY){this[_0x54b79d(0x1d7)]({'status':this.#VALIDATE_KEY,'message':_0x54b79d(0x1eb)});return;}if(!this.#PORT&&!ports[_0x54b79d(0x1e8)])this.#PORT=await this.#handleRequestSerialPort(),await this.#handleOpenSerialPort(),this[_0x54b79d(0x1e2)]({'status':this.#SUPPORTED_BROWSER,'message':_0x54b79d(0x1f3)});else{const _0x24211d=await navigator[_0x54b79d(0x1da)][_0x54b79d(0x1f1)]();this.#PORT=_0x24211d[0x0],await this.#handleOpenSerialPort();}const _0x16fd68=this.#handleGenerateJSONObject({'CMD':_0x54b79d(0x1ee),'invoice':_0x182c9e}),_0x299670=this.#handleGenerateMD5(_0x16fd68);await this.#handleWriteStream(_0x299670),this.#handleReadStream(),await this.#listenToTerminal();}catch(_0x550344){this[_0x54b79d(0x1d7)](_0x550344);}}async[a0_0x34a15c(0x1f5)](){const _0x68b7c5=a0_0x34a15c;try{if(!this.#isSupportedBrowser()){console[_0x68b7c5(0x1d5)](_0x68b7c5(0x1e6)),this[_0x68b7c5(0x1d7)]({'status':this.#SUPPORTED_BROWSER,'message':_0x68b7c5(0x1e6)});return;}if(!this.#KEY){this[_0x68b7c5(0x1d7)]({'status':this.#VALIDATE_KEY,'message':_0x68b7c5(0x1eb)});return;}this[_0x68b7c5(0x1e9)]();const _0x4d5e4c=await navigator[_0x68b7c5(0x1da)][_0x68b7c5(0x1f1)]();this.#PORT=_0x4d5e4c[0x0],await this.#handleOpenSerialPort();const _0x2a93a1=this.#handleGenerateJSONObject({'CMD':'SALE_CANCEL'}),_0x184576=this.#handleGenerateMD5(_0x2a93a1);await this.#handleWriteStream(_0x184576),this.#handleReadStream(),await this.#listenToTerminal();}catch(_0x3fb6db){this[_0x68b7c5(0x1d7)](_0x3fb6db);}}#handleWriteStream(_0x38d546){return new Promise((_0x5a1b8f,_0x5b97f8)=>{const _0x33825=a0_0x19df,_0x5548d2=new TextEncoderStream();return this.#WRITABLE_STREAM_CLOSED=_0x5548d2[_0x33825(0x1f9)][_0x33825(0x1e3)](this.#PORT['writable']),this.#WRITER=_0x5548d2[_0x33825(0x1cd)][_0x33825(0x1f6)](),this.#WRITER['write'](_0x38d546)[_0x33825(0x1d9)](_0x2a2b02=>{_0x5a1b8f(_0x2a2b02);})['catch'](_0x56225c=>{const _0x294184=_0x33825;_0x5b97f8({'status':this.#WRITE_STREAM_ERROR,'message':_0x56225c?.[_0x294184(0x1d4)]});});});}#handleReadStream(){const _0x14d257=a0_0x34a15c;try{const _0xf18cc5=new TextDecoderStream();this.#READABLE_STREAM_CLOSED=this.#PORT[_0x14d257(0x1f9)][_0x14d257(0x1e3)](_0xf18cc5[_0x14d257(0x1cd)]),this.#READER=_0xf18cc5[_0x14d257(0x1f9)]['getReader']();}catch(_0xf03ea4){this[_0x14d257(0x1d7)]({'status':this.#READ_STREAM_ERROR,'message':_0xf03ea4?.['message']});}}#handleGenerateJSONObject({CMD:_0x1c45ea,type:_0x3ad33a,amount:_0xaab88b,currency:_0x51b96c,invoice:_0x5b49eb,traceId:_0xf7f2}){const _0xfe2d28=a0_0x34a15c;let _0x423f1f={};switch(_0x1c45ea){case _0xfe2d28(0x1c8):_0x423f1f={'CMD':_0xfe2d28(0x1c8),'TYPE':_0x3ad33a['toString'](),'AMT':_0xaab88b[_0xfe2d28(0x1df)](),'CURRCODE':_0x51b96c[_0xfe2d28(0x1df)](),'TIMESTAMP':this.#DATE_FORMAT,'ECRREF':_0x5b49eb[_0xfe2d28(0x1df)]()};break;case _0xfe2d28(0x1c9):_0x423f1f={'CMD':_0xfe2d28(0x1c9),'TIMESTAMP':this.#DATE_FORMAT,'TRACE':_0xf7f2[_0xfe2d28(0x1df)]()};break;case _0xfe2d28(0x1ee):_0x423f1f={'CMD':_0xfe2d28(0x1ee),'TIMESTAMP':this.#DATE_FORMAT,'ECRREF':_0x5b49eb[_0xfe2d28(0x1df)]()};break;case _0xfe2d28(0x1cb):_0x423f1f={'CMD':_0xfe2d28(0x1cb),'TIMESTAMP':this.#DATE_FORMAT};break;}return _0x423f1f;}#handleGenerateMD5(_0x4f5524){const _0x5cecd0=a0_0x34a15c,_0x269291=JSON[_0x5cecd0(0x1e5)](_0x4f5524)+this.#KEY;return this.#MD5_ENCRYPTION=a0_0x4bc3f7['MD5'](_0x269291)[_0x5cecd0(0x1df)]()[_0x5cecd0(0x1ed)](),'@'+this.#MD5_ENCRYPTION+JSON[_0x5cecd0(0x1e5)](_0x4f5524);}async #listenToTerminal(){const _0x2692de=a0_0x34a15c;try{const _0x1e13de=[];let _0x52fe07='',_0x31c176=0x0;while(!![]){const {value:_0x4eeab0,done:_0x569fb1}=await this.#READER['read']();if(_0x569fb1){this.#READER[_0x2692de(0x1fc)]();break;}if(this.#TIMER)clearTimeout(this.#TIMER);_0x52fe07+=_0x4eeab0,_0x31c176+=0x1;const _0x229e96=setTimeout(async()=>{this.#handlePrintResult(_0x52fe07),this.#handleReleasePort();},0x64);_0x1e13de['push'](_0x229e96),clearTimeout(_0x1e13de[_0x31c176-0x2]);}}catch(_0x2a74f2){this[_0x2692de(0x1d7)]({'status':this.#READ_STREAM_ERROR,'message':_0x2a74f2?.[_0x2692de(0x1d4)]});}}#handleSetTimeout(){this.#TIMER=setTimeout(async()=>{const _0x5223d2=a0_0x19df,_0x4e95b7='@'+this.#MD5_ENCRYPTION+JSON['stringify']({...this.#DATA,'APV':'','PAN':'','PAYER':'','MESSAGE':'','TRXN_ID':'','TRACE':'','STATUS':_0x5223d2(0x1e4)});this.#handlePrintResult(_0x4e95b7),this.#handleReleasePort();},this.#TIMEOUT);}#handlePrintResult(_0x1fb527){if(!_0x1fb527)return;this['onSuccess']({'key':this.#KEY,'value':JSON['parse'](_0x1fb527['slice'](0x21))});}async #handleReleasePort(){const _0x7f81c9=a0_0x34a15c;this.#READER[_0x7f81c9(0x1db)](),await this.#READABLE_STREAM_CLOSED[_0x7f81c9(0x1dd)](()=>{}),this.#WRITER[_0x7f81c9(0x1ca)](),await this.#WRITABLE_STREAM_CLOSED[_0x7f81c9(0x1dd)](()=>{}),await this.#PORT['close']();}#isSupportedBrowser(){const _0x3b3484=a0_0x34a15c;return _0x3b3484(0x1da)in navigator;}[a0_0x34a15c(0x1d1)](){const _0x183cfe=a0_0x34a15c;return _0x183cfe(0x1d6);}}export default Terminal;
1
+ function a0_0x44f2(){const _0x54849f=['Timeout','1494830GWuBzq','serial','cancel','onSale','1182976EQhKdy','5892808aKOfCl','SALE_CANCEL','VOID','handleReleasePort','232159izaAVn','error','addEventListener','7hZZnbo','onErrors','69GBNdjt','requestPort','then','Your\x20browser\x20is\x20not\x20supported.','Key\x20is\x20not\x20empty.','stringify','Device\x20lost\x20connection','connect','length','Device\x20has\x20connected.','pipeTo','toString','4183490mrYiCK','message','close','getWriter','getReader','onSuccess','releaseLock','readable','catch','9mmbYWv','You\x20do\x20not\x20provide\x20me\x20your\x20key.\x20Please\x20help\x20provide\x20me\x20your\x20key.','getTesting','push','Connected','writable','read','replace','disconnect','getPorts','write','slice','7858CfisSO','2358576xyLWVJ','open','onVoid','none','toUpperCase','split','onCancel','MEMENQ','SALE','onEnquiry'];a0_0x44f2=function(){return _0x54849f;};return a0_0x44f2();}const a0_0x252ee6=a0_0x2d22;(function(_0x55e08b,_0x4f27f9){const _0x4c2424=a0_0x2d22,_0x2188a0=_0x55e08b();while(!![]){try{const _0x3426da=parseInt(_0x4c2424(0xcb))/0x1+parseInt(_0x4c2424(0xb6))/0x2*(parseInt(_0x4c2424(0x95))/0x3)+-parseInt(_0x4c2424(0xc6))/0x4+-parseInt(_0x4c2424(0xc2))/0x5+parseInt(_0x4c2424(0xb7))/0x6+-parseInt(_0x4c2424(0xce))/0x7*(-parseInt(_0x4c2424(0xc7))/0x8)+-parseInt(_0x4c2424(0xaa))/0x9*(parseInt(_0x4c2424(0xa1))/0xa);if(_0x3426da===_0x4f27f9)break;else _0x2188a0['push'](_0x2188a0['shift']());}catch(_0x53be2d){_0x2188a0['push'](_0x2188a0['shift']());}}}(a0_0x44f2,0x6b37c));function a0_0x2d22(_0x2b8426,_0x721bdb){const _0x44f201=a0_0x44f2();return a0_0x2d22=function(_0x2d2251,_0x557375){_0x2d2251=_0x2d2251-0x94;let _0x139258=_0x44f201[_0x2d2251];return _0x139258;},a0_0x2d22(_0x2b8426,_0x721bdb);}import a0_0x341cf0,{enc}from'crypto-js';class Terminal{#KEY=null;#DATA=null;#PORT=null;#TIMER=null;#WRITER=null;#READER=null;#TIMEOUT=null;#DATE_BITS=0x8;#STOP_BITS=0x1;#BAUD_RATE=0x1c200;#PARITY=a0_0x252ee6(0xba);#BUFFER_SIZE=0x400;#MD5_ENCRYPTION=null;#WRITABLE_STREAM_CLOSED=null;#READABLE_STREAM_CLOSED=null;#DATE_FORMAT=new Date()['toISOString']()['replace']('T','\x20')[a0_0x252ee6(0xb1)]('Z','')[a0_0x252ee6(0xbc)]('.')[0x0];#FILTERS=[{'usbVendorId':0x5c6,'usbProductId':0x9025},{'usbVendorId':0x67b,'usbProductId':0x2303}];#SUPPORTED_BROWSER=0x1;#OPEN_SERIAL_PORT_ERROR=0x2;#OPEN_SERIAL_PORT_PAIR_ERROR=0x3;#WRITE_STREAM_ERROR=0x4;#READ_STREAM_ERROR=0x5;#VALIDATE_KEY=0x6;#CONNECTED_SERIAL_PORT=0x7;#DISCONNECTED_SERIAL_PORT=0x8;constructor({key:_0x6997da,timeout:_0x254f49,onConnected:_0x8dc339,onSuccess:_0x10cd38,onErrors:_0x3a0ad8}){const _0x10f6e9=a0_0x252ee6;if(!_0x6997da)console[_0x10f6e9(0xcc)](_0x10f6e9(0xab));this.#KEY=_0x6997da,this.#TIMEOUT=_0x254f49||0xea60,this[_0x10f6e9(0xa6)]=_0x10cd38||function(){},this[_0x10f6e9(0x94)]=_0x3a0ad8||function(){},this['onConnected']=_0x8dc339||function(){},!this.#isSupportedBrowser()&&(console['error'](_0x10f6e9(0x98)),this[_0x10f6e9(0x94)]({'status':this.#SUPPORTED_BROWSER,'message':'Your\x20browser\x20is\x20not\x20supported.'})),navigator[_0x10f6e9(0xc3)][_0x10f6e9(0xcd)](_0x10f6e9(0x9c),_0x487485=>{const _0x512879=_0x10f6e9;this[_0x512879(0xa6)]({'status':this.#CONNECTED_SERIAL_PORT,'message':_0x512879(0x9e)});if(this.#TIMER)clearTimeout(this.#TIMER);}),navigator[_0x10f6e9(0xc3)][_0x10f6e9(0xcd)](_0x10f6e9(0xb2),async _0x718132=>{const _0x18f704=_0x10f6e9;this[_0x18f704(0xa6)]({'status':this.#DISCONNECTED_SERIAL_PORT,'message':_0x18f704(0x9b)});if(this.#TIMER)clearTimeout(this.#TIMER);});}#handleRequestSerialPort(){return new Promise((_0x453048,_0x4b7d52)=>{const _0xbcc22c=a0_0x2d22;return navigator[_0xbcc22c(0xc3)][_0xbcc22c(0x96)]({'filters':this.#FILTERS})['then'](_0x5e77d0=>{_0x453048(_0x5e77d0);})['catch'](_0x492473=>{_0x4b7d52({'status':this.#OPEN_SERIAL_PORT_ERROR,'message':_0x492473?.['message']});});});}#handleOpenSerialPort(){return new Promise((_0x57f8e5,_0x5af292)=>{const _0x54cae7=a0_0x2d22;return this.#PORT[_0x54cae7(0xb8)]({'baudRate':this.#BAUD_RATE,'dataBits':this.#DATE_BITS,'stopBits':this.#STOP_BITS,'parity':this.#PARITY,'bufferSize':this.#BUFFER_SIZE})[_0x54cae7(0x97)](_0x7559e9=>_0x57f8e5(_0x7559e9))[_0x54cae7(0xa9)](_0x4de97b=>{const _0x3adbb1=_0x54cae7;_0x5af292({'status':this.#OPEN_SERIAL_PORT_PAIR_ERROR,'message':_0x4de97b?.[_0x3adbb1(0xa2)]});});});}async[a0_0x252ee6(0xc5)]({amount:_0x4538d9,type:_0x4362b9,currency:_0x5bbf6e,invoice:_0x3e5824}){const _0xc51a77=a0_0x252ee6;try{if(!this.#isSupportedBrowser()){console[_0xc51a77(0xcc)](_0xc51a77(0x98)),this[_0xc51a77(0x94)]({'status':this.#SUPPORTED_BROWSER,'message':_0xc51a77(0x98)});return;}if(!this.#KEY){this['onErrors']({'status':this.#VALIDATE_KEY,'message':_0xc51a77(0x99)});return;}const _0x141dd6=await navigator['serial'][_0xc51a77(0xb3)]();!this.#PORT&&!_0x141dd6[_0xc51a77(0x9d)]?(this.#PORT=await this.#handleRequestSerialPort(),await this.#handleOpenSerialPort(),this['onSuccess']({'status':this.#SUPPORTED_BROWSER,'message':_0xc51a77(0xae)})):(this.#PORT=_0x141dd6[0x0],await this.#handleOpenSerialPort());this.#DATA=this.#handleGenerateJSONObject({'CMD':_0xc51a77(0xbf),'type':_0x4362b9,'amount':_0x4538d9,'currency':_0x5bbf6e,'invoice':_0x3e5824});const _0x12fc47=this.#handleGenerateMD5(this.#DATA);await this.#handleWriteStream(_0x12fc47),this.#handleSetTimeout(),this.#handleReadStream(),await this.#listenToTerminal();}catch(_0x479a00){this[_0xc51a77(0x94)](_0x479a00);}}async[a0_0x252ee6(0xb9)]({traceId:_0xce6623}){const _0x57e748=a0_0x252ee6;try{if(!this.#isSupportedBrowser()){console['error']('Your\x20browser\x20is\x20not\x20supported.'),this[_0x57e748(0x94)]({'status':this.#SUPPORTED_BROWSER,'message':_0x57e748(0x98)});return;}if(!this.#KEY){this[_0x57e748(0x94)]({'status':this.#VALIDATE_KEY,'message':_0x57e748(0x99)});return;}if(!this.#PORT&&!ports[_0x57e748(0x9d)])this.#PORT=await this.#handleRequestSerialPort(),await this.#handleOpenSerialPort(),this[_0x57e748(0xa6)]({'status':this.#SUPPORTED_BROWSER,'message':_0x57e748(0xae)});else{const _0x5b5cc0=await navigator[_0x57e748(0xc3)][_0x57e748(0xb3)]();this.#PORT=_0x5b5cc0[0x0],await this.#handleOpenSerialPort();}const _0x8f9a99=this.#handleGenerateJSONObject({'CMD':'VOID','traceId':_0xce6623}),_0x216bb0=this.#handleGenerateMD5(_0x8f9a99);await this.#handleWriteStream(_0x216bb0),this.#handleReadStream(),await this.#listenToTerminal();}catch(_0x577a48){this[_0x57e748(0x94)](_0x577a48);}}async[a0_0x252ee6(0xc0)]({invoice:_0x585ae9}){const _0x2c645a=a0_0x252ee6;try{if(!this.#isSupportedBrowser()){console[_0x2c645a(0xcc)](_0x2c645a(0x98)),this[_0x2c645a(0x94)]({'status':this.#SUPPORTED_BROWSER,'message':_0x2c645a(0x98)});return;}if(!this.#KEY){this[_0x2c645a(0x94)]({'status':this.#VALIDATE_KEY,'message':'Key\x20is\x20not\x20empty.'});return;}if(!this.#PORT&&!ports[_0x2c645a(0x9d)])this.#PORT=await this.#handleRequestSerialPort(),await this.#handleOpenSerialPort(),this[_0x2c645a(0xa6)]({'status':this.#SUPPORTED_BROWSER,'message':'Connected'});else{const _0x547e7f=await navigator[_0x2c645a(0xc3)]['getPorts']();this.#PORT=_0x547e7f[0x0],await this.#handleOpenSerialPort();}const _0x33c175=this.#handleGenerateJSONObject({'CMD':_0x2c645a(0xbe),'invoice':_0x585ae9}),_0x275a5c=this.#handleGenerateMD5(_0x33c175);await this.#handleWriteStream(_0x275a5c),this.#handleReadStream(),await this.#listenToTerminal();}catch(_0xf01657){this[_0x2c645a(0x94)](_0xf01657);}}async[a0_0x252ee6(0xbd)](){const _0x187ef5=a0_0x252ee6;try{if(!this.#isSupportedBrowser()){console['error'](_0x187ef5(0x98)),this[_0x187ef5(0x94)]({'status':this.#SUPPORTED_BROWSER,'message':_0x187ef5(0x98)});return;}if(!this.#KEY){this['onErrors']({'status':this.#VALIDATE_KEY,'message':_0x187ef5(0x99)});return;}this[_0x187ef5(0xca)]();const _0x35a772=await navigator[_0x187ef5(0xc3)][_0x187ef5(0xb3)]();this.#PORT=_0x35a772[0x0],await this.#handleOpenSerialPort();const _0x1addf0=this.#handleGenerateJSONObject({'CMD':_0x187ef5(0xc8)}),_0x75137f=this.#handleGenerateMD5(_0x1addf0);await this.#handleWriteStream(_0x75137f),this.#handleReadStream(),await this.#listenToTerminal();}catch(_0x3c3d3b){this[_0x187ef5(0x94)](_0x3c3d3b);}}#handleWriteStream(_0x939160){return new Promise((_0x8816d7,_0x136434)=>{const _0x45b10f=a0_0x2d22,_0x562fd6=new TextEncoderStream();return this.#WRITABLE_STREAM_CLOSED=_0x562fd6[_0x45b10f(0xa8)][_0x45b10f(0x9f)](this.#PORT[_0x45b10f(0xaf)]),this.#WRITER=_0x562fd6[_0x45b10f(0xaf)][_0x45b10f(0xa4)](),this.#WRITER[_0x45b10f(0xb4)](_0x939160)[_0x45b10f(0x97)](_0xbea4b2=>{_0x8816d7(_0xbea4b2);})[_0x45b10f(0xa9)](_0x5617fb=>{const _0x1b2a5e=_0x45b10f;_0x136434({'status':this.#WRITE_STREAM_ERROR,'message':_0x5617fb?.[_0x1b2a5e(0xa2)]});});});}#handleReadStream(){const _0x12b4e0=a0_0x252ee6;try{const _0x80b998=new TextDecoderStream();this.#READABLE_STREAM_CLOSED=this.#PORT[_0x12b4e0(0xa8)][_0x12b4e0(0x9f)](_0x80b998[_0x12b4e0(0xaf)]),this.#READER=_0x80b998[_0x12b4e0(0xa8)][_0x12b4e0(0xa5)]();}catch(_0x2e08a6){this[_0x12b4e0(0x94)]({'status':this.#READ_STREAM_ERROR,'message':_0x2e08a6?.[_0x12b4e0(0xa2)]});}}#handleGenerateJSONObject({CMD:_0x5e3f30,type:_0x365df3,amount:_0x3f424e,currency:_0xd64c6f,invoice:_0x947587,traceId:_0x760547}){const _0x5b2794=a0_0x252ee6;let _0x5c483f={};switch(_0x5e3f30){case'SALE':_0x5c483f={'CMD':'SALE','TYPE':_0x365df3[_0x5b2794(0xa0)](),'AMT':_0x3f424e[_0x5b2794(0xa0)](),'CURRCODE':_0xd64c6f[_0x5b2794(0xa0)](),'TIMESTAMP':this.#DATE_FORMAT,'ECRREF':_0x947587[_0x5b2794(0xa0)]()};break;case _0x5b2794(0xc9):_0x5c483f={'CMD':_0x5b2794(0xc9),'TIMESTAMP':this.#DATE_FORMAT,'TRACE':_0x760547[_0x5b2794(0xa0)]()};break;case'MEMENQ':_0x5c483f={'CMD':_0x5b2794(0xbe),'TIMESTAMP':this.#DATE_FORMAT,'ECRREF':_0x947587[_0x5b2794(0xa0)]()};break;case _0x5b2794(0xc8):_0x5c483f={'CMD':_0x5b2794(0xc8),'TIMESTAMP':this.#DATE_FORMAT};break;}return _0x5c483f;}#handleGenerateMD5(_0x19c4fd){const _0xa29aa6=a0_0x252ee6,_0x5599be=JSON[_0xa29aa6(0x9a)](_0x19c4fd)+this.#KEY;return this.#MD5_ENCRYPTION=a0_0x341cf0['MD5'](_0x5599be)[_0xa29aa6(0xa0)]()[_0xa29aa6(0xbb)](),'@'+this.#MD5_ENCRYPTION+JSON[_0xa29aa6(0x9a)](_0x19c4fd);}async #listenToTerminal(){const _0x2f7319=a0_0x252ee6;try{const _0x51376b=[];let _0x39eb62='',_0x27c817=0x0;while(!![]){const {value:_0x17ce92,done:_0x46d4b1}=await this.#READER[_0x2f7319(0xb0)]();if(_0x46d4b1){this.#READER[_0x2f7319(0xa7)]();break;}if(this.#TIMER)clearTimeout(this.#TIMER);_0x39eb62+=_0x17ce92,_0x27c817+=0x1;const _0x4292f8=setTimeout(async()=>{this.#handlePrintResult(_0x39eb62),this.#handleReleasePort();},0x64);_0x51376b[_0x2f7319(0xad)](_0x4292f8),clearTimeout(_0x51376b[_0x27c817-0x2]);}}catch(_0x5d0aee){this[_0x2f7319(0x94)]({'status':this.#READ_STREAM_ERROR,'message':_0x5d0aee?.['message']});}}#handleSetTimeout(){this.#TIMER=setTimeout(async()=>{const _0x50abd3=a0_0x2d22,_0x5d5328='@'+this.#MD5_ENCRYPTION+JSON[_0x50abd3(0x9a)]({...this.#DATA,'APV':'','PAN':'','PAYER':'','MESSAGE':'','TRXN_ID':'','TRACE':'','STATUS':_0x50abd3(0xc1)});this.#handlePrintResult(_0x5d5328),this.#handleReleasePort();},this.#TIMEOUT);}#handlePrintResult(_0x3808d3){const _0x4a41e4=a0_0x252ee6;if(!_0x3808d3)return;this[_0x4a41e4(0xa6)]({'key':this.#KEY,'value':JSON['parse'](_0x3808d3[_0x4a41e4(0xb5)](0x21))});}async #handleReleasePort(){const _0x58a64e=a0_0x252ee6;this.#READER[_0x58a64e(0xc4)](),await this.#READABLE_STREAM_CLOSED[_0x58a64e(0xa9)](()=>{}),this.#WRITER[_0x58a64e(0xa3)](),await this.#WRITABLE_STREAM_CLOSED[_0x58a64e(0xa9)](()=>{}),await this.#PORT[_0x58a64e(0xa3)]();}#isSupportedBrowser(){const _0x42e0fd=a0_0x252ee6;return _0x42e0fd(0xc3)in navigator;}[a0_0x252ee6(0xac)](){return'your\x20testing\x20it\x20ok';}}export default Terminal;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terminal-gateway",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "POS SDK is a library that allows users to perform sale transactions on a terminal from a web browser.",
5
5
  "main": "index.js",
6
6
  "author": "",