{"_id":"@deiondz/better-auth-razorpay","_rev":"37-a37d89ebbe603e8d4804b6274bc89954","name":"@deiondz/better-auth-razorpay","dist-tags":{"latest":"2.0.36"},"versions":{"1.0.0":{"name":"@deiondz/better-auth-razorpay","version":"1.0.0","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@1.0.0","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"ce4d412a6c188bb161496642e4d3b93b380b67d4","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-1.0.0.tgz","fileCount":17,"integrity":"sha512-56RmYhqq040lGR3x7VOs8WziwDctQWp5ad4mdva994p25FTIvGjOZNARoycxuMPr3AdP9QSYCOslvmlq6AIh9Q==","signatures":[{"sig":"MEUCIQCTHuY7Dza3sYqXus2xPA2LaIKTUnlS2V0UMte1vMHTsAIgbVv2tvVRwjs4PuZSBY55O7YHOJHCcxyijZks8wVn1fw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91280},"main":"./index.ts","type":"module","types":"./index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.ts","import":"./index.ts","default":"./index.ts"},"./client":{"types":"./client.ts","import":"./client.ts","default":"./client.ts"}},"gitHead":"f3c9ceed65b2cd717b0e3407d6ab231ee689e601","scripts":{"typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"peerDependencies":{"better-auth":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0_1769801537691_0.5631485382000192","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@deiondz/better-auth-razorpay","version":"2.0.0","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.0","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"0ccc8b7232d29c5dea7169555882cc3afc9b332f","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.0.tgz","fileCount":17,"integrity":"sha512-SSBL6D4Wqya9Lub354dzYgyz76scSwveL/dR/sAGxg9h41SCO+GZXXsuVoBf7+GQQ3jUs/mwYYVVWJbT5VXefQ==","signatures":[{"sig":"MEQCIEGqeRIEErfYlRKIDvFlKetjKkysPf6VAxDHjM04Kez/AiAEbTpF5vMoQv0nIW1NdF2y++3mL6xO6Lil4Wr/OfpLFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102914},"main":"./index.ts","type":"module","types":"./index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.ts","import":"./index.ts","default":"./index.ts"},"./hooks":{"types":"./client/hooks.ts","import":"./client/hooks.ts","default":"./client/hooks.ts"},"./client":{"types":"./client.ts","import":"./client.ts","default":"./client.ts"}},"gitHead":"ddec90f421c981ba210414006e75c0e2c27102cd","scripts":{"typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0","typescript":"^5.0.0","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.0_1769803569610_0.4624537790287788","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@deiondz/better-auth-razorpay","version":"2.0.1","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.1","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"40c2eb27211fe29943211957c0189c7e48c48120","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.1.tgz","fileCount":17,"integrity":"sha512-qI7B0vrp05YdhUqpnE6UfVMZA1JaBt/JtdjGqPHDb/2FZ2cjMr3chWGA+UPUHeGmjxCmKGd+xlZ9nup2GSdZYQ==","signatures":[{"sig":"MEUCIQC9NnQ2lXAI0Y0KYSpyN4OWYsf2WcaMVDAA9SImXFI7JAIgbuto+FUO3GPeKosTMWCg1TTau4L3SsVgVBp0dFhEE14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103031},"main":"./index.ts","type":"module","types":"./index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.ts","import":"./index.ts","default":"./index.ts"},"./hooks":{"types":"./client/hooks.ts","import":"./client/hooks.ts","default":"./client/hooks.ts"},"./client":{"types":"./client.ts","import":"./client.ts","default":"./client.ts"}},"gitHead":"8f7bc4a97ccb072bb739b1662b6b95209d76b851","scripts":{"typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0","typescript":"^5.0.0","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.1_1769881824334_0.9461742271839593","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@deiondz/better-auth-razorpay","version":"2.0.2","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.2","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"0406596ef8797d0a6ef0c04134f9d312a80856ed","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.2.tgz","fileCount":18,"integrity":"sha512-Xn9ebUgZHpIN1muAZJ5hqJ+RMR9e5RAD9YVmlc3mVL7riWBv7biOSj4JHMnhWbh3XbASR2FooWfwkHpE5AiNhA==","signatures":[{"sig":"MEQCIAp0iXc0WBqucZv4O5SOfwTq5+0muDjPkXfgYPeJe+b7AiAlXq5MHh/V72L6C3h6dl3mmVzgzvipl7g/Q/t1Sn/tvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108958},"main":"./index.ts","type":"module","types":"./index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.ts","import":"./index.ts","default":"./index.ts"},"./hooks":{"types":"./client/hooks.ts","import":"./client/hooks.ts","default":"./client/hooks.ts"},"./client":{"types":"./client.ts","import":"./client.ts","default":"./client.ts"}},"gitHead":"24e9d61bb4e5c44aaa617ea4ca53db4a145b0928","scripts":{"typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0","typescript":"^5.0.0","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.2_1769884366447_0.4613136696972018","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@deiondz/better-auth-razorpay","version":"2.0.3","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.3","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"922dddda47413b9786c86774dae5ade809fde095","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.3.tgz","fileCount":18,"integrity":"sha512-WKkZwWn6REQjDh9ticwyUwpyqXBV0rJAgRuaw4vgdYLIgbPsqNXB2eaNW0qr1IL7CMiwOcRlKDm4HxT6B3OuqA==","signatures":[{"sig":"MEUCIQCpLwK9blLvxxcn1Fmlsc4jJ8NOuiN4pTeooLFqOzsX1QIgApNI3Y9Ktnade61niyMFSwVjmZQ4OfZkWhs1r01s0Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116667},"main":"./index.ts","type":"module","types":"./index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.ts","import":"./index.ts","default":"./index.ts"},"./hooks":{"types":"./client/hooks.ts","import":"./client/hooks.ts","default":"./client/hooks.ts"},"./client":{"types":"./client.ts","import":"./client.ts","default":"./client.ts"}},"gitHead":"d64be3b610fe3d553be8c58095b91000301de521","scripts":{"typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0","typescript":"^5.0.0","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.3_1769886380059_0.6443733897064123","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@deiondz/better-auth-razorpay","version":"2.0.4","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.4","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"0b6e53ae314e03b5a71e30bad421cd7dd6aa0e37","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.4.tgz","fileCount":18,"integrity":"sha512-prEGZcRGy7JaBHIIPafZNJiLaSITwHNEI0VA+HrrQHXZEpllMEBO6BaKIneSh8nYG8nkcLQ14lYf7qHBvWEa5g==","signatures":[{"sig":"MEUCIQCkdV9dsuBRC3xQYYzyvBjDTTq/cst3EpKWFzJTUA1DPwIgQZXJYzQz2sxh4gH3w6as4Hi8t9FxWdshhTkxy/X2QHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116661},"main":"./index.ts","type":"module","types":"./index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.ts","import":"./index.ts","default":"./index.ts"},"./hooks":{"types":"./client/hooks.ts","import":"./client/hooks.ts","default":"./client/hooks.ts"},"./client":{"types":"./client.ts","import":"./client.ts","default":"./client.ts"}},"gitHead":"98a75cfacd0d3b1974eeace2dff45f27f0f0f15c","scripts":{"typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0","typescript":"^5.0.0","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.4_1769887082992_0.008180887622187605","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@deiondz/better-auth-razorpay","version":"2.0.5","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.5","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"b62c787091e31adab223a5051de08fd549fd3c9e","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.5.tgz","fileCount":18,"integrity":"sha512-8JUsaN3bovPGSoaEACT8NNwZg5ggv1gcOpi+32z5pkTpPwaEzJYaY0pk75mizA6969OzRuNGiMKDFr0TJg4eKQ==","signatures":[{"sig":"MEUCIGF/C0fhnwUjPMTCuYkRDhzEQs6rtSTZ6nM/m+RjpOhHAiEA5XDw1fKZlBcwbb9G+avUYeDPomJH+YOEcYWvG44sdco=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119659},"main":"./index.ts","type":"module","types":"./index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.ts","import":"./index.ts","default":"./index.ts"},"./hooks":{"types":"./client/hooks.ts","import":"./client/hooks.ts","default":"./client/hooks.ts"},"./client":{"types":"./client.ts","import":"./client.ts","default":"./client.ts"}},"gitHead":"a515c998097c51a7467da06ef0eeabe9d7d96b71","scripts":{"typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.0.0","typescript":"^5.0.0","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.5_1769888131211_0.9338348321333285","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@deiondz/better-auth-razorpay","version":"2.0.7","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.7","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"072a2270b625a1fc5021f48386e1d7d888def6c6","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.7.tgz","fileCount":15,"integrity":"sha512-ZMUvsX/SqjBpZoAiSPwmrSw9OpqXAX2Wrstu5MXl1BFAwTdOX7/hn4TGy8h1a2otKsJNf+0Mr5sSNgm6+XB5Ow==","signatures":[{"sig":"MEUCIQDU5G0ZMdMJqg4TPTLvkUgVgoe+WNdt2lv7pI2U5PNHPwIgH+KED9Xim9QvYmCkXPT2FBrCMVNOB8JaN+MgG/EbUXQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557967},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"5c88ef75138cb5d6a359d5b2be16e33fc043838a","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.7_1769888647495_0.5322594376146728","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@deiondz/better-auth-razorpay","version":"2.0.8","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.8","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"6d48b7aa081ac380905f144ce25cd81b9300972b","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.8.tgz","fileCount":15,"integrity":"sha512-RlvLv8rkgfwBl8Kmb8fHtELclKbG5ycSoZvt+uSNGWEesj34vURESH1f9PLBY1AITXkPVqO8IoqferqvuX++XQ==","signatures":[{"sig":"MEUCIQDAdIZl+I1beHjILtbfXUTT9Dunut+9Gjq9IMmaym/jwwIgGpFLsg0NJOIWL+tv6xUuPOGYdopfByTORSTajM/N47U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":559705},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"e840a8a2e04c3c0b02d9720c453308b4e0ca060f","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.8_1769889382323_0.6646699794282498","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"@deiondz/better-auth-razorpay","version":"2.0.9","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.9","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"5814cbb9fe1b02ca0e113a9ca68e57c5b56ee945","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.9.tgz","fileCount":15,"integrity":"sha512-Jxvcsqe2d/luTApwRDaYzuqYld/RvDTpvjA3G+nKhA/zbvkwHEBIuADECdQp5oe7475mBZ2MmhlcZWYwXURpTA==","signatures":[{"sig":"MEUCIC3RlDMsBSNxUjUVnP1xDzRS4W5AnvIo/ieZkOdh9p7sAiEAjhZbTCOydVambaVVL/LYgq8ZfPfXugtYK+X0AvcbtNs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561538},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"de3fe9fd233176e709d9431ea8a0008afd4991ed","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.9_1769889768019_0.6225852645736398","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"@deiondz/better-auth-razorpay","version":"2.0.10","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.10","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"890bb105f1074d8d990362ac88ed6fdc38a1ce8c","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.10.tgz","fileCount":15,"integrity":"sha512-zF7fM1e85IwBO1HaTjtXIm0h+DsTVnCqXKdSai9/ZuQlk4PauvTMLIwOAHTZnWC/edfvhqWNpXh5QPqIfkvuLQ==","signatures":[{"sig":"MEQCIDHe66dnxQUZOD2d4aHdv8snwHqlf16CRmwxepImA00rAiBGGzGX/DXYmhJNxf+0RC4O2M3+gxEnRldaHAVdbL3jXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"7e7803e79aa430814601e6d7c92855b1db397069","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.10_1769926130141_0.0911575663297104","host":"s3://npm-registry-packages-npm-production"}},"2.0.11":{"name":"@deiondz/better-auth-razorpay","version":"2.0.11","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.11","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"08e3ea87d4135aeafd7a8db9e82deba61f5ef13b","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.11.tgz","fileCount":15,"integrity":"sha512-wX345iybptSi8s1GzGfuKZ5Dw8KpB+hpOoZsL8jyP3IT9oNQPP9VJNBIfYsCFLuENfZ42C6hOPUrFQMZO8P7Vg==","signatures":[{"sig":"MEYCIQDpKdKzkSJf/v2fm2Npo/SVzQ2Ing1AS//9Z2aTdBc/hQIhAMCIaVVvh39Fjjnv9HiCSK2/yUd2xdifFSH7squpn/dI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":566740},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"459d8f55e978ada36fecfd7e65218839e9eef194","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.11_1769926928803_0.3519133406310271","host":"s3://npm-registry-packages-npm-production"}},"2.0.12":{"name":"@deiondz/better-auth-razorpay","version":"2.0.12","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.12","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"2c9b85c1d3b6fbf5b094d1a621c263a70be9a86d","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.12.tgz","fileCount":15,"integrity":"sha512-diM/AL1Z/Qhpj2tnqAvdm1LJt/qIwKWLB+wb+56RrOyXqQqgOdsc0IIMcJwf960HnP2YmwwDy4bsKx9Q2O5kiQ==","signatures":[{"sig":"MEYCIQDeiG/mvPYv0p0/bmY0HcTePzabU1EpDlp/69Fz1MF1TwIhAPRXSSBYAV8hHFG7M5ISUEIYlpYWpzOC+Uhpolt+uSTD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":582308},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"79b436bd7959943391c5cfd97dc85329b2e9c1fa","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.12_1769928187296_0.09147735002603619","host":"s3://npm-registry-packages-npm-production"}},"2.0.13":{"name":"@deiondz/better-auth-razorpay","version":"2.0.13","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.13","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"25c082758fc13f685dc921d10c798b00459f05a7","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.13.tgz","fileCount":15,"integrity":"sha512-CS0d3QPDnale8j4pgSIQc2nQbfE0dnQOw4wHM5z+Q7fbSsWCuQXwTk5nFfcT7usU6EhaxpAbnw1Tl74D8vHIKg==","signatures":[{"sig":"MEUCICL7rboy+sXSZCuATaPXaF7tKJsxeuYGTj2cerUZh9PFAiEAibsWAuo8xKTYyIVtGrRJ4C3a6mJqES2Ic068mUoPn9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":593772},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"e716da4ed8e77867f66a7022a1635eb64377c0eb","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.13_1769930590422_0.5343262091962295","host":"s3://npm-registry-packages-npm-production"}},"2.0.14":{"name":"@deiondz/better-auth-razorpay","version":"2.0.14","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.14","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"a94f33b18c70970239e8f52ec76e9580bd8eb58e","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.14.tgz","fileCount":15,"integrity":"sha512-2IqEPOqCQES5S0TYqxFjEuP+8D8H2GLvDEhHwMBr7ILgJq2uZclUMcRldo5lTjKqOjMDbsj6gBIxagyIxsxx4g==","signatures":[{"sig":"MEQCIDP7Z31axerlcOh4SLRSvhRaqT6FEyJqNYFL1w0EXsmOAiBj6wi3c1mnfFCncoRYNnPMWmJPddSTiEnXhSBKkQp9FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":598037},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"1dc60fdad2afadd1b1f01090cd01add6d0b5cc4f","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.14_1769933089633_0.9543969422567931","host":"s3://npm-registry-packages-npm-production"}},"2.0.15":{"name":"@deiondz/better-auth-razorpay","version":"2.0.15","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.15","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"ccebb2aa6cf662b74c29ffaa8720057413ba3b0d","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.15.tgz","fileCount":15,"integrity":"sha512-KK5U+2DzPSf4D6l94G0HV5O/0vHZF7Fw8xMQOovXhcXiIZLEft5Mlqp7J1PIXTjh3QDytP3zO0KdIs/IBhFTow==","signatures":[{"sig":"MEUCIBGJeRNP/OC4wif83/TJ2NmhPSs5uwpC8Lwm93km0nB8AiEAsuXxHZJVpKOlWIepDockAbz9PXsREUgXu37Uu+ukfeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":598536},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"efb906316f78964204597d62d9af94f445039bfd","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.15_1769949524937_0.10497733340927562","host":"s3://npm-registry-packages-npm-production"}},"2.0.16":{"name":"@deiondz/better-auth-razorpay","version":"2.0.16","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.16","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"cbec62a7aff1cffda94ca163cfa14f19dd331656","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.16.tgz","fileCount":15,"integrity":"sha512-lk/fszaVtKPo0eK6pQsAJJa9faFlZ4UlXBZS8W11KbLn9+BA4nBeWMPAk+SiQOXPOkufeBbIbM2uyHswuLu8gg==","signatures":[{"sig":"MEUCIFtXMhuGN39LJN/o+4GuEbJnF0EP7IpIPyo4UJUXMWyjAiEA78gpEoDl/kgu0GRw5ZcDqhwEEneWLlMFJUfaprvUDBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":609858},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"6e2a2861a5e4d92936bde858ece7eae58c6a9c75","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.16_1769950836626_0.6719368373484633","host":"s3://npm-registry-packages-npm-production"}},"2.0.17":{"name":"@deiondz/better-auth-razorpay","version":"2.0.17","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.17","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"f7512ad00db2ef433ec4a5489198da7926e10bfb","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.17.tgz","fileCount":15,"integrity":"sha512-PzBN+zTTVdtHYjWmrixgE9AFwvGoIQhvdZgFa6MDTjKnokStcfhFEz4RGLJf17Mkb/4e0cfe6GfnLiUcgmckcA==","signatures":[{"sig":"MEUCIFPamTDcKiYdvI+LOXzASZ1V5XF+7KUcCWAgHexlM0NtAiEAoZYiWvyHW7/ctDPHs4+elRaFsLWcUfQUrZ430x0Tnsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":608180},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"96c2e6bb94ee1e56e8e4fbcbb02596a6f3992ac4","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.17_1769951823364_0.18743066560688182","host":"s3://npm-registry-packages-npm-production"}},"2.0.18":{"name":"@deiondz/better-auth-razorpay","version":"2.0.18","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.18","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"ef3106ed0809784b57ee1d8e488c2590a7c8258d","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.18.tgz","fileCount":15,"integrity":"sha512-hwd4dOcFPNmz4mBqnjdj6BDFcxh92KdnRBMOSVrcfAlhZ0WqulILGliv2v62kPQuvjx/Zk3Ln9OcY/Yr/D/fTQ==","signatures":[{"sig":"MEYCIQCX4omOX0Qg8YROQzXZva3D3XxAHySGWmh0XjGbOGP0OgIhAOMIcnsypGw2cXaMAmVx/dL4Tk5nR8Fg8XyPIJlx3jG+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":610169},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"d76b64000f04b5743f485d9baa92e139d9b58b88","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.18_1769952695464_0.9833971805201649","host":"s3://npm-registry-packages-npm-production"}},"2.0.19":{"name":"@deiondz/better-auth-razorpay","version":"2.0.19","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.19","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"9dacb933e28822652b924ad3602093ba136075b2","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.19.tgz","fileCount":15,"integrity":"sha512-9UUGQPspWeBzNxh8B54UaFKNTZYMaHL/7RHoWWTzfyREpa5mYq/W0Ie9UdSQ+qUSawPQwLHtx5LgA9tghVCrdA==","signatures":[{"sig":"MEUCIC1o4SfSWY1lum8ufC6s1icyEFcrqvXd40LUfs88qt+WAiEA2FVKqfb4mEozYh+kR0eQZGXoGACr7Dnib1haTJ4eUWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":610798},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"b6fbdaecb651c7170e572f081604d775aa27867b","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.19_1769953817132_0.10348512953672406","host":"s3://npm-registry-packages-npm-production"}},"2.0.20":{"name":"@deiondz/better-auth-razorpay","version":"2.0.20","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.20","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"6cd50160ded3bb9858c26e95c8114221ae2422f8","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.20.tgz","fileCount":15,"integrity":"sha512-hk5kCTvVtqIRWiUHvpebzNRW+B68TgNVAiypOgFX/PEYqFvL5ZWJSR2h76KtHOnNGEOPFp5iPC2vns1+DBJ6cA==","signatures":[{"sig":"MEQCIDHAP+083vWXdrWguVbZ+zRXgcSTsL+0Y6DLiHIpmII1AiBPCW2SgKTr0dnHK0OycHd20lGHN5t/0SO+Rnzj1EeFQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":610667},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"b6fbdaecb651c7170e572f081604d775aa27867b","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.20_1769954427121_0.28522703015028683","host":"s3://npm-registry-packages-npm-production"}},"2.0.21":{"name":"@deiondz/better-auth-razorpay","version":"2.0.21","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.21","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"0e9583baa765dc4c4b1eaa1f5df1fa2cefceaaf6","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.21.tgz","fileCount":15,"integrity":"sha512-a1wskayW+X5rufkV/WlpvJV6yss8k5JRXN7w3crsPgNcgjAmusQ9uZw/BRierDgV/zaLk+i4U7f0Cm9AVNComg==","signatures":[{"sig":"MEUCIEgY38S7BGr7NpLxnOLX3NmgFeGhOzwfJErqiTppY29lAiEAj0NaqLCsXfm0LrL46KXrc7k9fj6LoLT3Co1uto85JqQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":614682},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"8ff2c2d2b888be2562b9b7913d6c21a3e02cf710","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.21_1769954862612_0.3596557933176392","host":"s3://npm-registry-packages-npm-production"}},"2.0.22":{"name":"@deiondz/better-auth-razorpay","version":"2.0.22","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.22","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"ff1c23ef230f186b3cc52e96c8cd0d629e1e13bc","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.22.tgz","fileCount":15,"integrity":"sha512-e6figgKEmLR0FLjT/deVsM4l5cenUktRxIMgzwIDGbTFDEc4EXQAkaj0bh1wrpOIxLc1n4CG/x1OzltdeDrBxQ==","signatures":[{"sig":"MEUCIBx2ml6b/APyklxx3kCpR93XQjdj6JQhkrbilavRoYBXAiEAyKZ0MhQjkL26Og5sSALgPEfZmdZ5Ygpn8ecLaum83OE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":614778},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"5409ba73c40a6503f3ff7407a63634156b4f586e","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.22_1769955234317_0.678127878000744","host":"s3://npm-registry-packages-npm-production"}},"2.0.23":{"name":"@deiondz/better-auth-razorpay","version":"2.0.23","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.23","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"75e63be2358889f6c290f7ec8c6e31fd256d1f14","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.23.tgz","fileCount":15,"integrity":"sha512-V+gHbHs5A9vFftQH9nf/JrXqXiBuSb1tv/D8Yv5iGRoFLA48ZxRpoUQ9BQoh+0GKVUxPvP4McigAg8jk8NN+cw==","signatures":[{"sig":"MEUCIF34R6rdXR+wxYGJ4yeeqq/YrJMf5hGcbju1fqwYB04QAiEAumshMrLkBenswy/WQaOlGKJWrvaMNK6SGJHd0C84SkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":616535},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"c0611a43b6990846d8aa3bff8d7f481262b4f88f","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.23_1769956794040_0.8919087052315942","host":"s3://npm-registry-packages-npm-production"}},"2.0.24":{"name":"@deiondz/better-auth-razorpay","version":"2.0.24","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.24","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"14bf00178d449415917a7a3b5319c03f72d525d6","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.24.tgz","fileCount":15,"integrity":"sha512-lDOs8LYU1HrI9h60l82Zdf7tk8y8Lan/BXOuW2IGfj0D/jl/uaRl/NdjmjiAUWTKVfbTTLwICKAWn5iFad6S6Q==","signatures":[{"sig":"MEUCIB1lBi2zymc56vbdHC/69oN+Bam4+5/djUvrYVKlfj/sAiEA2COZ6s/MixD8VI1AI5mIxqywtb2rT9aRtCQWQdi+LfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":626772},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"c0611a43b6990846d8aa3bff8d7f481262b4f88f","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.24_1769958831932_0.08577671176028456","host":"s3://npm-registry-packages-npm-production"}},"2.0.25":{"name":"@deiondz/better-auth-razorpay","version":"2.0.25","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.25","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"4a43b42c313565f59eddf0ad833021a2c3a01537","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.25.tgz","fileCount":15,"integrity":"sha512-3ec8OF/xEYpZaTQNNCcQbAsXQgSg87TZ+yo67qJ111l7pX4yS8J/mN8gtFalb0xAU8cgHkCecCzuBeKOBFzN+g==","signatures":[{"sig":"MEYCIQCfOg30HK5uHamO0mY7PxdwkMXf9eOAaPxqw5oHgdKj6wIhAMAPjVyc9waMKdOhnepbxRzucoda4XYls8D5deqehYRO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630499},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"adb69493b579aa461dbc217ed916a192f7f2542a","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.25_1769961256181_0.7559895678935857","host":"s3://npm-registry-packages-npm-production"}},"2.0.26":{"name":"@deiondz/better-auth-razorpay","version":"2.0.26","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.26","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"59b614dcb25e4d20f21f500627695aa431c4b961","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.26.tgz","fileCount":15,"integrity":"sha512-jKThm1BdvRjYrRkDuAUHD3k8IyHLqjZP/Ac6sBOME6/RBtiYcfnlXltUQrOxg2DtpwuIk0O2YTPnQtcWJk9zFw==","signatures":[{"sig":"MEUCIQDWekNZKkuvS+GMPSIQ0n1fXmZGcNlWpmSZsZTVweGqaAIgOBbrKPETDZ2y5u65IU+hDPyf/L9EJmX0IeDQpcvsteA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":631624},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"1936938ab118f80286c41bb29632908f53d12166","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.26_1769965955134_0.219346741261762","host":"s3://npm-registry-packages-npm-production"}},"2.0.27":{"name":"@deiondz/better-auth-razorpay","version":"2.0.27","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.27","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"f3e5fefe82c717842f1e7fb36647d6dce8af9ec2","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.27.tgz","fileCount":15,"integrity":"sha512-Bsplwl1+hagItLCTjaLVZsviA5E42qT4KGaqS2k6M+56ioeDEqIp0yXYgawq8vxdNLfH892mzONzA35vP1lLrQ==","signatures":[{"sig":"MEUCIDLftGsYGXi3GrlYYmgvfng63fYzizc2Zx4aM3WgE4ayAiEA2kyQ1M4lQmxh7vxB9y/qlQ2sFkUvswbtKdJmf/R7/gw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630424},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"509944fee7294f70196b4a0b4d8630d0b2e60e55","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.27_1770039530301_0.07258678624460546","host":"s3://npm-registry-packages-npm-production"}},"2.0.28":{"name":"@deiondz/better-auth-razorpay","version":"2.0.28","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.28","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"f625c4b1e17fcce34a77dec2c02afb2ef26d038a","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.28.tgz","fileCount":15,"integrity":"sha512-KxUz1ndbs/8icpeGsvWTdkG1x7jawzhhBFF6jHyXcxi92fmKjOMC0ksis368tOu0zhRJaLu+CKi/Vtj89yHCpg==","signatures":[{"sig":"MEQCICTH6LVDzfHe5cu9y60JN7cjM5RVSDUXzKqVo0UOKp8sAiBAGNnLkm57xTFjdp9OaxxVDeMlgowpZ1Em1TJHEJxNEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630967},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"6efbea594627789e4734ded4cee50eac33764bb5","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.28_1770040530711_0.6533023640241862","host":"s3://npm-registry-packages-npm-production"}},"2.0.29":{"name":"@deiondz/better-auth-razorpay","version":"2.0.29","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.29","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"34283c9cfb54c9449d43536c125991307eefde9e","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.29.tgz","fileCount":15,"integrity":"sha512-/L4vXjWQYsLNbGM3+L66slRb9F5a7TUP4WDe273VckafaEm5cyW0FjhagVUnf36GwbeImNSkuJhNbHRxcfOzfg==","signatures":[{"sig":"MEUCIQDm0l/m9PYLV4wClHc9wBBhfs+YfDLgB5FaslMxUxgsjQIgHJ+ueZ6eym/YcQT0mHIHsZDALstveqDlR4oDfZdFQz8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deiondz%2fbetter-auth-razorpay@2.0.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":625486},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"32f1361695ffba10e255bdf0a4208bc3cf2185d4","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.8.2","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.29_1770040781905_0.012317905170928123","host":"s3://npm-registry-packages-npm-production"}},"2.0.30":{"name":"@deiondz/better-auth-razorpay","version":"2.0.30","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.30","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"cd46474bf0613a1ec8b2efae519b2753c74126d6","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.30.tgz","fileCount":15,"integrity":"sha512-PhkHnPMLVn8kVL6xmCXwwH6sCyiQ9MoQ+/yAKHDahnUuVcvPNk3iMfKomL8Tes1K5/QqSC28YuDygwate2hJ6g==","signatures":[{"sig":"MEUCIQD3iqLQEohxLpLhzwImfm3HA+U87bFwcegs7jFQAaktMgIgWht3H8hjpKKOKU9NAK+H/LPL4LbomwPatLMxiY470aw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deiondz%2fbetter-auth-razorpay@2.0.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":625760},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"68a0feee79059a599d5c744741e90b897e898fb5","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.8.2","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.30_1770049371746_0.20353797586190714","host":"s3://npm-registry-packages-npm-production"}},"2.0.31":{"name":"@deiondz/better-auth-razorpay","version":"2.0.31","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.31","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"ba70b84239ee6b5e25b5a956c03396de2758f5b3","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.31.tgz","fileCount":15,"integrity":"sha512-5t+78/i07LtSGyYA7wIg39GPUQPcZUCHYoQOVTWx3RDchRkgNRBjE7OLKR7fmRjhwRBhionNi4FghMacI8cu+Q==","signatures":[{"sig":"MEQCIBojTMWVC5vJ0UlMNIKBS4GQH+LC1QlCqjxD5KOFO8GBAiAo/JR5kKtm1lmVgxjiYihi/gFZHAJ4xcnd7yQBZmKztQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deiondz%2fbetter-auth-razorpay@2.0.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":625767},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"c429e529078e1f60ca49095bf77769b8168268a9","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.8.2","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.31_1770049527038_0.5977734233366645","host":"s3://npm-registry-packages-npm-production"}},"2.0.32":{"name":"@deiondz/better-auth-razorpay","version":"2.0.32","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.32","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"67de66e2835d8584d59cab470ab7d5cd6aa9c848","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.32.tgz","fileCount":15,"integrity":"sha512-tyjwTI1YnVn2iwTb0wj56kOMCRV1cBvsEG7rWF2/JXBM/jvybvOESAquam5TqUZveNpMd5gb1H6+8E5lmnlUVQ==","signatures":[{"sig":"MEYCIQCCH/FZzT1AxHpFDF1lcr3l5kAmNKChO0tQUqi2JWTutAIhANoG9vnIL2LMS4yNjAtuIXDx87dQD5aWcbiMWmS6r6xy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deiondz%2fbetter-auth-razorpay@2.0.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":625384},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"a67914d3b767ac29da94b7d9cf411c06f581e4a6","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.8.2","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.32_1770049865197_0.5996044215380163","host":"s3://npm-registry-packages-npm-production"}},"2.0.33":{"name":"@deiondz/better-auth-razorpay","version":"2.0.33","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.33","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"2752fef884d760555ad164d07677a21588aa3c63","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.33.tgz","fileCount":15,"integrity":"sha512-xZtqwvvYXDsAMTNElggRHre2OGHWjV2dQ7rPh/Dcr3dRcY/mwfWHjSqSM+DSszosSnmxcoeBrSX01IM5333+XA==","signatures":[{"sig":"MEQCIBPTE8G96+C+6n5EhJZpmblF3A3W+t4ijwVZM7alrrFQAiBfezSqh4M/9MhQzBslKqw6uwNtaST1hN7km59ZXQlVOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deiondz%2fbetter-auth-razorpay@2.0.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":627243},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"84c38975f6e3a4ea5eb7d54ec8beacb8bda651e7","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.8.2","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.33_1770050696259_0.599689503827229","host":"s3://npm-registry-packages-npm-production"}},"2.0.34":{"name":"@deiondz/better-auth-razorpay","version":"2.0.34","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.34","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"f7191976cc19a1beee5240807d164a0981c48e87","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.34.tgz","fileCount":15,"integrity":"sha512-zwXo+CHR5lV2LHrDvdFiy8CyuBlHm1M71J3tZsWoYXh6PX8La5iwJYL4Ok3+nhQc2+G5XdeuVocUNrApdBn7Jg==","signatures":[{"sig":"MEUCIQDU+BugCcno899NUg2qJV+GhP+rgy3ckyUKKxfxGPYK4QIgUuBIGxuGDopYbUlP96mOIu5on2ILDShWNSzavfZvoVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deiondz%2fbetter-auth-razorpay@2.0.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":625384},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"2d5bb4e8c7aa813aab6c10421bd6a5d032e14d97","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.8.2","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.34_1770051076142_0.2944682730174133","host":"s3://npm-registry-packages-npm-production"}},"2.0.35":{"name":"@deiondz/better-auth-razorpay","version":"2.0.35","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","_id":"@deiondz/better-auth-razorpay@2.0.35","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"dist":{"shasum":"ee696b8a7cf6ae9e9c5d1aa738230d97813434bc","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.35.tgz","fileCount":15,"integrity":"sha512-MCFRtdlRDbuIieM04KuRYGQGPGhCv6ymkAER+Dc/FSuEXiaogirOCB2gLTEGjolrR7mcqDJpYjvoGoFfLJeVSQ==","signatures":[{"sig":"MEUCICvOrCZyZf/6424bSpiKXhfG6yuM+iV59TLaqVtxK5E6AiEA+/oZNIMZ3j9yiVrlNzsKaswlzLHNotalfutU3CuRZWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deiondz%2fbetter-auth-razorpay@2.0.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":625188},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"}},"gitHead":"783b6bd58bcd5fb1e46b013c2d97574d34bfb87f","scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"repository":{"url":"git+https://github.com/deiondz/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.8.2","description":"Better Auth plugin for Razorpay subscriptions and payments","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.23.0","razorpay":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^19.2.10","@tanstack/react-query":"^5.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","better-auth":"^1.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.35_1770053463915_0.6034512125204234","host":"s3://npm-registry-packages-npm-production"}},"2.0.36":{"name":"@deiondz/better-auth-razorpay","version":"2.0.36","description":"Better Auth plugin for Razorpay subscriptions and payments","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","default":"./dist/client.js"},"./hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js","default":"./dist/client/hooks.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck"},"keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/deiondz/better-auth-razorpay.git"},"peerDependencies":{"@tanstack/react-query":"^5.0.0","better-auth":"^1.0.0","react":"^18.0.0 || ^19.0.0"},"dependencies":{"razorpay":"^2.9.2","zod":"^3.23.0"},"devDependencies":{"@tanstack/react-query":"^5.0.0","@types/node":"^20.0.0","@types/react":"^19.2.10","react":"^18.0.0","tsup":"^8.0.0","typescript":"^5.0.0"},"engines":{"node":">=18"},"_id":"@deiondz/better-auth-razorpay@2.0.36","gitHead":"46ad3b70fd92e4c78fb78c43e050168d2b0f6277","bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"homepage":"https://github.com/deiondz/better-auth-razorpay#readme","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-ShTrdzlmybpvCQw1LroovxyO4iVjjYg+QjqlLws26oSMb1+tG8drEcEomfU4T5BbI1Sgn17QXliNpzk2mEvngg==","shasum":"abe3fd113d4087534ccb4699fd06c2fe1323a8bd","tarball":"https://registry.npmjs.org/@deiondz/better-auth-razorpay/-/better-auth-razorpay-2.0.36.tgz","fileCount":15,"unpackedSize":625223,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deiondz%2fbetter-auth-razorpay@2.0.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDs26QcgwaTD6gNTD9igA4qwD4g92BQL5drIwceuEawkQIgVZYdl65EeXSLEBYoSsRR3SbiZmNPtWDKZfwUuuI6Xv8="}]},"_npmUser":{"name":"deiondz","email":"deiondsouza12@gmail.com"},"directories":{},"maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/better-auth-razorpay_2.0.36_1770054063762_0.7871277491594626"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-30T19:32:17.586Z","modified":"2026-02-02T17:41:04.228Z","1.0.0":"2026-01-30T19:32:17.852Z","2.0.0":"2026-01-30T20:06:09.758Z","2.0.1":"2026-01-31T17:50:24.494Z","2.0.2":"2026-01-31T18:32:46.593Z","2.0.3":"2026-01-31T19:06:20.227Z","2.0.4":"2026-01-31T19:18:03.159Z","2.0.5":"2026-01-31T19:35:31.383Z","2.0.7":"2026-01-31T19:44:07.654Z","2.0.8":"2026-01-31T19:56:22.541Z","2.0.9":"2026-01-31T20:02:48.189Z","2.0.10":"2026-02-01T06:08:50.291Z","2.0.11":"2026-02-01T06:22:08.943Z","2.0.12":"2026-02-01T06:43:07.457Z","2.0.13":"2026-02-01T07:23:10.589Z","2.0.14":"2026-02-01T08:04:49.803Z","2.0.15":"2026-02-01T12:38:45.101Z","2.0.16":"2026-02-01T13:00:36.784Z","2.0.17":"2026-02-01T13:17:03.531Z","2.0.18":"2026-02-01T13:31:35.618Z","2.0.19":"2026-02-01T13:50:17.293Z","2.0.20":"2026-02-01T14:00:27.282Z","2.0.21":"2026-02-01T14:07:42.835Z","2.0.22":"2026-02-01T14:13:54.536Z","2.0.23":"2026-02-01T14:39:54.187Z","2.0.24":"2026-02-01T15:13:52.090Z","2.0.25":"2026-02-01T15:54:16.359Z","2.0.26":"2026-02-01T17:12:35.289Z","2.0.27":"2026-02-02T13:38:50.487Z","2.0.28":"2026-02-02T13:55:30.863Z","2.0.29":"2026-02-02T13:59:42.074Z","2.0.30":"2026-02-02T16:22:51.914Z","2.0.31":"2026-02-02T16:25:27.274Z","2.0.32":"2026-02-02T16:31:05.351Z","2.0.33":"2026-02-02T16:44:56.430Z","2.0.34":"2026-02-02T16:51:16.300Z","2.0.35":"2026-02-02T17:31:04.159Z","2.0.36":"2026-02-02T17:41:03.920Z"},"bugs":{"url":"https://github.com/deiondz/better-auth-razorpay/issues"},"license":"MIT","homepage":"https://github.com/deiondz/better-auth-razorpay#readme","keywords":["better-auth","razorpay","plugin","subscriptions","payments","authentication"],"repository":{"type":"git","url":"git+https://github.com/deiondz/better-auth-razorpay.git"},"description":"Better Auth plugin for Razorpay subscriptions and payments","maintainers":[{"name":"deiondz","email":"deiondsouza12@gmail.com"}],"readme":"# Razorpay Plugin for Better Auth\n\nA comprehensive subscription management plugin for Better Auth that integrates with Razorpay for handling recurring payments, subscriptions, and webhooks.\n\n> **📚 Always consult [better-auth.com/docs](https://better-auth.com/docs) for the latest Better Auth API and best practices.**\n\n## Credits\n\nThis plugin is inspired by and aligned with the design of the [better-auth-razorpay](https://github.com/iamjasonkendrick/better-auth-razorpay) community plugin. Credit and thanks go to the original author **[Jason Kendrick](https://github.com/iamjasonkendrick)** ([@iamjasonkendrick](https://github.com/iamjasonkendrick)) for the subscription flow, callback API, and feature set that this implementation follows.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Database Setup](#database-setup)\n- [API Endpoints](#api-endpoints)\n- [Client Usage](#client-usage)\n- [TanStack Query Hooks](#tanstack-query-hooks)\n- [Webhook Setup](#webhook-setup)\n- [TypeScript Types](#typescript-types)\n- [Error Handling](#error-handling)\n- [Usage Examples](#usage-examples)\n- [Best Practices](#best-practices)\n- [Troubleshooting](#troubleshooting)\n- [Credits](#credits)\n\n## Overview\n\nThe Razorpay plugin provides a subscription management solution aligned with the [community plugin design](https://github.com/iamjasonkendrick/better-auth-razorpay):\n\n- ✅ **Subscription flow**: Create-or-update (returns checkout URL), cancel (at period end or immediately), restore, list active/trialing subscriptions\n- ✅ **Named plans**: Plans with `name`, `monthlyPlanId`, optional `annualPlanId`, `limits`, and `freeTrial`\n- ✅ **Customer on sign-up**: Optional Razorpay customer creation when a user signs up, with `onCustomerCreate` and `getCustomerCreateParams`\n- ✅ **Webhook handling**: Subscription events (activated, cancelled, expired, etc.) with optional `onSubscriptionActivated`, `onSubscriptionCancel`, `onSubscriptionUpdate`, and global `onEvent`\n- ✅ **Authorization**: `authorizeReference` for list/create actions; `requireEmailVerification` for subscriptions\n- ✅ **Type safety**: Full TypeScript support with `SubscriptionRecord`, `RazorpayPlan`, and plugin options\n- ✅ **TanStack Query**: Works with TanStack Query; use our optional [pre-built hooks](#tanstack-query-hooks) or build your own hooks around the auth client's Razorpay namespace (`authClient.razorpay.*`).\n\n## Installation\n\n### Prerequisites\n\n- Better Auth configured in your project\n- Razorpay account with API credentials\n- Plans created in Razorpay dashboard\n\n### Setup\n\n1. **Install the Package**\n\n```bash\nnpm install @deiondz/better-auth-razorpay\n# or\nyarn add @deiondz/better-auth-razorpay\n# or\npnpm add @deiondz/better-auth-razorpay\n# or\nbun add @deiondz/better-auth-razorpay\n```\n\nThe package includes `razorpay` and `zod` as dependencies.\n\n2. **Configure the Plugin**\n\nYou can either pass an existing Razorpay instance (`razorpayClient`) or let the plugin create it from credentials (`razorpayKeyId` + `razorpayKeySecret`).\n\n**Option A: Pass credentials (plugin creates the Razorpay instance)**\n\n```typescript\n// src/lib/auth.ts (or your auth configuration file)\nimport { betterAuth } from 'better-auth'\nimport { razorpayPlugin } from '@deiondz/better-auth-razorpay'\n\nexport const auth = betterAuth({\n  // ... your Better Auth configuration\n  database: mongodbAdapter(await connect()), // or your adapter\n  secret: process.env.BETTER_AUTH_SECRET,\n  baseURL: process.env.BETTER_AUTH_URL,\n  \n  plugins: [\n    razorpayPlugin({\n      razorpayKeyId: process.env.RAZORPAY_KEY_ID!,\n      razorpayKeySecret: process.env.RAZORPAY_KEY_SECRET!, // also enables verify-payment endpoint when set\n      razorpayWebhookSecret: process.env.RAZORPAY_WEBHOOK_SECRET,\n      createCustomerOnSignUp: true, // optional\n      subscription: {\n        enabled: true,\n        plans: [\n          {\n            name: 'Starter',\n            monthlyPlanId: 'plan_xxxxxxxxxxxx',\n            annualPlanId: 'plan_yyyyyyyyyyyy', // optional\n            limits: { features: 5 },\n            freeTrial: { days: 7 }, // optional\n          },\n        ],\n        onSubscriptionActivated: async ({ subscription, plan }) => {\n          console.log(`Subscription ${subscription.id} activated for plan ${plan.name}`)\n        },\n      },\n      onWebhookEvent: async (payload, context) => {\n        const { event, subscription, payment } = payload\n        if (event === 'subscription.charged' && payment) {\n          // Send confirmation email, etc.\n        }\n      },\n    }),\n  ],\n})\n```\n\n**Option B: Pass an existing Razorpay client**\n\n```typescript\n// src/lib/auth.ts\nimport Razorpay from 'razorpay'\nimport { betterAuth } from 'better-auth'\nimport { razorpayPlugin } from '@deiondz/better-auth-razorpay'\n\nconst razorpayClient = new Razorpay({\n  key_id: process.env.RAZORPAY_KEY_ID!,\n  key_secret: process.env.RAZORPAY_KEY_SECRET!,\n})\n\nexport const auth = betterAuth({\n  // ... your Better Auth configuration\n  database: mongodbAdapter(await connect()),\n  secret: process.env.BETTER_AUTH_SECRET,\n  baseURL: process.env.BETTER_AUTH_URL,\n  \n  plugins: [\n    razorpayPlugin({\n      razorpayClient,\n      razorpayWebhookSecret: process.env.RAZORPAY_WEBHOOK_SECRET,\n      razorpayKeySecret: process.env.RAZORPAY_KEY_SECRET, // optional: enables verify-payment endpoint\n      createCustomerOnSignUp: true, // optional\n      subscription: {\n        enabled: true,\n        plans: [\n          {\n            name: 'Starter',\n            monthlyPlanId: 'plan_xxxxxxxxxxxx',\n            annualPlanId: 'plan_yyyyyyyyyyyy', // optional\n            limits: { features: 5 },\n            freeTrial: { days: 7 }, // optional\n          },\n        ],\n        onSubscriptionActivated: async ({ subscription, plan }) => {\n          console.log(`Subscription ${subscription.id} activated for plan ${plan.name}`)\n        },\n      },\n      onWebhookEvent: async (payload, context) => {\n        const { event, subscription, payment } = payload\n        if (event === 'subscription.charged' && payment) {\n          // Send confirmation email, etc.\n        }\n      },\n    }),\n  ],\n})\n```\n\n3. **Add Client Plugin (required to avoid 404s)**\n\nAdd the Razorpay client plugin so your auth client gets a Razorpay namespace. The plugin adds `authClient.razorpay.*` methods (e.g. `getPlans()`, `verifyPayment()`). Better Auth does not expose a generic `api` on the auth client—plugin routes are exposed as namespaces (e.g. `authClient.razorpay`). Use these so requests use the correct paths and avoid 404s.\n```typescript\n// src/lib/auth-client.ts\nimport { createAuthClient } from 'better-auth/react'\nimport { razorpayClientPlugin } from '@deiondz/better-auth-razorpay/client'\nimport type { auth } from './auth'\n\nexport const authClient = createAuthClient<typeof auth>({\n  baseURL: process.env.PUBLIC_URL, // Optional if same domain\n  plugins: [\n    razorpayClientPlugin(),\n    // ... other client plugins\n  ],\n})\n```\n\n4. **Environment Variables**\n\nAdd to your `.env` file:\n\n```env\n# Better Auth (if not using env vars)\nBETTER_AUTH_SECRET=your_32_char_minimum_secret\nBETTER_AUTH_URL=https://yourdomain.com\n\n# Razorpay\nRAZORPAY_KEY_ID=rzp_test_xxxxxxxxxxxx\nRAZORPAY_KEY_SECRET=your_secret_key\nRAZORPAY_WEBHOOK_SECRET=your_webhook_secret\n# Pass RAZORPAY_KEY_SECRET as razorpayKeySecret in plugin options to enable the verify-payment endpoint (same as client key, not webhook secret).\n```\n\n5. **Run Database Migration**\n\nAfter adding the plugin, run the Better Auth CLI to apply schema changes:\n\n```bash\nnpx @better-auth/cli@latest migrate\n# or for Prisma/Drizzle\nnpx @better-auth/cli@latest generate\n```\n\n**Important:** Re-run the CLI after adding or changing plugins to update your database schema.\n\n## Configuration\n\n### Plugin Options\n\n```typescript\ninterface RazorpayPluginOptions {\n  razorpayClient?: Razorpay       // Optional: Initialized Razorpay instance; omit when using razorpayKeyId + razorpayKeySecret\n  razorpayKeyId?: string          // Optional: Razorpay API key ID; required when razorpayClient is not provided (plugin creates the instance)\n  razorpayKeySecret?: string     // Optional: Razorpay API key secret; required when razorpayClient is not provided; when set, enables POST /razorpay/verify-payment\n  razorpayWebhookSecret?: string // Optional: Webhook secret for signature verification\n  createCustomerOnSignUp?: boolean // Optional: Create Razorpay customer on user sign-up (default: false)\n  trialOnSignUp?: { days: number; planName?: string } // Optional: When set with createCustomerOnSignUp, creates an app-level trial subscription at sign-up. Omit for no sign-up trial.\n  onCustomerCreate?: (args) => Promise<void>\n  getCustomerCreateParams?: (args) => Promise<{ params?: Record<string, unknown> }>\n  subscription?: SubscriptionOptions // Optional: { enabled, plans, callbacks, authorizeReference, ... }\n  onEvent?: (event) => Promise<void>\n  onWebhookEvent?: (payload, context) => Promise<void> // Optional: Custom webhook callback\n}\n```\n\n### Optional: Trial on sign-up\n\nWhen you want new users to get a **free trial** without adding a payment method first (e.g. 14 days, then they must subscribe):\n\n- Set **both** `createCustomerOnSignUp: true` and `trialOnSignUp: { days: 14, planName: 'Trial' }` (or any `days` and display `planName`).\n- On sign-up, the plugin creates a Razorpay customer and **one local subscription** with `status: 'trialing'`, `trialStart` / `trialEnd`, and no `razorpaySubscriptionId` (no Razorpay subscription until they subscribe).\n- **Subscription list** returns this record; your app can show \"Free trial — ends &lt;trialEnd&gt;\" and gate features when `trialEnd < now`.\n- The user can **subscribe anytime** via create-or-update (choose a plan, get checkout URL); the same record is updated to a paid subscription (plan, `razorpaySubscriptionId`, status from Razorpay).\n\n**Configurable:** Omit `trialOnSignUp` for products that do not want sign-up trials (e.g. checkout-first or plan-based trial only). If `trialOnSignUp` is not set, behavior is unchanged.\n\n### Callback functions\n\nThe plugin supports the same callback hooks as the [community plugin](https://github.com/iamjasonkendrick/better-auth-razorpay). You can use them for emails, analytics, external systems, or custom logic.\n\n| Callback | When it runs |\n|----------|----------------|\n| **`onCustomerCreate`** | After a Razorpay customer is created (when `createCustomerOnSignUp` is true and the user signs up). Receives `{ user, razorpayCustomer }`. |\n| **`getCustomerCreateParams`** | Before creating a Razorpay customer on sign-up. Return `{ params }` (e.g. `notes`) to add custom data to the customer. |\n| **`getSubscriptionCreateParams`** | Before creating a Razorpay subscription (create-or-update). Return `{ params }` (e.g. `notes`) to add custom data to the subscription. Receives `{ user, session, plan, subscription }`. |\n| **`authorizeReference`** | Before create-or-update and before listing subscriptions for a `referenceId` other than the current user. Return `true` to allow. Receives `{ user, referenceId, action }`. |\n| **`onSubscriptionCreated`** | After a new subscription is created (create-or-update). Receives `{ razorpaySubscription, subscription, plan }`. |\n| **`onSubscriptionActivated`** | When the webhook receives `subscription.activated`. Receives `{ event, razorpaySubscription, subscription, plan }`. |\n| **`onSubscriptionUpdate`** | When the webhook receives any other subscription event (e.g. `charged`, `paused`, `resumed`, `pending`, `halted`). Receives `{ event, subscription }`. |\n| **`onSubscriptionCancel`** | When the webhook receives `subscription.cancelled` or `subscription.expired`. Receives `{ event, razorpaySubscription, subscription }`. |\n| **`onEvent`** | After every processed webhook event. Receives the full event payload `{ event, ...payload }`. |\n| **`onWebhookEvent`** | Legacy: after webhook processing, with payload and user context. Receives `(payload, context)` where `context` has `userId` and `user`. |\n| **`freeTrial.onTrialStart`** | Optional, on a plan’s `freeTrial`. Call when you consider a subscription’s trial to have started (e.g. from your own logic or webhook handling). Receives `(subscription)`. |\n| **`freeTrial.onTrialEnd`** | Optional, on a plan’s `freeTrial`. Call when you consider a subscription’s trial to have ended. Receives `{ subscription }`. |\n\nExample: using callbacks in your config:\n\n```typescript\nrazorpayPlugin({\n  razorpayClient,\n  razorpayWebhookSecret: process.env.RAZORPAY_WEBHOOK_SECRET,\n  razorpayKeySecret: process.env.RAZORPAY_KEY_SECRET, // optional: enables verify-payment endpoint\n  createCustomerOnSignUp: true,\n  trialOnSignUp: { days: 14, planName: 'Trial' }, // optional: app-level trial at sign-up\n  onCustomerCreate: async ({ user, razorpayCustomer }) => {\n    console.log(`Razorpay customer created for user ${user.id}: ${razorpayCustomer.id}`)\n  },\n  getCustomerCreateParams: async ({ user, session }) => ({\n    params: { notes: { internalUserId: user.id } },\n  }),\n  subscription: {\n    enabled: true,\n    plans: [\n      {\n        name: 'Starter',\n        monthlyPlanId: 'plan_xxx',\n        freeTrial: {\n          days: 7,\n          onTrialStart: async (subscription) => console.log('Trial started', subscription.id),\n          onTrialEnd: async ({ subscription }) => console.log('Trial ended', subscription.id),\n        },\n      },\n    ],\n    getSubscriptionCreateParams: async ({ user, plan, subscription }) => ({\n      params: { notes: { planName: plan.name } },\n    }),\n    onSubscriptionCreated: async ({ razorpaySubscription, subscription, plan }) => {\n      console.log(`Subscription ${subscription.id} created for plan ${plan.name}`)\n    },\n    onSubscriptionActivated: async ({ event, subscription, plan }) => {\n      console.log(`Subscription ${subscription.id} activated`)\n    },\n    onSubscriptionUpdate: async ({ event, subscription }) => {\n      console.log(`Subscription ${subscription.id} updated: ${event}`)\n    },\n    onSubscriptionCancel: async ({ event, subscription }) => {\n      console.log(`Subscription ${subscription.id} cancelled/expired: ${event}`)\n    },\n    authorizeReference: async ({ user, referenceId, action }) => user.id === referenceId,\n  },\n  onEvent: async (event) => console.log('Razorpay event:', event.event),\n  onWebhookEvent: async (payload, context) => {\n    // Custom logic: emails, analytics, etc.\n  },\n})\n```\n\n### User Fields (Plug-and-Play)\n\nThe plugin extends the Better Auth user schema with:\n\n- **user**: `razorpayCustomerId` (optional) — set when `createCustomerOnSignUp` is true or when a customer is created for subscriptions.\n\nYou do **not** need to add it manually to `user.additionalFields` unless you prefer to define it yourself.\n\n## Database Setup\n\n### Automatic Schema Creation\n\nThe plugin automatically creates the following database models via Better Auth's schema system:\n\n**`user`** (extended)\n- `razorpayCustomerId` (string, optional) — Razorpay customer ID when customer creation is enabled.\n\n**`subscription`**\n- Primary key: **`id`** (generated by the adapter/database when not provided; the plugin does not pass `id` on create, so the adapter uses its `generateId` or the DB’s default, e.g. UUID or MongoDB `_id`). MongoDB adapters should map `id` ↔ `_id` per the [create-a-db-adapter](https://better-auth.com/docs/guides/create-a-db-adapter) guide.\n- Fields: `id`, `plan`, `planId`, `referenceId`, `razorpayCustomerId`, `razorpaySubscriptionId`, `status`, `trialStart`, `trialEnd`, `periodStart`, `periodEnd`, `cancelAtPeriodEnd`, `seats`, `groupId`, `createdAt`, `updatedAt`\n- `status` values: `created`, `active`, `pending`, `halted`, `cancelled`, `completed`, `expired`, `trialing`\n\n### Database Adapters\n\nThe plugin works with all Better Auth database adapters:\n\n- **MongoDB**: `mongodbAdapter()`\n- **Prisma**: `prismaAdapter()`\n- **Drizzle**: `drizzleAdapter()`\n- **Direct connections**: PostgreSQL, MySQL, SQLite\n\n**Important:** Better Auth uses adapter model names, NOT underlying table names. If your Prisma model is `User` mapping to table `users`, use the model name in configuration.\n\n### Primary key and MongoDB\n\nFollowing [Better Auth’s adapter guide](https://better-auth.com/docs/guides/create-a-db-adapter): the plugin always uses the field name **`id`** for the subscription primary key. The subscription **id is generated by the adapter/database** (the plugin does not pass `id` on create and does not use `forceAllowId`), so the adapter uses its `generateId` or the DB’s default (e.g. PostgreSQL `gen_random_uuid()`, MongoDB `_id`).\n\n- **SQL / Prisma / Drizzle:** The adapter or DB generates the id; no extra config.\n- **MongoDB:** Better Auth recommends mapping `id` ↔ `_id` so that:\n  - On **input** (create/update), `id` is stored as `_id`.\n  - On **output** (findOne/findMany), `_id` is returned as `id`.\n\n  The official `mongodbAdapter` from `better-auth/adapters/mongodb` applies this mapping for all models (including plugin models). If you use a custom MongoDB adapter, configure it with the same mapping (e.g. `mapKeysTransformInput: { id: \"_id\" }` and `mapKeysTransformOutput: { _id: \"id\" }` per the [create-a-db-adapter](https://better-auth.com/docs/guides/create-a-db-adapter) guide) so subscription create/update/webhook work correctly.\n\n## API Endpoints\n\nAll endpoints are prefixed with `/api/auth/razorpay/` (or your configured `basePath`).\n\n### Subscription flow\n\n| Action | Method | Endpoint | Description |\n|--------|--------|----------|-------------|\n| Create or update | `POST` | `subscription/create-or-update` | Start a subscription or update. With `embed: true` returns data for in-page modal (no redirect); otherwise returns `checkoutUrl`. Body: `plan` (plan **name** or Razorpay plan ID `plan_*`), `annual?`, `seats?`, `subscriptionId?`, `successUrl?`, `disableRedirect?`, `embed?`. |\n| Cancel | `POST` | `subscription/cancel` | Cancel by local subscription ID. Body: `subscriptionId`, `immediately?`. |\n| Restore | `POST` | `subscription/restore` | Restore a subscription scheduled to cancel. Body: `subscriptionId`. |\n| List | `GET` | `subscription/list` | List active/trialing subscriptions. Query: `referenceId?` (default: current user). |\n| Get plans | `GET` | `get-plans` | Return configured plans with price details (name, monthlyPlanId, annualPlanId, limits, freeTrial, monthly/annual amount, currency, period from Razorpay). |\n| Webhook | `POST` | `webhook` | Razorpay webhook URL; configure in Razorpay Dashboard. |\n\n### 1. Get Plans\n\nRetrieve all configured subscription plans (from plugin config; no Razorpay API call).\n\n**Endpoint:** `GET /api/auth/razorpay/get-plans`\n\nEach plan in the response includes optional **price details** (`monthly`, `annual`) when available from Razorpay: `amount` (smallest currency unit, e.g. paise/cents), `currency`, `period` (e.g. monthly, yearly), and `interval`. Omitted if the plan fetch fails or the variant is not configured.\n\n**Authentication:** Not required (public endpoint)\n\n**Response:**\n\n```typescript\n{\n  success: true,\n  data: Array<{ name: string; monthlyPlanId: string; annualPlanId?: string; limits?: Record<string, number>; freeTrial?: { days: number }; monthly?: { amount: number; currency: string; period: string; interval?: number }; annual?: { amount: number; currency: string; period: string; interval?: number } }>\n}\n```\n\n**Client Usage:**\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\n// Prefer: use authClient.razorpay (requires razorpayClientPlugin() in createAuthClient)\nconst result = await authClient.razorpay.getPlans()\nif (result.success) {\n  const plans = result.data\n  // plans: PlanSummary[]\n}\n\n// Or using fetch directly\nconst response = await fetch('/api/auth/razorpay/get-plans')\nconst { data } = await response.json()\n```\n\n---\n\n### 2. Create or update subscription\n\nCreate a new subscription or update an existing one for the authenticated user.\n\n**Endpoint:** `POST /api/auth/razorpay/subscription/create-or-update`\n\n**Authentication:** Required (uses `sessionMiddleware`)\n\n**Request Body:**\n\n```typescript\n{\n  plan: string                       // Required: Plan name (e.g. 'Starter') or Razorpay plan ID (plan_*)\n  annual?: boolean                   // Optional: Use annual plan (default: false)\n  seats?: number                     // Optional: Seat count (default: 1)\n  subscriptionId?: string           // Optional: Existing subscription ID for updates\n  successUrl?: string                // Optional: Redirect URL after checkout\n  disableRedirect?: boolean          // Optional: Disable redirect\n  embed?: boolean                   // Optional: When true, in-page modal (no redirect); use openRazorpaySubscriptionCheckout with razorpaySubscriptionId\n}\n```\n\n**Response:**\n\n```typescript\n{\n  success: true,\n  data: {\n    checkoutUrl?: string | null      // Present when not embed; use for redirect\n    subscriptionId: string\n    razorpaySubscriptionId: string   // Use with embed + openRazorpaySubscriptionCheckout\n  }\n}\n```\n\n**Client Usage:**\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\n// Prefer: use authClient.razorpay (requires razorpayClientPlugin() in createAuthClient)\nconst result = await authClient.razorpay.createOrUpdateSubscription({\n  plan: 'Starter',\n  annual: false,\n  seats: 1,\n})\n\nif (result.success) {\n  if (result.data.checkoutUrl) {\n    window.location.href = result.data.checkoutUrl\n  }\n  // Or with embed: true use result.data.razorpaySubscriptionId with openRazorpaySubscriptionCheckout\n}\n```\n\n**Error Codes:**\n- `PLAN_NOT_FOUND` - Plan ID not in configured plans\n- `SUBSCRIPTION_ALREADY_EXISTS` - User already has an active subscription\n- `UNAUTHORIZED` - User not authenticated\n- `USER_NOT_FOUND` - User record not found\n\n---\n\n### 3. List subscriptions\n\nList active/trialing subscriptions for the authenticated user (or by optional referenceId).\n\n**Endpoint:** `GET /api/auth/razorpay/subscription/list`\n\n**Authentication:** Required (uses `sessionMiddleware`)\n\n**Query:** `referenceId?` (optional; default: current user)\n\n**Response:**\n\n```typescript\n{\n  success: true,\n  data: SubscriptionRecord[]  // Array of subscription records\n}\n```\n\n**Client Usage:**\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\n// Prefer: use authClient.razorpay (requires razorpayClientPlugin() in createAuthClient)\nconst result = await authClient.razorpay.listSubscriptions()\nif (result.success && result.data.length) {\n  const subscription = result.data[0]\n  console.log('Subscription status:', subscription.status)\n  console.log('Plan:', subscription.plan)\n  console.log('Cancel at period end:', subscription.cancelAtPeriodEnd)\n}\n```\n\n**Error Codes:**\n- `UNAUTHORIZED` - User not authenticated\n- `USER_NOT_FOUND` - User record not found\n- `SUBSCRIPTION_FETCH_FAILED` - Failed to fetch from Razorpay API\n\n---\n\n### 4. Verify Payment\n\nVerify payment signature after Razorpay checkout completion. This endpoint is **only registered when `razorpayKeySecret`** is set in plugin options. Use the same API key secret as your Razorpay client (not the webhook secret).\n\n**Endpoint:** `POST /api/auth/razorpay/verify-payment`\n\n**Authentication:** Required (uses `sessionMiddleware`)\n\n**Request Body:**\n\n```typescript\n{\n  razorpay_payment_id: string        // Required: Payment ID from Razorpay\n  razorpay_subscription_id: string  // Required: Subscription ID from Razorpay\n  razorpay_signature: string         // Required: Payment signature\n}\n```\n\n**Response:**\n\n```typescript\n{\n  success: true,\n  data: {\n    message: string,\n    payment_id: string,\n    subscription_id: string,\n    amount: number,    // Paisa (e.g. 29900 = ₹299.00)\n    currency?: string // e.g. INR, USD\n  }\n}\n```\n\n**Client Usage:**\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\n// After Razorpay checkout success callback — use authClient.razorpay.verifyPayment\nconst handlePaymentSuccess = async (razorpayResponse: {\n  razorpay_payment_id: string\n  razorpay_subscription_id: string\n  razorpay_signature: string\n}) => {\n  const result = await authClient.razorpay.verifyPayment(razorpayResponse)\n  if (result.success) {\n    console.log('Payment verified:', result.data.message)\n    // result.data.amount (paisa), result.data.currency, etc.\n    // Redirect to success page\n  }\n}\n```\n\n**Error Codes:**\n- `SIGNATURE_VERIFICATION_FAILED` - Invalid payment signature\n- `UNAUTHORIZED` - User not authenticated\n- `SUBSCRIPTION_NOT_FOUND` - Subscription record not found\n- `FORBIDDEN` - Subscription does not belong to authenticated user\n\n---\n\n### 5. Pause Subscription\n\nPause an active subscription.\n\n**Endpoint:** `POST /api/auth/razorpay/pause-subscription`\n\n**Authentication:** Required (uses `sessionMiddleware`)\n\n**Request Body:**\n\n```typescript\n{\n  subscription_id: string  // Required: Subscription ID\n}\n```\n\n**Response:**\n\n```typescript\n{\n  success: true,\n  data: RazorpaySubscription\n}\n```\n\n**Client Usage:** The client plugin does not expose a dedicated pause method. Use `fetch` to call the endpoint if your server implements it:\n\n```typescript\nconst response = await fetch('/api/auth/razorpay/pause-subscription', {\n  method: 'POST',\n  headers: { 'Content-Type': 'application/json' },\n  body: JSON.stringify({ subscription_id: 'sub_1234567890' }),\n})\nconst result = await response.json()\nif (result.success) {\n  console.log('Subscription paused:', result.data.status)\n}\n```\n\n**Error Codes:**\n- `UNAUTHORIZED` - User not authenticated or subscription doesn't belong to user\n- `SUBSCRIPTION_NOT_FOUND` - Subscription not found\n\n---\n\n### 6. Restore subscription\n\nRestore a subscription that was scheduled to cancel, or resume a paused Razorpay subscription.\n\n**Endpoint:** `POST /api/auth/razorpay/subscription/restore`\n\n**Authentication:** Required (uses `sessionMiddleware`)\n\n**Request Body:**\n\n```typescript\n{\n  subscriptionId: string  // Required: Local subscription ID\n}\n```\n\n**Response:**\n\n```typescript\n{\n  success: true,\n  data: { id: string; status: string }\n}\n```\n\n**Client Usage:** Restore a subscription that was scheduled to cancel. Use **`authClient.razorpay.restoreSubscription`** (body uses local subscription ID):\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\nconst result = await authClient.razorpay.restoreSubscription({\n  subscriptionId: 'local_sub_id_or_razorpay_sub_id',\n})\nif (result.success) {\n  console.log('Subscription restored:', result.data.status)\n}\n```\n\n**Error Codes:**\n- `UNAUTHORIZED` - User not authenticated or subscription doesn't belong to user\n- `SUBSCRIPTION_NOT_FOUND` - Subscription not found\n- `INVALID_STATUS` - Subscription is not paused\n\n---\n\n### 7. Cancel Subscription\n\nCancel a subscription at the end of the current billing period.\n\n**Endpoint:** `POST /api/auth/razorpay/subscription/cancel`\n\n**Authentication:** Required (uses `sessionMiddleware`)\n\n**Request Body:**\n\n```typescript\n{\n  subscriptionId: string   // Required: Local subscription ID (or Razorpay subscription ID)\n  immediately?: boolean    // Optional: Cancel now vs at period end (default: false)\n}\n```\n\n**Response:**\n\n```typescript\n{\n  success: true,\n  data: { id: string; status: string; plan_id: string; current_end?: number; ended_at?: number | null }\n}\n```\n\n**Note:** By default this cancels at period end. Set `immediately: true` to cancel now.\n\n**Client Usage:**\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\nconst result = await authClient.razorpay.cancelSubscription({\n  subscriptionId: 'local_sub_id_or_razorpay_sub_id',\n  immediately: false,\n})\nif (result.success) {\n  console.log('Subscription will cancel at period end:', result.data.status)\n}\n```\n\n**Error Codes:**\n- `UNAUTHORIZED` - User not authenticated or subscription doesn't belong to user\n- `SUBSCRIPTION_NOT_FOUND` - Subscription not found\n\n---\n\n### 8. Webhook\n\nHandle Razorpay webhook events (automatically called by Razorpay).\n\n**Endpoint:** `POST /api/auth/razorpay/webhook`\n\n**Authentication:** Not required (webhook endpoint)\n\n**Headers:**\n- `x-razorpay-signature` - Webhook signature (required)\n\n**Supported Events:**\n- `subscription.authenticated` - Subscription authenticated\n- `subscription.activated` - Subscription activated\n- `subscription.charged` - Payment charged\n- `subscription.cancelled` - Subscription cancelled\n- `subscription.completed` - Subscription completed (all cycles done)\n- `subscription.paused` - Subscription paused\n- `subscription.resumed` - Subscription resumed\n- `subscription.pending` - Subscription pending\n- `subscription.halted` - Subscription halted\n- `subscription.expired` - Subscription expired\n- `subscription.updated` - Subscription updated (plan/quantity/period changed)\n\n**Response:**\n\n```typescript\n{\n  success: boolean\n  message?: string\n}\n```\n\n## Client Usage\n\n### Auth client: use the Razorpay namespace\n\nThe auth client from `createAuthClient()` is a single client. When you add `razorpayClientPlugin()` to `createAuthClient({ plugins: [...] })`, that same auth client gets a **`razorpay` namespace** with methods like `getPlans()`, `verifyPayment()`, etc. **Call `authClient.razorpay.*`** so requests hit the plugin's routes (avoids 404s):\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\n// GET plans\nconst plansRes = await authClient.razorpay.getPlans()\nif (plansRes.success) console.log(plansRes.data)\n\n// List subscriptions\nconst listRes = await authClient.razorpay.listSubscriptions({ referenceId: 'optional' })\n\n// Create or update subscription\n// With embed: true — in-page modal (no redirect); use openRazorpaySubscriptionCheckout with razorpaySubscriptionId\n// Without embed — returns checkoutUrl for redirect\nconst result = await authClient.razorpay.createOrUpdateSubscription({\n  plan: 'Starter',\n  annual: false,\n  seats: 1,\n  embed: true, // keep user on your page; checkout opens as modal\n})\nif (result.success && result.data.razorpaySubscriptionId) {\n  const { openRazorpaySubscriptionCheckout } = await import('@deiondz/better-auth-razorpay/hooks')\n  await openRazorpaySubscriptionCheckout({\n    key: process.env.NEXT_PUBLIC_RAZORPAY_KEY_ID!,\n    subscriptionId: result.data.razorpaySubscriptionId,\n    handler: async (res) => {\n      await authClient.razorpay.verifyPayment({\n        razorpay_payment_id: res.razorpay_payment_id,\n        razorpay_subscription_id: res.razorpay_subscription_id,\n        razorpay_signature: res.razorpay_signature,\n      })\n    },\n  })\n}\n// Or redirect: if (result.success && result.data.checkoutUrl) window.location.href = result.data.checkoutUrl\n\n// Cancel, restore, verify payment\nawait authClient.razorpay.cancelSubscription({ subscriptionId: 'sub_xxx', immediately: false })\nawait authClient.razorpay.restoreSubscription({ subscriptionId: 'sub_xxx' })\nawait authClient.razorpay.verifyPayment({\n  razorpay_payment_id: 'pay_xxx',\n  razorpay_subscription_id: 'sub_xxx',\n  razorpay_signature: '...',\n})\n```\n\n### Terminology\n\nBetter Auth's `createAuthClient()` does **not** add a generic `api.get` / `api.post` to the auth client type. Plugin endpoints are exposed as **namespaces** on that same client (e.g. `authClient.razorpay`). For Razorpay, use **`authClient.razorpay.verifyPayment()`**, **`authClient.razorpay.getPlans()`**, etc. If you use a custom client that implements its own `api.get`/`api.post`, calling those with Razorpay paths can lead to 404s—prefer adding the client plugin and using `authClient.razorpay.*`.\n\n### Type Safety\n\nInfer types from your auth configuration:\n\n```typescript\nimport type { auth } from '@/lib/auth'\nimport { createAuthClient } from 'better-auth/react'\n\nexport const authClient = createAuthClient<typeof auth>({\n  // ... config\n})\n\n// Infer session type\ntype Session = typeof authClient.$Infer.Session\ntype User = typeof authClient.$Infer.Session.user\n```\n\n## TanStack Query Hooks\n\nThe plugin works with **TanStack Query**. We provide optional pre-built hooks that receive the **auth client** from React context. Wrap your app once with **`<RazorpayAuthProvider client={authClient}>`** (the same auth client from `createAuthClient()`) and use **`usePlans()`**, **`useSubscriptions()`**, etc. with no client argument. The hooks call **`authClient.razorpay.*`** when the client has the Razorpay namespace. You can also call `authClient.razorpay.getPlans()`, `authClient.razorpay.createOrUpdateSubscription(...)`, etc. directly, or build your own hooks around those methods.\n\nTo use our pre-built hooks, install peer dependencies:\n\n```bash\nnpm install @tanstack/react-query react\n# or yarn / pnpm / bun\n```\n\nImport from `@deiondz/better-auth-razorpay/hooks` and wrap your app with **`RazorpayAuthProvider`** so hooks receive the auth client from context:\n\n```tsx\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport { createAuthClient } from 'better-auth/react'\nimport { razorpayClientPlugin } from '@deiondz/better-auth-razorpay/client'\nimport {\n  RazorpayAuthProvider,\n  usePlans,\n  useSubscriptions,\n  useCreateOrUpdateSubscription,\n  useCancelSubscription,\n  useRestoreSubscription,\n  useVerifyPayment,\n  openRazorpaySubscriptionCheckout,\n  razorpayQueryKeys,\n} from '@deiondz/better-auth-razorpay/hooks'\nimport type { CreateOrUpdateSubscriptionInput } from '@deiondz/better-auth-razorpay/hooks'\n\nconst queryClient = new QueryClient()\n// auth from your server config (e.g. import type { auth } from './auth')\nconst authClient = createAuthClient<typeof auth>({\n  plugins: [razorpayClientPlugin()],\n})\n\nfunction App() {\n  return (\n    <QueryClientProvider client={queryClient}>\n      <RazorpayAuthProvider client={authClient}>\n        <SubscriptionUI />\n      </RazorpayAuthProvider>\n    </QueryClientProvider>\n  )\n}\n\nfunction SubscriptionUI() {\n  // Plans (no auth required)\n  const { data: plans, isLoading: plansLoading } = usePlans()\n\n  // Current user's subscriptions (requires session)\n  const { data: subscriptions, isLoading: subsLoading } = useSubscriptions()\n\n  const createOrUpdate = useCreateOrUpdateSubscription()\n  const verifyPayment = useVerifyPayment()\n  const cancel = useCancelSubscription()\n  const restore = useRestoreSubscription()\n\n  const handleSubscribe = () => {\n    createOrUpdate.mutate(\n      { plan: 'Starter', annual: false, embed: true }, // in-page modal, no redirect\n      {\n        onSuccess: async (data) => {\n          if (data.checkoutUrl) {\n            window.location.href = data.checkoutUrl // redirect flow\n            return\n          }\n          // In-page: open Razorpay modal on your site\n          await openRazorpaySubscriptionCheckout({\n            key: process.env.NEXT_PUBLIC_RAZORPAY_KEY_ID!,\n            subscriptionId: data.razorpaySubscriptionId,\n            handler: (res) => {\n              verifyPayment.mutate({\n                razorpay_payment_id: res.razorpay_payment_id,\n                razorpay_subscription_id: res.razorpay_subscription_id,\n                razorpay_signature: res.razorpay_signature,\n              })\n            },\n          })\n        },\n      }\n    )\n  }\n\n  const handleCancel = (subscriptionId: string) => {\n    cancel.mutate({ subscriptionId, immediately: false })\n  }\n\n  const handleRestore = (subscriptionId: string) => {\n    restore.mutate({ subscriptionId })\n  }\n\n  if (plansLoading) return <div>Loading plans...</div>\n  return (\n    <div>\n      {plans?.map((p) => (\n        <button key={p.name} onClick={handleSubscribe} disabled={createOrUpdate.isPending}>\n          Subscribe to {p.name}\n        </button>\n      ))}\n      {subscriptions?.map((s) => (\n        <div key={s.id}>\n          {s.plan} – {s.status}\n          {s.cancelAtPeriodEnd ? (\n            <button onClick={() => handleRestore(s.id)}>Restore</button>\n          ) : (\n            <button onClick={() => handleCancel(s.id)}>Cancel</button>\n          )}\n        </div>\n      ))}\n    </div>\n  )\n}\n```\n\n### Hooks reference\n\n| Hook | Type | Description |\n|------|------|-------------|\n| `usePlans(options?)` | `useQuery` | Fetches configured plans (GET `/razorpay/get-plans`). Requires `RazorpayAuthProvider` above in the tree. |\n| `useSubscriptions(input?, options?)` | `useQuery` | Lists active/trialing subscriptions (GET `/razorpay/subscription/list`). Optional `referenceId` in input or options. Requires `RazorpayAuthProvider`. |\n| `useCreateOrUpdateSubscription(options?)` | `useMutation` | Creates or updates subscription; with `embed: true` returns data for in-page modal (use `openRazorpaySubscriptionCheckout`); otherwise returns `checkoutUrl`. Invalidates subscriptions list on success. Requires `RazorpayAuthProvider`. |\n| `useVerifyPayment(options?)` | `useMutation` | Verifies payment after Razorpay checkout success (in-page or redirect). Invalidates subscriptions list on success. Requires `RazorpayAuthProvider`. |\n| `useCancelSubscription(options?)` | `useMutation` | Cancels by local subscription ID; optional `immediately`. Invalidates subscriptions list on success. Requires `RazorpayAuthProvider`. |\n| `useRestoreSubscription(options?)` | `useMutation` | Restores a subscription scheduled to cancel. Invalidates subscriptions list on success. Requires `RazorpayAuthProvider`. |\n\n**Query keys** (for manual invalidation or prefetching):\n\n```ts\nimport { razorpayQueryKeys } from '@deiondz/better-auth-razorpay/hooks'\n\nrazorpayQueryKeys.plans()           // ['razorpay', 'plans']\nrazorpayQueryKeys.subscriptions()   // ['razorpay', 'subscriptions', 'me']\nrazorpayQueryKeys.subscriptions('user-id')  // ['razorpay', 'subscriptions', 'user-id']\n```\n\n### In-page checkout (no redirect)\n\nTo keep users on your site instead of redirecting to Razorpay’s hosted page:\n\n1. Call `createOrUpdateSubscription` with **`embed: true`**. The API will not return `checkoutUrl`; it will return `razorpaySubscriptionId`.\n2. Use **`openRazorpaySubscriptionCheckout`** from `@deiondz/better-auth-razorpay/hooks` with your Razorpay key ID and the returned `razorpaySubscriptionId`. This loads Razorpay Checkout.js and opens the payment form as a **modal on your page**.\n3. In the `handler` callback, call **`verifyPayment`** with `razorpay_payment_id`, `razorpay_subscription_id`, and `razorpay_signature` to verify and persist the payment.\n\nYou can optionally call **`loadRazorpayCheckoutScript()`** earlier (e.g. on route load) so the script is ready when the user clicks Subscribe.\n\n## Webhook Setup\n\n### 1. Configure Webhook in Razorpay Dashboard\n\n1. Go to Razorpay Dashboard → Settings → Webhooks\n2. Add webhook URL: `https://yourdomain.com/api/auth/razorpay/webhook`\n3. Select events to subscribe:\n   - `subscription.authenticated`\n   - `subscription.activated`\n   - `subscription.charged`\n   - `subscription.cancelled`\n   - `subscription.paused`\n   - `subscription.resumed`\n   - `subscription.pending`\n   - `subscription.halted`\n4. Copy the webhook secret\n\n### 2. Configure Webhook Secret\n\nAdd the webhook secret to your environment variables:\n\n```env\nRAZORPAY_WEBHOOK_SECRET=whsec_xxxxxxxxxxxx\n```\n\n### 3. Custom Webhook Handler (Optional)\n\nYou can provide a custom callback function to handle webhook events:\n\n```typescript\nrazorpayPlugin({\n  // ... other options\n  onWebhookEvent: async (payload, context) => {\n    const { event, subscription, payment } = payload\n    const { userId, user } = context\n\n    switch (event) {\n      case 'subscription.charged':\n        // Send payment confirmation email\n        await sendEmail(user.email, 'Payment Successful', {\n          amount: payment?.amount,\n          subscriptionId: subscription.id,\n        })\n        break\n\n      case 'subscription.cancelled':\n        // Send cancellation email\n        await sendEmail(user.email, 'Subscription Cancelled')\n        break\n\n      case 'subscription.activated':\n        // Update external systems\n        await updateCRM(userId, { subscriptionActive: true })\n        break\n\n      // Handle other events...\n    }\n  },\n})\n```\n\n**Important:** Webhook callback errors are handled silently and don't break core webhook processing. The callback is for custom business logic only.\n\n## TypeScript Types\n\n### Import Types\n\n```typescript\nimport type {\n  RazorpaySubscription,\n  RazorpaySubscriptionRecord,\n  RazorpayUserRecord,\n  RazorpayApiResponse,\n  RazorpaySuccessResponse,\n  RazorpayErrorResponse,\n  RazorpayPluginOptions,\n  OnWebhookEventCallback,\n} from '@deiondz/better-auth-razorpay'\n```\n\n### Response Types\n\n```typescript\n// Success response\ninterface RazorpaySuccessResponse<T> {\n  success: true\n  data: T\n}\n\n// Error response\ninterface RazorpayErrorResponse {\n  success: false\n  error: {\n    code: string\n    description: string\n    [key: string]: unknown  // Additional error metadata (development only)\n  }\n}\n\n// Union type\ntype RazorpayApiResponse<T> = RazorpaySuccessResponse<T> | RazorpayErrorResponse\n```\n\n### Subscription Type\n\n```typescript\ninterface RazorpaySubscription {\n  id: string\n  entity: string\n  plan_id: string\n  status: string\n  current_start: number\n  current_end: number\n  ended_at: number | null\n  quantity: number\n  notes: Record<string, string> | null\n  charge_at: number\n  start_at: number\n  end_at: number\n  auth_attempts: number\n  total_count: number\n  paid_count: number\n  customer_notify: boolean\n  created_at: number\n  expire_by: number | null\n  short_url: string\n  has_scheduled_changes: boolean\n  change_scheduled_at: number | null\n  source: string\n  offer_id: string | null\n  remaining_count: string\n}\n```\n\n## Error Handling\n\n### Error Response Format\n\nAll endpoints return errors in a consistent format:\n\n```typescript\n{\n  success: false,\n  error: {\n    code: string,        // Error code (e.g., 'UNAUTHORIZED', 'PLAN_NOT_FOUND')\n    description: string,  // Human-readable error message\n    [key: string]: unknown  // Additional error metadata (development only)\n  }\n}\n```\n\n### Common Error Codes\n\n| Code | Description |\n|------|-------------|\n| `INVALID_REQUEST` | Validation error (Zod schema validation failed) |\n| `UNAUTHORIZED` | User not authenticated or subscription doesn't belong to user |\n| `PLAN_NOT_FOUND` | Plan ID not found in configured plans |\n| `SUBSCRIPTION_NOT_FOUND` | Subscription record not found |\n| `SUBSCRIPTION_ALREADY_EXISTS` | User already has an active subscription |\n| `INVALID_STATUS` | Subscription is not in the expected status |\n| `SIGNATURE_VERIFICATION_FAILED` | Payment signature verification failed |\n| `NETWORK_ERROR` | Network connection failed |\n| `TIMEOUT_ERROR` | Request timed out |\n| `RAZORPAY_ERROR` | Razorpay API error |\n| `UNKNOWN_ERROR` | Unexpected error occurred |\n\n### Error Handling Example\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\ntry {\n  const result = await authClient.razorpay.createOrUpdateSubscription({\n    plan: 'plan_123',\n    annual: false,\n  })\n\n  if (!result.success) {\n    switch (result.error.code) {\n      case 'PLAN_NOT_FOUND':\n        toast.error('Plan not available')\n        break\n      case 'SUBSCRIPTION_ALREADY_EXISTS':\n        toast.error('You already have an active subscription')\n        break\n      default:\n        toast.error(result.error.description)\n    }\n    return\n  }\n\n  // Handle success\n  if (result.data.checkoutUrl) window.location.href = result.data.checkoutUrl\n} catch (error) {\n  console.error('Network error:', error)\n  toast.error('Network error. Please try again.')\n}\n```\n\n## Usage Examples\n\n### Complete Subscription Flow\n\n```typescript\nimport { authClient } from '@/lib/auth-client'\n\nasync function handleSubscriptionFlow() {\n  // 1. Get available plans\n  const plansResult = await authClient.razorpay.getPlans()\n  if (!plansResult.success) {\n    console.error('Failed to fetch plans')\n    return\n  }\n\n  const plans = plansResult.data\n  const selectedPlan = plans[0]\n\n  // 2. Create subscription\n  const subscribeResult = await authClient.razorpay.createOrUpdateSubscription({\n    plan: selectedPlan.name,\n    annual: false,\n    seats: 1,\n  })\n\n  if (!subscribeResult.success) {\n    console.error('Failed to create subscription:', subscribeResult.error)\n    return\n  }\n\n  // 3. Redirect to Razorpay checkout (or use embed + openRazorpaySubscriptionCheckout)\n  if (subscribeResult.data.checkoutUrl) {\n    window.location.href = subscribeResult.data.checkoutUrl\n  }\n\n  // 4. After payment, verify payment (in Razorpay success handler)\n  // This is handled in the Razorpay checkout callback\n}\n\n// Razorpay checkout success handler\nfunction handleRazorpaySuccess(response: {\n  razorpay_payment_id: string\n  razorpay_subscription_id: string\n  razorpay_signature: string\n}) {\n  authClient.razorpay.verifyPayment(response).then((result) => {\n    if (result.success) {\n      // Redirect to success page\n      window.location.href = '/subscription/success'\n    }\n  })\n}\n```\n\n### React Hook Example with TanStack Query\n\n```typescript\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'\nimport { authClient } from '@/lib/auth-client'\n\n// Get plans — use authClient.razorpay.getPlans()\nexport function usePlans() {\n  return useQuery({\n    queryKey: ['razorpay', 'plans'],\n    queryFn: async () => {\n      const result = await authClient.razorpay.getPlans()\n      if (!result.success) throw new Error(result.error.description)\n      return result.data\n    },\n  })\n}\n\n// List subscriptions — use authClient.razorpay.listSubscriptions()\nexport function useSubscriptions() {\n  return useQuery({\n    queryKey: ['razorpay', 'subscriptions'],\n    queryFn: async () => {\n      const result = await authClient.razorpay.listSubscriptions()\n      if (!result.success) throw new Error(result.error.description)\n      return result.data\n    },\n  })\n}\n\n// Create or update subscription — use authClient.razorpay.createOrUpdateSubscription()\nexport function useCreateOrUpdateSubscription() {\n  const queryClient = useQueryClient()\n  return useMutation({\n    mutationFn: async (input: { plan: string; annual?: boolean; seats?: number }) => {\n      const result = await authClient.razorpay.createOrUpdateSubscription(input)\n      if (!result.success) throw new Error(result.error.description)\n      return result.data\n    },\n    onSuccess: () => {\n      queryClient.invalidateQueries({ queryKey: ['razorpay', 'subscriptions'] })\n    },\n  })\n}\n\n// Cancel subscription — use authClient.razorpay.cancelSubscription()\nexport function useCancelSubscription() {\n  const queryClient = useQueryClient()\n  return useMutation({\n    mutationFn: async (input: { subscriptionId: string; immediately?: boolean }) => {\n      const result = await authClient.razorpay.cancelSubscription(input)\n      if (!result.success) throw new Error(result.error.description)\n      return result.data\n    },\n    onSuccess: () => {\n      queryClient.invalidateQueries({ queryKey: ['razorpay', 'subscriptions'] })\n    },\n  })\n}\n\n// Restore subscription — use authClient.razorpay.restoreSubscription()\nexport function useRestoreSubscription() {\n  const queryClient = useQueryClient()\n  return useMutation({\n    mutationFn: async (input: { subscriptionId: string }) => {\n      const result = await authClient.razorpay.restoreSubscription(input)\n      if (!result.success) throw new Error(result.error.description)\n      return result.data\n    },\n    onSuccess: () => {\n      queryClient.invalidateQueries({ queryKey: ['razorpay', 'subscriptions'] })\n    },\n  })\n}\n```\n\n### React Component Example\n\n```typescript\n'use client'\n\nimport { usePlans, useSubscriptions, useCreateOrUpdateSubscription, useCancelSubscription } from '@/hooks/use-razorpay'\n\nexport function SubscriptionPage() {\n  const { data: plans, isLoading: plansLoading } = usePlans()\n  const { data: subscriptions, isLoading: subLoading } = useSubscriptions()\n  const createOrUpdate = useCreateOrUpdateSubscription()\n  const cancel = useCancelSubscription()\n\n  const handleSubscribe = async (planName: string) => {\n    try {\n      const result = await createOrUpdate.mutateAsync({ plan: planName, annual: false })\n      if (result.checkoutUrl) window.location.href = result.checkoutUrl\n      // Or use result.razorpaySubscriptionId with openRazorpaySubscriptionCheckout when embed: true\n    } catch (error) {\n      console.error('Failed to create subscription:', error)\n      // Handle error (show toast, etc.)\n    }\n  }\n\n  const subscription = subscriptions?.[0]\n\n  const handleCancel = async () => {\n    if (!subscription) return\n    try {\n      await cancel.mutateAsync({ subscriptionId: subscription.id })\n      alert('Subscription will be cancelled at period end')\n    } catch (error) {\n      console.error('Failed to cancel subscription:', error)\n    }\n  }\n\n  if (plansLoading || subLoading) {\n    return <div>Loading...</div>\n  }\n\n  return (\n    <div>\n      {subscription ? (\n        <div>\n          <h2>Current Subscription</h2>\n          <p>Status: {subscription.status}</p>\n          <p>Plan: {subscription.plan}</p>\n          {subscription.cancelAtPeriodEnd && (\n            <p className=\"text-warning\">Will cancel at period end</p>\n          )}\n          <button \n            onClick={handleCancel}\n            disabled={cancel.isPending}\n          >\n            {cancel.isPending ? 'Cancelling...' : 'Cancel Subscription'}\n          </button>\n        </div>\n      ) : (\n        <div>\n          <h2>Select a Plan</h2>\n          {plans?.map((plan) => (\n            <div key={plan.name}>\n              <h3>{plan.name}</h3>\n              <p>{plan.monthly ? `₹${plan.monthly.amount / 100}/month` : ''}</p>\n              <button \n                onClick={() => handleSubscribe(plan.name)}\n                disabled={createOrUpdate.isPending}\n              >\n                {createOrUpdate.isPending ? 'Processing...' : 'Subscribe'}\n              </button>\n            </div>\n          ))}\n        </div>\n      )}\n    </div>\n  )\n}\n```\n\n### Razorpay Checkout Integration\n\n```typescript\nimport { loadScript } from '@/lib/razorpay-script' // Your script loader\n\nasync function initializeRazorpayCheckout(subscriptionId: string) {\n  // Load Razorpay script\n  await loadScript('https://checkout.razorpay.com/v1/checkout.js')\n\n  const options = {\n    subscription_id: subscriptionId,\n    key: process.env.NEXT_PUBLIC_RAZORPAY_KEY_ID!,\n    name: 'Your App Name',\n    description: 'Subscription Payment',\n    handler: async function (response: {\n      razorpay_payment_id: string\n      razorpay_subscription_id: string\n      razorpay_signature: string\n    }) {\n      // Verify payment — use authClient.razorpay.verifyPayment()\n      const verifyResult = await authClient.razorpay.verifyPayment(response)\n      if (verifyResult.success) {\n        window.location.href = '/subscription/success'\n      } else {\n        console.error('Payment verification failed:', verifyResult.error)\n      }\n    },\n    prefill: {\n      name: user.name,\n      email: user.email,\n    },\n    theme: {\n      color: '#3399cc',\n    },\n  }\n\n  const razorpay = new (window as any).Razorpay(options)\n  razorpay.open()\n}\n```\n\n## Best Practices\n\n### 1. Better Auth Configuration\n\n- **Use environment variables** - Prefer `BETTER_AUTH_SECRET` and `BETTER_AUTH_URL` env vars over config\n- **Re-run CLI after changes** - Always run `npx @better-auth/cli@latest migrate` after adding/changing plugins\n- **Model names vs table names** - Use ORM model names in config, not DB table names\n- **Type inference** - Use `typeof auth.$Infer.Session` for type safety\n\n### 2. Plan Management\n\n- **Create plans in Razorpay dashboard** - Plans are managed in Razorpay, not through the API\n- **Use plan IDs in configuration** - Add all plan IDs to the `plans` array in plugin options\n- **Validate plans client-side** - Always validate plan IDs before allowing users to subscribe\n\n### 3. Security\n\n- **Always verify payment signatures** - Never skip signature verification\n- **Use HTTPS** - Always use HTTPS in production\n- **Protect webhook secret** - Never expose webhook secret in client-side code\n- **Validate user ownership** - The plugin automatically validates subscription ownership\n- **Production error messages** - Error messages are automatically sanitized in production\n\n### 4. Error Handling\n\n- **Handle all error codes** - Check for specific error codes and provide user-friendly messages\n- **Log errors server-side** - Log detailed errors server-side, show generic messages to users\n- **Retry logic** - Implement retry logic for network errors and timeouts\n- **Use Better Auth error patterns** - Follow Better Auth's error handling conventions\n\n### 5. Webhook Handling\n\n- **Idempotent operations** - Ensure webhook handlers are idempotent\n- **Handle failures gracefully** - Webhook callback errors don't break core functionality\n- **Monitor webhook events** - Log webhook events for debugging and analytics\n- **Use webhook callback** - Leverage `onWebhookEvent` for custom business logic\n\n### 6. Subscription Lifecycle\n\n- **Check subscription status** - Always check subscription status before allowing actions\n- **Handle edge cases** - Account for paused, cancelled, and expired subscriptions\n- **Update UI accordingly** - Reflect subscription status changes in your UI\n- **Use webhooks for updates** - Rely on webhooks for status updates rather than polling\n\n### 7. Performance\n\n- **Cache plans** - Plans don't change frequently, consider caching\n- **Optimize queries** - The plugin already optimizes database queries\n- **Use webhooks** - Rely on webhooks for status updates rather than polling\n- **TanStack Query** - Use TanStack Query for client-side caching and state management\n\n### 8. TypeScript Best Practices\n\n- **Infer types from auth** - Use `typeof auth.$Infer.Session` for type safety\n- **Type client properly** - Use `createAuthClient<typeof auth>()` for full type inference\n- **Export types** - Export and reuse types from the plugin\n\n## Troubleshooting\n\n### Common Issues\n\n**1. \"POST /api/auth/api/get 404\" or Razorpay requests returning 404**\n- Better Auth's auth client does not expose a generic `api`—plugin methods live on namespaces. Add the **client plugin**: `createAuthClient({ plugins: [razorpayClientPlugin(), ...] })` so the auth client gets the **`razorpay` namespace**.\n- Call **`authClient.razorpay.getPlans()`**, **`authClient.razorpay.verifyPayment()`**, **`authClient.razorpay.createOrUpdateSubscription(...)`**, etc. (these are part of the normal auth client under the `razorpay` namespace).\n- Wrap your app with **`<RazorpayAuthProvider client={authClient}>`** so hooks receive the same auth client; use **`usePlans()`**, **`useSubscriptions()`**, etc. with no client argument.\n- The TanStack hooks call `authClient.razorpay.*` when present, so they work once the client plugin is added.\n\n**For maintainers:** See [Razorpay plugin × Better Auth client (problem and solution)](docs/BETTER_AUTH_CLIENT_CONTEXT.md) for the 404/TypeScript root cause and plugin-side fixes.\n\n**2. \"Plan not found in configured plans\"**\n- Ensure the plan ID exists in Razorpay dashboard\n- Add the plan ID to the `plans` array in plugin configuration\n- Re-run Better Auth CLI after updating plans\n\n**3. \"Webhook signature verification failed\"**\n- Verify webhook secret matches Razorpay dashboard\n- Ensure webhook URL is correct: `https://yourdomain.com/api/auth/razorpay/webhook`\n- Check that request body is not modified\n- Verify `x-razorpay-signature` header is present\n\n**4. \"Subscription already exists\"**\n- User already has an active subscription\n- Cancel or pause existing subscription first\n- Check subscription status before creating new one\n\n**5. \"User not authenticated\"**\n- Ensure user is logged in via Better Auth\n- Check session middleware is properly configured\n- Verify `sessionMiddleware` is used in endpoint configuration\n\n**6. \"Subscription not found\"**\n- Subscription may have been deleted\n- Check subscription ID is correct\n- Verify subscription belongs to the user\n\n**7. Database Schema Issues**\n- Run `npx @better-auth/cli@latest migrate` after adding plugin\n- For Prisma/Drizzle: Run `npx @better-auth/cli@latest generate`\n- Check that user additional fields are properly configured\n\n**8. Type Errors**\n- Ensure you're using `createAuthClient<typeof auth>()` for type inference\n- Import types from `@deiondz/better-auth-razorpay`\n- Check that plugin is properly exported\n\n## Scope for improvement\n\nPotential future enhancements (not currently implemented):\n\n- **Plan-level / Razorpay-native trial:** Pass `trial_period` (days) to Razorpay when creating a subscription (from plan `freeTrial.days`), handle `subscription.trialing` webhook if Razorpay adds or documents it, and set `trialStart` / `trialEnd` from Razorpay payload. Today only **app-level trial** (`trialOnSignUp`) is supported: a local trialing subscription at sign-up with no Razorpay subscription until the user chooses a plan.\n\n## Resources\n\n- [Better Auth Documentation](https://better-auth.com/docs)\n- [Better Auth Options Reference](https://better-auth.com/docs/reference/options)\n- [Better Auth LLMs.txt](https://better-auth.com/llms.txt)\n- [Razorpay API Documentation](https://razorpay.com/docs/api/)\n- [Razorpay Subscriptions Guide](https://razorpay.com/docs/payments/subscriptions/)\n\n## Support\n\nFor issues, questions, or contributions:\n\n1. Check the [Better Auth documentation](https://better-auth.com/docs)\n2. Review [Razorpay API documentation](https://razorpay.com/docs/api/)\n3. Open an issue on GitHub\n\n## License\n\nThis plugin is part of the Better Auth ecosystem and follows the same license as Better Auth.\n\n","readmeFilename":"README.md"}