{"_id":"@alexasomba/better-auth-paystack","_rev":"28-351ed113c1384db960f99e447d32472a","name":"@alexasomba/better-auth-paystack","dist-tags":{"rc":"1.0.0-rc.3","latest":"3.1.1"},"versions":{"0.0.4":{"name":"@alexasomba/better-auth-paystack","version":"0.0.4","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@0.0.4","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"2f74aa42e625076e6bb8c167037179f281fd4e64","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-0.0.4.tgz","fileCount":11,"integrity":"sha512-V9woKxZpAeRN6XdOvbAwo4fdUBphwSk9ySAFyK903Y44VYdelyji5U5z3psm3O0CrmOwMkyzKxfcewh+2LwQjQ==","signatures":[{"sig":"MEUCIQCQ2oScuIaBN6coAZQGGe9XRjcn0hp1JIkiJAz7AgE4RAIgIBFKiqc4y+iYqOd4v6EW/0/5XZSzh+ErHCCs4cBcsJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144824},"type":"module","_from":"file:alexasomba-better-auth-paystack-0.0.4.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/8f48b9f571a0697ff3dd8449bb8e12fc/alexasomba-better-auth-paystack-0.0.4.tgz","_integrity":"sha512-V9woKxZpAeRN6XdOvbAwo4fdUBphwSk9ySAFyK903Y44VYdelyji5U5z3psm3O0CrmOwMkyzKxfcewh+2LwQjQ==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.2.0","defu":"^6.1.4","@alexasomba/paystack-node":"^1.1.6","@alexasomba/paystack-browser":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.18.0","vitest":"^4.0.15","publint":"^0.3.16","typescript":"^5.9.3","@types/node":"^24.10.4","better-auth":"^1.4.7","@better-auth/core":"^1.4.7","@arethetypeswrong/cli":"^0.18.2"},"peerDependencies":{"better-auth":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_0.0.4_1765825290553_0.4325270477735834","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@alexasomba/better-auth-paystack","version":"0.1.0","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@0.1.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"2ba1636e3ec43bec80af5fa7ca84681e8cbc718a","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-0.1.0.tgz","fileCount":11,"integrity":"sha512-62X2UPrLXnCvwcGh96SAbw74Cw/3ied9r1pdBYJgTUHKFWJpj08kI/FKMi2UFc1l7czsb7xkbTU/Kt21zS53+A==","signatures":[{"sig":"MEUCIEBuWuAfvbESwZbUAAzPY0fb42SS/u6pT+CLZMj8f4PfAiEArX4VU5Y41zHYE3XgOcnVWX7j01VxUX99vlcGdrFIC18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160319},"type":"module","_from":"file:alexasomba-better-auth-paystack-0.1.0.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"}},"scripts":{"bd":"node ./scripts/bd.mjs","dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/b70ccdc07d88accf119947611439280b/alexasomba-better-auth-paystack-0.1.0.tgz","_integrity":"sha512-62X2UPrLXnCvwcGh96SAbw74Cw/3ied9r1pdBYJgTUHKFWJpj08kI/FKMi2UFc1l7czsb7xkbTU/Kt21zS53+A==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.2.1","defu":"^6.1.4","better-call":"^1.1.6","@alexasomba/paystack-node":"^1.1.6","@alexasomba/paystack-browser":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.18.1","vitest":"^4.0.16","publint":"^0.3.16","typescript":"^5.9.3","@types/node":"^24.10.4","better-auth":"^1.4.7","@better-auth/core":"^1.4.7","@vitest/coverage-v8":"^4.0.16","@arethetypeswrong/cli":"^0.18.2","@rollup/rollup-linux-x64-gnu":"4.53.5"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"4.53.5"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_0.1.0_1766157926836_0.30782007666504163","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@alexasomba/better-auth-paystack","version":"0.1.1","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@0.1.1","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"127ad332e6ede8bd6d10d70f18ddac64ab8590ce","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-0.1.1.tgz","fileCount":11,"integrity":"sha512-FQY9fmyA+OBRqoPhyC/ztiRKRakVLcSXuhLHaE/xXxm0ZMNVvPFF20tXAbmYDwVc3F+SQzbc9YvKp8ee64UztA==","signatures":[{"sig":"MEQCIDGFDXaqCnCOrrDDYKuxtqeWoci7epj8fW63mLAKK8+vAiBDkh1ZHptHxrmIbqxi9ItQe4ZHEBqamHSHc3YngTpVMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160319},"type":"module","_from":"file:alexasomba-better-auth-paystack-0.1.1.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"}},"scripts":{"bd":"node ./scripts/bd.mjs","dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/cb9007d611ca1090c71d6a1fbf65aede/alexasomba-better-auth-paystack-0.1.1.tgz","_integrity":"sha512-FQY9fmyA+OBRqoPhyC/ztiRKRakVLcSXuhLHaE/xXxm0ZMNVvPFF20tXAbmYDwVc3F+SQzbc9YvKp8ee64UztA==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.2.1","defu":"^6.1.4","better-call":"^1.1.6","@alexasomba/paystack-node":"^1.1.6","@alexasomba/paystack-browser":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.18.1","vitest":"^4.0.16","publint":"^0.3.16","typescript":"^5.9.3","@types/node":"^24.10.4","better-auth":"^1.4.7","@better-auth/core":"^1.4.7","@vitest/coverage-v8":"^4.0.16","@arethetypeswrong/cli":"^0.18.2","@rollup/rollup-linux-x64-gnu":"4.53.5"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"4.53.5"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_0.1.1_1766159493236_0.2408814662764891","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alexasomba/better-auth-paystack","version":"0.2.0","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@0.2.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"71fcd2fcbeab7e5de57b503bd4d47a0c548bd85d","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-0.2.0.tgz","fileCount":11,"integrity":"sha512-UUb/9kvSSHRRz5QR6ZaqksT9+VAfk8Hx/oalx1G8Q1umb0bdaPUR24DCoNpWWLIOnJGTSprrD5GDgfLECGpdHQ==","signatures":[{"sig":"MEUCIFiEWd6ayjrgItlirgIiw2qQOg0safpE6zIKhCSVPiKyAiEAolJ6/eo0AO0buc3gPtO19jj+CaxasTK3SoPTQFGvCQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143194},"type":"module","_from":"file:alexasomba-better-auth-paystack-0.2.0.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"}},"scripts":{"bd":"node ./scripts/bd.mjs","dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/7418298e27becf74a08073c0d69b6900/alexasomba-better-auth-paystack-0.2.0.tgz","_integrity":"sha512-UUb/9kvSSHRRz5QR6ZaqksT9+VAfk8Hx/oalx1G8Q1umb0bdaPUR24DCoNpWWLIOnJGTSprrD5GDgfLECGpdHQ==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.2.1","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","vitest":"^4.0.18","publint":"^0.3.17","typescript":"^5.9.3","@types/node":"^22.19.7","better-auth":"^1.4.18","@better-auth/core":"^1.4.18","@vitest/coverage-v8":"^4.0.18","@arethetypeswrong/cli":"^0.18.2","@rollup/rollup-linux-x64-gnu":"^4.57.1"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_0.2.0_1770018992951_0.04686581048712646","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@alexasomba/better-auth-paystack","version":"0.2.1","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@0.2.1","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"3c9f05f9ba95bac2eed502585cfe2a20dad85230","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-0.2.1.tgz","fileCount":11,"integrity":"sha512-DOzez6Rn38DsVwe0Qt4MajsV5QJ5c7ePl2IBxcPtKfd+Gu7/axbG82RfzKBABJSqIxRObIjtE6wQZ8hJetGyxg==","signatures":[{"sig":"MEQCIBkFcV2JByhuojmZSOC/GxfNl+lCzuK5v+8paahXdq32AiBnEBPsBi7R9QtNjh5Q+ySm3u3CZWJfwuJTuZ8nKtANLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143246},"type":"module","_from":"file:alexasomba-better-auth-paystack-0.2.1.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"}},"scripts":{"bd":"node ./scripts/bd.mjs","dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/59df7873b714c60642cd68312d7b88b7/alexasomba-better-auth-paystack-0.2.1.tgz","_integrity":"sha512-DOzez6Rn38DsVwe0Qt4MajsV5QJ5c7ePl2IBxcPtKfd+Gu7/axbG82RfzKBABJSqIxRObIjtE6wQZ8hJetGyxg==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.2.1","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","vitest":"^4.0.18","publint":"^0.3.17","typescript":"^5.9.3","@types/node":"^22.19.7","better-auth":"^1.4.18","@better-auth/core":"^1.4.18","@vitest/coverage-v8":"^4.0.18","@arethetypeswrong/cli":"^0.18.2","@rollup/rollup-linux-x64-gnu":"^4.57.1"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_0.2.1_1770019838007_0.893605214665014","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@alexasomba/better-auth-paystack","version":"0.2.2","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@0.2.2","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"96be0a6480e5dee710d8b7c4885e52a06af77644","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-0.2.2.tgz","fileCount":11,"integrity":"sha512-eyQTkzTFXwEwSAqGNYCwrZbAh7XJ/K5KZ6CZzrYNgqT+w8U5Kw5nvNkjLhTIjpwhn+hkFzZPJT/uPEGCuK3Uew==","signatures":[{"sig":"MEUCIQCTC1lcEnyTQ7Z4zfIFQBf0e1h2nQaIsITNR/h9piwbsgIgRdWFfVoTyKE3oxVSI7SkqxIiukatQ/uJdStvg7keQ1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143503},"type":"module","_from":"file:alexasomba-better-auth-paystack-0.2.2.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"scripts":{"bd":"node ./scripts/bd.mjs","dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/aba7cafbe13c3d75c115162abb999802/alexasomba-better-auth-paystack-0.2.2.tgz","_integrity":"sha512-eyQTkzTFXwEwSAqGNYCwrZbAh7XJ/K5KZ6CZzrYNgqT+w8U5Kw5nvNkjLhTIjpwhn+hkFzZPJT/uPEGCuK3Uew==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.2.1","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","tsdown":"^0.20.1","vitest":"^4.0.18","publint":"^0.3.17","typescript":"^5.9.3","@types/node":"^22.19.7","better-auth":"^1.4.18","lint-staged":"^16.2.7","@better-auth/core":"^1.4.18","@vitest/coverage-v8":"^4.0.18","@arethetypeswrong/cli":"^0.18.2","@rollup/rollup-linux-x64-gnu":"^4.57.1"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_0.2.2_1770023584717_0.5938630345764513","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.1":{"name":"@alexasomba/better-auth-paystack","version":"1.0.0-rc.1","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.0.0-rc.1","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"9934ef66d81ee2b935b385f85e0a2d079f962972","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.0.0-rc.1.tgz","fileCount":13,"integrity":"sha512-bECjiDl0IPTpUHaw2m2xi7442+i7w2rier940wNxDt7gbVbK5N/4gWXapGvVxI6Eaf9G9rIS1zz91MNl/taTmg==","signatures":[{"sig":"MEQCIBoYwAOSfNe5gCQxKLUy8z3Poh5sGZduvj93vAtB9o1gAiBOUIoiePEe4FIdgPctiP1btrsF2s2MiHzaWOXEWdaKAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@1.0.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231852},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.0.0-rc.1.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/f7156aaefffa3366d28e7d838258a21d/alexasomba-better-auth-paystack-1.0.0-rc.1.tgz","_integrity":"sha512-bECjiDl0IPTpUHaw2m2xi7442+i7w2rier940wNxDt7gbVbK5N/4gWXapGvVxI6Eaf9G9rIS1zz91MNl/taTmg==","categories":[],"deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.3.1","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","tsdown":"^0.20.3","vitest":"^3.2.4","publint":"^0.3.17","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^22.19.10","better-auth":"^1.4.18","lint-staged":"^16.2.7","@better-auth/core":"^1.4.18","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","eslint-plugin-import":"^2.32.0","@arethetypeswrong/cli":"^0.18.2","@typescript-eslint/parser":"^8.54.0","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@typescript-eslint/eslint-plugin":"^8.54.0"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.0.0-rc.1_1770613999642_0.2120212193486959","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.2":{"name":"@alexasomba/better-auth-paystack","version":"1.0.0-rc.2","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.0.0-rc.2","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"466dc9796e80bf62336f933d39e7704659a5f93c","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.0.0-rc.2.tgz","fileCount":13,"integrity":"sha512-1G7Oo/2K+7dHk6AdOY5mERk0jD5/UCMyVru1rcWoGH4ObSRH95anlD8LgTHH3FveF7xblSa7OK1RVFseKqodlw==","signatures":[{"sig":"MEYCIQCr2iFVJj6ODiz0cuJ3sUwbWB7C/MaYvjX0tDU/2rciggIhAJTZIVCBJa9SNOG/MOFYZMugrPFln8hAgRw2HT6ZjGg3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@1.0.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231852},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.0.0-rc.2.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/7ebffc39c3019ad6f8572a4620eb31ec/alexasomba-better-auth-paystack-1.0.0-rc.2.tgz","_integrity":"sha512-1G7Oo/2K+7dHk6AdOY5mERk0jD5/UCMyVru1rcWoGH4ObSRH95anlD8LgTHH3FveF7xblSa7OK1RVFseKqodlw==","categories":[],"deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.3.1","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","tsdown":"^0.20.3","vitest":"^3.2.4","publint":"^0.3.17","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^22.19.10","better-auth":"^1.4.18","lint-staged":"^16.2.7","@better-auth/core":"^1.4.18","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","eslint-plugin-import":"^2.32.0","@arethetypeswrong/cli":"^0.18.2","@typescript-eslint/parser":"^8.54.0","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@typescript-eslint/eslint-plugin":"^8.54.0"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.0.0-rc.2_1770615836871_0.440002485812393","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.3":{"name":"@alexasomba/better-auth-paystack","version":"1.0.0-rc.3","keywords":["paystack","auth","better-auth"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.0.0-rc.3","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"6975d8fd064f7ebbfa6294e51990c43dd00cbca9","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.0.0-rc.3.tgz","fileCount":13,"integrity":"sha512-LpSLttYp1tFP4xFKyNCOfuOfCd8UEJOgg68v5cISQyn8jCmGQ3cnBKtbhy5IYloKzXc1+puaH+6c/wdeorjEAw==","signatures":[{"sig":"MEQCIColg7EQtup6bJCQvJ1i0lc6ZWlzyV0zc82wKPfixy49AiALeY6TLmHMlIL2fSIGDM/mlXc28kRpj9GFCzTbiBVPEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@1.0.0-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231868},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.0.0-rc.3.tgz","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/9d6885761062359e3a9375d5994c3a37/alexasomba-better-auth-paystack-1.0.0-rc.3.tgz","_integrity":"sha512-LpSLttYp1tFP4xFKyNCOfuOfCd8UEJOgg68v5cISQyn8jCmGQ3cnBKtbhy5IYloKzXc1+puaH+6c/wdeorjEAw==","categories":[],"deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Community Better Auth plugin for Paystack (by alexasomba)","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.3.1","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","tsdown":"^0.20.3","vitest":"^3.2.4","publint":"^0.3.17","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^22.19.10","better-auth":"^1.4.18","lint-staged":"^16.2.7","@better-auth/core":"^1.4.18","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","eslint-plugin-import":"^2.32.0","@arethetypeswrong/cli":"^0.18.2","@typescript-eslint/parser":"^8.54.0","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@typescript-eslint/eslint-plugin":"^8.54.0"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.0.0-rc.3_1770618389047_0.046576808986151796","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@alexasomba/better-auth-paystack","version":"1.0.0","keywords":["paystack","auth","better-auth","billing-system","checkout","fintech","nigeria","ghana","south-africa","kenya","ivory-coast","cote-divoire","egypt","rwanda","ngn","ghs","zar","kes","usd","egp","subscriptions","africa","saas"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.0.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"68870ee81e3922fcb80e4b5c2c780e7e40c5e7e7","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.0.0.tgz","fileCount":13,"integrity":"sha512-jFWAygpigV8+nQfo8R/Q13Pa+tFXSTf+odB4YNn7PaRgQ+BkpZmTF+REcNGmiUxiRb8hMMGqZGO6VayusbUEFA==","signatures":[{"sig":"MEQCIE8HlSm2phpi/wwYGWIz83+2SNpqgDsoYmSPbQn1nDLDAiBuDZXoamzbIStNyDaKmSmDcw5Fqgr6MwFYb8Waloy0MA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":238260},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.0.0.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"tsdown --watch","lint":"eslint src examples/tanstack","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/579641f7254eb52bfe18c9a9c65e0276/alexasomba-better-auth-paystack-1.0.0.tgz","_integrity":"sha512-jFWAygpigV8+nQfo8R/Q13Pa+tFXSTf+odB4YNn7PaRgQ+BkpZmTF+REcNGmiUxiRb8hMMGqZGO6VayusbUEFA==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.3.1","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^10.0.0","tsdown":"^0.20.3","vitest":"^3.2.4","publint":"^0.3.17","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^22.19.10","better-auth":"^1.4.18","lint-staged":"^16.2.7","@eslint/compat":"^2.0.2","@better-auth/core":"^1.4.18","typescript-eslint":"^8.55.0","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^62.0.0","eslint-plugin-import-x":"^4.16.1","@typescript-eslint/parser":"^8.55.0","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.0.0_1770716706322_0.5943611071499679","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alexasomba/better-auth-paystack","version":"1.0.4","keywords":["paystack","auth","better-auth","billing-system","checkout","fintech","nigeria","ghana","south-africa","kenya","ivory-coast","cote-divoire","egypt","rwanda","ngn","ghs","zar","kes","usd","egp","subscriptions","africa","saas"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.0.4","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"ed8802c6e9bede741add98e5caf167c1e060ba98","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.0.4.tgz","fileCount":13,"integrity":"sha512-lZPD0K8WUM7a+MACQ+j5Od03edrFf8UF6/pFRVy97BakYVsPTJD2e6A726rLD1kFAb0ho6ra14yxrRk4RzYb+A==","signatures":[{"sig":"MEUCIHiPjB+bak6kaWA9BLRtkXDFE28G9sLuztNeY5xstV9nAiEAzU1cBfxMKNQ5aSdxSUF67sE7uqoty0oJM7n+geGp+Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263511},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.0.4.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"tsdown --watch","lint":"eslint src examples/tanstack","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/5dda43abb9f4c767f7c49fe7c02bcbcb/alexasomba-better-auth-paystack-1.0.4.tgz","_integrity":"sha512-lZPD0K8WUM7a+MACQ+j5Od03edrFf8UF6/pFRVy97BakYVsPTJD2e6A726rLD1kFAb0ho6ra14yxrRk4RzYb+A==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","eslint --fix","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.3.1","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^10.0.0","tsdown":"^0.20.3","vitest":"^3.2.4","publint":"^0.3.17","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^22.19.11","better-auth":"^1.4.18","lint-staged":"^16.2.7","@eslint/compat":"^2.0.2","@better-auth/core":"^1.4.18","typescript-eslint":"^8.55.0","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^63.0.0","eslint-plugin-import-x":"^4.16.1","@typescript-eslint/parser":"^8.55.0","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.57.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.0.4_1770842508034_0.0766215945299551","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alexasomba/better-auth-paystack","version":"1.1.0","keywords":["paystack","auth","better-auth","billing-system","checkout","fintech","nigeria","ghana","south-africa","kenya","ivory-coast","cote-divoire","egypt","rwanda","ngn","ghs","zar","kes","usd","egp","subscriptions","africa","saas"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.1.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"48f89b0176e9edcc8fc1a7edb16296684329c718","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.1.0.tgz","fileCount":13,"integrity":"sha512-/goO7aBVT4cyWeJxXXhb9UPHVqUFjwHRhYJpNozhx0EZVyHh5ZOMPGflI3CPuMy3XWK8Cyx1KZvfv4X6Z7BXyQ==","signatures":[{"sig":"MEYCIQCkHICrch4xDAg7m8veXO0X1B0mDsCAMpVRuuKKzXQ90wIhAPJjNwAauvoubfD9ddW2XyeBf+WrpYsziG9No88JPjz2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289525},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.1.0.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"tsdown --watch","lint":"eslint src examples/tanstack","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/private/var/folders/dm/mlgyzxrs40lfdwd5vz8dw5yc0000gn/T/3f085980073acd4485fc7934349b6159/alexasomba-better-auth-paystack-1.1.0.tgz","_integrity":"sha512-/goO7aBVT4cyWeJxXXhb9UPHVqUFjwHRhYJpNozhx0EZVyHh5ZOMPGflI3CPuMy3XWK8Cyx1KZvfv4X6Z7BXyQ==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"11.8.0","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","eslint --fix","vitest related --run"]},"sideEffects":false,"_nodeVersion":"24.13.1","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.3.2","@alexasomba/paystack-node":"^1.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.3","tsdown":"^0.20.3","vitest":"^3.2.4","publint":"^0.3.17","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^22.19.11","better-auth":"^1.4.18","lint-staged":"^16.2.7","@eslint/compat":"^2.0.2","@better-auth/core":"^1.4.18","typescript-eslint":"^8.56.0","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^63.0.0","eslint-plugin-import-x":"^4.16.1","@typescript-eslint/parser":"^8.56.0","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@typescript-eslint/eslint-plugin":"^8.56.0"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.59.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.1.0_1771871053544_0.818113146827","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@alexasomba/better-auth-paystack","version":"1.1.2","keywords":["paystack","auth","better-auth","billing-system","checkout","fintech","nigeria","ghana","south-africa","kenya","ivory-coast","cote-divoire","egypt","rwanda","ngn","ghs","zar","kes","usd","egp","subscriptions","africa","saas"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.1.2","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"229c9f686b6e2c69465de6408568390920a5af35","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.1.2.tgz","fileCount":13,"integrity":"sha512-ZMdXZ6c4Vdqu7NTGprxjppXyHbOhAx4Tkj3kONMuP+OFSWfJwJ8E/PyHah/l74VLR1mA7fzz/Uf2Bv1kWfyZbw==","signatures":[{"sig":"MEUCIDTYeuylPUfy9FMzATmtBcqVHiH2cvjspjWPeiaS59G/AiEAuYg7dWaRhNPxkyk/YgM6ihOQ+2H+eqNVTNKqGww01OU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313250},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.1.2.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"tsdown --watch","lint":"eslint src examples/tanstack","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/27a900d1efbba26f08d51a9e4b14fedf/alexasomba-better-auth-paystack-1.1.2.tgz","_integrity":"sha512-ZMdXZ6c4Vdqu7NTGprxjppXyHbOhAx4Tkj3kONMuP+OFSWfJwJ8E/PyHah/l74VLR1mA7fzz/Uf2Bv1kWfyZbw==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","eslint --fix","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.3.2","@alexasomba/paystack-node":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.3","tsdown":"^0.20.3","vitest":"^3.2.4","publint":"^0.3.17","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^22.19.12","better-auth":"^1.4.19","lint-staged":"^16.2.7","@eslint/compat":"^2.0.2","@better-auth/core":"^1.4.19","typescript-eslint":"^8.56.1","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^63.0.0","eslint-plugin-import-x":"^4.16.1","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.59.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.1.2_1772105170090_0.872667825658042","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alexasomba/better-auth-paystack","version":"1.2.0","keywords":["paystack","auth","better-auth","billing-system","checkout","fintech","nigeria","ghana","south-africa","kenya","ivory-coast","cote-divoire","egypt","rwanda","ngn","ghs","zar","kes","usd","egp","subscriptions","africa","saas"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.2.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"372c7ac570c4fe8be1843c056dfddd4d0c333be8","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.2.0.tgz","fileCount":13,"integrity":"sha512-CLfOMHopVGDT+udGIF4N5LIaKL8z0UPly6h6tDF6F9bhgWzHi2VmOR3qSfhk6Q8RYMzPGiTUhg9T5mTLmgQ7Lg==","signatures":[{"sig":"MEQCIFbpH6J+O0mGK+FPvM4G/6RaVPE1dSOm+A5uNGw7TLWaAiAyIMpRu4kcQ8XwAcTte4Dk3f2pIZuSocdnT5yz8pQpYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":344386},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.2.0.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/eee554e256b2833c067f778c9c4110a7/alexasomba-better-auth-paystack-1.2.0.tgz","_integrity":"sha512-CLfOMHopVGDT+udGIF4N5LIaKL8z0UPly6h6tDF6F9bhgWzHi2VmOR3qSfhk6Q8RYMzPGiTUhg9T5mTLmgQ7Lg==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","eslint --fix","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^1.3.3","@alexasomba/paystack-node":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.3","tsdown":"^0.20.3","vitest":"^3.2.4","publint":"^0.3.17","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.19.13","better-auth":"^1.5.0","lint-staged":"^16.3.1","@eslint/compat":"^2.0.2","@better-auth/core":"^1.5.0","typescript-eslint":"^8.56.1","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^63.0.0","eslint-plugin-import-x":"^4.16.1","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.59.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.2.0_1772366067745_0.19867886628510512","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@alexasomba/better-auth-paystack","version":"1.2.1","keywords":["paystack","auth","better-auth","billing-system","checkout","fintech","nigeria","ghana","south-africa","kenya","ivory-coast","cote-divoire","egypt","rwanda","ngn","ghs","zar","kes","usd","egp","subscriptions","africa","saas"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@1.2.1","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"6451efa574d8694de65b1d97c5d84a1863aee239","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-1.2.1.tgz","fileCount":12,"integrity":"sha512-bhnkmmq/C9Z88VHdSoiNDsIkI16rkWjaJkHnFnWxKdwIikk8yTpb+YM/lttHkhTcW1ykQ2d6Oc20JwtxbYTNlA==","signatures":[{"sig":"MEYCIQCdYoRMRkPUVZQ03COvJl5TmsU6mYpCzpVjyqWi2kxrhQIhAKZmQwCIV4alEsl8Emd6c6/J12Ddz6utsrpDYMs3A0+F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326126},"type":"module","_from":"file:alexasomba-better-auth-paystack-1.2.1.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","coverage":"vitest run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/8f4ede928124dbc67220e2818f0875b6/alexasomba-better-auth-paystack-1.2.1.tgz","_integrity":"sha512-bhnkmmq/C9Z88VHdSoiNDsIkI16rkWjaJkHnFnWxKdwIikk8yTpb+YM/lttHkhTcW1ykQ2d6Oc20JwtxbYTNlA==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"10.9.4","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"lint-staged":{"*.{ts,tsx}":["bash -c 'pnpm tsc --noEmit'","eslint --fix","vitest related --run"]},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4","better-call":"^2.0.1","@alexasomba/paystack-node":"^1.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.3","tsdown":"^0.21.0","vitest":"^3.2.4","publint":"^0.3.18","@eslint/js":"^9.39.3","typescript":"^5.9.3","@types/node":"^22.19.13","better-auth":"^1.5.3","lint-staged":"^16.3.2","@eslint/compat":"^2.0.2","@better-auth/core":"^1.5.3","typescript-eslint":"^8.56.1","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^3.2.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^63.0.0","eslint-plugin-import-x":"^4.16.1","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^7.0.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^8.56.1"},"peerDependencies":{"better-auth":">=1.3.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.59.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_1.2.1_1772717150901_0.1735846778126091","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@alexasomba/better-auth-paystack","version":"2.1.0","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","usd","zar"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@2.1.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"c6bb1e3104e3976e06e691c64f02a7100210f8d8","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-2.1.0.tgz","fileCount":12,"integrity":"sha512-8PAgBIhAo0m8fqYUpgNMkhxCmF+w1U/XqTi9GNPLJFsa+PaN22J2HuoC7sL33KxmJskJbXXANghEn/XccUDHSA==","signatures":[{"sig":"MEYCIQDeGItqBe8GG8DRScz7rhIWBT2H4X+wclT+TCtjUb5XXwIhALtL132jceXfbO8f//ErsAVx2SfW23YPHjxIwUlOyNCw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":377108},"type":"module","_from":"file:alexasomba-better-auth-paystack-2.1.0.tgz","types":"./dist/index.d.mts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/8c25ea9d208bbd6c4b95ab24bb22862a/alexasomba-better-auth-paystack-2.1.0.tgz","_integrity":"sha512-8PAgBIhAo0m8fqYUpgNMkhxCmF+w1U/XqTi9GNPLJFsa+PaN22J2HuoC7sL33KxmJskJbXXANghEn/XccUDHSA==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"11.11.0","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","defu":"^6.1.7","better-call":"^1.3.5","@alexasomba/paystack-node":"^1.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.18","publint":"^0.3.18","vite-plus":"^0.1.18","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.12.2","better-auth":"1.7.0-beta.1","@eslint/compat":"^2.0.5","@commitlint/cli":"^20.5.0","@better-auth/core":"1.7.0-beta.1","typescript-eslint":"^8.58.2","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^4.1.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.16.2","@typescript-eslint/parser":"^8.58.2","eslint-plugin-react-hooks":"^7.1.0","@commitlint/config-conventional":"^20.5.0","@typescript-eslint/eslint-plugin":"^8.58.2"},"peerDependencies":{"better-auth":"^1.6.5"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.60.1"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_2.1.0_1776447971340_0.637732480073617","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@alexasomba/better-auth-paystack","version":"2.2.0","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","usd","zar"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@2.2.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"5836696d25158fd4e197304793b0f33b03a98dfc","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-2.2.0.tgz","fileCount":13,"integrity":"sha512-V82baSn1S8GJYHptdMcmRZK3joO/mZLYQ71UvlUENTxvMaecqVmH2LA/n4PVH4GmvFt7VMj83V53xpojmn8F+Q==","signatures":[{"sig":"MEYCIQDGjSXaN8CbYbXvhdDhx3Ul5RCwD6Gq6CbPfDVYvg36yQIhANwuYRH0Kk3Yuhj3usAJt2l2kAtfMj/bY7ATb/hbGFxe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393521},"type":"module","_from":"file:alexasomba-better-auth-paystack-2.2.0.tgz","types":"./dist/index.d.mts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"_resolved":"/tmp/971dcd0aadcfb5af1cecf094b781d4a1/alexasomba-better-auth-paystack-2.2.0.tgz","_integrity":"sha512-V82baSn1S8GJYHptdMcmRZK3joO/mZLYQ71UvlUENTxvMaecqVmH2LA/n4PVH4GmvFt7VMj83V53xpojmn8F+Q==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"11.11.0","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","defu":"^6.1.7","better-call":"^1.3.5","@alexasomba/paystack-node":"^1.9.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.18","publint":"^0.3.18","vite-plus":"^0.1.18","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.12.2","better-auth":"1.7.0-beta.1","@eslint/compat":"^2.0.5","@commitlint/cli":"^20.5.0","@better-auth/core":"1.7.0-beta.1","typescript-eslint":"^8.58.2","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^4.1.4","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.16.2","@typescript-eslint/parser":"^8.58.2","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^20.5.0","@typescript-eslint/eslint-plugin":"^8.58.2"},"peerDependencies":{"better-auth":"^1.6.5"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.60.2"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_2.2.0_1776580334660_0.8326259376054137","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@alexasomba/better-auth-paystack","version":"2.4.0","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","usd","zar"],"author":"alexasomba","license":"MIT","_id":"@alexasomba/better-auth-paystack@2.4.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"58acfd5aeff9eeeac84f3124cadc8b79ee4607b7","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-2.4.0.tgz","fileCount":15,"integrity":"sha512-l1Prxs09rjR41tAJUVMql/DfZMhdEqlqDaF4DVyiaSzOQEQSfe9OUeSelR/YZQSruOlcmHMqPhNl99V4RlcJsg==","signatures":[{"sig":"MEYCIQDYSwkaDA72hY/6PAkBXmgyIeRtNTi7BOQevspyftVYqAIhAN3vdaOYdtowRjXjRCLjzDVAq3UVKLN9XCnw6yvfJTPZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":395256},"type":"module","types":"./dist/index.d.mts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","defu":"^6.1.7","better-call":"~1.3.5","@alexasomba/paystack-node":"^1.9.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.20","publint":"^0.3.20","vite-plus":"^0.1.20","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.12.3","better-auth":"^1.6.9","@eslint/compat":"^2.1.0","@commitlint/cli":"^21.0.0","typescript-eslint":"^8.59.2","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^4.1.5","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.16.2","@typescript-eslint/parser":"^8.59.2","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^21.0.0","@typescript-eslint/eslint-plugin":"^8.59.2"},"peerDependencies":{"better-auth":"^1.6.9"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.60.3"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_2.4.0_1778298992372_0.009855397172445324","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@alexasomba/better-auth-paystack","version":"2.4.1","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"author":"alexasomba","license":"MIT","_id":"@alexasomba/better-auth-paystack@2.4.1","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"6b2c59e93e161556dcd9005c8784c25ad32e5c2a","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-2.4.1.tgz","fileCount":20,"integrity":"sha512-AKLZ9dwl00ETsWZpq3gosv+OU22+D0N5qEdPwhh2m0kN58U8OUCGRSrxTM8BiC+i3jFAShrXnxQeFtFGiBHe/g==","signatures":[{"sig":"MEYCIQDU2ujDPqpBp11dyWsI1x5IlfRuD/snYg3a3KI58rENEQIhAPdfvUldfK638nzGgPsm4koos3deZKX7rA9J2lMh2om0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":418480},"type":"module","types":"./dist/index.d.mts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","defu":"^6.1.7","better-call":"~1.3.5","@alexasomba/paystack-node":"^1.9.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.20","publint":"^0.3.20","vite-plus":"^0.1.20","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.12.3","better-auth":"^1.6.9","@eslint/compat":"^2.1.0","@commitlint/cli":"^21.0.0","@tanstack/intent":"^0.0.40","typescript-eslint":"^8.59.2","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^4.1.5","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.16.2","@typescript-eslint/parser":"^8.59.2","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^21.0.0","@typescript-eslint/eslint-plugin":"^8.59.2"},"peerDependencies":{"better-auth":"^1.6.9"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.60.3"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_2.4.1_1778313643421_0.6304398362732027","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@alexasomba/better-auth-paystack","version":"2.4.3","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"author":"alexasomba","license":"MIT","_id":"@alexasomba/better-auth-paystack@2.4.3","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"8ce713e5ca0a00f637e76b45c75c9181f0954588","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-2.4.3.tgz","fileCount":20,"integrity":"sha512-9WmSprKKrLoIZsEz9z/gy9lPRqrQrjN26W0WdQZEdiRUXDMmTAmWN0EaOg/VFn7VyhuVj/gFwMSI46owj3p0+Q==","signatures":[{"sig":"MEUCIHoxbFt4P51sRJfD8UmEVgiUy+wfwKMSxgfH9iSdxZfoAiEA0MaQJHF41q73qbXwNuaA+BFuAQK750fKh3YXXO/mmpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@2.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415461},"type":"module","types":"./dist/index.d.mts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","defu":"^6.1.7","better-call":"~1.3.5","@alexasomba/paystack-node":"^1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.20","publint":"^0.3.20","vite-plus":"^0.1.20","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.12.3","better-auth":"^1.6.9","@eslint/compat":"^2.1.0","@commitlint/cli":"^21.0.0","@tanstack/intent":"^0.0.40","typescript-eslint":"^8.59.2","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^4.1.5","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.16.2","@typescript-eslint/parser":"^8.59.2","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^21.0.0","@typescript-eslint/eslint-plugin":"^8.59.2"},"peerDependencies":{"better-auth":"^1.6.9"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.60.3"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_2.4.3_1778593554721_0.16141696596275246","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@alexasomba/better-auth-paystack","version":"2.4.4","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"author":"alexasomba","license":"MIT","_id":"@alexasomba/better-auth-paystack@2.4.4","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"a9380beeef9cbb7e1fc1339be0d8e3cccd380aad","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-2.4.4.tgz","fileCount":25,"integrity":"sha512-zxmxGJaZmyz7DfNYfi4dooEsa2fvMvjqNAuvyibbqMlrIg5VoGNb74Oh7ArDl85tsD+jc/M4vZfSllKze3bs4g==","signatures":[{"sig":"MEQCIFPFx5OoURThtOkawGIEQwmOirO+Cil9/lW4u0wVLsucAiBYxY+rdXRlo8KQle2gTOEOMbDokdK7DdPJDmT1Ez6/QA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@2.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":434196},"type":"module","types":"./dist/index.d.mts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","defu":"^6.1.7","better-call":"~1.3.5","@alexasomba/paystack-node":"^1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.20","publint":"^0.3.20","vite-plus":"^0.1.20","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.12.3","better-auth":"^1.6.9","@eslint/compat":"^2.1.0","@commitlint/cli":"^21.0.0","@tanstack/intent":"^0.0.40","typescript-eslint":"^8.59.2","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^4.1.5","@arethetypeswrong/cli":"^0.18.2","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.16.2","@typescript-eslint/parser":"^8.59.2","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^21.0.0","@typescript-eslint/eslint-plugin":"^8.59.2"},"peerDependencies":{"better-auth":"^1.6.9"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.60.3"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_2.4.4_1778608343296_0.5705510954322301","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@alexasomba/better-auth-paystack","version":"2.5.0","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@2.5.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"8b4ea97384970e21f6cb84851f2492ee410832a4","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-2.5.0.tgz","fileCount":35,"integrity":"sha512-sbIj3yjgFH9rMRbTu0iXMk7v3dQnHr3cCs1kFYS5XiS/InXcTaR79uLT13PrKmt8FAl+UcMRp68pLcLN1fVnrw==","signatures":[{"sig":"MEYCIQDpPmIhP+CW1/fKSIBKYHQqZI25fhJK8kINBmSZhX+8QAIhALuoBt0Stj2nwvIMyFlUC+6v82J+Mk69dmEnGXjAz75t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":455912},"type":"module","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"gitHead":"834027823031889004cd6eeb8f37cc0dbabeb725","scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict","skills:dry-run":"skills-npm --cwd examples/tanstack --dry-run --yes --agents universal --force","skills:install":"skills-npm --cwd examples/tanstack --yes --force","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"alexasomba","email":"alexanderasomba@gmail.com"},"deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"11.12.1","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","dependencies":{"zod":"catalog:","defu":"catalog:","better-call":"catalog:","@alexasomba/paystack-node":"catalog:"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.0.9","devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.20","publint":"catalog:","vite-plus":"catalog:","@eslint/js":"catalog:","skills-npm":"^1.1.1","typescript":"catalog:","@types/node":"catalog:","better-auth":"catalog:","@eslint/compat":"catalog:","@commitlint/cli":"^21.0.0","@tanstack/intent":"^0.0.40","typescript-eslint":"catalog:","@better-fetch/fetch":"catalog:","@vitest/coverage-v8":"catalog:","@arethetypeswrong/cli":"catalog:","eslint-plugin-promise":"catalog:","eslint-plugin-unicorn":"catalog:","eslint-plugin-import-x":"catalog:","@typescript-eslint/parser":"catalog:","eslint-plugin-react-hooks":"catalog:","@commitlint/config-conventional":"^21.0.0","@typescript-eslint/eslint-plugin":"catalog:"},"peerDependencies":{"better-auth":"^1.6.9"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"catalog:"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_2.5.0_1780294951585_0.2809608623733757","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@alexasomba/better-auth-paystack","version":"3.0.0","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@3.0.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"12a472735b728e13ec7bb0c17dc990f358de6214","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-3.0.0.tgz","fileCount":35,"integrity":"sha512-h0ph3EGWCQRzGteyPDCgcbzlTxPktQUSPQkPBLoFJAWb/5OlVHEyZMNDdWzKD1z8DoM4deGqLL4ixxQzVer0bA==","signatures":[{"sig":"MEQCIHikEz8SSjbWcGa7sntn7x+1jyS0zvuY/ehro6SUeK1EAiAiJjPXMg6OEw4Zm9Lnx93QgNIwHYXCehX23JpM8cxvuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":471831},"type":"module","_from":"file:/home/runner/work/_temp/npm-pack/alexasomba-better-auth-paystack-3.0.0.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"node scripts/lint-types-packed.mjs","lint:package":"publint run --strict","skills:dry-run":"skills-npm --cwd examples/tanstack --dry-run --yes --agents universal --force","skills:install":"skills-npm --cwd examples/tanstack --yes --force","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b82b6dff-8919-435a-bb15-e0da7993baf0"}},"_resolved":"/home/runner/work/_temp/npm-pack/alexasomba-better-auth-paystack-3.0.0.tgz","_integrity":"sha512-h0ph3EGWCQRzGteyPDCgcbzlTxPktQUSPQkPBLoFJAWb/5OlVHEyZMNDdWzKD1z8DoM4deGqLL4ixxQzVer0bA==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"11.13.0","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","defu":"^6.1.7","better-call":"~1.3.5","@alexasomba/paystack-node":"^1.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.24","publint":"^0.3.21","vite-plus":"^0.1.24","@eslint/js":"^10.0.1","skills-npm":"^1.1.1","typescript":"^6.0.3","@types/node":"^24.12.4","better-auth":"^1.6.13","@eslint/compat":"^2.1.0","@commitlint/cli":"^21.0.2","@tanstack/intent":"^0.0.41","typescript-eslint":"^8.60.0","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^4.1.8","@arethetypeswrong/cli":"^0.18.3","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.16.2","@typescript-eslint/parser":"^8.60.0","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^21.0.2","@typescript-eslint/eslint-plugin":"^8.60.0"},"peerDependencies":{"better-auth":"^1.6.13"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.61.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_3.0.0_1780402211951_0.7232020701163295","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@alexasomba/better-auth-paystack","version":"3.0.1","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@3.0.1","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"146ef5e1b740e99a0758cf4960be7da70317910d","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-3.0.1.tgz","fileCount":34,"integrity":"sha512-NAlGY/AY8KCXjORDrCXuKXjuJq8T7t/Aiw23dQsYmNrxu434hOKmSqa34wfgnwqqInSAv484yD8+tNfqMkGhsA==","signatures":[{"sig":"MEUCIFH5h1tuXwdVSfEl4o6cCDZ/1QC9FnQa9H0eX3XEtKUuAiEA1578suw1X19pe+yTWP6UR+6SIoqnVq/ToQwK/UHduoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474846},"type":"module","_from":"file:/home/runner/work/_temp/npm-pack/alexasomba-better-auth-paystack-3.0.1.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"node scripts/lint-types-packed.mjs","lint:package":"publint run --strict","skills:dry-run":"skills-npm --cwd examples/tanstack --dry-run --yes --agents universal --force","skills:install":"skills-npm --cwd examples/tanstack --yes --force","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bbd82a89-4ae9-4b05-9360-2577962603b6"}},"_resolved":"/home/runner/work/_temp/npm-pack/alexasomba-better-auth-paystack-3.0.1.tgz","_integrity":"sha512-NAlGY/AY8KCXjORDrCXuKXjuJq8T7t/Aiw23dQsYmNrxu434hOKmSqa34wfgnwqqInSAv484yD8+tNfqMkGhsA==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"11.16.0","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","defu":"^6.1.7","better-call":"~1.3.5","@alexasomba/paystack-node":"^1.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@^0.1.24","publint":"^0.3.21","vite-plus":"^0.1.24","@eslint/js":"^10.0.1","skills-npm":"^1.1.1","typescript":"^6.0.3","@types/node":"^24.12.4","better-auth":"^1.6.13","@eslint/compat":"^2.1.0","@commitlint/cli":"^21.0.2","@tanstack/intent":"^0.0.41","typescript-eslint":"^8.60.0","@better-fetch/fetch":"^1.1.21","@vitest/coverage-v8":"^4.1.8","@arethetypeswrong/cli":"^0.18.3","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.16.2","@typescript-eslint/parser":"^8.60.0","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^21.0.2","@typescript-eslint/eslint-plugin":"^8.60.0"},"peerDependencies":{"better-auth":"^1.6.13"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.61.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_3.0.1_1785322564948_0.5869470943328128","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@alexasomba/better-auth-paystack","version":"3.1.0","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@3.1.0","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"f6c34872a3c65ebfdbcf934b8eeb03b86332aa89","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-3.1.0.tgz","fileCount":34,"integrity":"sha512-LpmSzi433lYm2hm+H4NbVJGearQ/90kStsztpgOT4DFG9lZM6ZXHyQbOTEQkkonqtDAd4C7lHtWZ+4Rn5R6LSQ==","signatures":[{"sig":"MEUCIQC5niVvJiWYeRQZ/y2Tnr6hWYEdwvssEBjw6h7U3849BgIgQS2okzzMgrnDj2BLC+yD2UKaA3ozDp1/MKYvviNK50E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":512651},"type":"module","_from":"file:/home/runner/work/_temp/npm-pack/alexasomba-better-auth-paystack-3.1.0.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"node scripts/lint-types-packed.mjs","lint:package":"publint run --strict","skills:dry-run":"skills-npm --cwd examples/tanstack --dry-run --yes --agents universal --force","skills:install":"skills-npm --cwd examples/tanstack --yes --force","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bbd82a89-4ae9-4b05-9360-2577962603b6"}},"_resolved":"/home/runner/work/_temp/npm-pack/alexasomba-better-auth-paystack-3.1.0.tgz","_integrity":"sha512-LpmSzi433lYm2hm+H4NbVJGearQ/90kStsztpgOT4DFG9lZM6ZXHyQbOTEQkkonqtDAd4C7lHtWZ+4Rn5R6LSQ==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"11.16.0","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","defu":"^6.1.7","better-call":"~1.3.6","@alexasomba/paystack-node":"^1.10.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","publint":"^0.3.21","vite-plus":"^0.2.6","@eslint/js":"^10.0.1","skills-npm":"^1.2.0","typescript":"^6.0.3","@types/node":"^24.13.2","better-auth":"^1.6.20","@eslint/compat":"^2.1.0","@commitlint/cli":"^21.1.0","@tanstack/intent":"^0.0.41","typescript-eslint":"^8.62.0","@better-fetch/fetch":"^1.3.1","@vitest/coverage-v8":"^4.1.9","@arethetypeswrong/cli":"^0.18.4","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.17.0","@typescript-eslint/parser":"^8.62.0","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^21.1.0","@typescript-eslint/eslint-plugin":"^8.62.0"},"peerDependencies":{"better-auth":"^1.6.20"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.62.2"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_3.1.0_1785327016316_0.5831526282555708","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@alexasomba/better-auth-paystack","version":"3.1.1","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"author":{"name":"alexasomba"},"license":"MIT","_id":"@alexasomba/better-auth-paystack@3.1.1","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"homepage":"https://github.com/alexasomba/better-auth-paystack#readme","bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"dist":{"shasum":"86f638909607c2f51d668700e7813f575c51047d","tarball":"https://registry.npmjs.org/@alexasomba/better-auth-paystack/-/better-auth-paystack-3.1.1.tgz","fileCount":34,"integrity":"sha512-mYHVMQGpnPE7JJIcBg8YoBiBAd8pm5kHzdDKR5IJnxDtOLclMzvPfv+SUrsSB/HHpvjMBOpKtozsjRonjn/aVg==","signatures":[{"sig":"MEUCIQCjjQFQPIqv2YvgbF5dX17+84dLYlbZy4NHnRFbu/iQAgIgVfglWEtCtPCfFg/eEBocusvroPU+gRXJK+R+84RNi3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexasomba%2fbetter-auth-paystack@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":512651},"type":"module","_from":"file:/home/runner/work/_temp/npm-pack/alexasomba-better-auth-paystack-3.1.1.tgz","types":"./dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./client":{"types":"./dist/client.d.mts","import":"./dist/client.mjs","default":"./dist/client.mjs"}},"funding":[{"url":"https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp","type":"individual"}],"scripts":{"dev":"vp pack --watch","lint":"vp lint src","test":"vp test run","build":"vp pack","coverage":"vp test run --coverage","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"node scripts/lint-types-packed.mjs","lint:package":"publint run --strict","skills:dry-run":"skills-npm --cwd examples/tanstack --dry-run --yes --agents universal --force","skills:install":"skills-npm --cwd examples/tanstack --yes --force","test:integration":"RUN_INTEGRATION_TESTS=1 vp test run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bbd82a89-4ae9-4b05-9360-2577962603b6"}},"_resolved":"/home/runner/work/_temp/npm-pack/alexasomba-better-auth-paystack-3.1.1.tgz","_integrity":"sha512-mYHVMQGpnPE7JJIcBg8YoBiBAd8pm5kHzdDKR5IJnxDtOLclMzvPfv+SUrsSB/HHpvjMBOpKtozsjRonjn/aVg==","deprecated":"Deprecated: use the unscoped better-auth-paystack package instead. Install with: npm install better-auth-paystack. Update imports to better-auth-paystack.","repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"_npmVersion":"11.16.0","description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","defu":"^6.1.7","better-call":"~1.3.7","@alexasomba/paystack-node":"^1.10.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","publint":"^0.3.21","vite-plus":"^0.2.6","@eslint/js":"^10.0.1","skills-npm":"^1.2.0","typescript":"^6.0.3","@types/node":"^24.13.2","better-auth":"^1.6.25","@eslint/compat":"^2.1.0","@commitlint/cli":"^21.1.0","@tanstack/intent":"^0.0.41","typescript-eslint":"^8.62.0","@better-fetch/fetch":"^1.3.1","@vitest/coverage-v8":"^4.1.9","@arethetypeswrong/cli":"^0.18.4","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^64.0.0","eslint-plugin-import-x":"^4.17.0","@typescript-eslint/parser":"^8.62.0","eslint-plugin-react-hooks":"^7.1.1","@commitlint/config-conventional":"^21.1.0","@typescript-eslint/eslint-plugin":"^8.62.0"},"peerDependencies":{"better-auth":"^1.6.25"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"^4.62.2"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-paystack_3.1.1_1785333257482_0.5527025099853777","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-12-15T19:01:30.376Z","modified":"2026-08-04T12:08:51.166Z","0.0.4":"2025-12-15T19:01:30.700Z","0.1.0":"2025-12-19T15:25:26.974Z","0.1.1":"2025-12-19T15:51:33.393Z","0.2.0":"2026-02-02T07:56:33.088Z","0.2.1":"2026-02-02T08:10:38.150Z","0.2.2":"2026-02-02T09:13:04.866Z","1.0.0-rc.1":"2026-02-09T05:13:19.804Z","1.0.0-rc.2":"2026-02-09T05:43:57.015Z","1.0.0-rc.3":"2026-02-09T06:26:29.190Z","1.0.0":"2026-02-10T09:45:06.475Z","1.0.4":"2026-02-11T20:41:48.194Z","1.1.0":"2026-02-23T18:24:13.691Z","1.1.2":"2026-02-26T11:26:10.227Z","1.2.0":"2026-03-01T11:54:27.894Z","1.2.1":"2026-03-05T13:25:51.065Z","2.1.0":"2026-04-17T17:46:11.487Z","2.2.0":"2026-04-19T06:32:14.815Z","2.4.0":"2026-05-09T03:56:32.546Z","2.4.1":"2026-05-09T08:00:43.586Z","2.4.3":"2026-05-12T13:45:54.879Z","2.4.4":"2026-05-12T17:52:23.433Z","2.5.0":"2026-06-01T06:22:31.982Z","3.0.0":"2026-06-02T12:10:12.160Z","3.0.1":"2026-07-29T10:56:05.086Z","3.1.0":"2026-07-29T12:10:16.460Z","3.1.1":"2026-07-29T13:54:17.625Z"},"bugs":{"url":"https://github.com/alexasomba/better-auth-paystack/issues"},"author":{"name":"alexasomba"},"license":"MIT","homepage":"https://github.com/alexasomba/better-auth-paystack#readme","keywords":["africa","auth","better-auth","billing-system","checkout","cote-divoire","egp","egypt","fintech","ghana","ghs","ivory-coast","kenya","kes","ngn","nigeria","paystack","rwanda","saas","south-africa","subscriptions","tanstack-intent","usd","zar"],"repository":{"url":"git+https://github.com/alexasomba/better-auth-paystack.git","type":"git"},"description":"Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more","maintainers":[{"name":"alexasomba","email":"alexanderasomba@gmail.com"}],"readme":"# Better Auth Paystack Plugin\n\nA TypeScript-first plugin that integrates Paystack into [Better Auth](https://www.better-auth.com), providing a production-ready billing system with support for subscriptions (native & local), one-time payments, trials, organization billing, and secure webhooks.\n\n<div align=\"center\">\n\n![npm downloads](https://img.shields.io/npm/dm/@alexasomba/better-auth-paystack.svg)\n[![GitHub stars](https://img.shields.io/github/stars/alexasomba/better-auth-paystack.svg?style=social&label=Star)](https://github.com/alexasomba/better-auth-paystack/stargazers)\n[![GitHub release](https://img.shields.io/github/v/release/alexasomba/better-auth-paystack)](https://github.com/alexasomba/better-auth-paystack/releases)\n[![bundlephobia](https://img.shields.io/bundlephobia/minzip/@alexasomba/better-auth-paystack)](https://bundlephobia.com/result?p=@alexasomba/better-auth-paystack)\n[![Follow on Twitter](https://img.shields.io/twitter/follow/alexasomba?style=social)](https://twitter.com/alexasomba)\n![GitHub License](https://img.shields.io/github/license/alexasomba/better-auth-paystack)\n\n</div>\n\n[**Live Demo (Tanstack Start)**](https://better-auth-paystack.gittech.workers.dev) | [**Source Code**](https://github.com/alexasomba/better-auth-paystack/tree/main/examples/tanstack)\n\n## AI Agent Skills\n\nThis package publishes agent skills so AI coding agents can load package-specific guidance for setup, subscriptions, organization billing, TanStack Start integration, client APIs, webhooks, local subscription lifecycle, schema changes, and testing.\n\nUse [TanStack Intent](https://www.npmjs.com/package/@tanstack/intent) when you want to explicitly list or load individual skills:\n\n```bash\nnpx @tanstack/intent@latest list\nnpx @tanstack/intent@latest load @alexasomba/better-auth-paystack#better-auth-paystack-setup\nnpx @tanstack/intent@latest load @alexasomba/better-auth-paystack#paystack-testing-fixtures\n```\n\nIf you use an AI agent, run `npx @tanstack/intent@latest install` in your project so the agent knows how to discover package skills.\n\nThis package also ships skills in the npm package under `skills/*/SKILL.md`, so projects can use [skills-npm](https://www.npmjs.com/package/skills-npm) to symlink installed package skills for compatible agents:\n\n```bash\nnpm install @alexasomba/better-auth-paystack\nnpx skills-npm --yes\n```\n\nFor this repository, maintainers can run `pnpm run skills:dry-run` to preview discovery through the TanStack example fixture or `pnpm run skills:install` to create local agent skill symlinks from that fixture.\n\n## Features\n\n- [x] **Billing Patterns**: Support for Paystack-native plans, local-managed subscriptions, and one-time payments (products/amounts).\n- [x] **Auto Customer Creation**: Optional Paystack customer creation on user sign up or organization creation.\n- [x] **Trial Management**: Configurable trial periods with built-in abuse prevention logic.\n- [x] **Organization Billing**: Associate subscriptions with organizations and authorize access via roles.\n- [x] **Subscription Channel Controls**: Restrict subscription checkout to specific Paystack payment channels such as card-only.\n- [x] **Enforced Limits & Seats**: Automatic enforcement of member seat upgrades and resource limits (teams).\n- [x] **Scheduled Changes**: Defer subscription updates or cancellations to the end of the billing cycle.\n- [x] **Proration**: Immediate mid-cycle prorated upgrades for local plans, using saved-card charges when possible and checkout fallback when interactive payment is required.\n- [x] **Popup Modal Flow**: Optional support for Paystack's inline checkout experience via `@alexasomba/paystack-inline`.\n- [x] **Webhook Security**: Pre-configured signature verification (HMAC-SHA512) and optional IP whitelisting.\n- [x] **Transaction History**: Built-in support for listing and viewing local transaction records.\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- **Node.js**: `v22.0.0` or higher.\n- **Better Auth**: `v1.6.9` or higher.\n\n### 1. Install Plugin & SDKs\n\n```bash\nnpm install better-auth @alexasomba/better-auth-paystack @alexasomba/paystack-node\n```\n\n#### Optional: Browser SDK (for Popup Modals)\n\n```bash\nnpm install @alexasomba/paystack-inline\n```\n\n### 2. Configure Environment Variables\n\n```env\nPAYSTACK_SECRET_KEY=sk_test_...\nBETTER_AUTH_SECRET=...\nBETTER_AUTH_URL=http://localhost:8787\n```\n\n### 3. Setup Server Plugin\n\n```ts title=\"auth.ts\"\nimport { betterAuth } from \"better-auth\";\nimport { paystack } from \"@alexasomba/better-auth-paystack\";\nimport { createPaystack } from \"@alexasomba/paystack-node\";\nimport { admin } from \"better-auth/plugins\";\n\nconst paystackClient = createPaystack({\n  secretKey: process.env.PAYSTACK_SECRET_KEY!,\n});\n\nexport const auth = betterAuth({\n  plugins: [\n    admin(),\n    paystack({\n      paystackClient,\n      secretKey: process.env.PAYSTACK_SECRET_KEY!,\n      createCustomerOnSignUp: true,\n      subscription: {\n        enabled: true,\n        allowedPaymentChannels: [\"card\"], // Optional: enforce card-only subscriptions\n        plans: [\n          {\n            name: \"pro\",\n            group: \"workspace\", // Optional: one active/trialing subscription per group\n            planCode: \"PLN_pro_123\", // Native: Managed by Paystack\n            freeTrial: { days: 14 },\n            limits: { teams: 5, seats: 10 }, // Custom resource & member limits\n          },\n          {\n            name: \"starter\",\n            amount: 50000, // Local: Managed by your app (500 NGN)\n            currency: \"NGN\",\n            interval: \"monthly\",\n          },\n        ],\n      },\n      products: {\n        products: [{ name: \"credits_50\", amount: 200000, currency: \"NGN\" }],\n      },\n    }),\n  ],\n});\n```\n\nPaystack signs webhook payloads with the same `PAYSTACK_SECRET_KEY` used for API authentication;\nthere is no separate webhook secret. Legacy `webhook.secret` and `paystackWebhookSecret` options\nare accepted for source compatibility but ignored.\n\n### 4. Configure Client Plugin\n\n```ts title=\"client.ts\"\nimport { createAuthClient } from \"better-auth/client\";\nimport { paystackClient } from \"@alexasomba/better-auth-paystack/client\";\nimport { adminClient } from \"better-auth/client/plugins\";\n\nexport const client = createAuthClient({\n  plugins: [adminClient(), paystackClient({ subscription: true })],\n});\n```\n\n### 5. Migrate Database Schema\n\n```bash\nnpx better-auth migrate\n```\n\n---\n\n## Migration Guide\n\nVersion `2.0.0` contains a security-focused breaking change.\n\n- Removed public/client operator actions:\n  - `authClient.paystack.syncProducts()`\n  - `authClient.paystack.syncPlans()`\n  - `authClient.paystack.chargeRecurringSubscription(...)`\n- Removed public Better Auth endpoints for:\n  - `/paystack/sync-products`\n  - `/paystack/sync-plans`\n  - `/paystack/charge-recurring`\n- Added trusted server operations:\n  - `chargeSubscriptionRenewal`\n  - `syncPaystackProducts`\n  - `syncPaystackPlans`\n\n### Old\n\n```ts\nawait authClient.paystack.syncProducts();\nawait authClient.paystack.syncPlans();\nawait authClient.paystack.chargeRecurringSubscription({\n  subscriptionId: \"sub_123\",\n});\n```\n\n### New\n\n```ts\nimport {\n  chargeSubscriptionRenewal,\n  syncPaystackPlans,\n  syncPaystackProducts,\n  type ChargeRecurringSubscriptionResult,\n  type PaystackSyncResult,\n} from \"@alexasomba/better-auth-paystack\";\n\nconst ctx = { context: await auth.$context } as any;\nconst paystackOptions = {\n  secretKey: process.env.PAYSTACK_SECRET_KEY!,\n  paystackClient,\n};\n\nawait syncPaystackProducts(ctx, paystackOptions);\nawait syncPaystackPlans(ctx, paystackOptions);\nawait chargeSubscriptionRenewal(ctx, paystackOptions, {\n  subscriptionId: \"sub_123\",\n});\n```\n\nThese operations are intentionally server-only. Do not expose them through browser-triggered auth client calls.\n\n---\n\n## Billing Patterns\n\n### 1. Subscriptions\n\n#### Native (Recommended)\n\nUse `planCode` from your Paystack Dashboard. Paystack handles the recurring logic and emails.\n\n```ts\n{ name: \"pro\", planCode: \"PLN_xxx\" }\n```\n\n#### Local\n\nUse `amount` and `interval`. The plugin stores the status locally, allowing you to manage custom recurring logic or one-off \"access periods\".\n\n```ts\n{ name: \"starter\", amount: 50000, interval: \"monthly\" }\n```\n\n### 2. One-Time Payments\n\n#### Fixed Products\n\nDefine pre-configured products in your server settings and purchase them by name.\n\n```ts\nawait authClient.paystack.transaction.initialize({\n  product: \"credits_50\",\n});\n```\n\n#### Ad-hoc Amounts\n\nCharge dynamic amounts for top-ups, tips, or custom invoices.\n\n```ts\nawait authClient.paystack.transaction.initialize({\n  amount: 100000, // 1000 NGN\n  currency: \"NGN\",\n  metadata: { type: \"donation\" },\n});\n```\n\n---\n\n## Limits & Seat Management\n\nThe plugin automatically enforces limits across active and trialing subscriptions. When multiple\nsubscription groups define the same numeric limit, the highest value wins; plan features are\ncombined.\n\n### Member Seat Limits\n\nPurchased seats are stored in the `subscription.seats` field. The plugin hooks into `member.create` and `invitation.create` to block additions once the limit is reached.\n\n### Resource Limits (e.g., Teams)\n\nDefine limits in your plan config, and they will be checked during resource creation:\n\n```ts\nplans: [{ name: \"pro\", limits: { teams: 5, seats: 10 } }];\n```\n\nThe plugin natively checks the `teams` limit if using the Better Auth Organization plugin.\n\n### Subscription Groups\n\nSet `group` on related plans when a user or organization may own independent subscriptions:\n\n```ts\nplans: [\n  { name: \"pro\", group: \"workspace\", planCode: \"PLN_pro\" },\n  { name: \"priority-support\", group: \"support\", planCode: \"PLN_support\" },\n];\n```\n\nGroup names are trimmed and lowercased. A reference can have one active or trialing subscription\nper group. Plans without `group` remain in the legacy default group, represented by a nullable\n`subscription.groupId`, so existing configurations keep their previous single-subscription\nbehavior.\n\n---\n\n## Currency Support\n\nThe plugin supports the following currencies with automatic minimum transaction amount validation:\n\n| Currency | Name                   | Minimum Amount |\n| -------- | ---------------------- | -------------- |\n| **NGN**  | Nigerian Naira         | ₦50.00         |\n| **GHS**  | Ghanaian Cedi          | ₵0.10          |\n| **ZAR**  | South African Rand     | R1.00          |\n| **KES**  | Kenyan Shilling        | KSh 3.00       |\n| **USD**  | United States Dollar   | $2.00          |\n| **XOF**  | West African CFA Franc | CFA 100        |\n\nTransactions below these thresholds will be rejected with a `BAD_REQUEST` error.\n\n## Advanced Usage\n\n### Organization Billing\n\nEnable `organization.enabled` to bill organizations instead of users.\n\n- **Auto Customer**: Organizations get their own `paystackCustomerCode`.\n- **Authorization**: Organization owners and admins can manage billing by default. Use `organization.billingRoles` to extend the trusted role list, or `subscription.authorizeReference` when you need fully custom authorization.\n\n```ts\npaystack({\n  subscription: {\n    enabled: true,\n    plans: [],\n  },\n  organization: {\n    enabled: true,\n    billingRoles: [\"owner\", \"admin\", \"billing\"],\n  },\n});\n```\n\n### Inline Popup Modal\n\nUse `@alexasomba/paystack-inline` for a seamless UI.\n\n```ts\nconst { data } = await authClient.subscription.upgrade({ plan: \"pro\" });\nif (data?.kind === \"checkout\") {\n  const paystack = createPaystack({ publicKey: \"pk_test_...\" });\n  paystack.checkout({\n    accessCode: data.accessCode,\n    onSuccess: (res) => authClient.paystack.transaction.verify({ reference: res.reference }),\n  });\n}\n```\n\n### Scheduled Changes & Cancellation\n\nDefer changes to the end of the current billing cycle:\n\n- **Upgrades**: Pass `scheduleAtPeriodEnd: true` in `initializeTransaction()`.\n- **Cancellations**: Use `authClient.subscription.cancel({ subscriptionCode, atPeriodEnd: true })` to keep the subscription active until the period ends.\n\n### Mid-Cycle Proration (`prorateAndCharge`)\n\nThe plugin can dynamically calculate the cost difference for immediate mid-cycle upgrades (like adding more seats).\nFor locally managed plans:\n\n- If the subscription already has a reusable Paystack authorization code, the plugin charges the prorated delta off-session, records a local `paystackTransaction`, and immediately updates the subscription.\n- If there is no reusable authorization code available (for example, transfer-based payments), the plugin initializes a new checkout for the prorated delta instead of silently upgrading without payment.\n- If the prorated amount is below Paystack's minimum charge for the currency, the request is rejected so you can schedule the change for period end instead of undercharging.\n\n```ts\nconst { data } = await authClient.paystack.transaction.initialize({\n  plan: \"pro\",\n  quantity: 5, // Upgrading seats\n  prorateAndCharge: true, // Charges saved authorization or returns a checkout redirect for the delta\n});\n\nif (data?.kind === \"checkout\") {\n  window.location.href = data.url;\n}\n\nif (data?.kind === \"prorated\") {\n  console.log(data.message);\n}\n```\n\nWhen the flow falls back to checkout, verify the returned transaction reference after payment. The plugin uses the stored proration metadata to apply the pending plan/seat change only after successful verification.\n\n### Restricting Subscription Payment Channels\n\nUse `subscription.allowedPaymentChannels` to constrain which Paystack checkout channels can be used for subscription flows.\nThis applies to standard subscription checkout, trial authorization flows, and interactive proration checkout fallbacks.\n\n```ts\npaystack({\n  subscription: {\n    enabled: true,\n    allowedPaymentChannels: [\"card\"],\n    plans: [{ name: \"starter\", amount: 50000, currency: \"NGN\", interval: \"monthly\" }],\n  },\n});\n```\n\nIf a subscription payment is later verified with a disallowed channel, the plugin rejects activation instead of silently creating the subscription.\n\n### Webhook Security\n\nThe plugin automatically verifies the `x-paystack-signature` header to ensure events are authentic. For an extra layer of security, you can enable **IP Whitelisting** to restrict processing to Paystack's official servers.\n\n```ts\npaystack({\n  secretKey: process.env.PAYSTACK_SECRET_KEY!,\n  webhook: {\n    verifyIP: true, // Enable IP whitelisting (defaults to false for flexible proxy support)\n    trustedIPs: [\"52.31.139.75\", \"52.49.173.169\", \"52.214.14.220\"], // Optional: override trusted IPs\n  },\n});\n```\n\nWebhook signatures are always verified with `secretKey`, as required by Paystack. Do not create or\nconfigure a separate `PAYSTACK_WEBHOOK_SECRET`.\n\n### Trial Abuse Prevention\n\nThe plugin checks the `referenceId` history. If a trial was ever used (active, expired, or trialing), it will not be granted again, preventing resubscribe-abuse.\n\n### Lifecycle Hooks\n\nReact to billing events on the server by providing callbacks in your configuration:\n\n#### Subscription Hooks (`subscription.*`)\n\n- `onSubscriptionComplete`: Called after successful transaction verification (Native or Local).\n- `onSubscriptionCreated`: Called when a subscription record is first initialized in the DB.\n- `onSubscriptionUpdate`: Called after a persisted lifecycle change.\n- `onSubscriptionCancel`: Called when a user or organization cancels their subscription.\n\n#### Customer Hooks (`top-level` or `organization.*`)\n\n- `onCustomerCreate`: Called after the plugin successfully creates a Paystack customer.\n- `getCustomerCreateParams`: Return a custom object to override/extend the data sent to Paystack during customer creation.\n\n#### Trial Hooks (`subscription.plans[].freeTrial.*`)\n\n- `onTrialStart`: Called when a new trial period begins.\n- `onTrialEnd`: Called when a trial converts to an active subscription.\n- `onTrialExpired`: Called when a trial ends without conversion.\n\nApplication callback failures are logged after billing state is persisted and do not cause an\notherwise valid Paystack webhook to be replayed.\n\n#### Global Hook\n\n- `onEvent`: Receives every webhook event payload sent from Paystack for custom processing.\n\n### Trusted Server Operations\n\nRecurring renewals and Paystack catalog sync are intentionally not exposed through the browser auth client.\nInvoke them from trusted backend code only:\n\n```ts\nimport {\n  chargeSubscriptionRenewal,\n  reconcilePaystackTransaction,\n  syncPaystackPlans,\n  syncPaystackProducts,\n} from \"@alexasomba/better-auth-paystack\";\n\nconst ctx = { context: await auth.$context } as any;\n\nawait chargeSubscriptionRenewal(ctx, paystackOptions, {\n  subscriptionId: \"sub_123\",\n});\n\nconst settlement = await reconcilePaystackTransaction(ctx, paystackOptions, {\n  reference: \"PAYSTACK_REFERENCE\",\n  source: \"queue\",\n  referenceId: \"user_or_org_id\",\n});\n\nif (settlement.ok) {\n  console.log(settlement.transaction.status, settlement.subscription.updated);\n}\n\nawait syncPaystackProducts(ctx, paystackOptions);\nawait syncPaystackPlans(ctx, paystackOptions);\n```\n\nUse `reconcilePaystackTransaction` from webhook handlers, queue retries, cron jobs, or admin actions when trusted server code needs the same verification and local transaction/subscription side effects as the browser verify endpoint.\n\n### Authorization & Security\n\n#### `authorizeReference`\n\nControl who can manage billing for specific references (Users or Organizations).\n\n```ts\npaystack({\n  subscription: {\n    authorizeReference: async ({ user, referenceId, action }) => {\n      // Example: Only allow Org Admins to initialize transactions\n      if (referenceId.startsWith(\"org_\")) {\n        const member = await db.findOne({\n          model: \"member\",\n          where: [\n            { field: \"organizationId\", value: referenceId },\n            { field: \"userId\", value: user.id },\n          ],\n        });\n        return member?.role === \"admin\";\n      }\n      return user.id === referenceId;\n    },\n  },\n});\n```\n\n---\n\n## Client SDK Reference\n\nThe client plugin exposes fully typed canonical methods under `authClient.paystack`, `authClient.transaction`, and `authClient.subscription`.\n\n- `authClient.transaction.initialize`, `verify`, `list`\n- `authClient.subscription.create`, `upgrade`, `cancel`, `restore`, `list`, `billingPortal`\n- `authClient.paystack.config`, `listProducts`, `listPlans`, plus the transaction/subscription helpers above\n\nLegacy compatibility aliases remain available for migration, but new code should use the canonical methods:\n\n- `authClient.subscription.disable(...)` -> use `authClient.subscription.cancel(...)`\n- `authClient.subscription.enable(...)` -> use `authClient.subscription.restore(...)`\n\n### `authClient.subscription.upgrade` / `create`\n\nInitializes a transaction to create or upgrade a subscription.\n\n```ts\ntype upgradeSubscription = {\n  /**\n   * The name of the plan to subscribe to.\n   */\n  plan: string;\n  /**\n   * The email of the subscriber. Defaults to the current user's email.\n   */\n  email?: string;\n  /**\n   * Amount to charge (if not using a Paystack Plan Code).\n   */\n  amount?: number;\n  /**\n   * Currency code (e.g., \"NGN\").\n   */\n  currency?: string;\n  /**\n   * The callback URL to redirect to after payment.\n   */\n  callbackURL?: string;\n  /**\n   * Additional metadata to store with the transaction.\n   */\n  metadata?: Record<string, unknown>;\n  /**\n   * Reference ID for the subscription owner (User ID or Org ID).\n   * Defaults to the current user's ID.\n   */\n  referenceId?: string;\n  /**\n   * Number of seats to purchase (for team plans).\n   */\n  quantity?: number;\n};\n```\n\n### `authClient.paystack.transaction.initialize`\n\nSame as `upgrade`, but can also be used for one-time payments by omitting `plan` and providing `amount` or `product`.\n\n```ts\ntype initializeTransaction = {\n  /**\n   * Plan name (for subscriptions).\n   */\n  plan?: string;\n  /**\n   * Product name (for one-time purchases).\n   */\n  product?: string;\n  /**\n   * Amount to charge (if sending raw amount).\n   */\n  amount?: number;\n  /**\n   * For existing locally managed subscriptions, calculate a mid-cycle delta and either\n   * charge the saved authorization or return a checkout redirect for interactive payment.\n   */\n  prorateAndCharge?: boolean;\n  // ... same as upgradeSubscription\n};\n\ntype initializeTransactionResult =\n  | {\n      kind: \"checkout\";\n      url: string;\n      reference: string;\n      accessCode: string;\n      redirect: true;\n    }\n  | { kind: \"scheduled\"; status: \"success\"; message: string; scheduled: true }\n  | { kind: \"prorated\"; status: \"success\"; message: string; prorated: true };\n```\n\n### `authClient.subscription.list`\n\nList subscriptions for a user or organization. Organization-scoped billing actions require an owner/admin membership by default. To allow roles such as `billing`, configure `organization.billingRoles`. For custom resources or deeper policy checks, configure `subscription.authorizeReference`.\n\n```ts\ntype listSubscriptions = {\n  query?: {\n    /**\n     * Filter by reference ID (User ID or Org ID).\n     */\n    referenceId?: string;\n  };\n};\n```\n\n### `authClient.subscription.cancel` / `restore`\n\nCancel or restore a subscription.\n\n- **Cancel**: Sets `cancelAtPeriodEnd: true`. The subscription remains `active` until the end of the current billing period, after which it moves to `canceled`.\n- **Restore**: Reactivates a subscription that is scheduled to cancel.\n\n```ts\ntype cancelSubscription = {\n  /**\n   * Optional reference owner (user ID or org ID) when managing another billing entity.\n   */\n  referenceId?: string;\n  /**\n   * The Paystack subscription code (e.g. SUB_...)\n   */\n  subscriptionCode: string;\n  /**\n   * The email token required by Paystack to manage the subscription.\n   * Optional: The server will try to fetch it if omitted.\n   */\n  emailToken?: string;\n  /**\n   * When true, keep the subscription active until the current period ends.\n   */\n  atPeriodEnd?: boolean;\n};\n```\n\n## Schema Reference\n\nThe plugin extends your database with the following fields and tables.\n\n### `user`\n\n| Field                  | Type     | Required | Description                                   |\n| :--------------------- | :------- | :------- | :-------------------------------------------- |\n| `paystackCustomerCode` | `string` | No       | The unique customer identifier from Paystack. |\n\n### `organization`\n\n| Field                  | Type     | Required | Description                                                                                |\n| :--------------------- | :------- | :------- | :----------------------------------------------------------------------------------------- |\n| `paystackCustomerCode` | `string` | No       | The unique customer identifier for the organization.                                       |\n| `email`                | `string` | No       | The billing email for the organization. fallsback to organization owner's email if absent. |\n\n### `subscription`\n\n| Field                          | Type      | Required | Description                                                          |\n| :----------------------------- | :-------- | :------- | :------------------------------------------------------------------- |\n| `plan`                         | `string`  | Yes      | Lowercased name of the active plan.                                  |\n| `referenceId`                  | `string`  | Yes      | Associated User ID or Organization ID.                               |\n| `paystackCustomerCode`         | `string`  | No       | The Paystack customer code for this subscription.                    |\n| `paystackSubscriptionCode`     | `string`  | No       | The unique code for the subscription (e.g., `SUB_...` or `LOC_...`). |\n| `paystackTransactionReference` | `string`  | No       | The reference of the transaction that started the subscription.      |\n| `paystackAuthorizationCode`    | `string`  | No       | Stored card authorization code for recurring charges (local plans).  |\n| `status`                       | `string`  | Yes      | `active`, `trialing`, `canceled`, `incomplete`.                      |\n| `periodStart`                  | `Date`    | No       | Start date of the current billing period.                            |\n| `periodEnd`                    | `Date`    | No       | End date of the current billing period.                              |\n| `trialStart`                   | `Date`    | No       | Start date of the trial period.                                      |\n| `trialEnd`                     | `Date`    | No       | End date of the trial period.                                        |\n| `cancelAtPeriodEnd`            | `boolean` | No       | Whether to cancel at the end of the current period.                  |\n| `seats`                        | `number`  | No       | Purchased seat count for team billing.                               |\n\n### `paystackTransaction`\n\n| Field         | Type     | Required | Description                                          |\n| :------------ | :------- | :------- | :--------------------------------------------------- |\n| `reference`   | `string` | Yes      | Unique transaction reference.                        |\n| `referenceId` | `string` | Yes      | Associated User ID or Organization ID.               |\n| `userId`      | `string` | Yes      | The ID of the user who initiated the transaction.    |\n| `amount`      | `number` | Yes      | Transaction amount in smallest currency unit.        |\n| `currency`    | `string` | Yes      | Currency code (e.g., \"NGN\").                         |\n| `status`      | `string` | Yes      | `success`, `pending`, `failed`, `abandoned`.         |\n| `plan`        | `string` | No       | Name of the plan associated with the transaction.    |\n| `product`     | `string` | No       | Name of the product associated with the transaction. |\n| `metadata`    | `string` | No       | JSON string of extra transaction metadata.           |\n| `paystackId`  | `string` | No       | The internal Paystack ID for the transaction.        |\n| `createdAt`   | `Date`   | Yes      | Transaction creation timestamp.                      |\n| `updatedAt`   | `Date`   | Yes      | Transaction last update timestamp.                   |\n\n### `paystackProduct`\n\n| Field         | Type      | Required | Description                              |\n| :------------ | :-------- | :------- | :--------------------------------------- |\n| `name`        | `string`  | Yes      | Product name.                            |\n| `description` | `string`  | No       | Product description.                     |\n| `price`       | `number`  | Yes      | Price in smallest currency unit.         |\n| `currency`    | `string`  | Yes      | Currency code (e.g., \"NGN\").             |\n| `quantity`    | `number`  | No       | Available stock quantity.                |\n| `unlimited`   | `boolean` | No       | Whether the product has unlimited stock. |\n| `paystackId`  | `string`  | No       | The internal Paystack Product ID.        |\n| `slug`        | `string`  | Yes      | Unique slug for the product.             |\n| `metadata`    | `string`  | No       | JSON string of extra product metadata.   |\n| `createdAt`   | `Date`    | Yes      | Product creation timestamp.              |\n| `updatedAt`   | `Date`    | Yes      | Product last update timestamp.           |\n\n---\n\n## Troubleshooting\n\n- **Webhook Signature**: Ensure `PAYSTACK_SECRET_KEY` matches the integration that sends the webhook. Paystack uses this API secret key for `x-paystack-signature`.\n- **Email Verification**: Use `requireEmailVerification: true` to prevent unverified checkouts.\n- **Redirect Failures**: Check your browser console; Paystack often returns 429 errors if you're hitting the test API too frequently.\n- **Reference mismatches**: Ensure `referenceId` is passed correctly for Organization billing.\n- **Authorization Denied**: Verify your `authorizeReference` logic is correctly checking user roles or organization memberships. Unauthorized attempts to verify transactions now return a `401 Unauthorized` response to prevent data leaks.\n\n### Database Indexing\n\nThe plugin's schema definition includes recommended indexes and uniqueness constraints for performance. When you run `npx better-auth migrate`, these will be automatically applied to your database.\n\nAfter upgrading, run `npx better-auth migrate` (or `npx better-auth generate` for schema-managed\nadapters). The additive `cancelAt`, `canceledAt`, `endedAt`, and `billingInterval` subscription\ncolumns are nullable; historical rows are populated as future lifecycle events are processed.\n\nThe following fields are indexed:\n\n- **`paystackTransaction`**: `reference` (unique), `userId`, `referenceId`.\n- **`subscription`**: `paystackSubscriptionCode` (unique), `referenceId`, `paystackTransactionReference`, `paystackCustomerCode`, `plan`.\n- **`user` & `organization`**: `paystackCustomerCode`.\n- **`paystackProduct`**: `slug` (unique), `paystackId` (unique).\n\nProration upgrades and trusted renewal charges also persist `paystackTransaction` rows, so local transaction history stays aligned with successful off-session charges.\n\n### Syncing Products\n\nThe plugin provides two ways to keep your product inventory aligned with Paystack:\n\n#### 1. Automated Inventory Sync\n\nWhenever a successful one-time payment is made (via webhook or manual verification), the plugin automatically calls **`syncProductQuantityFromPaystack`**. This fetches the real-time remaining quantity from the Paystack API and updates your local database record, ensuring your inventory is always accurate.\n\n#### 2. Trusted Manual Bulk Sync\n\nThe public `/paystack/sync-products` endpoint was removed in `2.0.0`.\nRun the trusted server operation from backend code instead:\n\n```ts\nimport { syncPaystackProducts } from \"@alexasomba/better-auth-paystack\";\n\nconst ctx = { context: await auth.$context } as any;\n\nawait syncPaystackProducts(ctx, paystackOptions);\n```\n\n### SDK Compatibility Note\n\nThe plugin now targets the official `@alexasomba/paystack-node` grouped client surface directly.\nIf you inject a custom client, it should match the real SDK methods used by the plugin such as `transaction.initialize`, `transaction.verify`, `transaction.chargeAuthorization`, `subscription.create`, `subscription.disable`, and `subscription.enable`.\n\n---\n\n## 🏗️ Development & Contributing\n\nThis repository is powered by **Vite+**. You use the `vp` CLI to manage the entire workspace.\n\n```bash\n# Install dependencies\nvp i\n\n# Check project health (format, lint, types)\nvp check --fix\n\n# Build the core library\nvp build\n\n# Run tests\nvp test\n\n# Run the TanStack Start example\nvp run examples/tanstack dev\n```\n\nContributions are welcome! Please open an issue or pull request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Roadmap\n\nFuture features planned for upcoming versions:\n\n### v1.1.0 - Manual Recurring Subscriptions (Available Now)\n\n- [x] **Stored Authorization Codes**: Securely store Paystack authorization codes from verified transactions.\n- [x] **Trusted Renewal Operation**: Server-side helper to charge stored cards for renewals.\n- [ ] **Card Management UI**: Let users view/delete saved payment methods (masked card data only) - _Upcoming_\n- [ ] **Renewal Scheduler Integration**: Documentation for integrating with Cloudflare Workers Cron, Vercel Cron, etc. - _Upcoming_\n\n> **Note**: For local-managed subscriptions (no `planCode`), the plugin automatically captures and stores the `authorization_code`. Trigger renewals from trusted backend code with `chargeSubscriptionRenewal(...)`.\n\n### Future Considerations\n\n- [ ] Multi-currency support improvements\n- [ ] Invoice generation\n- [ ] Payment retry logic for failed renewals\n\n## Links\n\n- GitHub Repository: [alexasomba/better-auth-paystack](https://github.com/alexasomba/better-auth-paystack)\n- Comprehensive and up-to-date Paystack Node SDK: [alexasomba/paystack-node](https://github.com/alexasomba/paystack-node)\n- Comprehensive and up-to-date Paystack Inline SDK: [alexasomba/paystack-inline](https://github.com/alexasomba/paystack-inline)\n- [TanStack Start Example Implementation](https://github.com/alexasomba/better-auth-paystack/tree/main/examples/tanstack)\n- Paystack Webhooks: https://paystack.com/docs/payments/webhooks/\n- Paystack Transaction API: https://paystack.com/docs/api/transaction/\n- Paystack Subscription API: https://paystack.com/docs/api/subscription/\n- Paystack Plan API: https://paystack.com/docs/api/plan/\n- [Better Auth Documentation](https://www.better-auth.com/docs)\n","readmeFilename":"README.md"}