{"_id":"better-auth-telegram","_rev":"17-3021830c65032db821763834463ea15f","name":"better-auth-telegram","dist-tags":{"latest":"2.0.1"},"versions":{"0.1.0":{"name":"better-auth-telegram","version":"0.1.0","keywords":["better-auth","telegram","authentication","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@0.1.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"eeeea8b037921e0b44c736ff9e83ec15359d2c9b","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-0.1.0.tgz","fileCount":15,"integrity":"sha512-HGd340gLpU/8jpZ0PHF1mzCdhHizkJ3EP/839iYPSb89HF5//LknrZcF0PWrrQDzhvIfX9SEFouKb4BRhpJTng==","signatures":[{"sig":"MEYCIQC93jexcE1Oa8v5BBCp5gERVjrOihAyfcmDftISEMl/6wIhAMkWWLUsn2fvux8dvCs4iH4P4e2czw8rylsUBAjaNPJy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129497},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","require":"./dist/client.cjs"}},"gitHead":"c037fe4e4b00bd4753902892af34bdc52546ca94","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:ui":"vitest --ui","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"11.6.0","description":"Telegram authentication plugin for Better Auth","directories":{},"_nodeVersion":"24.2.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","happy-dom":"^19.0.2","@vitest/ui":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.0.0","better-auth":"^1.3.24","node-loader":"^2.1.0","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"better-auth":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_0.1.0_1759309822778_0.5157650023679268","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"better-auth-telegram","version":"0.2.0","keywords":["better-auth","telegram","authentication","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@0.2.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"9dd205fe7cc226c70098292ff861d359deff845d","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-0.2.0.tgz","fileCount":15,"integrity":"sha512-GzhMiC6YIMxUd1YIIAbP+C+B1TfPkC1jXd6MAa4h3W1k1L+c7Lw/20Hd0NGeC32B9hVUkz6Hpi26XL6WayuHUQ==","signatures":[{"sig":"MEUCIFwHJ1XMtFM/2O9J3kP8SDTWse+VCqHWxW6viQ2Do2jyAiEA50D5gvbIQmn8Kk3toU5nSXIeieNzqhpQ0slYHyOiTQY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199684},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","require":"./dist/client.cjs"}},"gitHead":"75310fc4a3714c7922d0793658afd35f6a1f6800","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:ui":"vitest --ui","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"11.6.0","description":"Telegram authentication plugin for Better Auth","directories":{},"_nodeVersion":"24.2.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","happy-dom":"^19.0.2","@vitest/ui":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.0.0","better-auth":"^1.3.24","node-loader":"^2.1.0","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"better-auth":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_0.2.0_1759312739346_0.9744269048099203","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"better-auth-telegram","version":"0.3.0","keywords":["better-auth","telegram","authentication","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@0.3.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"511d713fba506eee26ae114cae18c7a97cc22680","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-0.3.0.tgz","fileCount":15,"integrity":"sha512-cezw+0xJtVe1u4l24yVDzOw6Rb7hf3FXxEBhN05nNUSYt+gUfVPi2TQt9MY5PGJBi6fvPzNj0YPm7nPkH3KfUA==","signatures":[{"sig":"MEUCIELoh8UfI9DklAE24AaZ7hVka6PAd9bKpJHWVcKNuH2rAiEA21zHGL5isCXsaCJSptgKsgXk8m2PHGhuj1Dbw+YzTs0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203249},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","require":"./dist/client.cjs"}},"gitHead":"81ec3a7d28f6231a31344401304f4f84a73f1a5b","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:ui":"vitest --ui","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"11.6.0","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":["npx ultracite fix"]},"_nodeVersion":"24.2.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","happy-dom":"^19.0.2","ultracite":"^5.4.6","@vitest/ui":"^3.2.4","typescript":"^5.9.3","@types/node":"22.0.0","better-auth":"^1.3.24","lint-staged":"16.2.3","node-loader":"^2.1.0","@biomejs/biome":"2.2.4","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"better-auth":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_0.3.0_1759319245599_0.7048986468446052","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"better-auth-telegram","version":"0.3.1","keywords":["better-auth","telegram","authentication","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@0.3.1","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"a734b91e6b226cd8f8851e93f61b182442ad7dca","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-0.3.1.tgz","fileCount":15,"integrity":"sha512-AbwmZHeuN+gsRk7HM2Fmc2dsa6BX5MKl0kpPaVpJeHP0OdZ3K7Nw7eKhPoA5Bm3D9zi1AzrIZOWyF00uEDLgOQ==","signatures":[{"sig":"MEQCIEyf9zBkUoFjqrsY//utkSBDAkLjcM+g6XoQOOLVoLqrAiA4DiqZwdGJGHD9r2BC2tUA//ebC530Y9aDtktiPsCoZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204884},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","require":"./dist/client.cjs"}},"gitHead":"10ec6247039e43517e4c0f6a083e61371c18cbcf","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:ui":"vitest --ui","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"11.6.2","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":["npx ultracite fix"]},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","happy-dom":"^19.0.2","ultracite":"^5.4.5","@vitest/ui":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.0.0","better-auth":"^1.3.24","lint-staged":"16.2.3","node-loader":"^2.1.0","@biomejs/biome":"2.2.4","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"better-auth":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_0.3.1_1760479578449_0.31861527128986644","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"better-auth-telegram","version":"0.3.2","keywords":["better-auth","telegram","authentication","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@0.3.2","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"71996fdb1434615529b847df05ea746668f38970","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-0.3.2.tgz","fileCount":15,"integrity":"sha512-ssTxVa5qvfX7lzvBQUYysHq4MSdh0WB0Zdi2fSKj+JG1xazz/YjCgf5iC39JGovxIyEM4mBpgu3jaZbddZUjVA==","signatures":[{"sig":"MEQCIGQP+aaX8q4CX5zXC3Dmow1hrrzqZrz9da0+b8lSVlzdAiBOee4t6ahh6e74s8rDP9nkC5NMmTatqPdcZcXYXELWUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210152},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","require":"./dist/client.cjs"}},"gitHead":"17912825172e94a4cb51f8aed03771f98697a593","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","test:ui":"vitest --ui","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"11.6.2","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":["npx ultracite fix"]},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","happy-dom":"^19.0.2","ultracite":"^5.4.5","@vitest/ui":"^3.2.4","typescript":"^5.9.3","@types/node":"^22.0.0","better-auth":"^1.3.24","lint-staged":"16.2.3","node-loader":"^2.1.0","@biomejs/biome":"2.2.4","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"better-auth":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_0.3.2_1761408366761_0.12371133177420712","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"better-auth-telegram","version":"0.4.0","keywords":["better-auth","telegram","authentication","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@0.4.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"7fb0024b2b96d31e1e78462f27df003a98371dc3","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-0.4.0.tgz","fileCount":15,"integrity":"sha512-erfTTQRkcKci0hBUMsZxwbKZ7N873qvFgV17l/I22k6Wx2IiyTSwOHrz9ttgy9v9omAWT1D1+tcACzfUETirWw==","signatures":[{"sig":"MEUCIEh0IDmj4RuzQWZtUtWi1aunnsgHFpjkcxJ+ugi8qMwdAiEAoyMEONZqqfh/GzgRpkNkzMioWEWu4SnUjF/Y/63YerY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":206483},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"887bcdfb0c88d25d53259db8924199010588d394","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.6.3","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"^1.4.18","lint-staged":"16.2.7","node-loader":"^2.1.0","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.4.18"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_0.4.0_1771679309721_0.21781953733092418","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"better-auth-telegram","version":"1.0.0","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.0.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"0eb37925581565d1bbb3a85c4cd529cd034bcb73","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.0.0.tgz","fileCount":15,"integrity":"sha512-z3PQ7K1KrS4QRcFZyvT/5V8NLroxltECwneW90cTxTOwXHutjxQsNUXFy2hprkEPFeK13ijfvzmJZ/HRdRCXKw==","signatures":[{"sig":"MEQCIHnMy9dZyffhCis0XaGO/nH1/5zcA6tS30lX0TBr/ai+AiApsTpQHLBVOy1AQ2T44E3M6jgdJZvYcRG+P9FOc7tk7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":876915},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"dca0011496244cf9d140db3fd88ee64208c0141a","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"^1.4.18","lint-staged":"16.2.7","node-loader":"^2.1.0","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.4.18"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.0.0_1772373862509_0.27839926764367884","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"better-auth-telegram","version":"1.1.0","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.1.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"60e2061ed0a8db569031b444ab630b3134ca38c6","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.1.0.tgz","fileCount":15,"integrity":"sha512-dDihwhUKewUHeLAlcy1HLmk94HVgfC0kos3/YleIoHrGE+Qt79Sg+RT6kuLhiJarS/Fw050wdbxdsbznFeQ2IA==","signatures":[{"sig":"MEUCIQDGxjGNclezN6MQMFzRE9r0e6CbxGoYtJHijZdhpRqXWwIgBCICkEK8kV9kb6Ce1vuc0syNoOf2hvaXGwMacE8y/a0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":597806},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"d33d645d789a5f64f794b15333fe97f49d8f8fdc","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"1.5.0","lint-staged":"16.2.7","node-loader":"^2.1.0","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.1.0_1772382636323_0.8666459574745571","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"better-auth-telegram","version":"1.2.0","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.2.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"a9606d57f28f6acc8d06c280924b743b742f156d","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.2.0.tgz","fileCount":15,"integrity":"sha512-UqGf4jy8O4L8GJd6Mjw8VuSeapGvZEjQeCylAE10B0NK9KaTcqTcId3abFBc2nn3uDGsJ7EPcoYqGLiHoA1Xig==","signatures":[{"sig":"MEUCIQDPc4EOxFxbX58FuohCwWhKhZEHBmfuA2OvXG8jn8P59gIgcJSW8LHcmaJYU8Qry/P7K7TibMw0YUF3YQZ1Ax6XD/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":601561},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"399dd96e5801bb70d48672eb207950070a559872","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"overrides":{"hono":"4.12.3","lodash":"4.17.23"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"1.5.0","lint-staged":"16.2.7","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.2.0_1772384438047_0.7481035327134786","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"better-auth-telegram","version":"1.3.0","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.3.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"2ba7e2b106bddb891324a94d450dfd94fd03289d","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.3.0.tgz","fileCount":15,"integrity":"sha512-yDoHD3mN7eGCIbXdOsAcvIObZNPpBuTsw+AhTNOLJCPW/WNfWLP8kgF+luwfSvr+mLqWJp90C28a5VogeQ2fRw==","signatures":[{"sig":"MEYCIQCa6aTQeYFXaDtca5sJdqaStpxR7T3gd8AYHqHU4DmDTQIhAPxtO33ZVr2i8uHSUU72ZxK8dbYupGnMt/3ovOs4zAYd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":604013},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"60f4d794f1629dff8563d10b3c8d913027364f60","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"overrides":{"hono":"4.12.3","lodash":"4.17.23"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"1.5.0","lint-staged":"16.2.7","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.3.0_1772392184786_0.49715521742461033","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"better-auth-telegram","version":"1.3.1","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.3.1","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"2b6962cf30b9efc7e7c9180d43adf8fa11c39a7f","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.3.1.tgz","fileCount":15,"integrity":"sha512-LIs48Y6Gzu5WwPL44Z/tXjbKMeKZXWbudsL7kIybLMcy+XaYyOyfrS0IOfCsfn2BOROOWqogKCZvz9mjbzxyaQ==","signatures":[{"sig":"MEUCIGqwqi//CmvjjFf7pYl3HL6y0ZuSVRvJfwkqNIoLkeiBAiEA43bHc0nG2nwBq0nRlgovquGWkcVZ9H2PsHh58umkluU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":604934},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"ad72d21e7abf69594b0ebb4fbec18419506db15f","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"overrides":{"hono":"4.12.3","lodash":"4.17.23"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"1.5.0","lint-staged":"16.2.7","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.3.1_1772393845213_0.9099367002359426","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"better-auth-telegram","version":"1.3.2","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.3.2","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"11c413363df159cdea93617c9bfcb54593afbe61","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.3.2.tgz","fileCount":15,"integrity":"sha512-I7cNY8Hg7j+s4sJJCZxrKnuW9bqrT368URXcroWph/BZrCdeH24tUgdMQ/0uI9aRkV8L29KYHz34Z5Av7oOj2g==","signatures":[{"sig":"MEUCIENGDTumTXN+bvg49vvM41fvu1hRtq9xpawCai/sCf7WAiEA3tLIBPR3RbIeGo7YQQuAcAf6OfmIUf+2t6pHwm5JGr4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":608430},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"b1c89a5627921d1c4d75d5da66eed1a57a389fab","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"overrides":{"hono":"4.12.3","lodash":"4.17.23"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"1.5.0","lint-staged":"16.2.7","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.3.2_1772400407478_0.02478745793688364","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"better-auth-telegram","version":"1.3.3","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.3.3","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"baa7e7ce34fe64ea18f2a159f679b36fcc977cad","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.3.3.tgz","fileCount":15,"integrity":"sha512-bkvlNzrLAPLquHArY23ePxCCpDQQehcbMc+Y/IojYL+l/RLAqdd4Ekcrx4d8sMtZeDJ70/vLdi5FXXA2nVvXRg==","signatures":[{"sig":"MEYCIQCSuiUF4owsbwdwOFxTKZ/Q68n+jYpxQAZCLzGWVQE4YwIhANDD2H9Vm5OLQnpEc5GnAIroPcfu69kT+GRQI0PBcHms","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@1.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":610544},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"044bdbed723fc9629c3763bfda1a774a2ae2cda8","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"overrides":{"hono":"4.12.3","lodash":"4.17.23"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"1.5.0","lint-staged":"16.2.7","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.3.3_1772404310682_0.35662461611025553","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"better-auth-telegram","version":"1.4.0","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.4.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"2059bf53155b983764bfd60c4830c3a7982c87c9","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.4.0.tgz","fileCount":15,"integrity":"sha512-W9SzG9PBj3qLQn10u2fs44NzcFL/ixtD6JsJCJdIxVz5KMhBMs3TOhYARgw6PaxUgyiMMuRrWFxfo3hRMPY/Eg==","signatures":[{"sig":"MEUCIDzG4ndb/wb5p2TkagMZO2FsTBGvMratf+KwNLsvFgwZAiEAnjWhu1PrJqYR5VeIF37+1XyKFiKLNQI02A26RHxQ8GE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":623282},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"34cfe5f90b8c55857f8fe68b25eab6f5e235485d","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"overrides":{"hono":"4.12.3","lodash":"4.17.23"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"1.5.0","lint-staged":"16.2.7","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.4.0_1772408154455_0.6428278266525225","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"better-auth-telegram","version":"1.5.0","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@1.5.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"829c4ce07395064fb963b797c399d8f272a12808","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-1.5.0.tgz","fileCount":15,"integrity":"sha512-R/VqLwKRqNbJA2qoDWXfHs/3YWBQnOnChmqcw8++C9mKWWWBLxZ6ehxmV0Qi+mcXihnV3a5ruo+FgLKxrd6zPg==","signatures":[{"sig":"MEUCICix6WkSEJ3YqE3R0U/P+nY+TXZQRUa7SBByaNwohA9+AiEAtN9wZvs9RFC4exgQLkJrCqwyVsjRaGg9R91sLIxQLVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632984},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"07043a180e04e682d07ca4ab7651c8acafd58fc1","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"vcode.sh","email":"hello@vcode.sh"},"overrides":{"hono":"4.12.3","lodash":"4.17.23"},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"10.9.4","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.0.18","happy-dom":"20.7.0","ultracite":"7.2.3","@vitest/ui":"^4.0.18","typescript":"5.9.3","@types/node":"^25.3.0","better-auth":"1.5.0","lint-staged":"16.2.7","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.0.18"},"peerDependencies":{"better-auth":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_1.5.0_1773168934451_0.8621060389605637","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"better-auth-telegram","version":"2.0.0","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"url":"https://vcode.sh","name":"Vibe Code","email":"hello@vcode.sh"},"license":"MIT","_id":"better-auth-telegram@2.0.0","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"dist":{"shasum":"4f988ac5e5a4b06df4b4a56b13d0b3a31fa7bdf4","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-2.0.0.tgz","fileCount":15,"integrity":"sha512-7SbaEdJ+zcz+k+6Z3LuvU915Wpa6z7HiumbDJXyftKvKW4DHwlEL8bv3+SfMg5Prrvg7zumFzaKPXQk4YKnoew==","signatures":[{"sig":"MEYCIQClQ7EnJ1ywSLKrtqGeG5er3kZ+WNZtb072CKElg/MNJwIhAJD8FUBprqVtFMRPHZY+fKnGJBX819CjcZOfXMv34YQr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":652794},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"gitHead":"2a50c47113e24946cd713e7332acd6b83bc386fb","scripts":{"dev":"tsup --watch","lint":"npx ultracite check","test":"vitest run","build":"tsup","test:ui":"vitest --ui","lint:fix":"npx ultracite fix","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:744ee279-014b-4352-aecf-5f53cb5a0ee1"}},"repository":{"url":"git+https://github.com/vcode-sh/better-auth-telegram.git","type":"git"},"_npmVersion":"11.18.0","description":"Telegram authentication plugin for Better Auth","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.1","vitest":"4.1.10","happy-dom":"20.11.1","ultracite":"7.2.3","@vitest/ui":"^4.1.10","typescript":"5.9.3","@types/node":"^24.13.3","better-auth":"1.6.25","lint-staged":"16.2.7","@biomejs/biome":"2.4.4","@vitest/coverage-v8":"4.1.10"},"peerDependencies":{"better-auth":">=1.6.22 <1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-telegram_2.0.0_1785349856745_0.032423853000908","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"better-auth-telegram","version":"2.0.1","type":"module","description":"Telegram authentication plugin for Better Auth","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}}},"sideEffects":false,"scripts":{"build":"tsup","dev":"tsup --watch","type-check":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:ui":"vitest --ui","test:coverage":"vitest run --coverage","lint":"npx ultracite check","lint:fix":"npx ultracite fix","prepublishOnly":"npm run type-check && npm run test && npm run build"},"keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"author":{"name":"Vibe Code","email":"hello@vcode.sh","url":"https://vcode.sh"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/vcode-sh/better-auth-telegram.git"},"bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","peerDependencies":{"better-auth":">=1.6.22 <1.7.0"},"engines":{"node":">=24.0.0"},"devDependencies":{"@biomejs/biome":"2.4.6","@types/node":"^24.13.3","@vitest/coverage-v8":"4.1.10","@vitest/ui":"^4.1.10","better-auth":"1.6.25","happy-dom":"20.11.1","lint-staged":"17.2.0","tsup":"8.5.1","typescript":"5.9.3","ultracite":"7.5.9","vitest":"4.1.10"},"lint-staged":{"*.{ts,tsx,js,jsx,json,css}":["npx ultracite fix"]},"gitHead":"6a1857b3546d6fd9f2a677da7a9f24d0995adc59","_id":"better-auth-telegram@2.0.1","_nodeVersion":"24.18.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-uzG0IDRih3mHclxR8jHOxxcsaQ292dtU2y3soI9iqQaU1oDIG5FtgZhcMoDakA9jLbMjR6EZrzSbTV6aJQXcTQ==","shasum":"c72c20ce907325d4c55511dc7926ec2bd6b5671b","tarball":"https://registry.npmjs.org/better-auth-telegram/-/better-auth-telegram-2.0.1.tgz","fileCount":15,"unpackedSize":652794,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-telegram@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCrCNsyklhMMA8QlwfRLMpdF7I3HqKcGIck/64w23RP3AIgdPTATXWJO/pEkOKJBmh/qeqOa1jNlNkIT+l+021nR2M="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:744ee279-014b-4352-aecf-5f53cb5a0ee1"}},"directories":{},"maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/better-auth-telegram_2.0.1_1785350928606_0.4963057101533703"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-01T09:10:22.777Z","modified":"2026-07-29T18:48:49.105Z","0.1.0":"2025-10-01T09:10:23.050Z","0.2.0":"2025-10-01T09:58:59.597Z","0.3.0":"2025-10-01T11:47:25.782Z","0.3.1":"2025-10-14T22:06:18.655Z","0.3.2":"2025-10-25T16:06:06.977Z","0.4.0":"2026-02-21T13:08:29.896Z","1.0.0":"2026-03-01T14:04:22.719Z","1.1.0":"2026-03-01T16:30:36.489Z","1.2.0":"2026-03-01T17:00:38.195Z","1.3.0":"2026-03-01T19:09:44.931Z","1.3.1":"2026-03-01T19:37:25.387Z","1.3.2":"2026-03-01T21:26:47.662Z","1.3.3":"2026-03-01T22:31:50.864Z","1.4.0":"2026-03-01T23:35:54.652Z","1.5.0":"2026-03-10T18:55:34.607Z","2.0.0":"2026-07-29T18:30:56.903Z","2.0.1":"2026-07-29T18:48:48.767Z"},"bugs":{"url":"https://github.com/vcode-sh/better-auth-telegram/issues"},"author":{"name":"Vibe Code","email":"hello@vcode.sh","url":"https://vcode.sh"},"license":"MIT","homepage":"https://github.com/vcode-sh/better-auth-telegram#readme","keywords":["better-auth","better-auth-plugin","telegram","telegram-login","telegram-mini-apps","authentication","oauth","plugin","typescript"],"repository":{"type":"git","url":"git+https://github.com/vcode-sh/better-auth-telegram.git"},"description":"Telegram authentication plugin for Better Auth","maintainers":[{"name":"vcode.sh","email":"hello@vcode.sh"}],"readme":"# Better Auth Telegram\n\n[![npm version](https://img.shields.io/npm/v/better-auth-telegram)](https://www.npmjs.com/package/better-auth-telegram)\n[![npm downloads](https://img.shields.io/npm/dm/better-auth-telegram)](https://www.npmjs.com/package/better-auth-telegram)\n[![CI](https://github.com/vcode-sh/better-auth-telegram/actions/workflows/ci.yml/badge.svg)](https://github.com/vcode-sh/better-auth-telegram/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/vcode-sh/better-auth-telegram/branch/main/graph/badge.svg)](https://codecov.io/gh/vcode-sh/better-auth-telegram)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nTelegram authentication plugin for [Better Auth](https://better-auth.com). Login Widget. Mini Apps. OIDC. Link/unlink. HMAC-SHA-256 verification. The whole circus.\n\nBuilt on Web Crypto API — works in Node, Bun, Cloudflare Workers, and whatever edge runtime you're pretending to need. No `node:crypto` tantrums.\n\n344 tests. If it breaks, roast me on [X](https://x.com/vcode_sh). If it works, also roast me. I'm there either way, posting through the pain.\n\n## Requirements\n\n- Node.js >= 22 (or Bun, or any runtime with Web Crypto API)\n- `better-auth@>=1.6.22 <1.7.0`\n\n## Install\n\n```bash\nnpm install better-auth-telegram\n```\n\n## Setup\n\n### 1. Talk to a bot to create a bot\n\nMessage [@BotFather](https://t.me/botfather), send `/newbot`, save the token, then `/setdomain` with your domain.\n\nFor local dev you'll need [ngrok](https://ngrok.com) because Telegram demands HTTPS. Localhost? Never heard of it.\n\n### 2. Server\n\n```typescript\nimport { betterAuth } from \"better-auth\";\nimport { telegram } from \"better-auth-telegram\";\n\nexport const auth = betterAuth({\n  plugins: [\n    telegram({\n      botToken: process.env.TELEGRAM_BOT_TOKEN!,\n      botUsername: \"your_bot_username\", // without @\n    }),\n  ],\n});\n```\n\n### 3. Client\n\n```typescript\nimport { createAuthClient } from \"better-auth/client\";\nimport { telegramClient } from \"better-auth-telegram/client\";\n\nexport const authClient = createAuthClient({\n  fetchOptions: {\n    credentials: \"include\", // required for link/unlink\n  },\n  plugins: [telegramClient()],\n});\n```\n\n### 4. Database\n\nThe plugin adds `telegramId`, `telegramUsername`, and `telegramPhoneNumber` to the `user` table, and `telegramId` and `telegramUsername` to `account` when Login Widget or Mini App flows are enabled (the default). OIDC-only setups (`loginWidget: false`) skip these fields entirely. If using Prisma:\n\n```prisma\nmodel User {\n  // ... existing fields\n  telegramId          String?\n  telegramUsername    String?\n  telegramPhoneNumber String?  // persist claims.phone_number via a custom OIDC mapper\n}\n\nmodel Account {\n  // ... existing fields\n  telegramId       String?\n  telegramUsername  String?\n}\n```\n\nThen `npx prisma migrate dev` and pray.\n\n## Usage\n\n### Sign in\n\n```tsx\nauthClient.initTelegramWidget(\n  \"telegram-login-container\",\n  { size: \"large\", cornerRadius: 20 },\n  async (authData) => {\n    const result = await authClient.signInWithTelegram(authData);\n    if (!result.error) router.push(\"/dashboard\");\n  }\n);\n```\n\n### Link / Unlink\n\n```typescript\n// link (user must be authenticated)\nawait authClient.linkTelegram(authData);\n\n// unlink\nawait authClient.unlinkTelegram();\n```\n\nGetting \"Not authenticated\"? You forgot `credentials: \"include\"`. Go back to [Client setup](#3-client).\n\nAll API-calling client methods accept an optional `fetchOptions` parameter for custom headers, cache control, etc:\n\n```typescript\nawait authClient.signInWithTelegram(authData, {\n  headers: { \"x-custom-header\": \"value\" },\n});\n```\n\n### Redirect flow\n\n```typescript\nauthClient.initTelegramWidgetRedirect(\n  \"telegram-login-container\",\n  \"/auth/telegram/callback\",\n  { size: \"large\" }\n);\n```\n\n### Mini Apps\n\nEnable on server:\n\n```typescript\ntelegram({\n  botToken: process.env.TELEGRAM_BOT_TOKEN!,\n  botUsername: \"your_bot_username\",\n  miniApp: {\n    enabled: true,\n    validateInitData: true,\n    allowAutoSignin: true,\n  },\n});\n```\n\nThen on client:\n\n```typescript\n// auto sign-in (one less click, revolutionary)\nconst result = await authClient.autoSignInFromMiniApp();\n\n// or manual\nconst result = await authClient.signInWithMiniApp(\n  window.Telegram.WebApp.initData\n);\n\n// or just validate without signing in\nconst validation = await authClient.validateMiniApp(\n  window.Telegram.WebApp.initData\n);\n```\n\n### OIDC (OpenID Connect)\n\nStandard OAuth 2.0 flow via `oauth.telegram.org`. Phone numbers, PKCE, and signed JWTs — proper grown-up auth instead of widget callbacks. Telegram now labels the old iframe widget as legacy, so use OIDC for new browser integrations.\n\n#### Prerequisites\n\nBotFather has a whole ritual for this. Skipping steps means `invalid_client` errors and Telegram silently falling back to Login Widget redirects like nothing happened. Don't skip steps.\n\n1. Open [@BotFather](https://t.me/botfather) **as a mini app** (not the chat — the mini app). Go to **Bot Settings > Web Login**\n2. Add your website URL. Then **remove it**. Yes, remove it. Close the panel, open **Web Login** again — a new option appears: **OpenID Connect Login**. This is a permanent, one-way switch. Telegram doesn't mention this anywhere because documentation is for the weak\n3. Go through the OIDC setup flow. It's permanent. No going back. Commitment issues? Too late\n4. Add your **Allowed URL** — your website origin (e.g., `https://example.com`). This is the trusted origin for the OAuth flow\n5. Add your **Redirect URL** — your OIDC callback (e.g., `https://example.com/api/auth/callback/telegram-oidc`). If this isn't registered, Telegram returns auth codes via `#tgAuthResult` fragment instead of `?code=` query param, and your server never sees them\n6. Copy your **Client ID** and **Client Secret**. They're right there on the screen. The Client Secret is NOT your bot token — BotFather generates a separate secret for OIDC. If you use the bot token, the token endpoint returns `invalid_client` and you'll spend hours debugging something that was never going to work\n\nFor local dev, point both URLs at your [ngrok](https://ngrok.com) tunnel (e.g., `https://abc123.ngrok-free.app` and `https://abc123.ngrok-free.app/api/auth/callback/telegram-oidc`). Every time ngrok restarts, you get a new URL. Update BotFather. Repeat until Stockholm syndrome sets in.\n\nSee [Telegram's official OIDC docs](https://core.telegram.org/bots/telegram-login) for the spec. It exists now. We're living in the future.\n\n#### Setup\n\nEnable on server:\n\n```typescript\ntelegram({\n  botToken: process.env.TELEGRAM_BOT_TOKEN!,\n  botUsername: \"your_bot_username\",\n  oidc: {\n    enabled: true,\n    clientId: process.env.TELEGRAM_OIDC_CLIENT_ID!,\n    clientSecret: process.env.TELEGRAM_OIDC_CLIENT_SECRET!, // from BotFather Web Login\n    requestPhone: true, // get phone numbers, finally\n  },\n});\n```\n\nThen on client:\n\n```typescript\nawait authClient.signInWithTelegramOIDC({\n  callbackURL: \"/dashboard\",\n});\n```\n\nThat's it. Standard Better Auth social login under the hood. PKCE, state tokens, the works. You don't even need to think about it, which is the whole point.\n\n#### OIDC-only mode\n\nDon't need the Login Widget? Set `loginWidget: false` and skip the widget endpoints, rate limits, and the 5 Telegram-specific database columns entirely. Pure OIDC, no baggage:\n\n```typescript\n// OIDC-only (no widget endpoints, no extra schema fields)\ntelegram({\n  loginWidget: false,\n  oidc: {\n    enabled: true,\n    clientId: process.env.TELEGRAM_OIDC_CLIENT_ID!,\n    clientSecret: process.env.TELEGRAM_OIDC_CLIENT_SECRET!,\n  },\n});\n```\n\n## Configuration\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `botToken` | — | Required at runtime for Login Widget and Mini App HMAC verification; can provide the OIDC client ID fallback |\n| `botUsername` | — | Required only when rendering the Login Widget; without the @ |\n| `allowUserToLink` | `true` | Let users link Telegram to existing accounts |\n| `autoCreateUser` | `true` | Create user on first sign-in |\n| `maxAuthAge` | `86400` | Auth data TTL in seconds (replay attack prevention) |\n| `testMode` | `false` | Enable Telegram test server mode |\n| `loginWidget` | `true` | Enable Login Widget endpoints and schema fields |\n| `mapTelegramDataToUser` | — | Custom user data mapper |\n| `miniApp.enabled` | `false` | Enable Mini Apps endpoints |\n| `miniApp.validateInitData` | `true` | Verify Mini App initData |\n| `miniApp.allowAutoSignin` | `true` | Allow auto sign-in from Mini Apps |\n| `miniApp.mapMiniAppDataToUser` | — | Custom Mini App user mapper |\n| `oidc.enabled` | `false` | Enable Telegram OIDC flow |\n| `oidc.clientId` | — | Client ID from BotFather Web Login; falls back to the bot ID in `botToken` |\n| `oidc.clientSecret` | — | Client Secret from BotFather Web Login (NOT the bot token) |\n| `oidc.scopes` | `[\"openid\", \"profile\"]` | OIDC scopes to request |\n| `oidc.requestPhone` | `false` | Request phone number (adds `phone` scope) |\n| `oidc.requestBotAccess` | `false` | Request bot access (adds `telegram:bot_access` scope) |\n| `oidc.mapOIDCProfileToUser` | — | Custom OIDC claims mapper |\n\nFull types in [`src/types.ts`](./src/types.ts).\n\n## Endpoints\n\n| Method | Path | Auth | Description |\n|--------|------|------|-------------|\n| POST | `/telegram/signin` | No | Sign in with widget data (when `loginWidget` enabled) |\n| POST | `/telegram/link` | Session | Link Telegram to account (when `loginWidget` enabled) |\n| POST | `/telegram/unlink` | Session | Unlink Telegram (when `loginWidget` enabled) |\n| GET | `/telegram/config` | No | Get bot config (username, testMode, flags) |\n| POST | `/telegram/miniapp/signin` | No | Sign in from Mini App |\n| POST | `/telegram/miniapp/validate` | No | Validate initData |\n\nOIDC uses Better Auth's built-in social login routes — `POST /sign-in/social` with `provider: \"telegram-oidc\"` and `GET /callback/telegram-oidc`. No custom endpoints needed. Delegation at its finest.\n\nAll endpoints are rate-limited. Signin/miniapp: 10 req/60s. Link/unlink: 5 req/60s. Validate: 20 req/60s. Brute-forcing was never a strategy, now it's also a throttled one.\n\n## Error Handling\n\nAll endpoints throw `APIError` via `APIError.from()`. The plugin exposes `$ERROR_CODES` — each code is a `RawError` object with `code` and `message` properties:\n\n```typescript\nimport { telegram } from \"better-auth-telegram\";\n\nconst plugin = telegram({ botToken: \"...\", botUsername: \"...\" });\n\n// In your error handler:\nif (error.code === plugin.$ERROR_CODES.NOT_AUTHENTICATED.code) {\n  // handle it\n}\n```\n\nNo more comparing against magic strings. You're welcome.\n\n## Security\n\nHMAC-SHA-256 verification on all auth data via Web Crypto API (`crypto.subtle`). Timestamp validation against replay attacks. Bot token never touches the client. Works in every runtime that implements the Web Crypto standard — which is all of them now, congratulations internet.\n\nLogin Widget uses `SHA256(botToken)` as secret key. Mini Apps use `HMAC-SHA256(\"WebAppData\", botToken)`. Different derivation paths, same level of paranoia.\n\nOIDC verifies Telegram's documented `RS256`, `ES256`, and `EdDSA` JWT signatures via its JWKS endpoint, plus PKCE and state tokens for the OAuth flow. Keys must match both `kid` and `alg`. `ES256K` is intentionally rejected because the current `jose` runtime does not support it.\n\nIs it bulletproof? No. Is it better than storing passwords in plain text? Significantly.\n\n## Troubleshooting\n\n**Widget not showing?** Did you `/setdomain` with @BotFather? Is `botUsername` correct (no @)? Does the container exist in DOM? Are you on HTTPS?\n\n**Auth fails?** Wrong bot token, domain mismatch with BotFather, or `auth_date` expired (24h default). Check browser console.\n\n**Local dev?** `ngrok http 3000`, use the ngrok URL in BotFather's `/setdomain` and as your app URL. Yes, it's annoying. Welcome to OAuth.\n\n**OIDC returns `invalid_client`?** You haven't registered Web Login in @BotFather (Bot Settings > Web Login). Or you're using the bot token as client secret instead of the separate secret BotFather provides. See [OIDC Prerequisites](#prerequisites).\n\n**OIDC redirects with `#tgAuthResult` instead of `?code=`?** Your redirect URI isn't registered in BotFather's Web Login Allowed URLs. Telegram falls back to Login Widget redirect mode. Register `https://yourdomain.com/api/auth/callback/telegram-oidc` in the Allowed URLs.\n\n## Examples\n\nSee [`examples/nextjs-app/`](./examples/nextjs-app) for a Next.js implementation covering all three auth flows: Login Widget, OIDC, Mini Apps, plus account linking/unlinking. Copy-paste-ready components and server/client setup. There's also a full test playground app in [`test/`](./test) if you want to see everything wired together with a real database.\n\n## Migrating\n\n### To v2.0.0 (from v1.5.0)\n\n- Upgrade Better Auth to `>=1.6.22 <1.7.0`. Better Auth 1.7 is not supported by this release.\n- `botToken` and `botUsername` are now flow-aware. Missing values log setup warnings; the affected Widget, Mini App, or OIDC operation rejects if the credential is still missing when used.\n- OIDC-only setups can omit both bot fields when `oidc.clientId` and `oidc.clientSecret` are configured explicitly.\n\n### To v1.5.0 (from v1.4.0)\n\n- No breaking changes. New `loginWidget` option defaults to `true` — existing setups are unaffected.\n- OIDC-only users can now set `loginWidget: false` to skip Widget endpoints and the 5 Telegram-specific database columns (`telegramId`, `telegramUsername`, `telegramPhoneNumber` on user; `telegramId`, `telegramUsername` on account).\n- Config endpoint now returns `loginWidgetEnabled` boolean. Client `getTelegramConfig` type updated accordingly.\n\n### To v1.4.0 (from v1.3.x)\n\n- **OIDC users**: Add `oidc.clientSecret` — the Client Secret from BotFather's Web Login settings (Bot Settings > Web Login). This is NOT the bot token. Register your Allowed URLs there too, including `https://yourdomain.com/api/auth/callback/telegram-oidc`. The plugin falls back to bot token if `clientSecret` is omitted (with a warning), but Telegram rejects bot tokens as OIDC client secrets. Removed non-standard `origin` and `bot_id` params from the auth URL. See [OIDC Prerequisites](#prerequisites).\n- Login Widget and Mini App flows are unaffected.\n\n### To v1.3.x (from v1.2.0)\n\n- No breaking changes. v1.3.x added graceful `verifyIdToken` failure, placeholder email generation, diagnostic `getUserInfo` logging, and `origin` param (now removed in v1.4.0). If you're using OIDC, skip straight to v1.4.0.\n\n### To v1.2.0 (from v1.1.0)\n\n- No breaking changes. `testMode` is opt-in (default `false`). `BetterAuthPluginRegistry` module augmentation is type-only — zero runtime impact. Config endpoint now returns `testMode` boolean. Your existing code doesn't care.\n\n### To v1.1.0 (from v1.0.0)\n\n- **Peer dep bumped to `better-auth@^1.5.0`** — upgrade better-auth first, then update the plugin. The `$ERROR_CODES` type changed from `Record<string, string>` to `Record<string, RawError>` and this release follows suit.\n\n### To v1.0.0 (from v0.4.0)\n\n- No breaking changes. OIDC is opt-in (`oidc.enabled: false` by default). Add `telegramPhoneNumber` column to your user table if you plan to use OIDC with phone scope.\n\n### To v0.4.0 (from v0.3.x)\n\n- **Verification functions are now async** — `verifyTelegramAuth()` and `verifyMiniAppInitData()` return `Promise<boolean>`. Slap an `await` in front if you're calling them directly.\n- **Errors throw `APIError`** — all endpoints throw `APIError` instead of returning `ctx.json({ error })`. Switch to Better Auth's standard error shape.\n- **ESM-first** — `\"type\": \"module\"` in package.json. CJS still works via `.cjs` exports.\n\nFull changelog in [CHANGELOG.md](./CHANGELOG.md).\n\n## Links\n\n- [Better Auth](https://better-auth.com)\n- [Telegram Login Widget](https://core.telegram.org/widgets/login)\n- [Telegram Mini Apps](https://core.telegram.org/bots/webapps)\n- [Telegram OIDC](https://core.telegram.org/bots/features#oidc-authorization)\n- [GitHub](https://github.com/vcode-sh/better-auth-telegram)\n- [Changelog](./CHANGELOG.md)\n\n## License\n\nMIT — do whatever you want. I'm not your lawyer.\n\nCreated by [Vibe Code](https://x.com/vcode_sh).\n","readmeFilename":"README.md"}