{"_id":"better-auth-firestore","_rev":"19-e717111e8603d4160e913f17c1f86225","name":"better-auth-firestore","dist-tags":{"latest":"1.3.2"},"versions":{"1.0.0":{"name":"better-auth-firestore","version":"1.0.0","keywords":["better-auth","firebase","firestore","adapter","authentication"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.0.0","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"7acddc6cdd366aa9613a2e54b02c4fc94e22aa1b","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.0.0.tgz","fileCount":17,"integrity":"sha512-c2iyFA+o2899wDNZM6ofzcnQAP5fdFJ6LXqgKP8luVR4zYeAXHsT1+NNiNgHYvzWc8IlOnkxDkPH3SOrTMLrNA==","signatures":[{"sig":"MEUCIBT41j0GvoVbyhA+ost/yEURuqMv1Oh+jO2gf9Apu9V9AiEArbeenze7pcTo9Pov6SPnIn5h4vnvk6aLNrRkL7+9ucQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70498},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"977b33937b7561a045803262b4282a5937dfbf10","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"yultyyev","email":"yultyyev@gmail.com"},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"10.9.2","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"rimraf":"^6.0.1","vitest":"^4.0.5","typescript":"^5.9.3","@biomejs/biome":"^2.3.2","semantic-release":"^24.0.0","@semantic-release/npm":"^12.0.1","@semantic-release/github":"^11.0.1","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^12.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.0.0_1767829079228_0.44071378111943416","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"better-auth-firestore","version":"1.1.0","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.1.0","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"cf1b001f00a4c5da188e42dd3f0c783ebab5aa42","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.1.0.tgz","fileCount":14,"integrity":"sha512-bJr3W+LeAcnXu7pxo4Md9DalCw26oMDlRzHKT45IbONsMMfr3puUbb2v+K/wHfKezVMh/WR0znwKNRd76MElmw==","signatures":[{"sig":"MEYCIQDl5vuA7RxLocphJF2fbUT9QTgiu3uWKQ5ov3v1N7XJCQIhAIMLT0w9tI0m9QgnBeqOUJoZrMYCObvDWwr5q/PAUIY6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75572},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"50fb229fe640fbd3edbe717bf1febf8ede489d62","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"yultyyev","email":"yultyyev@gmail.com"},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"10.9.4","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"rimraf":"^6.1.2","vitest":"^4.0.16","typescript":"^5.9.3","@biomejs/biome":"^2.3.11","semantic-release":"^25.0.2","@semantic-release/npm":"^13.1.3","@semantic-release/github":"^12.0.2","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.1.0_1767829764104_0.16994739571928164","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"better-auth-firestore","version":"1.1.1","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.1.1","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"ed142ff540eb6fab23f7f4739a7c83fa360e6b02","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.1.1.tgz","fileCount":14,"integrity":"sha512-5NuD6japXynjvCm4JMtBJlXa+LF792Y0xU7vYmPI0dNA86ot+QkGCZIRrhA6jTJLleRW3tw68mf6CZeI+MCg+Q==","signatures":[{"sig":"MEQCIAv5wpW/sj84087ncakEC618LxerIcHKBRLocQ51GbjTAiAKLMlQtwu5Zn8ilu4StnP6dKPzaHFVpp99GB9bwDI8hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75572},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"50ab7bb476a4f1195c45a61dc6b482fc544d3e01","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"yultyyev","email":"yultyyev@gmail.com"},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"10.9.4","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"rimraf":"^6.1.2","vitest":"^4.0.16","typescript":"^5.9.3","@biomejs/biome":"^2.3.11","semantic-release":"^25.0.2","@semantic-release/npm":"^13.1.3","@semantic-release/github":"^12.0.2","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.1.1_1771025829234_0.22944746108522085","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"better-auth-firestore","version":"1.1.2","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.1.2","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"78670cec5e3f300d3385746755411c7d8154137d","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.1.2.tgz","fileCount":14,"integrity":"sha512-1jPzKhop+L8PBEgLxK0s3prJpxCmNuLjdnO8dzroVlyI03KuESZuNWhr7vluMm5hui4mXF3X8ewR1rNrOeX/dQ==","signatures":[{"sig":"MEUCIQDWCdSeoGBISg7uzjpgQDHWRyV6DwOcZU7LrETFLunH0QIgT36eu0W2XL+S1pi+ugpeWelZ5/uT9zOflUz4HuTbpmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75572},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c0577db51d30677677d4a68b0d5afd15416c7d17","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.6.2","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"rimraf":"^6.1.2","vitest":"^4.0.16","typescript":"^5.9.3","@biomejs/biome":"^2.3.11","semantic-release":"^25.0.2","@semantic-release/npm":"^13.1.3","@semantic-release/github":"^12.0.2","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.1.2_1771028210980_0.8412276667042056","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"better-auth-firestore","version":"1.1.3","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.1.3","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"7af0697a40fd70daba336be00f890fa1f8e125b7","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.1.3.tgz","fileCount":14,"integrity":"sha512-2lb5SYU4xWwSpcdqIwzZ1iiVYUc7cuC9e9FtFFpSfyU7HgEqRTENJIOf5ocYLqvSIrWJFsKeX7tz6b3vDToZKA==","signatures":[{"sig":"MEQCIARriBKtOD2PbgoDT9WA7idMNnlTmVZP5LtL8Maps2dcAiBwskF8G05g84eYXm2vHkKG/yvQRPYjSkC/l/fpO7wKww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76491},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"092d1fe00cc7e13876d1be857341aa40db3bcd27","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.9.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"rimraf":"^6.1.3","vitest":"^4.1.0","typescript":"^5.9.3","@biomejs/biome":"^2.4.7","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.1.3_1773698440634_0.9124242237937632","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"better-auth-firestore","version":"1.1.4","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.1.4","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"e65bc9f07e336b6dd27ead92be9be8b89f96bde2","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.1.4.tgz","fileCount":14,"integrity":"sha512-UHZ6q4eMfo/fNwnQAGlJB+h28wXBBSvzveCEexXTLNkV0OL66RAprMUk9r59GyRdKuaR+XUxc6PBdbZAnOXcrg==","signatures":[{"sig":"MEYCIQCrom+/T127wDVB9HZLvoZsjKu8MtEMmGxcDCBXaYYtPQIhAL3LenIJPDhJ44n7MWZ9syIQa0+Z+/EOZlVXkoQaaBSV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76521},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"36d2111f1082ab1a99798b7d2495c3c4a82eec82","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.9.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"rimraf":"^6.1.3","vitest":"^4.1.0","typescript":"^5.9.3","@biomejs/biome":"^2.4.7","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.1.4_1773699426465_0.5229046923020999","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"better-auth-firestore","version":"1.2.0","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.0","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"a60ef3f682a52874270ceccaec31d6d2148842fa","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.0.tgz","fileCount":14,"integrity":"sha512-l+c5AQJTIse3+J+1wI2VMqejNefOafdbrRhje5GBiY546pYLD9ZyZ37t2t2pu05lGPPknJko2Zw+UAcVEpe0Ww==","signatures":[{"sig":"MEYCIQDSXO5fZqxeZOPO18ZLZUfx7FBR1wUBAjDFPTDv4ZOoawIhAOsgecp1ouu96x1ib8qcYv6ap0wlZQ6CvMJDrxyfQGAu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86452},"main":"./dist/index.cjs","pnpm":{"overrides":{"kysely@<=0.28.13":">=0.28.14","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","brace-expansion@<5.0.5":">=5.0.5","@tootallnate/once@<3.0.1":">=3.0.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14","fast-xml-parser@>=4.0.0-beta.3 <=5.5.6":">=5.5.7"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5c43562b4de1560919c0ed28fdba47d46c21f8d1","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.11.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"rimraf":"^6.1.3","vitest":"^4.1.2","typescript":"^5.9.3","@biomejs/biome":"^2.4.9","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.0_1776719981081_0.04436474411100155","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"better-auth-firestore","version":"1.2.1","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.1","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"f06fee38e55dfa560bde9c100392fa3bc4d4cf14","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.1.tgz","fileCount":14,"integrity":"sha512-/YACddQMmRaNzHZW6HvANiuoZu7rSR6LuxqSk+Jx9xwudneqXbcEX74oKIIC/UWa4FrSasKco5llfBwu6UDtUg==","signatures":[{"sig":"MEQCIFtxoWs0IItF66sod5zS/v/8/9dwHdFNxavsUOnmMiMNAiB2gyu/Scj8nscUiL+IMTDBrMB+CvjRm+OEy+4Dereqbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88474},"main":"./dist/index.cjs","pnpm":{"overrides":{"kysely@<=0.28.13":">=0.28.14","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","brace-expansion@<5.0.5":">=5.0.5","@tootallnate/once@<3.0.1":">=3.0.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14","fast-xml-parser@>=4.0.0-beta.3 <=5.5.6":">=5.5.7"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"28588e43a50e6684d7bf29aa32b6c9212b024f8a","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.11.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"rimraf":"^6.1.3","vitest":"^4.1.2","typescript":"^5.9.3","@biomejs/biome":"^2.4.9","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.1_1776720390515_0.2674654538903247","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"better-auth-firestore","version":"1.2.2","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.2","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"02c8e2a1d4de1d38e21579ac608e47e2e46af853","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.2.tgz","fileCount":14,"integrity":"sha512-YGKeYBJ7ASMkLEdn6aM6QboDR0/aeNzOQG2TrS+urUUK0q23Wi15gWvWuaxqECgkK2UDa3xCaxnuCj4EOR49ew==","signatures":[{"sig":"MEYCIQCTYnGj2HZJ7sjOzJtXVp1bORdz0BEqeKG5i8MKq83FqQIhAP3nG/UxeWv5x4mCS0FNU26brllkH6Vn8iXhqlOIgKce","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88675},"main":"./dist/index.cjs","pnpm":{"overrides":{"kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","@tootallnate/once@<3.0.1":">=3.0.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14","fast-xml-parser@>=4.0.0-beta.3 <=5.5.6":">=5.5.7"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"eeee9dc0fad6e55a9ed22a3957e2c99f61327bbf","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.11.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.0.9","rimraf":"^6.1.3","vitest":"^4.1.4","typescript":"^5.9.3","better-auth":"^1.6.5","@biomejs/biome":"^2.4.9","firebase-admin":"^13.8.0","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.2_1776720909432_0.17250802715247948","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"better-auth-firestore","version":"1.2.3","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.3","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"7793a1cbd7520b736fd65b800b5e7761df43fe30","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.3.tgz","fileCount":14,"integrity":"sha512-YEClUMQDd+RPOfQdVvolFAyeApuJb+W4xUCHxG4CgZ1Pwbqh+tBzNucRSK/2qsAtQj9LXVTxp5CLRPXhhcpNPQ==","signatures":[{"sig":"MEYCIQDcofEE83uZafWlzmIKIk1cnBRHmPv2k0FGVYmSTEGuigIhAN0Q7iVBMYND/Z8OjgjSGooowaze7VxAF2mqyv1yVoA3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88703},"main":"./dist/index.cjs","pnpm":{"overrides":{"kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-parser@<5.7.0":">=5.7.0","fast-xml-builder@<1.1.7":">=1.1.7","@tootallnate/once@<3.0.1":">=3.0.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5fbc144240db0fa8c9cd59abe825f6c8b5aa237b","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.11.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.0.9","rimraf":"^6.1.3","vitest":"^4.1.4","typescript":"^5.9.3","better-auth":"^1.6.5","@biomejs/biome":"^2.4.9","firebase-admin":"^13.8.0","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.3_1778463815915_0.47491854889117424","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"better-auth-firestore","version":"1.2.4","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.4","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"bdef9ebc15fdfa022056fe2610919fe596b0a8ad","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.4.tgz","fileCount":14,"integrity":"sha512-UVVf9TF1gF2VWBgrLV9sMdiX1XHA5UaO4U9/AUnUtt6iemMMWm/8ZvniH10sEAFWAovKlE84b8VGbI27QLAFdA==","signatures":[{"sig":"MEUCIH0wnS0i01v2pwPA85F34XeierO+1A36VOT6oMhTWqU9AiEAmO7pBplDOimdDSpAatBgkHCXi0tcGN73PUCJt9CyHBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88703},"main":"./dist/index.cjs","pnpm":{"overrides":{"kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-parser@<5.7.0":">=5.7.0","fast-xml-builder@<1.1.7":">=1.1.7","@tootallnate/once@<3.0.1":">=3.0.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"64ac70eae6b05fe83f11f7b19c99142e1b87c7b1","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.11.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.0.9","rimraf":"^6.1.3","vitest":"^4.1.4","typescript":"^5.9.3","better-auth":"^1.6.5","@biomejs/biome":"^2.4.9","firebase-admin":"^13.8.0","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.4_1778802451127_0.6658478454976071","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"better-auth-firestore","version":"1.2.5","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.5","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"92fa6a8bc0443eaac5647882657c31c6ae14bc88","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.5.tgz","fileCount":14,"integrity":"sha512-Mm6StMU9C+Y/nOrSI80r64CL7YRezhH19T4m4jyJ+Kl0JFzogJIa3Ak5zZb14F84GY2M7nt/9icYmco5tcxkXg==","signatures":[{"sig":"MEYCIQDJBfd+kZZEzDdNwaIqYa7xx0OjKlBx6w1TrH6ljclpzgIhAO/O41ApS7rHVAdtjCRjwQb9BA21xs+joFxQ9JAGirt3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89176},"main":"./dist/index.cjs","pnpm":{"overrides":{"kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-parser@<5.7.0":">=5.7.0","fast-xml-builder@<1.1.7":">=1.1.7","@tootallnate/once@<3.0.1":">=3.0.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c8692e734e6876ac598d4ae7683795ce24c45cbe","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.12.1","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.0.9","rimraf":"^6.1.3","vitest":"^4.1.4","typescript":"^5.9.3","better-auth":"^1.6.5","@biomejs/biome":"^2.4.9","firebase-admin":"^13.8.0","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.5_1779840293306_0.788944232555822","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"better-auth-firestore","version":"1.2.6","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.6","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"a254ee9072381dec234b7032da56c5c3ae065d96","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.6.tgz","fileCount":14,"integrity":"sha512-eaut5Xs5kWe74GVh97r7T8fU72ZcfzUO/RGlqAfacDK/3GfjYvnYWZhspL7XlsOmPZHs1RbCEz7rdU/wQrh4Bw==","signatures":[{"sig":"MEUCICunHkVFz9qIToLNUnvBRJsr9Q+lCsgA/75vXBvB1jDMAiEA0TU0BsJt2Al6Fg3iUHwAmYDYoQ2d22pgQQH8Nd5zihk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95930},"main":"./dist/index.cjs","pnpm":{"overrides":{"kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-parser@<5.7.0":">=5.7.0","fast-xml-builder@<1.1.7":">=1.1.7","@tootallnate/once@<3.0.1":">=3.0.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"779c1b07784ee7447ca4f0275409e6f0bab9a62d","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.12.1","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.0.9","rimraf":"^6.1.3","vitest":"^4.1.4","typescript":"^5.9.3","better-auth":"^1.6.5","@biomejs/biome":"^2.4.9","firebase-admin":"^13.8.0","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.6_1779842255864_0.26054260835883913","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"better-auth-firestore","version":"1.2.7","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.7","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"037e908334af8348f54a5c0c8e3a01e3bf5784c6","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.7.tgz","fileCount":14,"integrity":"sha512-tv2dwb6w0dPwxIYYsXrr9W1i2EMHH4X+xOPBe7vO8wncPjuhovA9h3xvt0uqvFM5LhAmmTmhr2dlOkoh2/OjHg==","signatures":[{"sig":"MEYCIQCP7duriyV7mdcnwpyMNgu5LWhEUJlzE+U5TIeMijI9+QIhAINtex4PciSHGls0pK5256Z57oSa/3fe+L6rtFBE3kMp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106255},"main":"./dist/index.cjs","pnpm":{"overrides":{"kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-parser@<5.7.0":">=5.7.0","fast-xml-builder@<1.1.7":">=1.1.7","@tootallnate/once@<3.0.1":">=3.0.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8f93d1728f2cf133102d6281316aca6e257030fe","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.16.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.0.9","rimraf":"^6.1.3","vitest":"^4.1.4","typescript":"^5.9.3","better-auth":"^1.6.5","@biomejs/biome":"^2.4.9","firebase-admin":"^13.8.0","semantic-release":"^25.0.3","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.7_1783448983820_0.9409942176920134","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"better-auth-firestore","version":"1.2.8","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.8","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"625d71caad1d93cc6ca6a3ea2a03df7980704510","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.8.tgz","fileCount":14,"integrity":"sha512-uhOwxCPEYV2MWPkW2YWjd5/N1a/mepIfpQ4Q8JFxlDu0v27B32zRi9gHyP6RtjaRlPX4mu9qDGwYMms6Z8ZVaQ==","signatures":[{"sig":"MEQCICQ+qvrOP3hngH+yPmfDKuyt6AFrfqAjYLYTmS0P6udPAiAr+vy73c3EFoWPEYgZ6LnZjH9XgIF29nUKRFLEWWh+vQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110798},"main":"./dist/index.cjs","pnpm":{"overrides":{"uuid@<11.1.1":">=11.1.1","js-yaml@<4.2.0":">=4.2.0","undici@<6.27.0":">=6.27.0","form-data@<2.5.6":">=2.5.6","kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-parser@<5.7.0":">=5.7.0","undici@>=7.0.0 <7.28.0":">=7.28.0","fast-xml-builder@<1.1.7":">=1.1.7","undici@>=7.23.0 <7.28.0":">=7.28.0","@tootallnate/once@<3.0.1":">=3.0.1","esbuild@>=0.27.3 <0.28.1":">=0.28.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14","protobufjs@>=8.0.0 <=8.4.0":">=8.4.1","protobufjs@>=8.0.0 <=8.5.0":">=8.6.0","@grpc/grpc-js@>=1.14.0 <1.14.4":">=1.14.4","brace-expansion@>=5.0.0 <5.0.6":">=5.0.6"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8026e660af3307c6e6eb5d1cd8fea926719dd44e","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.16.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.1.3","rimraf":"^6.1.3","vitest":"^4.1.10","typescript":"^5.9.3","better-auth":"^1.6.23","@biomejs/biome":"^2.5.2","firebase-admin":"^13.10.0","semantic-release":"^25.0.5","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.9","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.1"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.8_1783796850756_0.4050707673884384","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"better-auth-firestore","version":"1.2.9","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.2.9","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"d8988264aa22d3a8bf171796b502c62659ba6ed0","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.2.9.tgz","fileCount":14,"integrity":"sha512-njLsuI4zYFyo+vJ2liEXA1Htri+NUpHLcC1f14XdLljzm1vaR9mswPswlVIYM5aiZ8BJR7PTl+Ca6yRVpu43GQ==","signatures":[{"sig":"MEUCIQD/hQfUoPdISJip7IHjjPVsMlh71fmCX2w11TCOAshXyAIgHztzhZioQtrf2neQbyexVU/EbvGqu3Wf7fVVx6Pd9VE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":120888},"main":"./dist/index.cjs","pnpm":{"overrides":{"uuid@<11.1.1":">=11.1.1","js-yaml@<4.2.0":">=4.2.0","undici@<6.27.0":">=6.27.0","form-data@<2.5.6":">=2.5.6","kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","undici@>=7.0.0 <7.28.0":">=7.28.0","fast-xml-builder@<1.1.7":">=1.1.7","fast-xml-parser@<5.10.1":">=5.10.1","undici@>=7.23.0 <7.28.0":">=7.28.0","@tootallnate/once@<3.0.1":">=3.0.1","esbuild@>=0.27.3 <0.28.1":">=0.28.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14","protobufjs@>=8.0.0 <=8.4.0":">=8.4.1","protobufjs@>=8.0.0 <=8.5.0":">=8.6.0","@grpc/grpc-js@>=1.14.0 <1.14.4":">=1.14.4","brace-expansion@>=5.0.0 <5.0.6":">=5.0.6"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8219aff40daeb0fe0736e5d55cff3c20c113d5fc","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.16.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.1.3","rimraf":"^6.1.3","vitest":"^4.1.10","typescript":"^5.9.3","better-auth":"^1.6.23","@biomejs/biome":"^2.5.2","firebase-admin":"^13.10.0","semantic-release":"^25.0.5","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.9","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.1"},"peerDependencies":{"typescript":"^5.0.0","better-auth":"*","firebase-admin":">=13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.2.9_1786600100588_0.9243630803600438","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"better-auth-firestore","version":"1.3.0","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.3.0","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"bin":{"better-auth-firestore":"bin/better-auth-firestore.js"},"dist":{"shasum":"58c44235eb50afc24a9c76eff25762092f88447d","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.3.0.tgz","fileCount":19,"integrity":"sha512-a8jpVBJ6o7ffyr6ThPnJmxYp0wmkptFUVAfGjrtINXpFrb4jI0hpmCfgDITLkEvto62HPqIhTuRsrh1clDek8A==","signatures":[{"sig":"MEYCIQCI6BQ4ENw12GdeSNqt4lIFroLChAXMIJ3vPWqCFzrWqgIhAKPMwzJczlHVD3SZG+AosDEmei9nYBBKj0Dw7nA5a/Kl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161720},"main":"./dist/index.js","pnpm":{"overrides":{"uuid@<11.1.1":">=11.1.1","undici@<8.9.0":">=8.9.0","js-yaml@<5.2.2":">=5.2.2","nanoid@<3.3.18":"^3.3.18","postcss@<8.5.23":">=8.5.23","form-data@<2.5.6":">=2.5.6","kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-builder@<1.1.7":">=1.1.7","fast-xml-parser@<5.10.1":">=5.10.1","@tootallnate/once@<3.0.1":">=3.0.1","esbuild@>=0.27.3 <0.28.1":">=0.28.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14","protobufjs@>=8.0.0 <=8.4.0":">=8.4.1","protobufjs@>=8.0.0 <=8.5.0":">=8.6.0","@grpc/grpc-js@>=1.14.0 <1.14.4":">=1.14.4","brace-expansion@>=5.0.0 <5.0.6":">=5.0.6"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"19c479a7db32bd02590cacb16ce1eeb8bd80ec65","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","typecheck":"tsc -p tsconfig.json --noEmit","verify:pack":"./scripts/verify-pack.sh","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.17.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.1.3","rimraf":"^6.1.3","vitest":"^4.1.10","typescript":"^5.9.3","better-auth":"^1.7.1","@biomejs/biome":"^2.5.2","firebase-admin":"^13.10.0","semantic-release":"^25.0.5","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.9","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.1"},"peerDependencies":{"typescript":"^5.0.0 || ^6.0.0 || ^7.0.0","better-auth":"*","firebase-admin":">=13"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.3.0_1787512986977_0.6816799892021925","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"better-auth-firestore","version":"1.3.1","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","_id":"better-auth-firestore@1.3.1","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"bin":{"better-auth-firestore":"bin/better-auth-firestore.js"},"dist":{"shasum":"b487c9a53fc0dc6d8e558d4942fb8b4e9c311d1f","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.3.1.tgz","fileCount":19,"integrity":"sha512-/T7AqfcGnJi2RSvNvRlDn/Hozj1sG2Q1oZNEdkEbZWR1EH/XYMDHqI9NttMtq+z5lamRrDrEzGMXrTzV21vKqg==","signatures":[{"sig":"MEUCIGl30fsPNPBs++Ayffsfi5wlg9rrJIGXBhFP+1vHKK+YAiEA7iLlwE3PFFLT7qjQr/ygqxYd/xFtzAD9Eo9bm41xPWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":175350},"main":"./dist/index.js","pnpm":{"overrides":{"uuid@<11.1.1":">=11.1.1","undici@<8.9.0":">=8.9.0","js-yaml@<5.2.2":">=5.2.2","nanoid@<3.3.18":"^3.3.18","postcss@<8.5.23":">=8.5.23","form-data@<2.5.6":">=2.5.6","kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-builder@<1.1.7":">=1.1.7","fast-xml-parser@<5.10.1":">=5.10.1","@tootallnate/once@<3.0.1":">=3.0.1","esbuild@>=0.27.3 <0.28.1":">=0.28.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14","protobufjs@>=8.0.0 <=8.4.0":">=8.4.1","protobufjs@>=8.0.0 <=8.5.0":">=8.6.0","@grpc/grpc-js@>=1.14.0 <1.14.4":">=1.14.4","brace-expansion@>=5.0.0 <5.0.6":">=5.0.6"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"570ccd8a31cadced2a792c8fcde0ac6411979489","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","typecheck":"tsc -p tsconfig.json --noEmit","verify:pack":"./scripts/verify-pack.sh","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.17.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.1.3","rimraf":"^6.1.3","vitest":"^4.1.10","typescript":"^5.9.3","better-auth":"^1.7.1","@biomejs/biome":"^2.5.2","firebase-admin":"^13.10.0","semantic-release":"^25.0.5","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.9","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.1"},"peerDependencies":{"typescript":"^5.0.0 || ^6.0.0 || ^7.0.0","better-auth":"*","firebase-admin":">=13"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/better-auth-firestore_1.3.1_1787618624679_0.06382083537842687","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"_id":"better-auth-firestore@1.3.2","bin":{"better-auth-firestore":"bin/better-auth-firestore.js"},"bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"dist":{"shasum":"c405b1a00e96b8185bfbfbe64d802cf854e15512","tarball":"https://registry.npmjs.org/better-auth-firestore/-/better-auth-firestore-1.3.2.tgz","fileCount":19,"integrity":"sha512-lezala+hKg8aYhhxa4mV7bWiBV3ScWqdwdk8+Fe81el5qRf0YgKCpfeDKU2PjCOStjstbfiftOa2kh7dMHRBgQ==","signatures":[{"sig":"MEYCIQC76/iEj85fByFc72Nm+xKzZKtgJGBsH3ndarxZHNnNdQIhAPpmQo3AlA+EZQkVIvzre3FDZZKZ+u0wgRFSvvIM6RT5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBYMkkJKw4ag3ZAheg6J3HgkISnRg0QeJkSJCK4PdDTdAiEAuSTojSGrng1/BGEafEJiNB/vRuDaG3ylWuKCXOE+1go="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-auth-firestore@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":179245},"main":"./dist/index.js","name":"better-auth-firestore","pnpm":{"overrides":{"uuid@<11.1.1":">=11.1.1","undici@<8.9.0":">=8.9.0","js-yaml@<5.2.2":">=5.2.2","nanoid@<3.3.18":"^3.3.18","postcss@<8.5.23":">=8.5.23","form-data@<2.5.6":">=2.5.6","kysely@<=0.28.13":">=0.28.14","lodash@<=4.17.23":">=4.18.0","picomatch@<2.3.2":">=2.3.2","node-forge@<1.4.0":">=1.4.0","protobufjs@<7.5.5":">=7.5.5","node-forge@<=1.3.3":">=1.4.0","micromatch>picomatch":"^2.3.2","vite@>=7.0.0 <=7.3.1":">=7.3.2","brace-expansion@<5.0.5":">=5.0.5","fast-xml-builder@<1.1.7":">=1.1.7","fast-xml-parser@<5.10.1":">=5.10.1","@tootallnate/once@<3.0.1":">=3.0.1","esbuild@>=0.27.3 <0.28.1":">=0.28.1","picomatch@>=4.0.0 <4.0.4":">=4.0.4","kysely@>=0.28.12 <=0.28.13":">=0.28.14","protobufjs@>=8.0.0 <=8.4.0":">=8.4.1","protobufjs@>=8.0.0 <=8.5.0":">=8.6.0","@grpc/grpc-js@>=1.14.0 <1.14.4":">=1.14.4","brace-expansion@>=5.0.0 <5.0.6":">=5.0.6"}},"type":"module","types":"./dist/index.d.ts","author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"92c5a1c28cec0834edbd7e6babbb4651d9d8a96b","license":"MIT","private":false,"scripts":{"lint":"biome check --formatter-enabled=false","test":"./tests/test.sh","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write","typecheck":"tsc -p tsconfig.json --noEmit","verify:pack":"./scripts/verify-pack.sh","prepublishOnly":"pnpm run build","lint:fix:unsafe":"biome check --write --unsafe"},"version":"1.3.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb3213fa-f994-4a06-8f82-095701258979"}},"homepage":"https://github.com/yultyyev/better-auth-firestore#readme","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"_npmVersion":"11.19.0","description":"Firestore adapter for Better Auth (Firebase Admin SDK)","directories":{},"maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.0.0","devDependencies":{"vite":"^8.1.3","rimraf":"^6.1.3","vitest":"^4.1.10","typescript":"^5.9.3","better-auth":"^1.7.1","@biomejs/biome":"^2.5.2","firebase-admin":"^13.10.0","semantic-release":"^25.0.5","@semantic-release/npm":"^13.1.5","@semantic-release/github":"^12.0.9","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.1"},"peerDependencies":{"typescript":"^5.0.0 || ^6.0.0 || ^7.0.0","better-auth":"*","firebase-admin":">=13"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/better-auth-firestore_1.3.2_1789421341867_0.4010320985623608"}}},"time":{"created":"2026-01-07T23:37:59.121Z","modified":"2026-09-14T21:29:02.296Z","1.0.0":"2026-01-07T23:37:59.379Z","1.1.0":"2026-01-07T23:49:24.263Z","1.1.1":"2026-02-13T23:37:09.420Z","1.1.2":"2026-02-14T00:16:51.115Z","1.1.3":"2026-03-16T22:00:40.780Z","1.1.4":"2026-03-16T22:17:06.615Z","1.2.0":"2026-04-20T21:19:41.248Z","1.2.1":"2026-04-20T21:26:30.659Z","1.2.2":"2026-04-20T21:35:09.576Z","1.2.3":"2026-05-11T01:43:36.065Z","1.2.4":"2026-05-14T23:47:31.255Z","1.2.5":"2026-05-27T00:04:53.487Z","1.2.6":"2026-05-27T00:37:36.018Z","1.2.7":"2026-07-07T18:29:43.992Z","1.2.8":"2026-07-11T19:07:30.894Z","1.2.9":"2026-08-13T05:48:20.728Z","1.3.0":"2026-08-23T19:23:07.128Z","1.3.1":"2026-08-25T00:43:44.828Z","1.3.2":"2026-09-14T21:29:01.963Z"},"bugs":{"url":"https://github.com/yultyyev/better-auth-firestore/issues"},"author":{"name":"Slava Yultyyev","email":"yultyyev@gmail.com"},"license":"MIT","homepage":"https://github.com/yultyyev/better-auth-firestore#readme","keywords":["better-auth","firebase","firestore","adapter","authjs","nextauth","oauth","session","typescript"],"repository":{"url":"git+https://github.com/yultyyev/better-auth-firestore.git","type":"git"},"description":"Firestore adapter for Better Auth (Firebase Admin SDK)","maintainers":[{"name":"yultyyev","email":"yultyyev@gmail.com"}],"readme":"# better-auth-firestore\n\n[![npm version](https://img.shields.io/npm/v/better-auth-firestore.svg)](https://www.npmjs.com/package/better-auth-firestore)\n[![CI](https://github.com/yultyyev/better-auth-firestore/actions/workflows/release.yml/badge.svg)](https://github.com/yultyyev/better-auth-firestore/actions)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](./LICENSE)\n[![skills.sh](https://skills.sh/b/yultyyev/better-auth-firestore)](https://skills.sh/yultyyev/better-auth-firestore)\n\n**Firestore (Firebase Admin SDK) adapter for Better Auth.** A drop-in replacement for the Auth.js Firebase adapter with matching data shape.\n\n- **Install:** `pnpm add better-auth-firestore firebase-admin better-auth`\n- **Docs:** [Quickstart](#quick-start) • [Options](#options) • [Better Auth 1.7 upgrade](#upgrading-to-better-auth-17) • [Migration](#migration-from-authjsnextauth) • [Emulator](#using-the-firestore-emulator)\n- **Example:** See [`/examples/minimal`](./examples/minimal) for a complete Next.js App Router example\n- **AI skill:** [Cursor, Claude Code, Codex & 70+ agents](#ai-assistant-skill) — `npx skills add yultyyev/better-auth-firestore` • [llms.txt](./llms.txt)\n\n> [!IMPORTANT]\n> **Upgrading to Better Auth 1.7 with existing users?** 1.7 looks accounts up by a new `issuer` field that older documents don't have, so existing users can't sign in until it's backfilled. Before your first deploy on 1.7, run:\n>\n> ```bash\n> npx better-auth-firestore backfill-account-issuers          # dry run — prints a report\n> npx better-auth-firestore backfill-account-issuers --apply  # writes\n> ```\n>\n> The adapter warns on startup while any account document is missing it. Details: [Upgrading to Better Auth 1.7](#upgrading-to-better-auth-17).\n\n---\n\n## Related: Firebase Auth Plugin\n\nFor Firebase Authentication integration with Better Auth, see **[better-auth-firebase-auth](https://github.com/yultyyev/better-auth-firebase-auth)**. It provides:\n\n- Firebase Phone Authentication (SMS OTP) — no Twilio required\n- Google Sign-In via Firebase OAuth flow\n- Email/Password sign-in and password reset via Firebase\n- Full TypeScript support with separate server/client entry points\n\nUse `better-auth-firebase-auth` for authentication and `better-auth-firestore` for data storage. They are designed to be used together:\n\n```ts\nimport { firestoreAdapter } from \"better-auth-firestore\";\nimport { firebaseAuthPlugin } from \"better-auth-firebase-auth/server\";\n\nexport const auth = betterAuth({\n  database: firestoreAdapter({ firestore }),\n  plugins: [firebaseAuthPlugin({ firebaseAdminAuth: getAuth() })],\n});\n```\n\n---\n\n## Installation\n\n# npm\n\n```bash\nnpm install better-auth-firestore firebase-admin better-auth\n```\n\n# pnpm\n\n```bash\npnpm add better-auth-firestore firebase-admin better-auth\n```\n\n# yarn\n\n```bash\nyarn add better-auth-firestore firebase-admin better-auth\n```\n\n# bun\n\n```bash\nbun add better-auth-firestore firebase-admin better-auth\n```\n\n### Minimal usage\n\n```ts\nimport { firestoreAdapter } from \"better-auth-firestore\";\nimport { betterAuth } from \"better-auth\";\nimport { getFirestore } from \"firebase-admin/firestore\";\n\nexport const auth = betterAuth({\n  database: firestoreAdapter({ firestore: getFirestore() })\n});\n```\n\n## Quick start\n\n```ts\nimport { betterAuth } from \"better-auth\";\nimport { firestoreAdapter, initFirestore } from \"better-auth-firestore\";\nimport { cert } from \"firebase-admin/app\";\n\nconst firestore = initFirestore({\n\tcredential: cert({\n\t\tprojectId: process.env.FIREBASE_PROJECT_ID!,\n\t\tclientEmail: process.env.FIREBASE_CLIENT_EMAIL!,\n\t\tprivateKey: process.env.FIREBASE_PRIVATE_KEY!.replace(/\\\\n/g, \"\\n\"),\n\t}),\n\tprojectId: process.env.FIREBASE_PROJECT_ID!,\n\tname: \"better-auth\",\n});\n\nexport const auth = betterAuth({\n\t// ... your Better Auth options\n\tdatabase: firestoreAdapter({\n\t\tfirestore,\n\t\tnamingStrategy: \"default\", // or \"snake_case\"\n\t\tcollections: {\n\t\t\t// users: \"users\",\n\t\t\t// sessions: \"sessions\",\n\t\t\t// accounts: \"accounts\",\n\t\t\t// verificationTokens: \"verificationTokens\",\n\t\t},\n\t}),\n});\n```\n\n## Firebase Setup\n\n### 1. Create a new Firebase project\n\n1. Go to [Firebase Console](https://console.firebase.google.com/)\n2. Click \"Add project\" or \"Create a project\"\n3. Enter a project name and follow the setup wizard\n\n### 2. Create Firestore Database\n\n1. In your Firebase project, go to **Build** → **Firestore Database**\n2. Click \"Create database\"\n3. Choose your preferred security rules mode (you can update rules later)\n4. Select a location for your database\n\n### 3. Firestore Index (Optional)\n\n> **No composite index is required.** As of v1.1, the adapter sorts filtered queries — including verification-token lookups — in memory, so Firestore's automatic single-field indexes are sufficient. As of v1.3 that includes `rateLimit.storage: \"database\"`: the adapter implements Better Auth's `incrementOne` natively and evaluates the limiter's range guards in memory inside a Firestore transaction, so only an equality filter on `key` ever reaches Firestore.\n\nIf you're upgrading from an earlier version that required composite indexes — on the verification collection (`identifier` ASC, `createdAt` DESC, before v1.1) or on `rateLimit` (`key`/`lastRequest` and `key`/`count`/`lastRequest`, before v1.3) — you can safely leave them in place or delete them; the adapter no longer depends on either.\n\nThe `generateIndexSetupUrl` / `getIndexConfig` helpers and the bundled `firestore.indexes.json` are still exported for advanced setups (for example, if you run your own `where` + `orderBy` queries directly against the verification collection outside the adapter). They default to the `verificationTokens` collection; pass `\"verification_tokens\"` when using the snake_case naming strategy, or your custom collection name.\n\n### 4. Generate Service Account Key\n\n1. Go to **Project Settings** (gear icon) → **Service Accounts**\n2. Under \"Firebase Admin SDK\", click **\"Generate new private key\"**\n3. Download the JSON file (keep it secure - never commit it to version control)\n\n### 5. Extract Environment Variables\n\nFrom the downloaded service account JSON file, extract these values:\n\n- `project_id` → `FIREBASE_PROJECT_ID`\n- `client_email` → `FIREBASE_CLIENT_EMAIL`\n- `private_key` → `FIREBASE_PRIVATE_KEY` (requires newline replacement - see [Troubleshooting](#troubleshooting))\n\n**Alternative:** You can use the JSON file directly by setting `GOOGLE_APPLICATION_CREDENTIALS` environment variable to the path of your service account JSON file.\n\n### 6. (Optional) Set up Security Rules\n\nThe adapter uses the Firebase Admin SDK (server-side), so Firestore security rules should deny direct client access. See [Firestore Security Rules](#firestore-security-rules) below.\n\n## Environment Variables\n\nRequired environment variables:\n\n- `FIREBASE_PROJECT_ID` - Your Firebase project ID\n- `FIREBASE_CLIENT_EMAIL` - Service account email from the JSON file\n- `FIREBASE_PRIVATE_KEY` - Service account private key (with newlines properly escaped)\n\n**Note:** The `FIREBASE_PRIVATE_KEY` often contains literal `\\n` characters in environment variables. See [Troubleshooting](#troubleshooting) for how to handle this.\n\n## Options\n\n```ts\nfirestoreAdapter({\n\tfirestore?: Firestore;\n\tnamingStrategy?: \"default\" | \"snake_case\";\n\tcollections?: { users?: string; sessions?: string; accounts?: string; verificationTokens?: string };\n\tdebugLogs?: boolean | DBAdapterDebugLogOption;\n\tmigrationChecks?: boolean; // default true — see \"Upgrading to Better Auth 1.7\"\n});\n```\n\n**Default collection names:**\n- `users`: \"users\"\n- `sessions`: \"sessions\"\n- `accounts`: \"accounts\"\n- `verificationTokens`: \"verification_tokens\" (snake_case) or \"verificationTokens\" (default)\n\n**Custom model names:** a Better Auth `modelName` (for example `user: { modelName: \"app_users\" }`, or a plugin model) names the Firestore collection directly and takes precedence over `collections`. The mapping is applied consistently, including for operations Better Auth runs inside `adapter.transaction` (such as sign-up).\n\n### Debug logging\n\n```ts\nfirestoreAdapter({\n  firestore,\n  debugLogs: true, // Enable verbose logging\n});\n```\n\n## Compatibility\n\n### Better Auth versions\n\n| Better Auth | Status | Notes |\n|---|---|---|\n| `^1.7.0` | ✅ Recommended | Requires adapter v1.3+ (native `incrementOne`). Existing deployments must run the [account issuer backfill](#upgrading-to-better-auth-17) first. |\n| `^1.6.0` | ✅ Supported | Tested in CI alongside 1.7; the same adapter release works with both. |\n| `< 1.6` | ⚠️ Not covered by CI | Pin an older adapter release (≤ v1.2) if you need one. |\n\n> **For older projects:** if your app still uses older Better Auth patterns (`createAuth` + `adapter`), this adapter remains compatible, but new projects should use `betterAuth` + `database`.\n\n### TypeScript versions\n\n| TypeScript | Status | Notes |\n|---|---|---|\n| `7.x` | ✅ Supported | Native compiler. Produces byte-identical declarations to 5.x/6.x. |\n| `6.x` | ✅ Supported | Drop-in — no config changes required. |\n| `5.x` | ✅ Supported | Minimum supported version is `5.0`; used for the published build. |\n\nEvery version above is exercised in CI (typecheck + build). TypeScript is an\n**optional** peer dependency, so JavaScript-only projects never install it.\n\n### Runtime compatibility\n\n| Runtime | Supported | Notes |\n|---|---|---|\n| Node 22+ | ✅ | Required (active LTS and newer). `import` works throughout; `require()` needs 22.12+ — see below. |\n| Next.js on Vercel (Node.js runtime) | ✅ | Default serverless runtime — fully supported |\n| Cloud Functions / Cloud Run | ✅ | Provide `FIREBASE_*` creds |\n| Vercel Edge Runtime (`runtime = 'edge'`) | ❌ | Firebase Admin SDK requires Node.js |\n| Cloudflare Workers | ❌ | Firebase Admin SDK requires Node.js |\n\n> **Vercel works.** The ❌ above applies only if you explicitly set `export const runtime = 'edge'` on a route. The default Node.js serverless runtime on Vercel is fully supported.\n\n> **ESM and CommonJS.** The package ships a single ESM build. `import` works on any supported Node. `require(\"better-auth-firestore\")` relies on Node's `require(esm)`, unflagged since **22.12** — so CommonJS callers (Firebase Cloud Functions and friends) need 22.12 or newer, which every current 22.x LTS release satisfies. TypeScript projects that emit CommonJS need `\"module\": \"nodenext\"` — the older `\"node16\"` setting predates `require(esm)` and reports [TS1479](https://typescript.tv/errors/#ts1479).\n\n## Collections & Data Shape\n\nThe adapter maintains the same data shape as Auth.js/NextAuth for seamless migration:\n\n| Collection | Typical fields |\n|---|---|\n| `users` | `id`, `email`, `name`, `image`, `createdAt`, `updatedAt` |\n| `accounts` | `provider`, `providerAccountId`, `userId`, `access_token`, `refresh_token` |\n| `sessions` | `sessionToken`, `userId`, `expires` |\n| `verificationTokens` | `identifier`, `token`, `expires` |\n\n> **Defaults:** Collections default to `users`, `sessions`, `accounts`, `verification_tokens` (snake_case) / `verificationTokens` (default). See [Options](#options) to customize collection names.\n>\n> **Note:** No composite index is required. Verification-token lookups are sorted in memory. See [Firebase Setup - Step 3](#3-firestore-index-optional) for details.\n\n### Minimal Firestore Security Rules (server/admin only)\n\nSince this adapter uses the Firebase Admin SDK (server-side), Firestore security rules should deny direct client access:\n\n```javascript\nrules_version = '2';\nservice cloud.firestore {\n  match /databases/{database}/documents {\n    match /{document=**} {\n      allow read, write: if false;\n    }\n  }\n}\n```\n\n## Why this vs Auth.js Firebase adapter?\n\n| Feature | Better Auth Firestore | Auth.js Firebase Adapter |\n|---|---|---|\n| **Status** | ✅ Active development | Now maintained by Better Auth team ([announcement](https://www.better-auth.com/blog/authjs-joins-better-auth)) |\n| **Firebase Admin SDK** | ✅ Uses Admin SDK | ✅ Uses Admin SDK |\n| **Data shape compatibility** | ✅ Matching shape, migration-free | - |\n| **Drop-in replacement** | ✅ Yes | - |\n\nThis adapter is the Better Auth-native solution for Firestore users, recommended for new projects.\n\n## Migration from Scoped Package\n\nThe scoped package `@yultyyev/better-auth-firestore` was unpublished from npm in August 2026 (it had been deprecated since January). Projects that still reference it keep working from their installed `node_modules`, but any fresh install — a new machine, CI, `rm -rf node_modules` — fails with `404 Not Found`. The fix is a rename; the API is identical:\n\n1. **Update package name in your dependencies:**\n   ```bash\n   npm uninstall @yultyyev/better-auth-firestore\n   npm install better-auth-firestore\n   # or\n   pnpm remove @yultyyev/better-auth-firestore\n   pnpm add better-auth-firestore\n   ```\n\n2. **Update import statements:**\n   ```ts\n   // Before\n   import { firestoreAdapter } from \"@yultyyev/better-auth-firestore\";\n   \n   // After\n   import { firestoreAdapter } from \"better-auth-firestore\";\n   ```\n\nThat's it! The API is identical, so no code changes are needed beyond the import path.\n\n## Upgrading to Better Auth 1.7\n\nBetter Auth 1.7 changed how accounts are identified and what it requires from database adapters. Two things matter for Firestore users — read the official [1.7 upgrade guide](https://better-auth.com/docs/guides/1-7-upgrade-guide) for everything else (OAuth provider, SSO, SCIM, MCP, …).\n\n**1. Adapter v1.3+ is required.** 1.7 made `incrementOne` a mandatory adapter method and removed the fallback earlier versions relied on. With adapter ≤ v1.2 on Better Auth 1.7, sign-in still works but every feature built on atomic counters throws `Adapter \"firestore\" must implement incrementOne` — database-backed rate limiting, organization invitations and team seats, device authorization, and two-factor lockout. v1.3 implements it natively and also works with 1.6, so upgrade the adapter first, independently of Better Auth.\n\n**2. Existing account documents need an `issuer`.** 1.7 identifies an account by the pair `(issuer, accountId)` and stores `issuer` on every new account. Documents written by earlier versions don't have it, so after upgrading, 1.7 can't find them — **existing users can no longer sign in** until the field is backfilled. SQL users get this from `npx auth migrate`; Firestore has no migration runner, so the adapter ships the migration as one command. Run it with the same credentials your app uses (`GOOGLE_APPLICATION_CREDENTIALS`, the `FIREBASE_*` variables from [Environment Variables](#environment-variables), or `--service-account key.json`):\n\n```bash\nnpx better-auth-firestore backfill-account-issuers            # dry run: prints the report, writes nothing\nnpx better-auth-firestore backfill-account-issuers --apply    # writes, with authentication writes paused\n```\n\nAdd `--collection` / `--naming-strategy snake_case` if you customised the adapter, and `--issuer <providerId>=<url>` for a provider whose real issuer the backfill can't determine on its own — the built-in `cognito`, `paybin`, and `microsoft` (Entra ID) providers, and the fixed-id generic-OAuth helpers `okta`, `auth0`, `keycloak`, and `microsoft-entra-id`, whose issuer depends on how they're configured or on the live token. Those are reported as unresolved (exit status 1) until you supply one, rather than stamped with a value that may be wrong. `google`, `apple`, `facebook`, and `line` publish a fixed real issuer and resolve automatically; every other built-in social provider gets the synthetic `local:oauth:<providerId>` form 1.7 assigns when a provider has none of its own. (`slack` is ambiguous — the built-in social provider has no issuer, the generic-OAuth helper uses `https://slack.com`; it defaults to the synthetic form, so pass `--issuer slack=https://slack.com` if you use the helper.) `--help` lists everything.\n\n> **Already ran this on adapter v1.3.0?** That release stamped `local:oauth:google` instead of the real `https://accounts.google.com` (and likewise for `apple`, `facebook`, and `line`), so those users still can't sign in even though the field is set — and because the field *is* set, the startup warning stays silent and a re-run of the old command reported nothing to do. Upgrade the adapter and run the backfill again: it detects that exact wrong value, repairs it, and lists the affected documents as `wrong issuers left by the v1.3.0 backfill`. Deliberate issuers you supplied yourself are never touched. Users who signed in while the issuer was wrong already self-healed — Better Auth linked a fresh, correctly stamped account to their email — which leaves the v1.3.0 row behind as a stale twin. Those are reported separately as superseded and deliberately left alone, because re-stamping them would create a duplicate `(issuer, accountId)`; they're inert (1.7 never looks the old issuer up) and deleting them is optional.\n\nThe command mirrors 1.7's own rules: `credential` → `local:credential` (and repairs `accountId` to equal `userId`), `siwe` → `local:siwe`, `google`/`apple`/`facebook`/`line` → their real issuer, and every other provider without one of its own → `local:oauth:<encodeURIComponent(providerId)>`. It refuses to guess for providers with a real issuer it can't determine offline — those come back unresolved until you pass `--issuer`. It is idempotent (stamped documents are skipped, apart from the v1.3.0 values noted above, which are repaired), paginates, and exits with status 1 when it finds `(issuer, accountId)` collisions or documents it cannot resolve — 1.7 treats that pair as unique, so resolve those by hand before deploying. The same logic is available programmatically as `backfillAccountIssuers({ firestore, dryRun, issuers, resolveIssuer, … })`.\n\n**If you forget:** the adapter checks on startup and logs a `[better-auth-firestore]` warning with the exact command whenever Better Auth expects `issuer` but account documents lack it (two aggregation reads per process; `migrationChecks: false` disables it).\n\nRun the backfill (dry run, then real) before your first deploy on Better Auth 1.7; it ships in v1.3 and is harmless on 1.6. Once you're on v1.3 you can also delete the `rateLimit` composite indexes; see [Firestore Index](#3-firestore-index-optional).\n\n> **Plugin authors:** 1.7 removed `internalAdapter.findOAuthUser(email, accountId, providerId)`. Use `findAccountOwnerByKey({ issuer, accountId })` and pass `issuer` to `linkAccount` / `createOAuthUser`. If you use [`better-auth-firebase-auth`](https://github.com/yultyyev/better-auth-firebase-auth), upgrade it to [v2.2.0 or later](https://github.com/yultyyev/better-auth-firebase-auth/releases/tag/v2.2.0) — earlier releases call the removed API and every sign-in fails on 1.7 (one build supports Better Auth 1.5–1.7; [v2.2.1](https://github.com/yultyyev/better-auth-firebase-auth/releases/tag/v2.2.1) adds `npx better-auth-firebase-auth backfill-account-issuers`). Its `providerId: \"firebase\"` account documents are already covered by the backfill above: the default rule stamps them `local:oauth:firebase`, exactly the issuer that plugin uses.\n\n## Migration from Auth.js/NextAuth\n\n> **For complete migration steps**, see the [Better Auth NextAuth Migration Guide](https://www.better-auth.com/docs/guides/next-auth-migration-guide), which covers route handlers, client setup, and server-side session handling.\n\n### Adapter-Specific Migration\n\nThis adapter uses the same default collection names and field names as Auth.js Firebase adapter, making it a **drop-in replacement** for the database adapter portion of your migration:\n\n- **Collection names:** `users`, `sessions`, `accounts`, `verificationTokens` (same as Auth.js)\n- **Field names:** `sessionToken`, `userId`, `providerAccountId`, etc. (same as Auth.js)\n- **Data shape:** Identical, so no data migration scripts needed\n\nSimply replace your Auth.js Firebase adapter with this one:\n\n```ts\n// Before (Auth.js)\nimport { FirestoreAdapter } from \"@auth/firebase-adapter\";\n\n// After (Better Auth)\nimport { firestoreAdapter } from \"better-auth-firestore\";\n\n// Same Firestore instance, same collections, same data shape\nexport const auth = betterAuth({\n  database: firestoreAdapter({ firestore }),\n});\n```\n\nIf you were using custom collection names with Auth.js, you can override them:\n\n```ts\nfirestoreAdapter({\n\tfirestore,\n\tcollections: {\n\t\taccounts: \"authjs_accounts\", // or whatever custom names you were using\n\t\t// ... other overrides\n\t},\n});\n```\n\n## Recipes\n\n### Use snake_case collections\n\n```ts\nfirestoreAdapter({\n  firestore,\n  namingStrategy: \"snake_case\",\n});\n```\n\n### Keep Auth.js collection names (no data migration)\n\n```ts\nfirestoreAdapter({\n  firestore,\n  collections: {\n    accounts: \"accounts\", // or your custom collection names\n    // ... other overrides\n  },\n});\n```\n\n### Usage with Next.js (App Router)\n\n```ts\n// app/api/auth/[...all]/route.ts\nimport { toNextJsHandler } from \"better-auth/next-js\";\nimport { auth } from \"@/lib/auth\";\n\nexport const { GET, POST } = toNextJsHandler(auth);\n```\n\n### Usage in Node.js script\n\n```ts\nimport { firestoreAdapter } from \"better-auth-firestore\";\nimport { betterAuth } from \"better-auth\";\nimport { initializeApp, cert } from \"firebase-admin/app\";\nimport { getFirestore } from \"firebase-admin/firestore\";\n\nconst app = initializeApp({\n  credential: cert({\n    projectId: process.env.FIREBASE_PROJECT_ID,\n    clientEmail: process.env.FIREBASE_CLIENT_EMAIL,\n    privateKey: process.env.FIREBASE_PRIVATE_KEY?.replace(/\\\\n/g, \"\\n\"),\n  }),\n});\n\nexport const auth = betterAuth({\n  database: firestoreAdapter({ firestore: getFirestore(app) }),\n});\n```\n\n## Using the Firestore Emulator\n\nThe adapter fully supports the Firestore Emulator for both **local development** and **testing**. When `FIRESTORE_EMULATOR_HOST` is set, the Firebase Admin SDK automatically routes all requests to the emulator instead of production Firestore. Collection names remain unchanged — the adapter uses the same collections in emulator mode as in production.\n\n### Local development\n\n```bash\n# 1. Start the emulator\ndocker run -d --rm \\\n\t--name auth-firestore \\\n\t-p 8080:8080 \\\n\tgoogle/cloud-sdk:emulators gcloud beta emulators firestore start \\\n\t--host-port=0.0.0.0:8080\n\n# 2. Set the env var and start your app\nexport FIRESTORE_EMULATOR_HOST=localhost:8080\npnpm run dev\n```\n\nOr add `FIRESTORE_EMULATOR_HOST=localhost:8080` to your `.env` file (supported by Next.js, Vite, etc.).\n\n> **Note:** No credential or service account setup is needed when using the emulator — the Admin SDK skips authentication automatically.\n\n### Running tests\n\n```bash\nexport FIRESTORE_EMULATOR_HOST=localhost:8080\npnpm vitest run\n```\n\n## Troubleshooting\n\n### Error: `FIREBASE_PRIVATE_KEY` has literal `\\n`\n\n**Symptom:** Authentication fails or you see errors about invalid private key format.\n\n**Fix:** Environment variables often store newlines as literal `\\n` strings. Replace them at runtime:\n\n```ts\nprivateKey: process.env.FIREBASE_PRIVATE_KEY!.replace(/\\\\n/g, \"\\n\")\n```\n\nSee also the [AI Assistant Skill](#ai-assistant-skill) — agents use it to avoid this mistake during setup.\n\n### Error: Requests hang on local dev\n\n**Symptom:** Firebase Admin SDK requests hang or time out during local development.\n\n**Fix:** Use the Firestore Emulator and set `FIRESTORE_EMULATOR_HOST=localhost:8080` before running your app. See [Using the Firestore Emulator](#using-the-firestore-emulator) for setup instructions. The [AI Assistant Skill](#ai-assistant-skill) includes emulator commands for agents.\n\n### Error: `9 FAILED_PRECONDITION: The query requires an index`\n\n**Symptom:** Queries on verification tokens fail with a `FAILED_PRECONDITION` / \"The query requires an index\" error (often surfaced by Better Auth as `Failed to parse state`).\n\n**Fix:** Upgrade to `better-auth-firestore` v1.1 or later. Older versions issued a `where` + `orderBy` query that required a composite index; the adapter now sorts filtered queries in memory, so no index is needed. After upgrading, the error disappears and any previously created composite index can be removed.\n\nIf you cannot upgrade immediately, create the index from the URL in the error message, or generate it with:\n```ts\nimport { generateIndexSetupUrl } from \"better-auth-firestore\";\nconst url = generateIndexSetupUrl(process.env.FIREBASE_PROJECT_ID!);\nconsole.log(url); // Open this URL to create the index\n```\n\n### Error: `updateMany is not a function`, every sign-in returns 429, or `9 FAILED_PRECONDITION` on `rateLimit`\n\n**Symptom:** With `rateLimit.storage: \"database\"`, auth routes return 500 with `TypeError: updateMany is not a function`, every request is rate limited even when the counter never rises, or production fails with `9 FAILED_PRECONDITION: The query requires an index` on the `rateLimit` collection.\n\n**Fix:** Upgrade to v1.3 or later. The adapter implements Better Auth's `incrementOne` natively: the limiter's guards are evaluated in memory inside a Firestore transaction, so no composite index is needed anymore. (v1.2.x routed the limiter through a transactional `updateMany` fallback that pushed two inequality filters to Firestore and therefore required the `rateLimit` composite indexes.)\n\nNote that Firestore emulators do **not** enforce composite indexes, so index failures only reproduce against a real Firestore instance.\n\n### Error: `Adapter \"firestore\" must implement incrementOne for atomic guarded counter updates`\n\n**Symptom:** After upgrading to Better Auth 1.7, rate-limited routes, organization invitations / team seats, device authorization, or two-factor verification throw this error.\n\n**Fix:** Upgrade `better-auth-firestore` to v1.3 or later. Better Auth 1.7 made `incrementOne` a required adapter method and removed the fallback older adapter versions relied on. See [Upgrading to Better Auth 1.7](#upgrading-to-better-auth-17).\n\n### Existing users can't sign in after upgrading to Better Auth 1.7\n\n**Symptom:** Sign-up works, but accounts created before the upgrade fail to sign in (email/password reports invalid credentials; social sign-in reports the account as not linked, or links a duplicate account to the email-matched user).\n\n**Fix:** Run `npx better-auth-firestore backfill-account-issuers --apply` once to stamp the `issuer` field 1.7 uses to look accounts up (dry run first without `--apply`). The adapter logs the same command at startup while documents are missing it. See [Upgrading to Better Auth 1.7](#upgrading-to-better-auth-17).\n\n**If only your social users are affected and the backfill says there's nothing to do,** you ran it on adapter v1.3.0, which stamped `local:oauth:google` rather than the real `https://accounts.google.com` (same for `apple`, `facebook`, `line`). The field is present but wrong, so neither the startup warning nor the old command flags it. Upgrade the adapter and re-run the backfill — it repairs those documents. See [Upgrading to Better Auth 1.7](#upgrading-to-better-auth-17).\n\n## FAQ\n\n### Can I migrate from Auth.js / NextAuth without changing existing Firestore data?\n\nYes. `better-auth-firestore` is designed as a drop-in replacement for the Auth.js Firebase adapter with matching collection names and field shapes by default, so most projects do not need a Firestore data migration. See [Migration from Auth.js/NextAuth](#migration-from-authjsnextauth) for the adapter-specific details. The [AI Assistant Skill](#ai-assistant-skill) includes a migration guide for Cursor, Claude Code, and other agents.\n\n### What's the difference between `better-auth-firestore` and `better-auth-firebase-auth`?\n\n`better-auth-firestore` is a database adapter for storing Better Auth users, sessions, accounts, and verification tokens in Firestore through the Firebase Admin SDK. `better-auth-firebase-auth` is for Firebase Authentication provider integration such as Email/Password, Google sign-in, client/server token generation, and password reset flows. Use the Firestore adapter for data storage and the Firebase Auth plugin when you need Firebase Authentication features. Both packages have [AI Assistant Skills](#ai-assistant-skill) on [skills.sh](https://skills.sh).\n\n### Which runtimes are supported?\n\nThis package supports any server-side Node.js runtime: Next.js on Vercel (the default serverless runtime), Cloud Functions, Cloud Run, and standalone Node.js. The only restriction is the Edge Runtime — if you explicitly set `export const runtime = 'edge'` on a route, the Firebase Admin SDK will not load. Standard Vercel deployments are fully supported. See [Runtime compatibility](#runtime-compatibility) for the full matrix. Agents should follow the runtime table in the [AI Assistant Skill](#ai-assistant-skill).\n\n### Do I need a Firestore composite index for verification tokens?\n\nNo. Better Auth's verification-token lookup filters by `identifier` and orders by `createdAt`, which historically required a composite index. As of v1.1 the adapter applies the filter server-side and sorts the (small, per-identifier) result set in memory, so no composite index is required. See [Firestore Index (Optional)](#3-firestore-index-optional) for the optional tooling that remains available.\n\n### Does the adapter support Better Auth 1.7?\n\nYes, from v1.3. The same release also works with Better Auth 1.6 (both are tested in CI). If you have existing users, run the account issuer backfill before deploying 1.7 — see [Upgrading to Better Auth 1.7](#upgrading-to-better-auth-17).\n\n## AI Assistant Skill\n\nThe agent skill lives at [`skills/firestore-better-auth/SKILL.md`](./skills/firestore-better-auth/SKILL.md). It works with Cursor, Claude Code, Codex, Copilot, Windsurf, and [70+ other agents](https://skills.sh) via the [skills.sh](https://skills.sh) ecosystem.\n\nThe skill teaches AI assistants the correct setup, environment variable handling, and common gotchas. It also triggers when you ask about using Firestore with Better Auth, migrating from Auth.js/NextAuth, or troubleshooting `FIREBASE_PRIVATE_KEY` issues.\n\n```bash\nnpx skills add yultyyev/better-auth-firestore\n```\n\nFor LLM crawlers and AI search, see also [`llms.txt`](./llms.txt) at the repo root — a curated index of documentation, the skill file, and key setup facts.\n\nInstall works today from GitHub. The [skills.sh listing page](https://skills.sh/yultyyev/better-auth-firestore) and README badge appear once indexed — tracking [vercel-labs/skills#1601](https://github.com/vercel-labs/skills/issues/1601).\n\n---\n\n## Related Links\n\n- [Better Auth Documentation](https://www.better-auth.com/docs)\n- [Better Auth Adapter Guide](https://www.better-auth.com/docs/guides/create-a-db-adapter)\n- [llms.txt](./llms.txt) — Curated index for AI assistants and LLM crawlers\n- [better-auth-firebase-auth](https://github.com/yultyyev/better-auth-firebase-auth) — Firebase Auth plugin (Phone OTP, Google, Email/Password)\n- [Auth.js Firebase Adapter](https://authjs.dev/getting-started/adapters/firebase) (legacy, for reference)\n- [Auth.js joins Better Auth](https://www.better-auth.com/blog/authjs-joins-better-auth) - Announcement\n\n## Build\n\n```bash\npnpm build\n```\n\n## Reporting issues\n\nFound a bug? First make sure you're on the latest version, then [open an issue](https://github.com/yultyyev/better-auth-firestore/issues) with the package version and a minimal repro. Please redact secrets and PII (Firebase project IDs, `FIREBASE_PRIVATE_KEY`, tokens, and `create_composite` index URLs).\n\n## Contributing\n\nContributions are welcome. See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and code style.\n\n## License\n\nMIT.\n","readmeFilename":"README.md"}