{"_id":"@bunhov_leom/webpay","_rev":"9-7b3a2c78c15038d2eea6bb68ab443a84","name":"@bunhov_leom/webpay","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@bunhov_leom/webpay","version":"0.1.0","keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","_id":"@bunhov_leom/webpay@0.1.0","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"dist":{"shasum":"5fd119ed79a5381df5b5026939d518e9751b221f","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.0.tgz","fileCount":15,"integrity":"sha512-oxuZ9nYcP1z1By6LRz0gTsW7H1p7gN1Ilyaf9v2WuJ+QvSZVrwwBRDQ/+OkkHxVS9Whe0VeAU3OJs4CcPsOIpQ==","signatures":[{"sig":"MEYCIQDLVtYUpT8FWDakA+LW+T4/K2FfB85CVmDcCyN6rgVpiQIhALF6u5dZ06nWT0Q4CxUQKXp1JG8QMWubPIQTIMa03FA7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89649},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","default":"./dist/server.js","require":"./dist/server.cjs"},"./package.json":"./package.json"},"gitHead":"93345ead0c892353fcee283de592fce00843b6a5","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:bun":"bun test bun/smoke.test.ts","test:e2e":"playwright test","test:deno":"deno test --allow-none deno/smoke_test.ts","typecheck":"tsc --noEmit","test:e2e:headed":"playwright test --headed","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs"},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"_npmVersion":"11.7.0","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.6","typescript":"^5.7.3","@types/node":"^22.13.4","@playwright/test":"^1.52.0"},"_npmOperationalInternal":{"tmp":"tmp/webpay_0.1.0_1770366503768_0.3218104230081045","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bunhov_leom/webpay","version":"0.1.1","keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","_id":"@bunhov_leom/webpay@0.1.1","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"dist":{"shasum":"f68e10f50430ab6563e4b2d145e7c1adbcf99c17","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.1.tgz","fileCount":15,"integrity":"sha512-Xrdu3lJd8yTauxFY2FULch2wUTwWV1XNWDJ2+BNYKBi5sZsnUNhp0+zvFrhjepol1dQeUv0mK3XrxTh6oxZePg==","signatures":[{"sig":"MEYCIQDtD/g5sV5KHdEvHXWiUXhbqLN5YOpe0blH3v+2mYd1WAIhAJVfpXLy59HdGV0jIxVpVCxXanCr4VnCOx1ol+HtA3CF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125849},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","default":"./dist/server.js","require":"./dist/server.cjs"},"./package.json":"./package.json"},"gitHead":"6b8118c923772643deb3cc7a4020d8d66fd6c1a2","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:bun":"bun test bun/smoke.test.ts","test:e2e":"playwright test","test:deno":"deno test --allow-none deno/smoke_test.ts","typecheck":"tsc --noEmit","test:e2e:headed":"playwright test --headed","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs"},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"_npmVersion":"11.7.0","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.6","typescript":"^5.7.3","@types/node":"^22.13.4","@playwright/test":"^1.52.0"},"_npmOperationalInternal":{"tmp":"tmp/webpay_0.1.1_1770602805130_0.14313473414739342","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bunhov_leom/webpay","version":"0.1.2","keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","_id":"@bunhov_leom/webpay@0.1.2","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"dist":{"shasum":"e16d704caaa7828bc58bbe0952d180787c6bdc5b","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.2.tgz","fileCount":15,"integrity":"sha512-7nKhcPTMhS6cvDdxjtm0//tymUjTNb+mlW8pC+UYqp/uEaVskWoL1A9E1Utkqp2b90PHTkA1ZWX3n6VHqpkInA==","signatures":[{"sig":"MEUCIDI5shadqqLzdEXc6WEEzlhLPz47TvcQ2dvIFQx1f6UlAiEAmGsFSQLYdr7ujXFfW4jlTGx8cMmSby38exhvNYUFrSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144102},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","default":"./dist/server.js","require":"./dist/server.cjs"},"./package.json":"./package.json"},"gitHead":"d76eb66aeb2a6df001569de69da7a23355c30f20","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:bun":"bun test bun/smoke.test.ts","test:e2e":"playwright test","test:deno":"deno test --allow-none deno/smoke_test.ts","typecheck":"tsc --noEmit","test:e2e:headed":"playwright test --headed","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs"},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"_npmVersion":"11.7.0","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.6","typescript":"^5.7.3","@types/node":"^22.13.4","@playwright/test":"^1.52.0"},"_npmOperationalInternal":{"tmp":"tmp/webpay_0.1.2_1770606932393_0.42609326695030325","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bunhov_leom/webpay","version":"0.1.3","keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","_id":"@bunhov_leom/webpay@0.1.3","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"dist":{"shasum":"f4331b8f7025f0c0b9e789974e0b8d344b96b7c9","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.3.tgz","fileCount":15,"integrity":"sha512-Ao+lGCt/K7jJvWaBnHy0V65RsT2LNf3R6msfBuWkHkCI9ZodGPdVM/MzigTHdjMsUQVdc56RU3ljOZlaq9coTw==","signatures":[{"sig":"MEUCIQD4yjRRrCw95n5rkfmPLOGKoPQEpOsZXyzHAZbfm5eXUwIgIo+1XBv7uZFepki91CV8iz8auKb6u06qoBxhTu/i7fw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146256},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","default":"./dist/server.js","require":"./dist/server.cjs"},"./package.json":"./package.json"},"gitHead":"e9ef6229c01bfdec015342805474a390380fdbc6","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:bun":"bun test bun/smoke.test.ts","test:e2e":"playwright test","test:deno":"deno test --allow-none deno/smoke_test.ts","typecheck":"tsc --noEmit","test:e2e:headed":"playwright test --headed","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs"},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"_npmVersion":"11.7.0","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.6","typescript":"^5.7.3","@types/node":"^22.13.4","@playwright/test":"^1.52.0"},"_npmOperationalInternal":{"tmp":"tmp/webpay_0.1.3_1770607663292_0.8110061202283376","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bunhov_leom/webpay","version":"0.1.4","keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","_id":"@bunhov_leom/webpay@0.1.4","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"dist":{"shasum":"cd151c44c5d442c567fee8e23490264080334914","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.4.tgz","fileCount":15,"integrity":"sha512-h33zcPj5aYQsrfVRNmNKhlrZ7ep+bwnPNf7BEND6rktdgQyLDGtxBBgc6Gdo9CTQAPQEh422+BESZ6q7ibZ+aw==","signatures":[{"sig":"MEYCIQDHDwJ5AIS2sbv6K1ljewjPE5qfRKgyRQk4SVaFsFnpQwIhAIMnoVuBe65J2MMkMZL9vk3SbzexSnspvePqBAPllSgf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140863},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","default":"./dist/server.js","require":"./dist/server.cjs"},"./package.json":"./package.json"},"gitHead":"eb6bf9cc1e40861b055a8538a50e9a77e6a3d2c0","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:bun":"bun test bun/smoke.test.ts","test:e2e":"playwright test","test:deno":"deno test --allow-none deno/smoke_test.ts","typecheck":"tsc --noEmit","test:e2e:headed":"playwright test --headed","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs"},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"_npmVersion":"11.7.0","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.6","typescript":"^5.7.3","@types/node":"^22.13.4","@playwright/test":"^1.52.0"},"_npmOperationalInternal":{"tmp":"tmp/webpay_0.1.4_1770609046544_0.8402889615368414","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bunhov_leom/webpay","version":"0.1.5","keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","_id":"@bunhov_leom/webpay@0.1.5","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"dist":{"shasum":"36a0aa08cd283d8e9ed2af2b6a5aa20e5a161290","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.5.tgz","fileCount":15,"integrity":"sha512-dBUAUvDK8NfyZuOyk8AdjSau25Vwbm8C9fhfPF1zGxtcl6+M6be7JnmD4UOyWldtmRSVrLav2fuV+XOw9fkBJw==","signatures":[{"sig":"MEYCIQC8TLTg0F5Z3BEbWWA0oOvZP6npGARq90uSliqvrRtdGAIhAMPwJqq0zAvop0YbEDmwwbNgciaXNK0it949TgUN5R0T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149470},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","default":"./dist/server.js","require":"./dist/server.cjs"},"./package.json":"./package.json"},"gitHead":"a4b2b63036d8436d2d92aafe98624b6e8418b3ce","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:bun":"bun test bun/smoke.test.ts","test:e2e":"playwright test","test:deno":"deno test --allow-none deno/smoke_test.ts","typecheck":"tsc --noEmit","test:e2e:headed":"playwright test --headed","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs"},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"_npmVersion":"11.7.0","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.6","typescript":"^5.7.3","@types/node":"^22.13.4","@playwright/test":"^1.52.0"},"_npmOperationalInternal":{"tmp":"tmp/webpay_0.1.5_1770618490859_0.7660929280955742","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bunhov_leom/webpay","version":"0.1.6","keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","_id":"@bunhov_leom/webpay@0.1.6","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"dist":{"shasum":"05fbf12ff752a12db969d4df0c44f2a90ee58488","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.6.tgz","fileCount":15,"integrity":"sha512-riDyCqVhyKMHEFENyRc8DxPT8bfglfE8o++D5Gp6xZFJMOgtUCxvuHy0wpw2Tf6nWwZpmfdSJZXs50StRjeGnw==","signatures":[{"sig":"MEQCIA2N2mvRe86kVlPouATXi7xu6LDcxlNQFFzLe9iaqsySAiBteIWW43lzScYuGu3kAei7CpUb3wcihIrM7E1KxPZ7CA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156806},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","default":"./dist/server.js","require":"./dist/server.cjs"},"./package.json":"./package.json"},"gitHead":"58da454aa75a2a408a4d946792afe613a4739fb4","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:bun":"bun test bun/smoke.test.ts","test:e2e":"playwright test","test:deno":"deno test --allow-none deno/smoke_test.ts","typecheck":"tsc --noEmit","test:e2e:headed":"playwright test --headed","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs"},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"_npmVersion":"11.7.0","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.6","typescript":"^5.7.3","@types/node":"^22.13.4","@playwright/test":"^1.52.0"},"_npmOperationalInternal":{"tmp":"tmp/webpay_0.1.6_1770619684366_0.536520521242561","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@bunhov_leom/webpay","version":"0.1.7","keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","_id":"@bunhov_leom/webpay@0.1.7","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"dist":{"shasum":"09ac49b12033892f99cfa11926a483e16a039d2f","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.7.tgz","fileCount":15,"integrity":"sha512-VefQG52sJX27JBzGXkFdwm+ighoOVQ3513wet+/RmsXiBeOBIq8GwMK30aXbUB721HBzyHRfH2PJnV25m8YvZw==","signatures":[{"sig":"MEYCIQC+OnOysJzqo/qHM1iqneGfmjYfVG2IxDgG8PboahxN1wIhAJ71LnD4bKsDsB+13IoRQr2Bw8MiCBtW7kC7d6TJAACJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160939},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","default":"./dist/server.js","require":"./dist/server.cjs"},"./package.json":"./package.json"},"gitHead":"00e1ea6140092eb963bcdd1fe3eab0eb2fd94a5b","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:bun":"bun test bun/smoke.test.ts","test:e2e":"playwright test","test:deno":"deno test --allow-none deno/smoke_test.ts","typecheck":"tsc --noEmit","test:e2e:headed":"playwright test --headed","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs"},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"_npmVersion":"11.7.0","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.6","typescript":"^5.7.3","@types/node":"^22.13.4","@playwright/test":"^1.52.0"},"_npmOperationalInternal":{"tmp":"tmp/webpay_0.1.7_1770620607304_0.5440361076012301","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@bunhov_leom/webpay","version":"0.1.8","description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","type":"module","sideEffects":false,"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs","default":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs","default":"./dist/server.js"},"./package.json":"./package.json"},"engines":{"node":">=18"},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run","test:sandbox-sign":"npm run build && node scripts/sandbox-sign-check.mjs","test:e2e":"playwright test","test:e2e:headed":"playwright test --headed","test:bun":"bun test bun/smoke.test.ts","test:deno":"deno test --allow-none deno/smoke_test.ts"},"keywords":["payments","sdk","typescript","node","bun","deno"],"author":"","license":"MIT","devDependencies":{"@playwright/test":"^1.52.0","@types/node":"^22.13.4","tsup":"^8.4.0","typescript":"^5.7.3","vitest":"^3.0.6"},"gitHead":"f3d174aff9ff2b724438bff28383b41a9f70eca6","_id":"@bunhov_leom/webpay@0.1.8","_nodeVersion":"22.21.1","_npmVersion":"11.7.0","dist":{"integrity":"sha512-WnXGtY+jgNA/b/xlT49g0GXx0IayR/rdCR1vM8FF4Fb59IornjuAFRnoQUprl0Gb6fPICC+m/AVQGpdxtsXGVQ==","shasum":"3afe49fcbde00c9a110de18812e93ce8007b5de7","tarball":"https://registry.npmjs.org/@bunhov_leom/webpay/-/webpay-0.1.8.tgz","fileCount":15,"unpackedSize":160703,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC6ow5NNwM0rwwmT9VlqJKwuYhCWvdqfluJjayPgF0szQIgHpMN4vbeWszaIV8O51KWsYzRlWk4nrWBYQ5eTEnYJXg="}]},"_npmUser":{"name":"bunhov_leom","email":"npmjs@qqer.me"},"directories":{},"maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/webpay_0.1.8_1770629444150_0.8258030600907844"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-06T08:28:23.688Z","modified":"2026-02-09T09:30:44.434Z","0.1.0":"2026-02-06T08:28:23.952Z","0.1.1":"2026-02-09T02:06:45.291Z","0.1.2":"2026-02-09T03:15:32.542Z","0.1.3":"2026-02-09T03:27:43.431Z","0.1.4":"2026-02-09T03:50:46.697Z","0.1.5":"2026-02-09T06:28:11.002Z","0.1.6":"2026-02-09T06:48:04.511Z","0.1.7":"2026-02-09T07:03:27.472Z","0.1.8":"2026-02-09T09:30:44.324Z"},"license":"MIT","keywords":["payments","sdk","typescript","node","bun","deno"],"description":"Cross-runtime Webpay package scaffold for Node, Bun, and Deno.","maintainers":[{"name":"bunhov_leom","email":"npmjs@qqer.me"}],"readme":"# webpay (Node Package)\n\nThis `node/` directory is the npm package for WebPay client integration.\nIt ships a lightweight base client plus a server-side client for OAuth and\nsigned gateway requests.\n\n## Scope\n\n- Package name: `webpay`\n- Runtime target: Node.js (primary), with smoke coverage for Bun and Deno\n- Output: ESM + CJS + type declarations\n- Exports:\n  - `webpay` -> base client (`src/index.ts`)\n  - `webpay/server` -> server client (`src/server.ts`)\n\n## Requirements\n\n- Node.js `>=18`\n- npm\n\n## Install\n\n```bash\nnpm install\n```\n\n## Build and Quality Checks\n\n```bash\nnpm run build\nnpm run typecheck\nnpm test\n```\n\nExtra runtime checks:\n\n```bash\nnpm run test:bun\nnpm run test:deno\n```\n\nSandbox sign check (uses `../credenail.txt` and `../sandbox-public.key` by default):\n\n```bash\nnpm run test:sandbox-sign\n```\n\nBrowser E2E:\n\n```bash\nnpx playwright install chromium\nnpm run test:e2e\n```\n\n## Project Layout\n\n- `src/index.ts`: Base `WebPayClient` (`ping()` smoke API)\n- `src/server.ts`: `WebPayServerClient` for OAuth, signing, gateway calls\n- `test/`: Vitest tests for signatures and server client behavior\n- `bun/`, `deno/`: Cross-runtime smoke tests\n- `e2e/`: Playwright browser smoke test and fixture page\n- `scripts/e2e-server.mjs`: Static server used by Playwright\n\n## Environment Variables (Server Client)\n\n- Required:\n  - `WEBPAY_API_SECRET_KEY`\n- Required for OAuth authentication:\n  - `WEBPAY_CLIENT_ID`\n  - `WEBPAY_CLIENT_SECRET`\n  - `WEBPAY_USERNAME`\n  - `WEBPAY_PASSWORD`\n- Optional:\n  - `WEBPAY_BASE_URL` (default: `https://devwebpayment.kesspay.io`)\n  - `WEBPAY_SELLER_CODE`\n  - `WEBPAY_SIGN_TYPE` (`MD5` or `HMAC-SHA256`)\n  - `WEBPAY_PUBLIC_KEY_FILE` (path to `sandbox-public.key` or another RSA public key PEM file)\n  - `WEBPAY_PUBLIC_KEY_PEM` (raw RSA public key PEM text; takes priority over `WEBPAY_PUBLIC_KEY_FILE`)\n\nNote: request signing (`MD5` and `HMAC-SHA256`) uses `api_secret_key`.\nThe sandbox public key is for RSA encryption helpers (`encryptToHex`, `encryptObjectToHex`).\nThe server client authenticates via `POST /oauth/token` using `grant_type: \"password\"` and uses the returned `access_token` for gateway routes.\nOn `401`, it re-authenticates once and retries the gateway request.\n\n## Usage\n\n### Base client\n\n```ts\nimport { createWebPayClient } from \"webpay\";\n\nconst client = createWebPayClient();\nconsole.log(client.ping()); // webpay:ok\n```\n\n### Server client (env-driven)\n\n```ts\nimport { createWebPayServerClient } from \"webpay/server\";\n\nconst client = createWebPayServerClient();\nconst result = await client.queryOrder({ out_trade_no: \"ORDER-1001\" });\nconsole.log(result);\n```\n\n### Server client (explicit config)\n\n```ts\nimport { createWebPayServerClient } from \"webpay/server\";\n\nconst client = createWebPayServerClient({\n  baseUrl: \"https://devwebpayment.kesspay.io\",\n  apiSecretKey: process.env.WEBPAY_API_SECRET_KEY!,\n  signType: \"MD5\",\n  publicKeyFile: process.env.WEBPAY_PUBLIC_KEY_FILE,\n  credentials: {\n    clientId: process.env.WEBPAY_CLIENT_ID!,\n    clientSecret: process.env.WEBPAY_CLIENT_SECRET!,\n    username: process.env.WEBPAY_USERNAME!,\n    password: process.env.WEBPAY_PASSWORD!\n  },\n  sellerCode: process.env.WEBPAY_SELLER_CODE\n});\n```\n\n### Signature helpers\n\n```ts\nimport { makeSignature, verifySignature } from \"webpay/server\";\n\nconst payload = {\n  service: \"webpay.acquire.queryOrder\",\n  sign_type: \"MD5\",\n  out_trade_no: \"ORDER-1001\"\n};\n\nconst sign = makeSignature(payload, process.env.WEBPAY_API_SECRET_KEY!);\nconst valid = verifySignature({ ...payload, sign }, process.env.WEBPAY_API_SECRET_KEY!);\nconsole.log(valid);\n```\n\n### DirectPay card encryption helper\n\nUse the documented card shape (`number`, `securityCode`, `expiry.month`, `expiry.year`) and encrypt it to hex.\nIf your client is configured with `publicKeyFile`/`publicKeyPem` (or `WEBPAY_PUBLIC_KEY_FILE`/`WEBPAY_PUBLIC_KEY_PEM`), use `client.encryptDirectPayCard(...)`:\n\n```ts\nconst card = client.encryptDirectPayCard(\n  {\n    number: \"5473500160001018\",\n    securityCode: \"123\",\n    expiry: {\n      month: \"12\",\n      year: \"35\"\n    }\n  }\n);\n\nawait client.directPay({\n  out_trade_no: \"TEST-1234567891\",\n  body: \"iPhone 13 pro Case\",\n  total_amount: 10,\n  currency: \"USD\",\n  service_code: \"VISA_MASTER\",\n  card,\n  ip_address: \"203.0.113.10\"\n});\n```\n\nYou can also keep using `encryptDirectPayCardToHex(cardPayload, publicKeyPem)` directly when needed.\n\nFor `nativePay`, boolean flags (`only_deeplink`, `is_ios_device`) are normalized to `1`/`0` before signing and sending, matching WebPay signing behavior.\n\n## Error Types\n\n- `WebPayHttpError`: non-2xx HTTP responses (inspect `error.status`, `error.response`, `error.details`)\n- `WebPayApiError`: gateway response with `success: false` (inspect `error.response`, `error.details`, `error.code`)\n\nExample:\n\n```ts\nimport { WebPayApiError, WebPayHttpError } from \"webpay/server\";\n\ntry {\n  await client.queryOrder({ out_trade_no: \"ORDER-1001\" });\n} catch (error) {\n  if (error instanceof WebPayHttpError || error instanceof WebPayApiError) {\n    console.error(error.message);\n    console.error(\"response:\", error.response);\n  }\n}\n```\n\n## Self Spec Driving\n\nAgent workflow for this package is documented in `AGENT.md`.\n","readmeFilename":"README.md"}