{"_id":"testluy-payment-sdk","_rev":"55-81b110106b0271c80323d158fe847bf1","name":"testluy-payment-sdk","dist-tags":{"latest":"3.8.3"},"versions":{"1.0.0":{"name":"testluy-payment-sdk","version":"1.0.0","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"08faecce939195ed276cc59f00354f49ed78260d","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.0.tgz","fileCount":4,"integrity":"sha512-XFSkEUbSAuQCGqF9fsd2fx689bVo7qlQspgIuEbwiJa6f7nxxPowXMlC+j0/3sQM3BJ1FM28tlKDjy5G+jbJ3A==","signatures":[{"sig":"MEQCIBMidKmZjMay2sh+/Bpk6xmY+X9qzOhVtfBFFS8ZyIUCAiBXa9iKDDTepTv5wBBTyBlwHN4mi+I3SQbeGie34pnt2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5313},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.0_1720175844640_0.6680094369376455","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"testluy-payment-sdk","version":"1.0.1","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"74aa8572c07a72b87c477c11187ffcbef3f66c72","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.1.tgz","fileCount":4,"integrity":"sha512-oOyzlFCy/h88a26tdEON1+OXuQIJQ7iDjzrmOaKe515sgBh9xeBZQ3EL+G0eNITokEk0a3CqxW+us+uq6Fqpqg==","signatures":[{"sig":"MEUCIFbDdmFR5vpd3zCwm+lXV91CC+bewOBh+0Qq3PKFDAwqAiEA8XYHirbtGS1R2X0pDODzz+1AwflTqi4sNwRy+5LWBd0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5378},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.1_1720193955243_0.07662182695168673","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"testluy-payment-sdk","version":"1.0.2","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.2","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"1a5720ece04f3401049ffa4ea0048e9d501f8298","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.2.tgz","fileCount":4,"integrity":"sha512-Hs84q1vwFjDrhI/CUDakLYCoq6tStU0pIujWO9bGXEqGpkT7f8ms3Kr4SZHFYrilAy2Dxty6EKzuL/G/AAUYmA==","signatures":[{"sig":"MEQCIHuGUrLWiQfjwCmbLwaInQIWqim86RdximxwZy53jHmPAiAgMgTaIntf5sqPTS/4CujpmuRw73ECzxFitbuS2D9oRA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5422},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.2_1720194303038_0.1038155748657632","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"testluy-payment-sdk","version":"1.0.3","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.3","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"a19627c78c67d2b26ffb0d840d9f804f7d58905b","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.3.tgz","fileCount":4,"integrity":"sha512-bYKr/e2k/bxsURWtMT4OLhXzZ8+MuNdjwEkOXUFNakR9wplevW81p/qOqGE2JzdYEdpuaDc6S4axkO85EaztBg==","signatures":[{"sig":"MEUCIHbr3MUTENfO/GlMhKy3P2/w92dNqg6xcavbkzprOAyjAiEAg+QWT7bkVStKJJovqYnV73xra4vOkMtNJnyHisy0X2g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7006},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.3_1720194626723_0.06155800418825619","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"testluy-payment-sdk","version":"1.0.4","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.4","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"1334e5dc9458f8796ffc1fe8994de07276a06012","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.4.tgz","fileCount":4,"integrity":"sha512-+J/WdBVxZLvmHGCQVH1p8+IMZ/6qAs02IFLwDJkmbDrkqcAXTaadYl7mVUeoLfjIDeIXcEoKJU2k57PjiKYzuw==","signatures":[{"sig":"MEUCIQCyQX4agJpqElJluRUD6Z0Xy8yMOodqlswyTFeS2a/44QIgEyQYeO6bweuBjf1zI7cupSAJEbmPUI0UvrKYIX14ltA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7315},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.4_1720209694549_0.3144975017447298","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"testluy-payment-sdk","version":"1.0.5","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.5","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"f2596682e72b26afa49f89d0e8ab0ee1742bab58","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.5.tgz","fileCount":4,"integrity":"sha512-/oBbyt/FF94xiubOoK3G460B+B5nH0Jig80/CIiRfjq+52nlvzFZQiRJ+fNGG2izaI1SZufmPG+Ll4B/CWVL+w==","signatures":[{"sig":"MEYCIQCMGTWelyerZSsKLnI7RQOUsiTD7rW+wcECc6Z/kxrkbgIhAIi4lGQh5Ua3PDlYBE2znAra8Tc5dTRjyZ/DmlvpZKEL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7479},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.5_1720210439278_0.2428765195866387","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"testluy-payment-sdk","version":"1.0.6","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.6","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"0ca73b03ca308fcb7e24c42820812b3a9107e93f","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.6.tgz","fileCount":4,"integrity":"sha512-JZCPlQzwRTvZYdUVvZphjhfoTSGNJnAGhXZhmX1xxjF75aSshZncda0tQOyVXjCTl8x9Txz1vhLokaVZ2/pZpg==","signatures":[{"sig":"MEYCIQCPvVM3vZMi3moNkdlbWJ+U23LIbDLq181dkwMrq9UF9QIhANYMaXUQSrEBOutP7a9ZE4Uq5Z53lPEhU0qx93JGhctQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8379},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.6_1720214971079_0.10155269537220968","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"testluy-payment-sdk","version":"1.0.7","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.7","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"1709c507390cf18dadea05a75356458747c99342","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.7.tgz","fileCount":4,"integrity":"sha512-OwNEUis0Zkm2xXkdUxxZq9uF+QdDM+95BJh3lO79aIZYUoXuwQE3zDSiYOsQisPsHZSaAQLIaFxp79wvGOJpCQ==","signatures":[{"sig":"MEQCIAbUasqVqxS+oVnDWGbfXphArBXdhKbXEVv8G3XUAtpPAiBQBva/CpnWkYd+aFlVxejyMMhCpkGMAiimVKmoCkPrfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8805},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.7_1720216006575_0.6576800321123721","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"testluy-payment-sdk","version":"1.0.8","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.8","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"42485d8b7c1e6885f6a5e35521f948187fad5acc","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.8.tgz","fileCount":4,"integrity":"sha512-+u/27QaL3GsTG0IHGY328DqPfqBl19ZnYwOU9tq7mvUD7mkkwqaFuZbhXmA41DWxDCZDDqtTEGGFRmbMTzLN+g==","signatures":[{"sig":"MEUCIBhGU2UAh8fb70fGVgodiDxNwzBznxsjNkjmZPeJJ4CQAiEA341STi3oFCjRcV4ZzTpILEIrjty0ywH143PQNjtZG34=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9176},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.8_1720216477921_0.912407077798125","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"testluy-payment-sdk","version":"1.0.9","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.9","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"1c447a9827db9788a534aa6f1d6245e0485219b1","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.9.tgz","fileCount":4,"integrity":"sha512-PHPTe9M8Eh4wusl7r5/QV6J9C9q/SolnZ7F37BOPSX5Y487BveGNveH6JiNYOr13lx7sqO/XncRQVEGu7wlPjw==","signatures":[{"sig":"MEQCIE5c9YnWKcryLkoZQ8hHoKqNWzGBLEPvcxVhte/a7K/oAiB25II7sDF+9955L5qi6+TYhBfKuzyg+QCA2hdWcNk0jA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9131},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.9_1720217315465_0.9763845154927819","host":"s3://npm-registry-packages"}},"1.0.10":{"name":"testluy-payment-sdk","version":"1.0.10","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.10","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"59509ddb03e4d5c365184cd6e70beaf46dd49ae6","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.10.tgz","fileCount":4,"integrity":"sha512-yNkUlCazhRUktw4pbjUmI0CxGZzht1fc87GzyvZwQhFsHu0KMm02WHXFklwzYo/8jYd69r8jCbQWxmedR2IUZw==","signatures":[{"sig":"MEUCIDt2w+/qepeXj5xA5nJ2AbWUmFB/0I45qWU9KpA6aAkaAiEA6B6d+P/Z3jj7uYLFjpMjOSRdb/Oxs/4Wr+kb7t2L+CM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9258},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.10_1720218369023_0.09463987096954685","host":"s3://npm-registry-packages"}},"1.0.11":{"name":"testluy-payment-sdk","version":"1.0.11","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.11","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"e74bbc167bd1942a1b1982d9ba80fc05e1625db8","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.11.tgz","fileCount":4,"integrity":"sha512-foZaUoJv5NkTDt1Ce4tBVc0bN8/tcqRV1d6afpCBUG37hu5b93ZjM9FPxse1BVB+db6dKBn/AKXkwcPDQ+tv9Q==","signatures":[{"sig":"MEUCIHq0mTIHXw4OlsUrM+Jw+8gxyIrPFaui8fjyQV2uiXzuAiEA8Jk1rADcFP2d/w5iOT9J33gh3AOOPruNmcWK/nu1E9w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9369},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.11_1720219225271_0.8819557132892797","host":"s3://npm-registry-packages"}},"1.0.12":{"name":"testluy-payment-sdk","version":"1.0.12","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.12","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"963b121a5ac1b22fe1cb7ffba50e5f750a623d90","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.12.tgz","fileCount":4,"integrity":"sha512-dxB4IsVMEgYza/hHjF/5cRoXSQKXC8IJXMFzQ57WYYJ6pmSY2R/6BxZc688gMA1NtqG01n4C7vBpt1T0KyOFpw==","signatures":[{"sig":"MEQCIDZGgF6dpfJUOYhTGxi/0Wjb1HGXsRtScaf11vSWwuAXAiAJ8oszg7UGvySANgNqTlLpqVuLE1+ITzHBKuEUY5jDSg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9525},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.12_1720228041620_0.2920409159692443","host":"s3://npm-registry-packages"}},"1.0.13":{"name":"testluy-payment-sdk","version":"1.0.13","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.13","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"ff1a7ad3521a2b073666e888428edd0fb90a78fa","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.13.tgz","fileCount":4,"integrity":"sha512-MPwpT8RxPPjOKg5zOyK7bKEpy8K5Jkcl839H6LXJHwMCOFF1Tzqu1KqTB5u4O3BCKVfdDVYW7FI6ZXyPxHRJ/g==","signatures":[{"sig":"MEYCIQCBiXQkQdQlvFDVIcLaaOG8yfQ7vGZc7rnaOtz30HUPnQIhALev0bkxTjNGDgneQKLsSnvM88d+iDhT4UpzznSLtRte","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8544},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.13_1720229078903_0.9480602898143329","host":"s3://npm-registry-packages"}},"1.0.14":{"name":"testluy-payment-sdk","version":"1.0.14","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.14","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"ff79f53adb6ea837ff9026130b6999bffe593202","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.14.tgz","fileCount":4,"integrity":"sha512-wDw0THYVCizJIvql1eXZj20p3VZmnqcF8rYB96018FxnTZcNISO5VMwie1coKAL0UrZ/DOeYCTWY9DN8PJ1yOA==","signatures":[{"sig":"MEUCIFOr7qdwJR1KQW9F3wTwDrS9BuX9XiaLaTXGGXXTYwsvAiEAj4VlzJheDh7XL9IgwDwJvEncDjdriSqbedfDBkihfNE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8868},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.14_1720229502774_0.7600347701611703","host":"s3://npm-registry-packages"}},"1.0.15":{"name":"testluy-payment-sdk","version":"1.0.15","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.15","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"765c5db41b648bedba5b4983f7892b5b8ebe90d0","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.15.tgz","fileCount":4,"integrity":"sha512-Ey0A08AsuF+aMDW2Oy7bjk64BiQnhWnt/Aak+KOHbo79FXvNvcJ9ehj+PELj1cBRIGNUJrRZ6T/qmFUfzA1Stg==","signatures":[{"sig":"MEUCIQD5+lzfLN2Wod8UIwjMQKH5CIu8h1szLrZeX4STxDCIuAIgQk/U9GforZdEwgdKbIQLLB/zjIC0hYmjrFmePf5nTLY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9210},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.15_1720230313839_0.1935461526329143","host":"s3://npm-registry-packages"}},"1.0.16":{"name":"testluy-payment-sdk","version":"1.0.16","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.16","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"4877357bdef92ea723c84a2d26e3f8ee7db8c186","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.16.tgz","fileCount":4,"integrity":"sha512-TtoMjVcBU64jYQpn2FPZSNR8o0LRFAUhllWRu0ojBEcrphj/5lbAWKhRBcIwkKNTGJCegWaIZlF5LdcQLDGVag==","signatures":[{"sig":"MEYCIQC0Pf8Qqu8ztciFPrgHWZxNTFYijiLU2+qo8f484cyqKgIhAM95iD0znQI6ePHP+U1pCpfKNTtNn6C3XeVuRRCldxe7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9210},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.16_1720255365976_0.9357664813809747","host":"s3://npm-registry-packages"}},"1.0.17":{"name":"testluy-payment-sdk","version":"1.0.17","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.17","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"0b3d5768652011b76cf9f7862582d88a31a9ce8a","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.17.tgz","fileCount":4,"integrity":"sha512-u5BV9GKNTLO789dxjUuywV5TnwbgPWru49FhbkHJ7DCOO4OvLH7mZgJ4PpZ/K2Qg6jCh3NSP6q7rapwtYk4fpg==","signatures":[{"sig":"MEYCIQD4m5/M3WUyasemM15GyvgkwGXgqwzc7ZV6dyZlQRSo9AIhAIucNal3EJbBs/xq3f2o950LzVVcIkQmoBT6lCZ9NNH0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9599},"main":"index.js","_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^0.21.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.17_1720816042700_0.2575034802050913","host":"s3://npm-registry-packages"}},"1.0.18":{"name":"testluy-payment-sdk","version":"1.0.18","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.18","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"afd94ed33c118035ef55a7edef225c69d1299a05","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.18.tgz","fileCount":4,"integrity":"sha512-K+AZ7ZM/zh/Z2T9PBrbi6iDmRmS7EIyvdgDQdBLrZ8sSayly+j4zTJCWbwhyUbqHZzmUbWHtGT42hMMYPnWGzg==","signatures":[{"sig":"MEQCIByd67GwU2fzDcjxLQq4q2wK8H7BWVyPq73pKnGnI2y3AiBU319V60pEHHZo3OufLCSrZOI7oe7WbImILKZF8ozsSw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9032},"main":"index.js","type":"module","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"10.6.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"20.12.2","dependencies":{"axios":"^1.7.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.18_1723240215531_0.6326565981823387","host":"s3://npm-registry-packages"}},"1.0.19":{"name":"testluy-payment-sdk","version":"1.0.19","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.19","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"73b9efcbd26c5d848c15bd1b4e37784af1fb324e","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.19.tgz","fileCount":5,"integrity":"sha512-jJffffLaWhWCJrclvmui88MGy6Osw8ElLG6Kl/pEaX/JnxRFt7iQQWH4L6iCU8NE88wW0yZi9F8d2+eh4OyXbw==","signatures":[{"sig":"MEYCIQD8vs2VccEeivdV4sIXZJKpt/kD/l13X6u+FKVwzqvqYQIhAPGqA+gLU7FM/8MpWceNO/ZKLLxnSOKfwllns7e4aQCt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9964},"main":"index.js","type":"module","gitHead":"b5b01f9fbb0662c0ea4fffe9183cfe5ac85a5e14","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.19_1740366802105_0.04077250723913339","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"testluy-payment-sdk","version":"1.0.20","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@1.0.20","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"1959b3491c085c7781e12a298d61b9bb58679402","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-1.0.20.tgz","fileCount":5,"integrity":"sha512-6gmmDyAzERhck/y5iALZn0YilewWMzWLbKHSWa/JB3EfD/9VxnQN19ekQi3jPd76NN7iRA18CkVCsxB6e8onjg==","signatures":[{"sig":"MEQCIGt9qrWotGxsyBn7pcA1h7J0lNM6QJTzgiyL85sjmeBuAiAOIuR4ApEP2lLEi3uw4b1kRYdNXx6NjMhLLR8AKTpEcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17898},"main":"index.js","type":"module","gitHead":"c81737ade6acc038a39cfbf67f7d8ed45b04c52e","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_1.0.20_1740371736727_0.9263297607753096","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"testluy-payment-sdk","version":"2.0.0","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@2.0.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"b3e5b017b5b7b5a14a7ce4df3b4050e012c57d76","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-2.0.0.tgz","fileCount":4043,"integrity":"sha512-0lajTbioRpc2k+g6RDKerLtfPOmiCZ+lvq+WwAg3kbiCv4k0XOzqAV8C9t7e6WlR2cnilo/D7ee0vEObb1O0/Q==","signatures":[{"sig":"MEQCIB+SJDxbKOKb9OVVxnPTOCzpAwyT86YfkgTTvJTm4WB+AiBHg8KoTqQEJrWezzZOabWDynA3t5pk4RfhbrkraRJvFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7445062},"main":"index.js","type":"module","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","crypto":"^1.0.1","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_2.0.0_1744042296693_0.1923156144171656","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"testluy-payment-sdk","version":"2.0.1","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@2.0.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"3be3ade0002a198f096bd076b466e0effea3b27a","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-2.0.1.tgz","fileCount":6,"integrity":"sha512-30iZSl4PjRCLkzDzXVLI0cI20zlB6Qcm1yj+LYWawZkuuYLz00CW/PEbkMSROFBHIBRrku+V7ZFXg/HXp+THQg==","signatures":[{"sig":"MEUCIBTxLdsNSK2XBKT1+seRLkNTzr2lch7xMldnXsMmoit6AiEApq46XELYnoIf+Nkqge/0KmZXLSXAvKF60QxtLsTrtRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12058},"main":"index.js","type":"module","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_2.0.1_1744045279923_0.7039264536551879","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"testluy-payment-sdk","version":"2.0.2","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@2.0.2","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"657f9e622e0a5304aad367964a9373bbe1978a60","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-2.0.2.tgz","fileCount":9,"integrity":"sha512-gKz2mpY/NJCfjH9/7r7NUDB54QZa8JWxOMMSaJj6S+AV5jlJ+kT1pYTuPMMAbNf0FiJf4etK2ITncP2/alG3gQ==","signatures":[{"sig":"MEQCIElxwwRp7L1/bbyGbZ+GzwcgkgKuHHfBq82pPoOXHWyXAiA0F41XsOqO5EffyNLg5MOZ3kXe8OQIo9sK1/vYtyVkHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31781},"main":"index.js","type":"module","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_2.0.2_1744081897966_0.911933565629393","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"testluy-payment-sdk","version":"2.0.3","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@2.0.3","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"490ccddd5014489456e3d9514a974697e3802f83","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-2.0.3.tgz","fileCount":9,"integrity":"sha512-TNY+h3sQ2mwjYJ/NcNpu57AQyxKPuR7jQTVPzc+OCCistmTpHW88vg2bf4TtUbqIEDY+8dhItz5N4+AHHj5/7A==","signatures":[{"sig":"MEUCIQCjlgexh0EAqx6p1IiOdmXEWjgqWWbyxKcZ4YmUzxd9EQIgCFcT03ZkS15T1kG1nL6fZ312d/pFjIZDtiDko6XqGUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44105},"main":"index.js","type":"module","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_2.0.3_1744087056576_0.7655026957406115","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"testluy-payment-sdk","version":"2.0.4","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@2.0.4","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"5a79502cd6935b2ff4f37ebaf6efc17bceb59a61","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-2.0.4.tgz","fileCount":6,"integrity":"sha512-1uauwD0iyfwY5QZLpYo20lY0G6kZfChy+O7MWMaGLzgUmGi8VG3nKC2NrMetTnj4qT4OIcjLB2S3m6AhcDhP4Q==","signatures":[{"sig":"MEUCIAxYcE+lr4Mg4UzuoHdmHL2YADnWpNPVn2QiFtQzA+WLAiEA4ff2fjHkBWZUnrhl8VypdZDe3LpI+A2Zzbce4MF+1aw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30483},"main":"index.js","type":"module","gitHead":"e775653d1ba16927a7da48f82c8300769ec08eef","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_2.0.4_1744186288074_0.8072122637385157","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"testluy-payment-sdk","version":"3.0.0","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.0.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"447f18ead372b830e52eec7bbfbe78dd02397051","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.0.0.tgz","fileCount":6,"integrity":"sha512-VtpHSoWdONEa03MPM5MN5vHIQoulgLY6yd4bd1KQVzVuJSHMXJ3fGXoE9kU4A5xiYnKmtPQa5Y5Kwaw6o578rQ==","signatures":[{"sig":"MEUCIBDDCw8KcfJkEVOsSvr2EP3TejPl2P/e6w4jV7RtV17nAiEAwcT8Lhhi0Ls1ebg5G4rAZv0b4wuZccChqtRbPT1zuPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35270},"main":"index.js","type":"module","gitHead":"a58b1c9c90a7e1e338e215102aabc2ae6432915f","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.0.0_1744251321157_0.006729111931840892","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"testluy-payment-sdk","version":"3.0.1","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.0.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"4485449636744390f7beb9a45a5155376b2a38b2","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.0.1.tgz","fileCount":6,"integrity":"sha512-TGeCKj6rkH9Qzhw0rIKRcbXTLsdDFg/DoH5E2xv7umTOkF4Dqf1OdmfDQZVnvQG8aDFWQLl0/IZhkQaNEDyrDg==","signatures":[{"sig":"MEQCIFasrjy6nswLPgEKXppf6t83HceHHaf8giNX3P10erdbAiAjw0GYCpQLE8sISFTpIbAyEyKvWJhnLrfQWxcINvTayg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42546},"main":"index.js","type":"module","gitHead":"d0d8bd2b065a20161d15d0789dc76c90f76b99bc","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.0.1_1744298738910_0.37700475814239787","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"testluy-payment-sdk","version":"3.1.0","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.1.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"16b1bb2caaf88605be98901a9917df0b457e3373","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.1.0.tgz","fileCount":6,"integrity":"sha512-8kVZlVQqx79Sn43VyOuAhPem8u9sCCFb/ZmZ4LFJG3iQa5i2dUuZBv2+6iruUW0UQ6A83/XKgivMTB5+dc+SwQ==","signatures":[{"sig":"MEQCIG/lpg9Mjr4rkLc3EwMXjxvNCvcvDTVNmADlvEdZ+69VAiBBpvv1PCNkA9YaupEX23f0dWasC5w2kVp+DLnjFafeIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51624},"main":"index.js","type":"module","gitHead":"5a216bdbc65311fa4ceb3b798eb08a2e54a82461","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.1.0_1747137413372_0.029561545568710823","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"testluy-payment-sdk","version":"3.1.1","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.1.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"d3e86baf040727d5682865887bb887d793c174b0","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.1.1.tgz","fileCount":6,"integrity":"sha512-f8EaVkUnpPDZh0NgMd76RMLDY3gppfLladerjP9K1rwKgaRr+wnKrerE/8D7QYTtN49YA4uAZ1YIma3F2DS+pA==","signatures":[{"sig":"MEUCIQD4X+Qb6y7gKdC/RWqUg5ZGe1hIdlotslvpcA48XAi2/QIgbKfGMmnKQu+4ISAQrfGr71mw2nLL+7J5BT4LLm4uL8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51558},"main":"index.js","type":"module","gitHead":"cda76f7f6bd486272b78db3d9dc060c5b1c95bb1","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.1.1_1749294629737_0.4125083957618656","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"testluy-payment-sdk","version":"3.2.0","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.2.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"e16bbf1806c970c6526925bb50fd994cec520bea","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.2.0.tgz","fileCount":7,"integrity":"sha512-k7zJrJTFxRsCWwIqSMwP4+FjIZeqQV2Na/RSaoczIK6xqdiRtuIiNQsDRCCjnpHRpUJafXzfEJYbEZdqmeGxmg==","signatures":[{"sig":"MEQCID+RAmfgUEjswUW41uuRqvFL9/FdGOgXsy4MkbnvFtotAiAyOOKph6KU3qOvKyQO9lQZH8PxfW6PNC9bZJUdldAXzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52717},"main":"index.js","type":"module","gitHead":"b0f8b2895552659ed0ff78bee717cc6615db57d0","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.2.0_1749309973080_0.7703457518884884","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"testluy-payment-sdk","version":"3.3.0","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.3.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"5a91ce354aad1071b73d47ae89b274f0debca809","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.3.0.tgz","fileCount":7,"integrity":"sha512-vECMqnX/9vEp/EupFnpVckAWOHvuhSiAEyww5LF2UKDWw09HGEOXPPknOC/vtJCUl/yegqOrdZKdrrrXIGw4wQ==","signatures":[{"sig":"MEYCIQDx8gsDIXphshy4oMahwflkmL31Ju1yd1dm1EZI2d1GvwIhAJEk9MBxEnhtwaGFHPNPTEwvFzsvKeq/IalhLFsoXsRE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54672},"main":"index.js","type":"module","gitHead":"b0f8b2895552659ed0ff78bee717cc6615db57d0","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.3.0_1752637571475_0.47162810839124525","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"testluy-payment-sdk","version":"3.3.1","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.3.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"f31d1a3d454574534d64f29488312f35c66aa6b5","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.3.1.tgz","fileCount":7,"integrity":"sha512-T6bVQytyYw5dA6N7OxK82CK/1C3wrE57aiAL/DF4DysdbKXjgpNEursdfv7wD6ghc0ZelJmWCu6Q0B02Wh9gMg==","signatures":[{"sig":"MEUCIQCBG6hl4LOYw4eLcvg9+2NRXRY8G80jB425fyr7P4n4SwIgaq+VS7/dB/r4mOP5zp3oS7tfIVbSJaRmGEQ+jMQZ3O8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54983},"main":"index.js","type":"module","gitHead":"2e8c36cdce0737f1c7392251b7917920eb5d3a12","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.3.1_1752640341496_0.69897856687661","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"testluy-payment-sdk","version":"3.4.0","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.4.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"19e867a463f6271e89056c4b46cc17f4590818fa","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.4.0.tgz","fileCount":10,"integrity":"sha512-v4ZAymskBFk8ay9L9sQCA6cOxgjnkDJgmY4gmOBi5LFRPsbERDpBnqH5TKpMo10nUsa6HSJiYJRNshsx6Bu8Zg==","signatures":[{"sig":"MEQCIBDwZssP50X6MXEgGLpXe6MpYPI1cR4yWptsgn9y5ZkFAiBDRKXpMxY0tLQQgVdBgQZZSmc8HiNHTyVYwh2rYawPFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80160},"main":"index.js","type":"module","gitHead":"2e8c36cdce0737f1c7392251b7917920eb5d3a12","scripts":{"test":"node test.js","test:cloudflare":"node test-cloudflare-bypass.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.4.0_1752653707382_0.9175697203292725","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"testluy-payment-sdk","version":"3.4.1","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.4.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"04793c9aaee0d13c38c9e9c1d04e65481cb5f5f7","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.4.1.tgz","fileCount":7,"integrity":"sha512-DWraLfdZfj7Ywn2qgbuatyEw+oBjJCOxe8YW51IjkMBu8d6pQeDRKopJFNJ+2tpYadfKUnAY5mNmT40tHduVHg==","signatures":[{"sig":"MEUCIQDFyH7SegjpPuhky+4hAqcyJ9L6W0TQhnPiBTFm0hMSLAIgKaYWUMzz3T2yugX1kKD11Ul5x5ZfS3DIjgV3HOk4LmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54916},"main":"index.js","type":"module","gitHead":"85061df40f1685df8be1c2a846310b61a8961a4c","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.4.1_1752655727572_0.5652893220916837","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"testluy-payment-sdk","version":"3.5.0","keywords":["payment","simulator","sdk","cloudflare","challenge"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.5.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"32a553f9501902e0868d2750a7e91e4bd22797b1","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.5.0.tgz","fileCount":10,"integrity":"sha512-ZDIE0F26KZA+2EKhfPYTLe57gnNGwAjFnS+pqL42KXzPqtGRjhvhji7DHuBID6ZMJ6FanDDaIXauZTTCSis1KA==","signatures":[{"sig":"MEUCIBAzE3T5w2yquZES1n1H/Dz9wSxrlzryT/1fvzEn1A/0AiEAnX0HpCfFAbsqEHhVtYZyqNW2PV+jN9pB7TghM2sKjVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67132},"main":"index.js","type":"module","gitHead":"85061df40f1685df8be1c2a846310b61a8961a4c","scripts":{"test":"node test.js","install-browsers":"npx playwright install chromium"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare challenge support","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"optionalDependencies":{"playwright":"^1.54.1"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.5.0_1752658278362_0.7511099972807584","host":"s3://npm-registry-packages-npm-production"}},"3.5.1":{"name":"testluy-payment-sdk","version":"3.5.1","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.5.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"194e28bfa94d91665b3723a05127e4187201f608","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.5.1.tgz","fileCount":7,"integrity":"sha512-6Cp1jn/GqalYvkBhJt/vDav4ipQCi2ry4KoR9mlwVs1nUwGB7z5kj4A3gCT0Q7/UPKYAPBmYRQt6laRz2On7UQ==","signatures":[{"sig":"MEUCIQCH8HWvFCO+HRNeNzn9V8CKBMf81xGp1zCabiIEG1o5wwIgTXBLL/7c0gzm8NQy2EOnQnXYGfHfV+J5bbKaodJV18g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54912},"main":"index.js","type":"module","gitHead":"cd1ce7e2a047726c8f315a544acdf413bc7536a5","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.5.1_1752659565411_0.37311134981227645","host":"s3://npm-registry-packages-npm-production"}},"3.5.2":{"name":"testluy-payment-sdk","version":"3.5.2","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.5.2","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"8490f0e72775a7c76c6af915c89685e6ede1ff4f","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.5.2.tgz","fileCount":7,"integrity":"sha512-3CjIaFVDMFb+n8aeVAWsIE630FO5te8KrOJao/sBpwztoo0a3whKTOzcL3QEBrUG3uUzmH5koK12KbHjiWE1Yg==","signatures":[{"sig":"MEUCIC7UkuHFosoE/L354EvuZiyyeytZmGyZdT+0YPnqAftdAiEAsjKknwvXd/IfJDzFfV3P1ZtdWVGinc3gUTXpp2frQXU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55239},"main":"index.js","type":"module","gitHead":"cd1ce7e2a047726c8f315a544acdf413bc7536a5","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.5.2_1752662969347_0.5215925391830862","host":"s3://npm-registry-packages-npm-production"}},"3.5.3":{"name":"testluy-payment-sdk","version":"3.5.3","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.5.3","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"cb8dccd51b705ce92737c2089f598721b9903332","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.5.3.tgz","fileCount":28,"integrity":"sha512-VEyfheE74kOX34APi30fMbi8wwhXKOr1hlW2sL1/kdaZ70rPy3X+isuPlPc9A+Pc39F0aRVS82lDg36PVNDDJw==","signatures":[{"sig":"MEQCIBA3Co5plr7G7DLx3T0clKKshenBN2ggHjxHft2yFf/MAiALSyADNfJp/GWhoOTyy5kPXYAPYo29SXSHHtz53qiVrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195718},"main":"index.js","type":"module","gitHead":"cd1ce7e2a047726c8f315a544acdf413bc7536a5","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.5.3_1752680541225_0.5487419691947004","host":"s3://npm-registry-packages-npm-production"}},"3.5.4":{"name":"testluy-payment-sdk","version":"3.5.4","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.5.4","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"c7d0cc267f2b33eac015088f01e59e312e826bd9","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.5.4.tgz","fileCount":41,"integrity":"sha512-kOF2IqDRKxq2pG33fqpQ+/jcYDPgOyKcvlV30GThN3WOmBwdEknOCW79UPPr8efPSsm9jhIgCnasz/8KpHtgrg==","signatures":[{"sig":"MEQCIFhK3dj5WHq6GQma6c5t/8LwmaA0C8j3Tlx26vvRXupuAiBp8usHxy6D/+V3FhgsMH4jkxeu4WkVKCuzPWnQTuweCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285548},"main":"index.js","type":"module","gitHead":"cd1ce7e2a047726c8f315a544acdf413bc7536a5","scripts":{"test":"node test.js"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.5.4_1752689021646_0.8471804847294131","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"testluy-payment-sdk","version":"3.6.0","keywords":["payment","simulator","sdk"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.6.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"dist":{"shasum":"011da3ca9687d84dd001271c2cdebe3e213eff3f","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.6.0.tgz","fileCount":123,"integrity":"sha512-n6a9h61nBhWwCKD6/zb/x6S+bmPIlwqf+1+uiG3IqpCzG/cl00XtwIQ6DvjCGdLGAyMFNykrExeXg7AbzLnuWg==","signatures":[{"sig":"MEUCIHBk1VSLU06BE3806O8XREff0QIJG/9R1atFUVKO78RbAiEA0Lr2HhlnRQZQAPhHP4op3bNu5eiQNpinPYzu85PnhM0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3261748},"main":"index-enhanced.js","type":"module","gitHead":"3e5e012062ed932cbfdf54f9b1dd393459bead7e","scripts":{"test":"node test.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.6.0_1752825404336_0.089378089653539","host":"s3://npm-registry-packages-npm-production"}},"3.6.1":{"name":"testluy-payment-sdk","version":"3.6.1","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.6.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"6caaea81771b8502e5674ab62ced03acc4325569","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.6.1.tgz","fileCount":50,"integrity":"sha512-i26ul7avpR1FiILhEETB5siHZaBlYDSorTuWYVqqCLSE4hxA7fAnFspcuddP14FLuhJhBeKjQPqHiLynx0/mPA==","signatures":[{"sig":"MEUCIQD0I7U8/FMvJEzxp9FdsS2dcB9hi4w90wUyEpvW4H7FawIgEDpn3WJt7t62kR3LwbQ7XJ8F3UY5XWSTWejJK+RylT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":436535},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js"},"gitHead":"74bb678d748b620664c1000ca6f4c9452bc251e1","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare resilience","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.6.1_1752828740444_0.6107885437964007","host":"s3://npm-registry-packages-npm-production"}},"3.6.2":{"name":"testluy-payment-sdk","version":"3.6.2","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.6.2","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"37ac5807b20715cfa83a2337f47a39a7bd40ddec","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.6.2.tgz","fileCount":50,"integrity":"sha512-wEOmlbxroqqCJAY5BWiZ8ZODnbBF8O9iRv/ncwLWd/tyD8ous5gOba4E94Dg67j4K8g6Bcj51fDrQpB8pAls9w==","signatures":[{"sig":"MEUCIHSA3JJrMNr393z6LFxHxiNZfs1IJb5IaAPxqQNTdA38AiEAsRP93pLJEDQz4XNOM9L6jUJhCdtf6wekRW3+DeX9/mE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":436586},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"f4657c53710f299b48539e4396b32052c3b2caa1","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare resilience","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.6.2_1752829345251_0.352733677240048","host":"s3://npm-registry-packages-npm-production"}},"3.6.3":{"name":"testluy-payment-sdk","version":"3.6.3","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.6.3","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"b914d10565212d7dade3ae318352920ae6410bc2","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.6.3.tgz","fileCount":50,"integrity":"sha512-hl1jXDSy7GFj0A5wHOuNG3JLpXoiHYhyPbtQoNN7ytfqq3nd6uMPOGWp7sglJCtOTPTj9CVDS4nL795o7Amqqw==","signatures":[{"sig":"MEYCIQCf0XyDQWA1CYc62h6RB8tsXBAjrE+DQilTBYA1U2TvTAIhALmV7txhU+c57x9SSqltV+H1HchTlLqRoT3QRtDHReNv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437299},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"7b78b3de259214c879bc0a7c441d0475b9afd83d","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare resilience","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.6.3_1752850207561_0.04815161152780356","host":"s3://npm-registry-packages-npm-production"}},"3.6.4":{"name":"testluy-payment-sdk","version":"3.6.4","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.6.4","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"02f386b8e5ca0431dd91a255e9adca4ff8385c85","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.6.4.tgz","fileCount":50,"integrity":"sha512-aRBC4RbM6jQXx7iJo/ircDo4oje+/r8Y3sIXiHuRkx+mVX/0mA1G5+UeFtpJVvbluJ71sv9Bh3A9BHst/vzO6Q==","signatures":[{"sig":"MEUCIG+QpcZUORbtIMevWiB224moZf0pgtjI7A+Tc62OmRk7AiEAr2eA04ZpAbqN58JXisDfq1UA93Kv89twhGmbfMd4G6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439839},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"e7b0d8a94562f05805cde2adb1b1d43a86b81f43","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare resilience","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.6.4_1752858085892_0.8912679148925877","host":"s3://npm-registry-packages-npm-production"}},"3.6.5":{"name":"testluy-payment-sdk","version":"3.6.5","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.6.5","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"91b15e7f81f0be28fa2fb5b38b6755925a145f24","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.6.5.tgz","fileCount":50,"integrity":"sha512-KqOiDt7PT1iu3h2tKx8296FzpNJrlvcdDGqc5kT4cPFLGvk8doFGtg1yYtqr9Osy6MYQ+2A3Y440fMX1OtBaCA==","signatures":[{"sig":"MEQCIEiiB6kwSwG0nnvVc4g2xYUXlsXrr+tePPHQ9epHrHEcAiAnqPtejTHn5TEhLUic2/y2hoAsibtB/yEa0KQNJj0YFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440363},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"a749d561f88598253d26d2410dcfcc84123b2e4f","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare resilience","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.6.5_1752860046917_0.1603627941346184","host":"s3://npm-registry-packages-npm-production"}},"3.6.6":{"name":"testluy-payment-sdk","version":"3.6.6","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.6.6","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"53a3fd80d364d61919fe7d5091b51f022fc1cc6c","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.6.6.tgz","fileCount":50,"integrity":"sha512-zA3MvCSx4wl+tDJVI0JVFY5wxqelgA3MCbPINwsR0SjBlXhmaBddtJiITWFaG20JmLiD59Nci8Zxo+MjWKq+CQ==","signatures":[{"sig":"MEUCIQDZDtmveoT6xkOHfiEz419Qel8Y6SKVqjM8Sa4364pg0wIgFpf6BUWN5eM8nJz/UKmnx4kp3pEZQUaE0jdoannIBM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":443641},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"933b4a3f40bba4495debd5a72fedf35de07dfd46","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare resilience","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.6.6_1752895246170_0.07638944873243769","host":"s3://npm-registry-packages-npm-production"}},"3.6.7":{"name":"testluy-payment-sdk","version":"3.6.7","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.6.7","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"b30c6777ff4e49a4e46186e58f1a4e4e868b0f0c","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.6.7.tgz","fileCount":52,"integrity":"sha512-xnZStiBLjIMQklMH+UhFNgX/cOn09bFo6/u5oJYNfgv/8juyK6vhB6E3tfAwbtyC9qapyt2a0uRhZEb7xd8ohQ==","signatures":[{"sig":"MEYCIQC+Qb0GO3ArZl4Eqq+miiQbnkQdNTFrLMTS8ZfhjFgSNwIhAKjhlmtEnGDxQHVaGQW2YCj4KtB34rA1aq2dJvTDEYSN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550665},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"79b8a24e986d456a7d077004451d7a38c8131a16","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare resilience","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.6.7_1752984576910_0.9041713221006247","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"testluy-payment-sdk","version":"3.7.0","keywords":["payment","simulator","sdk","cloudflare","resilience","smart-routing","bypass","deployment","vercel","netlify","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.7.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"5e1bedaade543c93b36d8b09c04cd2e90758beaf","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.7.0.tgz","fileCount":55,"integrity":"sha512-cbzS74RrAGSrnf0Vt5s2ttHkEaM6zxYGZ0hdx3jf6RP26OEEhYjBZFhqA7AoUN6kOzXQHvisgdSmZZNIalgsSw==","signatures":[{"sig":"MEYCIQC8CVdldAVvI1D6V13ebiyilpF/mhUWRyNC4pd9MyenCwIhANmo2Mt935UrAUr1zK61B014DElfOkbfDeV9OhU8/laW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":577781},"main":"index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index.js","./legacy":"./index-enhanced.js","./enhanced":"./index-enhanced.js"},"gitHead":"79b8a24e986d456a7d077004451d7a38c8131a16","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with smart routing and Cloudflare bypass","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.7.0_1753032943605_0.7389438390226881","host":"s3://npm-registry-packages-npm-production"}},"3.7.1":{"name":"testluy-payment-sdk","version":"3.7.1","keywords":["payment","simulator","sdk","cloudflare","resilience","smart-routing","bypass","deployment","vercel","netlify","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.7.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"053d661fa49c898144c01f147b3498396a86e436","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.7.1.tgz","fileCount":55,"integrity":"sha512-fr4Hce/imucCOa/LwHiPH8YHWJA4eo9QhxLbSC1NfDOFLa9ckCfoRZ5+K4SjD04zN8yipAyLbRP08ls9c897jw==","signatures":[{"sig":"MEUCIQDC4zXgZhMjxZX7zMJ1TLpCdfs9kXiALYuRkyQbYfmuVAIgV3R3BUdPj/A8svgkaqf+V4zEvBET/2uplz8kViZTmHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":584742},"main":"index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index.js","./legacy":"./index-enhanced.js","./enhanced":"./index-enhanced.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"79b8a24e986d456a7d077004451d7a38c8131a16","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with smart routing and Cloudflare bypass","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.7.1_1753063012638_0.994681861441159","host":"s3://npm-registry-packages-npm-production"}},"3.7.2":{"name":"testluy-payment-sdk","version":"3.7.2","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.7.2","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"196089eb8e4490258698601b2e51c12ce8fce5cb","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.7.2.tgz","fileCount":54,"integrity":"sha512-s5GkABzyNBCxHLY0nADhpxdQDci76qDtAcPwTZUViGX1y07VjhhCcg9iuHdQWNgte8L7b8oes6VRmd3A10CLZg==","signatures":[{"sig":"MEQCIFEsdhUelSafkwd9mzoX8KDoH6/paZnr+xlNQwiSWfB0AiAhOA5d/yR69xO/bgUYuNKdndcdzfsn0NIBgDRJgPKrsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":574986},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"79b8a24e986d456a7d077004451d7a38c8131a16","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with Cloudflare resilience","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.7.2_1753066837482_0.291900965242909","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"name":"testluy-payment-sdk","version":"3.8.0","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.8.0","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"63bc51b4dccd83c8d07189d2f4327b21d971cc87","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.8.0.tgz","fileCount":54,"integrity":"sha512-UBN0kYxFxqCfNL1Q6QtblKih29NsgYm8KHvMbGIVlFsgQfhIsRXVEY4VDBWe7xf6pYlkqGzkokXipuugJyZVCA==","signatures":[{"sig":"MEYCIQCGGpp/RsAcynohI9ZFRSsb83H9F/uBznFXQ1Wlr1ldWAIhAKg8Znum8mfE+xlGU1tQPjbP2i1l97QYTlUxu2IdrEW9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":587034},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"79b8a24e986d456a7d077004451d7a38c8131a16","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with enhanced Cloudflare resilience and Tunnel Zero Trust support","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.8.0_1753070059383_0.028199554384900072","host":"s3://npm-registry-packages-npm-production"}},"3.8.1":{"name":"testluy-payment-sdk","version":"3.8.1","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.8.1","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"d67da3169c583bb481bb60ca7facb13f849b2cc9","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.8.1.tgz","fileCount":54,"integrity":"sha512-93Tk7apIDOwhAVpwdeShkBcblY8HBJB2YIwt81jfWF9CrPmuogPhm6hcgAzhd4VfLGVH4MN2w2vIaqbov4M7fw==","signatures":[{"sig":"MEQCID03GePFMDZSeFCTv0rFbfS4cmdImy2iOSKLzdM0A1DjAiB3fgyUtZmfuNgsdHpSoUrn4ngoqYyozBYS6Oy1D69wAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":587024},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"79b8a24e986d456a7d077004451d7a38c8131a16","scripts":{"test":"node test-enhanced.js","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:debug":"node test-debugging-monitoring.js","test:logger":"node test-logger.js","test:browser":"node test-browser-compatibility.js","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with enhanced Cloudflare resilience and Tunnel Zero Trust support","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.8.1_1753070348720_0.5208875561224269","host":"s3://npm-registry-packages-npm-production"}},"3.8.2":{"name":"testluy-payment-sdk","version":"3.8.2","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","_id":"testluy-payment-sdk@3.8.2","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"dist":{"shasum":"dedacb68e824f47064305bad1c6113e803f9c8f1","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.8.2.tgz","fileCount":44,"integrity":"sha512-o+3uu9mGVbvuKWdq1Ro89+99zC5nXCq358bCrh3XgJJrkG1bw+N5LxS2A95znECgbcCaVz06c1qz/J0xrwIGnA==","signatures":[{"sig":"MEUCICDdEgjxZiAzlnAN0mCIP4iucXpeFtpcLxgjL6lDg919AiEA0ulCXQTBA5pb/Qt1PQlTOMObH3QbVyHKlB/lzba/Lrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536986},"main":"index-enhanced.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"gitHead":"caa7bbb77a09a95d91721e8a494f75fae816fac7","scripts":{"test":"npm run test:all","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration"},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"repository":{"url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git","type":"git"},"_npmVersion":"11.1.0","description":"SDK for TestLuy Payment Simulator with enhanced Cloudflare resilience and Tunnel Zero Trust support","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"^17.13.3","axios":"^1.7.3","dotenv":"^16.4.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_npmOperationalInternal":{"tmp":"tmp/testluy-payment-sdk_3.8.2_1753087569086_0.41960945784926507","host":"s3://npm-registry-packages-npm-production"}},"3.8.3":{"name":"testluy-payment-sdk","version":"3.8.3","description":"SDK for TestLuy Payment Simulator with enhanced Cloudflare resilience and Tunnel Zero Trust support","main":"index-enhanced.js","type":"module","exports":{".":"./index-enhanced.js","./legacy":"./index.js","./index-enhanced.js":"./index-enhanced.js"},"scripts":{"test":"npm run test:all","test:unit":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/unit","test:integration":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js --testPathPattern=tests/integration","test:all":"node --experimental-vm-modules node_modules/jest/bin/jest.js --config=jest.config.js"},"keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"author":{"name":"Chanbora Seng"},"license":"MIT","engines":{"node":">=14.0.0"},"repository":{"type":"git","url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git"},"bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","dependencies":{"axios":"^1.7.3","dotenv":"^16.4.7","joi":"^17.13.3"},"devDependencies":{"jest":"^29.7.0","nock":"^13.5.6","undici":"^7.11.0"},"_id":"testluy-payment-sdk@3.8.3","gitHead":"b9f07bcb5853af443fd6630002a9885f15e5ffdb","_nodeVersion":"22.14.0","_npmVersion":"11.1.0","dist":{"integrity":"sha512-jrblIsjgfOkVIWWauEz1LbdoI/6Y2xuA//mo9hxA2isEngOXzSXtKcZd7N/w5HDp6h8Xu0HmrAwsGIJIlCZaEw==","shasum":"b59b475693477cb0c171d0ffd264638bfc077a47","tarball":"https://registry.npmjs.org/testluy-payment-sdk/-/testluy-payment-sdk-3.8.3.tgz","fileCount":44,"unpackedSize":536570,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCWeNJlfBqSeXedKs2RMobhErXGWBuU2E4JAZVa+ehPogIhAL0YAzo2kVMYJtq6RXs8ZYtHNIIc7Dl/C3vGvGo3Hhr8"}]},"_npmUser":{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"},"directories":{},"maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/testluy-payment-sdk_3.8.3_1753125400469_0.3768396378978094"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-05T10:37:24.639Z","modified":"2025-07-21T19:16:40.900Z","1.0.0":"2024-07-05T10:37:24.789Z","1.0.1":"2024-07-05T15:39:15.382Z","1.0.2":"2024-07-05T15:45:03.234Z","1.0.3":"2024-07-05T15:50:26.849Z","1.0.4":"2024-07-05T20:01:34.680Z","1.0.5":"2024-07-05T20:13:59.423Z","1.0.6":"2024-07-05T21:29:31.235Z","1.0.7":"2024-07-05T21:46:46.702Z","1.0.8":"2024-07-05T21:54:38.074Z","1.0.9":"2024-07-05T22:08:35.597Z","1.0.10":"2024-07-05T22:26:09.907Z","1.0.11":"2024-07-05T22:40:25.418Z","1.0.12":"2024-07-06T01:07:21.822Z","1.0.13":"2024-07-06T01:24:39.039Z","1.0.14":"2024-07-06T01:31:42.902Z","1.0.15":"2024-07-06T01:45:13.992Z","1.0.16":"2024-07-06T08:42:46.144Z","1.0.17":"2024-07-12T20:27:22.835Z","1.0.18":"2024-08-09T21:50:15.696Z","1.0.19":"2025-02-24T03:13:22.317Z","1.0.20":"2025-02-24T04:35:36.914Z","2.0.0":"2025-04-07T16:11:37.365Z","2.0.1":"2025-04-07T17:01:20.288Z","2.0.2":"2025-04-08T03:11:38.158Z","2.0.3":"2025-04-08T04:37:36.811Z","2.0.4":"2025-04-09T08:11:28.297Z","3.0.0":"2025-04-10T02:15:21.368Z","3.0.1":"2025-04-10T15:25:39.091Z","3.1.0":"2025-05-13T11:56:53.554Z","3.1.1":"2025-06-07T11:10:29.909Z","3.2.0":"2025-06-07T15:26:13.271Z","3.3.0":"2025-07-16T03:46:11.667Z","3.3.1":"2025-07-16T04:32:21.661Z","3.4.0":"2025-07-16T08:15:07.583Z","3.4.1":"2025-07-16T08:48:47.728Z","3.5.0":"2025-07-16T09:31:18.533Z","3.5.1":"2025-07-16T09:52:45.562Z","3.5.2":"2025-07-16T10:49:29.539Z","3.5.3":"2025-07-16T15:42:21.436Z","3.5.4":"2025-07-16T18:03:41.848Z","3.6.0":"2025-07-18T07:56:44.584Z","3.6.1":"2025-07-18T08:52:20.687Z","3.6.2":"2025-07-18T09:02:25.526Z","3.6.3":"2025-07-18T14:50:07.759Z","3.6.4":"2025-07-18T17:01:26.137Z","3.6.5":"2025-07-18T17:34:07.170Z","3.6.6":"2025-07-19T03:20:46.382Z","3.6.7":"2025-07-20T04:09:37.100Z","3.7.0":"2025-07-20T17:35:43.799Z","3.7.1":"2025-07-21T01:56:52.823Z","3.7.2":"2025-07-21T03:00:37.649Z","3.8.0":"2025-07-21T03:54:19.543Z","3.8.1":"2025-07-21T03:59:08.931Z","3.8.2":"2025-07-21T08:46:09.270Z","3.8.3":"2025-07-21T19:16:40.717Z"},"bugs":{"url":"https://github.com/chanboraseng/testluy-payment-sdk/issues"},"author":{"name":"Chanbora Seng"},"license":"MIT","homepage":"https://github.com/chanboraseng/testluy-payment-sdk#readme","keywords":["payment","simulator","sdk","cloudflare","resilience","api"],"repository":{"type":"git","url":"git+https://github.com/chanboraseng/testluy-payment-sdk.git"},"description":"SDK for TestLuy Payment Simulator with enhanced Cloudflare resilience and Tunnel Zero Trust support","maintainers":[{"name":"loverdoverbover","email":"npmjs.palpable754@passinbox.com"}],"readme":"# TestLuy Payment SDK\r\n\r\n[![npm version](https://badge.fury.io/js/testluy-payment-sdk.svg)](https://badge.fury.io/js/testluy-payment-sdk)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\n## 🚀 Overview\r\n\r\nThe TestLuy Payment SDK provides a robust, production-ready JavaScript interface for integrating applications with the TestLuy Payment Simulator platform. Designed for both development and deployment environments, it seamlessly handles Cloudflare Tunnel Zero Trust protection, rate limiting, and complex authentication scenarios.\r\n\r\n**✅ Successfully tested in production environments** including Vercel, Render, Netlify, and other deployment platforms.\r\n\r\n### 🎯 Key Features\r\n\r\n- **🛡️ Cloudflare Tunnel Zero Trust Support**: Automatic bypass for deployment environments\r\n- **🔐 HMAC-SHA256 Authentication**: Secure request signing with automatic credential validation\r\n- **⚡ Smart Environment Detection**: Automatically adapts behavior for local vs deployment environments\r\n- **🔄 Intelligent Retry Logic**: Exponential backoff with jitter for resilient API calls\r\n- **📊 Advanced Rate Limiting**: Subscription-aware rate limiting with graceful degradation\r\n- **🖥️ Multi-Platform Compatibility**: Works in Node.js, Next.js, Express, and modern build tools\r\n- **📈 Comprehensive Logging**: Configurable logging with sensitive data masking\r\n- **🧪 Extensive Testing**: 100% test coverage with integration and unit tests\r\n- **📚 Type Safety**: Full TypeScript definitions included\r\n\r\n## 📦 Installation\r\n\r\n```bash\r\n# Using npm\r\nnpm install testluy-payment-sdk@latest\r\n\r\n# Using yarn\r\nyarn add testluy-payment-sdk@latest\r\n\r\n# Using pnpm\r\npnpm add testluy-payment-sdk\r\n```\r\n\r\n## 🚨 Security Notice\r\n\r\n**⚠️ CRITICAL: Server-Side Only Usage**\r\n\r\nYour `secretKey` is highly sensitive. **Never expose it in client-side code**. Always use this SDK on your server-side:\r\n\r\n- ✅ Node.js backends\r\n- ✅ Next.js API routes\r\n- ✅ Express route handlers\r\n- ✅ Serverless functions\r\n- ❌ Frontend JavaScript (React, Vue, etc.)\r\n\r\n## 🛠️ Quick Start\r\n\r\n### Basic Usage\r\n\r\n```javascript\r\nimport TestluyPaymentSDK from 'testluy-payment-sdk';\r\n\r\n// Initialize the SDK\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL || 'https://api-testluy.paragoniu.app'\r\n});\r\n\r\n// Validate credentials (recommended)\r\nawait sdk.init();\r\n\r\n// Initiate a payment\r\nconst { paymentUrl, transactionId } = await sdk.initiatePayment(\r\n  25.50,\r\n  'https://yourapp.com/payment-callback',\r\n  'https://yourapp.com/cancel'\r\n);\r\n\r\n// Redirect user to payment URL\r\nconsole.log('Payment URL:', paymentUrl);\r\nconsole.log('Transaction ID:', transactionId);\r\n```\r\n\r\n### Environment Variables Setup\r\n\r\nCreate a `.env` file in your project root:\r\n\r\n```env\r\n# TestLuy SDK Configuration\r\nTESTLUY_CLIENT_ID=your_client_id_here\r\nTESTLUY_SECRET_KEY=your_secret_key_here\r\nTESTLUY_BASE_URL=https://api-testluy.paragoniu.app\r\n\r\n# Optional: Override for different environments\r\n# TESTLUY_BASE_URL=http://localhost:8000  # Local development\r\n```\r\n\r\n## ⚙️ Advanced Configuration\r\n\r\n### Full Configuration Options\r\n\r\n```javascript\r\nconst sdk = new TestluyPaymentSDK({\r\n  // Required\r\n  clientId: 'your-client-id',\r\n  secretKey: 'your-secret-key',\r\n  baseUrl: 'https://api-testluy.paragoniu.app',\r\n  \r\n  // Optional: Smart routing (auto-enabled)\r\n  enableSmartRouting: true,\r\n  bypassUrl: 'https://alt-endpoint.example.com', // Custom bypass endpoint\r\n  \r\n  // Optional: Retry configuration\r\n  retryConfig: {\r\n    maxRetries: 3,\r\n    baseDelay: 1000,        // 1 second initial delay\r\n    maxDelay: 30000,        // 30 seconds max delay\r\n    backoffFactor: 2,       // Exponential backoff\r\n    jitterFactor: 0.1       // Add random jitter\r\n  },\r\n  \r\n  // Optional: Cloudflare bypass settings\r\n  cloudflareConfig: {\r\n    enabled: true,           // Auto-enabled for deployment environments\r\n    rotateUserAgent: true,\r\n    addBrowserHeaders: true\r\n  },\r\n  \r\n  // Optional: Logging configuration\r\n  loggingConfig: {\r\n    level: 'info',           // 'debug', 'info', 'warn', 'error', 'silent'\r\n    includeHeaders: false,   // Include HTTP headers in logs\r\n    includeBody: false,      // Include request/response bodies\r\n    maskSensitive: true,     // Mask sensitive data (recommended)\r\n    format: 'text',          // 'text' or 'json'\r\n    colorize: true           // Colorize console output\r\n  }\r\n});\r\n```\r\n\r\n### Environment-Specific Configuration\r\n\r\nThe SDK automatically detects your deployment environment and adjusts behavior accordingly:\r\n\r\n```javascript\r\n// Development Environment (Local)\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: 'http://localhost:8000',  // Local backend\r\n  loggingConfig: { level: 'debug' }  // Verbose logging for development\r\n});\r\n\r\n// Production Environment (Auto-detected)\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: 'https://api-testluy.paragoniu.app',\r\n  loggingConfig: { level: 'warn' }   // Minimal logging for production\r\n});\r\n// Cloudflare bypass headers automatically applied in deployment environments\r\n```\r\n\r\n## 📖 API Reference\r\n\r\n### Constructor\r\n\r\n#### `new TestluyPaymentSDK(options)`\r\n\r\nCreates a new SDK instance with the specified configuration.\r\n\r\n**Parameters:**\r\n- `options.clientId` (string, required): Your TestLuy application client ID\r\n- `options.secretKey` (string, required): Your TestLuy application secret key\r\n- `options.baseUrl` (string, optional): API base URL (defaults to production endpoint)\r\n- Additional options as shown in Advanced Configuration\r\n\r\n**Throws:** `Error` if required parameters are missing or invalid\r\n\r\n### Methods\r\n\r\n#### `async init()`\r\n\r\nValidates credentials and initializes the SDK. Recommended to call before other operations.\r\n\r\n**Returns:** `Promise<boolean>` - `true` if credentials are valid\r\n\r\n**Example:**\r\n```javascript\r\ntry {\r\n  await sdk.init();\r\n  console.log('SDK initialized successfully');\r\n} catch (error) {\r\n  console.error('Invalid credentials:', error.message);\r\n}\r\n```\r\n\r\n#### `async initiatePayment(amount, callbackUrl, backUrl?)`\r\n\r\nInitiates a payment process and returns a payment URL.\r\n\r\n**Parameters:**\r\n- `amount` (number, required): Payment amount (must be positive)\r\n- `callbackUrl` (string, required): URL for payment completion callback\r\n- `backUrl` (string, optional): URL for user cancellation/back navigation\r\n\r\n**Returns:** `Promise<{paymentUrl: string, transactionId: string}>`\r\n\r\n**Example:**\r\n```javascript\r\nconst result = await sdk.initiatePayment(\r\n  10.50,\r\n  'https://yourapp.com/payment-success',\r\n  'https://yourapp.com/payment-cancel'\r\n);\r\n\r\nconsole.log('Payment URL:', result.paymentUrl);\r\nconsole.log('Transaction ID:', result.transactionId);\r\n```\r\n\r\n#### `async getPaymentStatus(transactionId)`\r\n\r\nRetrieves the current status of a payment transaction.\r\n\r\n**Parameters:**\r\n- `transactionId` (string, required): Transaction ID from `initiatePayment`\r\n\r\n**Returns:** `Promise<object>` - Payment status object\r\n\r\n**Example:**\r\n```javascript\r\nconst status = await sdk.getPaymentStatus('TRX_abc123');\r\nconsole.log('Payment status:', status.status); // 'Pending', 'Success', 'Failed'\r\n```\r\n\r\n#### `async handlePaymentCallback(callbackData)`\r\n\r\nSecurely verifies payment callback data to prevent tampering.\r\n\r\n**Parameters:**\r\n- `callbackData` (object, required): Callback data received from TestLuy\r\n\r\n**Returns:** `Promise<object>` - Verified payment information\r\n\r\n**Example:**\r\n```javascript\r\n// In your callback handler\r\napp.get('/payment-callback', async (req, res) => {\r\n  try {\r\n    const verifiedData = await sdk.handlePaymentCallback(req.query);\r\n    if (verifiedData.status === 'Success') {\r\n      // Payment successful, fulfill order\r\n      await fulfillOrder(verifiedData.transaction_id);\r\n    }\r\n  } catch (error) {\r\n    console.error('Callback verification failed:', error.message);\r\n  }\r\n});\r\n```\r\n\r\n## 🖥️ Framework Integration Examples\r\n\r\n### Next.js API Route\r\n\r\n```javascript\r\n// pages/api/payment/initiate.js\r\nimport TestluyPaymentSDK from 'testluy-payment-sdk';\r\n\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL\r\n});\r\n\r\nexport default async function handler(req, res) {\r\n  if (req.method !== 'POST') {\r\n    return res.status(405).json({ error: 'Method not allowed' });\r\n  }\r\n\r\n  try {\r\n    const { amount } = req.body;\r\n    \r\n    const result = await sdk.initiatePayment(\r\n      amount,\r\n      `${process.env.NEXT_PUBLIC_APP_URL}/payment-callback`,\r\n      `${process.env.NEXT_PUBLIC_APP_URL}/cart`\r\n    );\r\n\r\n    res.status(200).json(result);\r\n  } catch (error) {\r\n    console.error('Payment initiation failed:', error.message);\r\n    res.status(500).json({ error: 'Payment initiation failed' });\r\n  }\r\n}\r\n```\r\n\r\n### Express.js Route\r\n\r\n```javascript\r\n// routes/payment.js\r\nimport express from 'express';\r\nimport TestluyPaymentSDK from 'testluy-payment-sdk';\r\n\r\nconst router = express.Router();\r\n\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL\r\n});\r\n\r\n// Initialize SDK on server start\r\nawait sdk.init();\r\n\r\nrouter.post('/initiate', async (req, res) => {\r\n  try {\r\n    const { amount, orderId } = req.body;\r\n    \r\n    const result = await sdk.initiatePayment(\r\n      amount,\r\n      `${process.env.APP_URL}/payment/callback?order=${orderId}`,\r\n      `${process.env.APP_URL}/orders/${orderId}`\r\n    );\r\n\r\n    res.json({ success: true, ...result });\r\n  } catch (error) {\r\n    res.status(400).json({ success: false, error: error.message });\r\n  }\r\n});\r\n\r\nrouter.get('/callback', async (req, res) => {\r\n  try {\r\n    const verifiedData = await sdk.handlePaymentCallback(req.query);\r\n    \r\n    if (verifiedData.status === 'Success') {\r\n      // Update order status in database\r\n      await updateOrderStatus(req.query.order, 'paid');\r\n      res.redirect('/payment-success');\r\n    } else {\r\n      res.redirect('/payment-failed');\r\n    }\r\n  } catch (error) {\r\n    console.error('Callback verification failed:', error.message);\r\n    res.redirect('/payment-error');\r\n  }\r\n});\r\n\r\nexport default router;\r\n```\r\n\r\n### Serverless Function (Vercel)\r\n\r\n```javascript\r\n// api/payment.js\r\nimport TestluyPaymentSDK from 'testluy-payment-sdk';\r\n\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL\r\n});\r\n\r\nexport default async function handler(req, res) {\r\n  // CORS headers for frontend requests\r\n  res.setHeader('Access-Control-Allow-Origin', process.env.FRONTEND_URL);\r\n  res.setHeader('Access-Control-Allow-Methods', 'POST');\r\n  res.setHeader('Access-Control-Allow-Headers', 'Content-Type');\r\n\r\n  if (req.method === 'OPTIONS') {\r\n    return res.status(200).end();\r\n  }\r\n\r\n  if (req.method !== 'POST') {\r\n    return res.status(405).json({ error: 'Method not allowed' });\r\n  }\r\n\r\n  try {\r\n    const { amount, metadata } = req.body;\r\n    \r\n    const result = await sdk.initiatePayment(\r\n      amount,\r\n      `${process.env.VERCEL_URL}/api/payment-callback`,\r\n      `${process.env.FRONTEND_URL}/checkout`\r\n    );\r\n\r\n    res.status(200).json({\r\n      success: true,\r\n      paymentUrl: result.paymentUrl,\r\n      transactionId: result.transactionId,\r\n      metadata\r\n    });\r\n  } catch (error) {\r\n    console.error('Payment error:', error.message);\r\n    res.status(500).json({ \r\n      success: false, \r\n      error: 'Payment initiation failed' \r\n    });\r\n  }\r\n}\r\n```\r\n\r\n## 🌐 Environment Support\r\n\r\n### Supported Deployment Platforms\r\n\r\nThe SDK automatically detects and optimizes for these platforms:\r\n\r\n| Platform | Status | Cloudflare Bypass | Notes |\r\n|----------|--------|-------------------|--------|\r\n| ✅ **Vercel** | Full Support | Auto-enabled | Serverless functions |\r\n| ✅ **Netlify** | Full Support | Auto-enabled | Netlify Functions |\r\n| ✅ **Render** | Full Support | Auto-enabled | Web services |\r\n| ✅ **Heroku** | Full Support | Auto-enabled | Dynos |\r\n| ✅ **Railway** | Full Support | Auto-enabled | Services |\r\n| ✅ **Fly.io** | Full Support | Auto-enabled | Applications |\r\n| ✅ **AWS Lambda** | Full Support | Auto-enabled | Serverless |\r\n| ✅ **Cloudflare Pages** | Full Support | Auto-enabled | Functions |\r\n| ✅ **Local Development** | Full Support | Disabled | Direct connection |\r\n\r\n### Environment Detection\r\n\r\n```javascript\r\n// The SDK automatically detects your environment:\r\n\r\n// Local Development\r\n// Environment: { environment: 'node', isDeployment: false, platform: 'local' }\r\n// → Uses direct API calls without Cloudflare bypass\r\n\r\n// Production Deployment (e.g., Render)\r\n// Environment: { environment: 'node', isDeployment: true, platform: 'render' }\r\n// → Enables Cloudflare bypass headers automatically\r\n```\r\n\r\n## 🔧 Error Handling\r\n\r\n### Error Types\r\n\r\nThe SDK provides specific error classes for different scenarios:\r\n\r\n```javascript\r\nimport { SDKError, RateLimitError, CloudflareError } from 'testluy-payment-sdk';\r\n\r\ntry {\r\n  await sdk.initiatePayment(amount, callbackUrl);\r\n} catch (error) {\r\n  if (error instanceof RateLimitError) {\r\n    console.log(`Rate limited. Retry after: ${error.retryAfter}ms`);\r\n    console.log(`Subscription: ${error.subscription}`);\r\n    console.log(`Limit: ${error.limit} requests per minute`);\r\n  } else if (error instanceof CloudflareError) {\r\n    console.log('Cloudflare protection triggered');\r\n    console.log(`Challenge type: ${error.challengeType}`);\r\n  } else if (error instanceof SDKError) {\r\n    console.log(`SDK Error: ${error.message}`);\r\n    console.log(`Request ID: ${error.requestId}`);\r\n  }\r\n}\r\n```\r\n\r\n### Comprehensive Error Handling\r\n\r\n```javascript\r\nasync function initiatePaymentWithRetry(amount, callbackUrl, maxRetries = 3) {\r\n  for (let attempt = 1; attempt <= maxRetries; attempt++) {\r\n    try {\r\n      return await sdk.initiatePayment(amount, callbackUrl);\r\n    } catch (error) {\r\n      console.log(`Attempt ${attempt} failed:`, error.message);\r\n      \r\n      if (error instanceof RateLimitError) {\r\n        // Wait for the suggested retry period\r\n        await new Promise(resolve => setTimeout(resolve, error.retryAfter));\r\n        continue;\r\n      }\r\n      \r\n      if (error instanceof CloudflareError) {\r\n        // Cloudflare bypass should be automatic, but can add custom logic\r\n        console.log('Cloudflare challenge detected, SDK will retry automatically');\r\n        continue;\r\n      }\r\n      \r\n      // For other errors, don't retry\r\n      throw error;\r\n    }\r\n  }\r\n  \r\n  throw new Error(`Payment initiation failed after ${maxRetries} attempts`);\r\n}\r\n```\r\n\r\n## 📊 Logging and Debugging\r\n\r\n### Logging Configuration\r\n\r\n```javascript\r\n// Development environment - verbose logging\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL,\r\n  loggingConfig: {\r\n    level: 'debug',          // Show all logs\r\n    includeHeaders: true,    // Include HTTP headers\r\n    includeBody: true,       // Include request/response bodies\r\n    maskSensitive: true,     // Mask sensitive data\r\n    format: 'text',          // Human-readable format\r\n    colorize: true           // Colored console output\r\n  }\r\n});\r\n\r\n// Production environment - minimal logging\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL,\r\n  loggingConfig: {\r\n    level: 'error',          // Only errors\r\n    includeHeaders: false,   // No headers in production\r\n    includeBody: false,      // No bodies in production\r\n    maskSensitive: true,     // Always mask sensitive data\r\n    format: 'json',          // Structured logging\r\n    colorize: false          // No colors in production logs\r\n  }\r\n});\r\n```\r\n\r\n### Debug Information\r\n\r\n```javascript\r\n// Enable debug mode for troubleshooting\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL,\r\n  loggingConfig: { level: 'debug' }\r\n});\r\n\r\ntry {\r\n  const result = await sdk.initiatePayment(10.50, 'https://example.com/callback');\r\n  \r\n  // Debug information automatically logged:\r\n  // [DEBUG] Environment detected: { platform: 'render', isDeployment: true }\r\n  // [DEBUG] Cloudflare bypass enabled with headers: { ... }\r\n  // [DEBUG] API call successful: POST /api/payment-simulator/generate-url\r\n  // [INFO] Payment initiated: { transactionId: 'TRX_...', paymentUrl: '...' }\r\n  \r\n} catch (error) {\r\n  // Error details automatically logged:\r\n  // [ERROR] Payment initiation failed: Rate limit exceeded\r\n  // [ERROR] Response details: { status: 429, headers: {...}, body: {...} }\r\n}\r\n```\r\n\r\n## 🧪 Testing\r\n\r\n### Running Tests\r\n\r\n```bash\r\n# Run all tests\r\nnpm test\r\n\r\n# Run specific test suites\r\nnpm run test:unit         # Unit tests only\r\nnpm run test:integration  # Integration tests only\r\n```\r\n\r\n### Test Coverage\r\n\r\nThe SDK includes comprehensive test coverage:\r\n\r\n- ✅ Unit tests for all core components\r\n- ✅ Integration tests with mock API responses\r\n- ✅ Cloudflare bypass simulation tests\r\n- ✅ Rate limiting behavior tests\r\n- ✅ Environment detection tests\r\n- ✅ Error handling and recovery tests\r\n\r\n### Custom Test Setup\r\n\r\n```javascript\r\n// test-setup.js\r\nimport TestluyPaymentSDK from 'testluy-payment-sdk';\r\n\r\n// Test with mock credentials\r\nconst testSDK = new TestluyPaymentSDK({\r\n  clientId: 'test-client-id',\r\n  secretKey: 'test-secret-key',\r\n  baseUrl: 'http://localhost:8000',\r\n  loggingConfig: { level: 'silent' } // Suppress logs during testing\r\n});\r\n\r\n// Test payment initiation\r\ndescribe('Payment SDK Tests', () => {\r\n  test('should initiate payment successfully', async () => {\r\n    const result = await testSDK.initiatePayment(\r\n      25.50,\r\n      'http://localhost:3000/callback'\r\n    );\r\n    \r\n    expect(result.paymentUrl).toBeDefined();\r\n    expect(result.transactionId).toMatch(/^TRX_/);\r\n  });\r\n  \r\n  test('should handle rate limiting gracefully', async () => {\r\n    // Test rate limiting behavior\r\n    const promises = Array(10).fill().map(() => \r\n      testSDK.initiatePayment(1.00, 'http://localhost:3000/callback')\r\n    );\r\n    \r\n    const results = await Promise.allSettled(promises);\r\n    const successful = results.filter(r => r.status === 'fulfilled');\r\n    const rateLimited = results.filter(r => \r\n      r.status === 'rejected' && r.reason instanceof RateLimitError\r\n    );\r\n    \r\n    expect(successful.length + rateLimited.length).toBe(10);\r\n  });\r\n});\r\n```\r\n\r\n## 🚀 Performance and Optimization\r\n\r\n### Performance Metrics\r\n\r\nBased on production testing across different environments:\r\n\r\n| Environment | Success Rate | Avg Response Time | Rate Limit Handling |\r\n|-------------|--------------|-------------------|-------------------|\r\n| Local Development | 100% (3/3) | 327ms | ✅ Excellent |\r\n| Render Deployment | 100% (1/1) | 743ms | ✅ Excellent |\r\n| Vercel Serverless | 100% (5/5) | 892ms | ✅ Excellent |\r\n| Netlify Functions | 100% (3/3) | 654ms | ✅ Excellent |\r\n\r\n### Optimization Tips\r\n\r\n```javascript\r\n// 1. Initialize SDK once and reuse\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL,\r\n  // Optimize retry configuration\r\n  retryConfig: {\r\n    maxRetries: 2,           // Reduce for faster failure feedback\r\n    baseDelay: 500,          // Faster initial retry\r\n    maxDelay: 5000           // Cap maximum delay\r\n  }\r\n});\r\n\r\n// 2. Validate credentials once on startup\r\nawait sdk.init();\r\n\r\n// 3. Use connection pooling for high-traffic applications\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL,\r\n  httpConfig: {\r\n    timeout: 10000,          // 10 second timeout\r\n    keepAlive: true,         // Reuse connections\r\n    maxRedirects: 3\r\n  }\r\n});\r\n```\r\n\r\n## 🔒 Security Best Practices\r\n\r\n### Credential Management\r\n\r\n```javascript\r\n// ✅ DO: Use environment variables\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,     // From environment\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,   // From environment\r\n  baseUrl: process.env.TESTLUY_BASE_URL        // From environment\r\n});\r\n\r\n// ❌ DON'T: Hardcode credentials\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: 'hardcoded-client-id',             // NEVER do this\r\n  secretKey: 'hardcoded-secret-key',           // NEVER do this\r\n  baseUrl: 'https://api-testluy.paragoniu.app'\r\n});\r\n```\r\n\r\n### Request Validation\r\n\r\n```javascript\r\n// Validate all inputs before processing\r\napp.post('/payment/initiate', async (req, res) => {\r\n  const { amount, orderId } = req.body;\r\n  \r\n  // Input validation\r\n  if (!amount || amount <= 0) {\r\n    return res.status(400).json({ error: 'Invalid amount' });\r\n  }\r\n  \r\n  if (!orderId || typeof orderId !== 'string') {\r\n    return res.status(400).json({ error: 'Invalid order ID' });\r\n  }\r\n  \r\n  try {\r\n    const result = await sdk.initiatePayment(\r\n      parseFloat(amount),\r\n      `${process.env.APP_URL}/payment/callback?order=${orderId}`,\r\n      `${process.env.APP_URL}/orders/${orderId}`\r\n    );\r\n    \r\n    res.json({ success: true, ...result });\r\n  } catch (error) {\r\n    // Log error server-side, don't expose details to client\r\n    console.error('Payment initiation error:', error.message);\r\n    res.status(500).json({ error: 'Payment initiation failed' });\r\n  }\r\n});\r\n```\r\n\r\n### Callback Security\r\n\r\n```javascript\r\n// Always verify callbacks to prevent tampering\r\napp.get('/payment/callback', async (req, res) => {\r\n  try {\r\n    // Use SDK's built-in verification\r\n    const verifiedData = await sdk.handlePaymentCallback(req.query);\r\n    \r\n    // Additional server-side validation\r\n    const order = await getOrderById(req.query.order);\r\n    if (!order) {\r\n      throw new Error('Order not found');\r\n    }\r\n    \r\n    if (order.amount !== verifiedData.amount) {\r\n      throw new Error('Amount mismatch');\r\n    }\r\n    \r\n    // Process verified payment\r\n    if (verifiedData.status === 'Success') {\r\n      await processSuccessfulPayment(order, verifiedData);\r\n      res.redirect('/payment-success');\r\n    } else {\r\n      await processFailedPayment(order, verifiedData);\r\n      res.redirect('/payment-failed');\r\n    }\r\n    \r\n  } catch (error) {\r\n    console.error('Callback verification failed:', error.message);\r\n    res.redirect('/payment-error');\r\n  }\r\n});\r\n```\r\n\r\n## 🛠️ Troubleshooting\r\n\r\n### Common Issues and Solutions\r\n\r\n#### 1. \"Invalid credentials\" Error\r\n\r\n```javascript\r\n// Problem: SDK throws \"Invalid credentials\" error\r\n// Solution: Verify your environment variables\r\n\r\nconsole.log('Client ID:', process.env.TESTLUY_CLIENT_ID);\r\nconsole.log('Secret Key:', process.env.TESTLUY_SECRET_KEY ? '[HIDDEN]' : 'MISSING');\r\nconsole.log('Base URL:', process.env.TESTLUY_BASE_URL);\r\n\r\n// Ensure .env file is loaded\r\nimport dotenv from 'dotenv';\r\ndotenv.config();\r\n```\r\n\r\n#### 2. Rate Limiting Issues\r\n\r\n```javascript\r\n// Problem: Getting rate limited frequently\r\n// Solution: Optimize retry configuration and implement caching\r\n\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL,\r\n  retryConfig: {\r\n    maxRetries: 5,           // Increase retries\r\n    baseDelay: 2000,         // Longer initial delay\r\n    maxDelay: 60000,         // Longer max delay\r\n    backoffFactor: 2.5       // More aggressive backoff\r\n  }\r\n});\r\n\r\n// Implement request caching for repeated status checks\r\nconst statusCache = new Map();\r\n\r\nasync function getCachedPaymentStatus(transactionId) {\r\n  const cacheKey = `status_${transactionId}`;\r\n  const cached = statusCache.get(cacheKey);\r\n  \r\n  if (cached && Date.now() - cached.timestamp < 30000) { // 30 second cache\r\n    return cached.data;\r\n  }\r\n  \r\n  const status = await sdk.getPaymentStatus(transactionId);\r\n  statusCache.set(cacheKey, { data: status, timestamp: Date.now() });\r\n  \r\n  return status;\r\n}\r\n```\r\n\r\n#### 3. Cloudflare Protection Issues\r\n\r\n```javascript\r\n// Problem: Requests blocked by Cloudflare in deployment\r\n// Solution: Ensure smart routing is enabled (default)\r\n\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL,\r\n  enableSmartRouting: true,    // Should be true (default)\r\n  cloudflareConfig: {\r\n    enabled: true,             // Should be true (default)\r\n    rotateUserAgent: true,     // Enable User-Agent rotation\r\n    addBrowserHeaders: true    // Add browser-like headers\r\n  },\r\n  loggingConfig: {\r\n    level: 'debug'             // Enable debug logging\r\n  }\r\n});\r\n\r\n// Check logs for Cloudflare bypass activation:\r\n// [INFO] TestluyPaymentSDK: Deployment environment detected (vercel), using header-based Cloudflare bypass\r\n```\r\n\r\n#### 4. Build Issues in Next.js/Vite\r\n\r\n```javascript\r\n// Problem: Import errors during build\r\n// Solution: Use explicit import path\r\n\r\n// ✅ DO: Use explicit import\r\nimport TestluyPaymentSDK from 'testluy-payment-sdk/index-enhanced.js';\r\n\r\n// ❌ DON'T: Use default import in some build environments\r\nimport TestluyPaymentSDK from 'testluy-payment-sdk';\r\n\r\n// For Next.js, add to next.config.js if needed:\r\nmodule.exports = {\r\n  experimental: {\r\n    esmExternals: 'loose'\r\n  }\r\n}\r\n```\r\n\r\n### Debug Mode\r\n\r\n```javascript\r\n// Enable comprehensive debugging\r\nconst sdk = new TestluyPaymentSDK({\r\n  clientId: process.env.TESTLUY_CLIENT_ID,\r\n  secretKey: process.env.TESTLUY_SECRET_KEY,\r\n  baseUrl: process.env.TESTLUY_BASE_URL,\r\n  loggingConfig: {\r\n    level: 'debug',\r\n    includeHeaders: true,\r\n    includeBody: true,\r\n    maskSensitive: false,  // ⚠️ Only for debugging, never in production\r\n    format: 'text',\r\n    colorize: true\r\n  }\r\n});\r\n\r\n// This will output detailed information about:\r\n// - Environment detection\r\n// - Cloudflare bypass activation\r\n// - Request/response headers\r\n// - API call timing\r\n// - Retry attempts\r\n// - Error details\r\n```\r\n\r\n## 🤝 Contributing\r\n\r\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\r\n\r\n### Development Setup\r\n\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/chanboraseng/testluy-payment-sdk.git\r\ncd testluy-payment-sdk\r\n\r\n# Install dependencies\r\nnpm install\r\n\r\n# Run tests\r\nnpm test\r\n\r\n# Run specific test suites\r\nnpm run test:unit\r\nnpm run test:integration\r\n```\r\n\r\n## 📋 Changelog\r\n\r\nSee [CHANGELOG.md](CHANGELOG.md) for version history and changes.\r\n\r\n## 📄 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## 📞 Support\r\n\r\n- **Documentation**: [README.md](README.md)\r\n- **Issues**: [GitHub Issues](https://github.com/Chanbora-memo/testLuy-payment-sdk/issues)\r\n- **Email**: cseng1@paragoniu.edu.kh\r\n\r\n---\r\n\r\n**Made with ❤️ by the TestLuy Team**\r\n","readmeFilename":"README.md"}