{"_id":"@dial8/auther-adapter-firebase","_rev":"8-aaa7e23f886829a93989c7c2afcfd30f","name":"@dial8/auther-adapter-firebase","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.4":{"name":"@dial8/auther-adapter-firebase","version":"0.1.4","keywords":["react","firebase","auth","authentication","adapter","onboarding"],"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","_id":"@dial8/auther-adapter-firebase@0.1.4","maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"homepage":"https://github.com/yourusername/dial8-auther#readme","bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"dist":{"shasum":"b117b2acc63428f1c8f7750d5e430deec7055a2c","tarball":"https://registry.npmjs.org/@dial8/auther-adapter-firebase/-/auther-adapter-firebase-0.1.4.tgz","fileCount":4,"integrity":"sha512-cOsuXQeEomKmN/oK/R4/gwpTgyzGd6ja6I9Ur5VqLYPjiwGrM6TE/QbSz8ujpQXKh6tVMUP9YG1f48W6DLzFyw==","signatures":[{"sig":"MEUCIE3+KXate0VCcAQwxe48NPXwTxAEhZ9dAPaR/ECMca4XAiEAsJuNu6A3+JFg7X6TsXrtsBSzGYwLVAW6cxr/MYWVhdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11958},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0492e8db1c426866e02c0110a6a6361f2690da69","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"dial8","email":"dial8tech@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/dial8-auther.git","type":"git","directory":"packages/adapter-firebase"},"_npmVersion":"10.2.4","description":"Firebase authentication adapter for Dial8 Onboard library","directories":{},"_nodeVersion":"20.9.0","dependencies":{"@dial8/auther":"file:../core"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","firebase":"^10.0.0","typescript":"^5.0.0","null-loader":"^4.0.1"},"peerDependencies":{"firebase":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auther-adapter-firebase_0.1.4_1754818842251_0.6116834357919942","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@dial8/auther-adapter-firebase","version":"0.1.5","keywords":["react","firebase","auth","authentication","adapter","onboarding"],"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","_id":"@dial8/auther-adapter-firebase@0.1.5","maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"homepage":"https://github.com/yourusername/dial8-auther#readme","bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"dist":{"shasum":"b6af9bd592a3454b9a06e4be474b1b4e453cbc43","tarball":"https://registry.npmjs.org/@dial8/auther-adapter-firebase/-/auther-adapter-firebase-0.1.5.tgz","fileCount":4,"integrity":"sha512-zUSH3C/qcYoDFkz4YlwmvwmeEKtILBovVCpSLXCHlIVdkPK8Y/XTUKOL3Lkr6FM/Xhoc9WvRE5DYHTzuq8WDkg==","signatures":[{"sig":"MEUCIC0WyXWF3/t/jGlfE25hNa8r1ST0dJOm5o9+YMN4VYGrAiEArjOeNX2F+ppoqpYbyS6hXxfE1PGwalyt/5nqNA4rJuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11892},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3d450be5646ee66724cabfeb03aa4d5404212980","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"dial8","email":"dial8tech@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/dial8-auther.git","type":"git","directory":"packages/adapter-firebase"},"_npmVersion":"10.2.4","description":"Firebase authentication adapter for Dial8 Onboard library","directories":{},"_nodeVersion":"20.9.0","dependencies":{"@dial8/auther":"file:../core"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","firebase":"^10.0.0","typescript":"^5.0.0","null-loader":"^4.0.1"},"peerDependencies":{"firebase":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auther-adapter-firebase_0.1.5_1754821321886_0.20729167070731624","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@dial8/auther-adapter-firebase","version":"0.1.6","keywords":["react","firebase","auth","authentication","adapter","onboarding"],"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","_id":"@dial8/auther-adapter-firebase@0.1.6","maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"homepage":"https://github.com/yourusername/dial8-auther#readme","bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"dist":{"shasum":"eb2eaa6581749e22de609d8ce191ecdead6abdb1","tarball":"https://registry.npmjs.org/@dial8/auther-adapter-firebase/-/auther-adapter-firebase-0.1.6.tgz","fileCount":4,"integrity":"sha512-jIiCypMLNTy/G3PI6N4UBG8jpbev8nik9KO84fvakQAocLr2nadzfKgIfkNEiDkZqg1iFwIkWeEhM3EcL/LU5g==","signatures":[{"sig":"MEUCIQCziZ/Sa04kDpikfCSe7/dzuIV9u89cauTcDl7zkyLh5gIgHEZTHZtliYuQZgkkfpAIq6vGfRyI5gal23fpJ6ikJ6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11826},"main":"dist/index.js","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6e33559e89814107728929c4de58682015f19561","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"dial8","email":"dial8tech@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/dial8-auther.git","type":"git","directory":"packages/adapter-firebase"},"_npmVersion":"10.2.4","description":"Firebase authentication adapter for Dial8 Onboard library","directories":{},"_nodeVersion":"20.9.0","dependencies":{"@dial8/auther":"file:../core"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","firebase":"^10.0.0","typescript":"^5.0.0","null-loader":"^4.0.1"},"peerDependencies":{"firebase":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auther-adapter-firebase_0.1.6_1754822004199_0.9652807561099876","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@dial8/auther-adapter-firebase","version":"0.1.7","keywords":["react","firebase","auth","authentication","adapter","onboarding"],"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","_id":"@dial8/auther-adapter-firebase@0.1.7","maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"homepage":"https://github.com/yourusername/dial8-auther#readme","bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"dist":{"shasum":"dac091dd9b8f14638c8d51ae96ca791aec8e909e","tarball":"https://registry.npmjs.org/@dial8/auther-adapter-firebase/-/auther-adapter-firebase-0.1.7.tgz","fileCount":4,"integrity":"sha512-0V8E/ybS81seS4z/mCESu88EyiC0z+gOnX41v9kkmWxN8+4fIChHsZw743eGtV8OZCMWxHFZQYan4rZRWCoRLA==","signatures":[{"sig":"MEUCIQCMQxO8ma5PpGoP4z51vtbfiotLnFVF48W5AwNM4jHFygIgU7W0zfwsOwDZBY+ikal0uZa9+qYdI/FpLm0da/TlH4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11826},"main":"dist/index.js","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6e33559e89814107728929c4de58682015f19561","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"dial8","email":"dial8tech@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/dial8-auther.git","type":"git","directory":"packages/adapter-firebase"},"_npmVersion":"10.2.4","description":"Firebase authentication adapter for Dial8 Onboard library","directories":{},"_nodeVersion":"20.9.0","dependencies":{"@dial8/auther":"file:../core"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","firebase":"^10.0.0","typescript":"^5.0.0","null-loader":"^4.0.1"},"peerDependencies":{"firebase":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auther-adapter-firebase_0.1.7_1754822048480_0.5578003446608553","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dial8/auther-adapter-firebase","version":"0.2.0","keywords":["react","firebase","auth","authentication","adapter","onboarding"],"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","_id":"@dial8/auther-adapter-firebase@0.2.0","maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"homepage":"https://github.com/yourusername/dial8-auther#readme","bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"dist":{"shasum":"9f303e9af355a94f9a04141b3a1ce9e718db528d","tarball":"https://registry.npmjs.org/@dial8/auther-adapter-firebase/-/auther-adapter-firebase-0.2.0.tgz","fileCount":4,"integrity":"sha512-EsIjn+wLw/KFSXhl2v3AB0pt55x3ZgZ13X0jhzyp5KCTD2Dg7fu0dh68DZoSnZXzqwXsEseZR4gWEN0Sb6BNDA==","signatures":[{"sig":"MEYCIQCletk8kjXKB3kNzN/0MGcZ93ijcC4WXrR0v7rYzFJZ6QIhAKrLx2RDqJaBERF1xDON/vKtLZVF1qG2eCRcBBmdBhFa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12950},"main":"dist/index.js","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9de5d9e410f1e102894a2e621d09bece8ff97ba8","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"dial8","email":"dial8tech@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/dial8-auther.git","type":"git","directory":"packages/adapter-firebase"},"_npmVersion":"10.2.4","description":"Firebase authentication adapter for Dial8 Onboard library","directories":{},"_nodeVersion":"20.9.0","dependencies":{"@dial8/auther":"file:../core"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","firebase":"^10.0.0","typescript":"^5.0.0","null-loader":"^4.0.1"},"peerDependencies":{"firebase":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auther-adapter-firebase_0.2.0_1754825240258_0.2470086378969889","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@dial8/auther-adapter-firebase","version":"0.3.0","keywords":["react","firebase","auth","authentication","adapter","onboarding"],"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","_id":"@dial8/auther-adapter-firebase@0.3.0","maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"homepage":"https://github.com/yourusername/dial8-auther#readme","bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"dist":{"shasum":"af9752b2a48400755caa4a1a995517bb5a3adc80","tarball":"https://registry.npmjs.org/@dial8/auther-adapter-firebase/-/auther-adapter-firebase-0.3.0.tgz","fileCount":4,"integrity":"sha512-J64nugZAp1ZnviIqhjyf+1MNcsb9QpYTIBlFyiz0CRr244QOb23+J1wXS9djcITbGOmYGErphL5cDihhVf3v9g==","signatures":[{"sig":"MEQCIFY38qo3gDHyE1gzZnyy1lyRMQqRFTxcKkZxAiGrEbBJAiBCjIaYyNLyED3gswXc/dg+gb+Lp4JgPFJ4DEfsRBcGRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12950},"main":"dist/index.js","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bd496833753d0170e3d9c08608c78116ecd09984","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"dial8","email":"dial8tech@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/dial8-auther.git","type":"git","directory":"packages/adapter-firebase"},"_npmVersion":"10.2.4","description":"Firebase authentication adapter for Dial8 Onboard library","directories":{},"_nodeVersion":"20.9.0","dependencies":{"@dial8/auther":"file:../core"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","firebase":"^10.0.0","typescript":"^5.0.0","null-loader":"^4.0.1"},"peerDependencies":{"firebase":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auther-adapter-firebase_0.3.0_1754826445979_0.05749982137177989","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@dial8/auther-adapter-firebase","version":"0.3.1","keywords":["react","firebase","auth","authentication","adapter","onboarding","email","verification","routing"],"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","_id":"@dial8/auther-adapter-firebase@0.3.1","maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"homepage":"https://github.com/yourusername/dial8-auther#readme","bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"dist":{"shasum":"aa4dc13e5d6c854f7176d97554ba1a5dda967749","tarball":"https://registry.npmjs.org/@dial8/auther-adapter-firebase/-/auther-adapter-firebase-0.3.1.tgz","fileCount":4,"integrity":"sha512-gRJNa1fnTj86J5RzoVvX7VSSvtYWn9M/k4QJUTIcYPnySzxQzRisUEURBDrZPp6h+8gKQe4s0xA4QmVRWTap4A==","signatures":[{"sig":"MEUCIChK8rpeh/OXPbEc7pJcZp2j3VGclKZzr7LFOePWxHJkAiEAw9DqhQ/ER/qVl8HNhww52PxkETkDXlP0YI1Bh+fitAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13185},"main":"dist/index.js","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bd496833753d0170e3d9c08608c78116ecd09984","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"dial8","email":"dial8tech@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/dial8-auther.git","type":"git","directory":"packages/adapter-firebase"},"_npmVersion":"10.2.4","description":"Firebase authentication adapter with automatic email verification for Dial8 Onboard library","directories":{},"_nodeVersion":"20.9.0","dependencies":{"@dial8/auther":"file:../core"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","firebase":"^10.0.0","typescript":"^5.0.0","null-loader":"^4.0.1"},"peerDependencies":{"firebase":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auther-adapter-firebase_0.3.1_1754826935857_0.6366952529644321","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@dial8/auther-adapter-firebase","version":"0.3.2","description":"Firebase authentication adapter with automatic email verification for Dial8 Onboard library","keywords":["react","firebase","auth","authentication","adapter","onboarding","email","verification","routing"],"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/yourusername/dial8-auther.git","directory":"packages/adapter-firebase"},"homepage":"https://github.com/yourusername/dial8-auther#readme","bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"main":"dist/index.js","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"peerDependencies":{"firebase":"^10.0.0","@dial8/auther":">=0.3.2"},"dependencies":{},"devDependencies":{"firebase":"^10.0.0","null-loader":"^4.0.1","tsup":"^7.0.0","typescript":"^5.0.0"},"_id":"@dial8/auther-adapter-firebase@0.3.2","gitHead":"767992635e0a9004a6d30a811d083f685c225b40","_nodeVersion":"20.9.0","_npmVersion":"10.2.4","dist":{"integrity":"sha512-RcLl2G2OKpAmhufvfvFnonK2IuHr5IyCq9Oo3c5p9iXM37c8kdPEpClTtb45/7B/N6r/SohgbtQ2mTYxnWBN1g==","shasum":"2464b1f59213577567351bb65b742c6d2372449e","tarball":"https://registry.npmjs.org/@dial8/auther-adapter-firebase/-/auther-adapter-firebase-0.3.2.tgz","fileCount":4,"unpackedSize":13178,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICxz/MubfEQHtk9VvhFPPzAgev6X1azG8IoagsJkMLieAiEAxsZY8Qs3mevd6P0cKJXqmIcC/Zbh53dVQya5h3KrbSU="}]},"_npmUser":{"name":"dial8","email":"dial8tech@gmail.com"},"directories":{},"maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/auther-adapter-firebase_0.3.2_1754831214239_0.4323426887022983"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-10T09:40:42.058Z","modified":"2025-08-10T13:06:54.665Z","0.1.4":"2025-08-10T09:40:42.455Z","0.1.5":"2025-08-10T10:22:02.110Z","0.1.6":"2025-08-10T10:33:24.389Z","0.1.7":"2025-08-10T10:34:08.659Z","0.2.0":"2025-08-10T11:27:20.458Z","0.3.0":"2025-08-10T11:47:26.169Z","0.3.1":"2025-08-10T11:55:36.214Z","0.3.2":"2025-08-10T13:06:54.467Z"},"bugs":{"url":"https://github.com/yourusername/dial8-auther/issues"},"author":{"name":"Your Name","email":"your.email@example.com"},"license":"MIT","homepage":"https://github.com/yourusername/dial8-auther#readme","keywords":["react","firebase","auth","authentication","adapter","onboarding","email","verification","routing"],"repository":{"type":"git","url":"git+https://github.com/yourusername/dial8-auther.git","directory":"packages/adapter-firebase"},"description":"Firebase authentication adapter with automatic email verification for Dial8 Onboard library","maintainers":[{"name":"dial8","email":"dial8tech@gmail.com"}],"readme":"# @dial8/auther-adapter-firebase\n\nFirebase authentication adapter for [@dial8/auther](https://www.npmjs.com/package/@dial8/auther).\n\n## Features\n\n- 🔥 **Firebase Integration** - Official Firebase Auth SDK\n- ✉️ **Email/Password Auth** - Built-in email authentication\n- 📧 **Email Verification** - Automatic verification email sending\n- 🔐 **Secure** - Firebase's enterprise-grade security\n- ⚡ **Real-time** - Live auth state updates\n- 🎯 **TypeScript** - Full type safety\n- 🚀 **Easy Setup** - Simple configuration\n\n## Installation\n\n```bash\nnpm install @dial8/auther @dial8/auther-adapter-firebase firebase\n```\n\n## Quick Start\n\n```tsx\nimport { OnboardingFlow } from \"@dial8/auther\";\nimport { MinimalTemplate } from \"@dial8/auther-template-minimal\";\nimport { firebaseAdapter } from \"@dial8/auther-adapter-firebase\";\n\nconst firebaseConfig = {\n  apiKey: \"your-api-key\",\n  authDomain: \"your-project.firebaseapp.com\", \n  projectId: \"your-project-id\",\n  storageBucket: \"your-project.appspot.com\",\n  messagingSenderId: \"123456789\",\n  appId: \"your-app-id\"\n};\n\nfunction App() {\n  return (\n    <OnboardingFlow\n      template={MinimalTemplate}\n      adapter={firebaseAdapter(firebaseConfig)}\n      steps={[\"signInOrUp\", \"verifyEmail\", \"profile\", \"success\"]}\n      redirectUrl=\"/dashboard\"        // 🎯 Auto-redirect after success\n      onComplete={(user) => {\n        console.log('User onboarded:', user.email);\n      }}\n    />\n  );\n}\n```\n\n## Firebase Setup\n\n### 1. Create Firebase Project\n\n1. Go to [Firebase Console](https://console.firebase.google.com/)\n2. Create a new project or select existing one\n3. Add a web app to your project\n\n### 2. Enable Authentication\n\n1. Navigate to **Authentication** in the Firebase console\n2. Go to **Sign-in method** tab\n3. Enable **Email/Password** provider\n4. Optionally enable **Email link (passwordless sign-in)**\n\n### 3. Get Configuration\n\n1. Go to **Project Settings** > **General**\n2. Scroll to **Your apps** section\n3. Copy the Firebase configuration object\n\n```javascript\nconst firebaseConfig = {\n  apiKey: \"AIza...\",\n  authDomain: \"your-project.firebaseapp.com\",\n  projectId: \"your-project\", \n  storageBucket: \"your-project.appspot.com\",\n  messagingSenderId: \"123456789\",\n  appId: \"1:123:web:abc123\"\n};\n```\n\n## Configuration Options\n\n```tsx\nimport { firebaseAdapter } from \"@dial8/auther-adapter-firebase\";\n\nconst adapter = firebaseAdapter({\n  // Required Firebase config\n  apiKey: \"your-api-key\",\n  authDomain: \"your-project.firebaseapp.com\",\n  projectId: \"your-project-id\",\n  \n  // Optional Firebase config  \n  storageBucket: \"your-project.appspot.com\",\n  messagingSenderId: \"123456789\", \n  appId: \"your-app-id\",\n  measurementId: \"G-ABC123DEF4\"\n});\n```\n\n## Supported Auth Methods\n\n### Email/Password Authentication\n- User registration with email and password\n- User sign-in with email and password\n- Automatic email verification after signup\n- Automatic user session management\n- Password reset flows (coming soon)\n\n### Email Verification\n- **Automatic sending**: Verification emails are automatically sent after user signup\n- **Firebase integration**: Uses Firebase's built-in `sendEmailVerification()` method\n- **Template customization**: Customize email templates in Firebase Console\n- **Seamless flow**: No additional configuration required\n\n### Real-time Auth State\n- Automatic auth state synchronization\n- Immediate updates when user signs in/out\n- Persistent sessions across page reloads\n\n## User Object\n\nThe adapter returns a standardized user object:\n\n```tsx\ninterface User {\n  uid: string;                    // Firebase user ID\n  email: string | null;           // User email\n  displayName: string | null;     // Display name\n  photoURL: string | null;        // Profile photo URL\n}\n```\n\n## Usage with Auth Context\n\n```tsx\nimport { AuthProvider, useAuth } from \"@dial8/auther\";\nimport { firebaseAdapter } from \"@dial8/auther-adapter-firebase\";\n\nfunction App() {\n  return (\n    <AuthProvider adapter={firebaseAdapter(firebaseConfig)}>\n      <AppContent />\n    </AuthProvider>\n  );\n}\n\nfunction AppContent() {\n  const { user, signOut, isLoading } = useAuth();\n  \n  if (isLoading) return <div>Loading...</div>;\n  \n  return (\n    <div>\n      {user ? (\n        <div>\n          Welcome {user.email}!\n          <button onClick={signOut}>Sign Out</button>\n        </div>\n      ) : (\n        <OnboardingFlow\n          adapter={firebaseAdapter(firebaseConfig)}\n          // ... other props\n        />\n      )}\n    </div>\n  );\n}\n```\n\n## Error Handling\n\nThe adapter handles common Firebase authentication errors:\n\n- `auth/user-not-found` - No user found with this email\n- `auth/wrong-password` - Incorrect password\n- `auth/email-already-in-use` - Email already registered\n- `auth/weak-password` - Password too weak\n- `auth/invalid-email` - Invalid email format\n\n## TypeScript\n\nFull TypeScript support with proper types:\n\n```tsx\nimport type { FirebaseAdapterConfig } from \"@dial8/auther-adapter-firebase\";\n\nconst config: FirebaseAdapterConfig = {\n  apiKey: \"your-api-key\",\n  // ... other config options\n};\n```\n\n## Security Rules\n\nMake sure to set up proper Firestore security rules if you're using Firestore:\n\n```javascript\n// Firestore Security Rules\nrules_version = '2';\nservice cloud.firestore {\n  match /databases/{database}/documents {\n    // Users can read/write their own data\n    match /users/{userId} {\n      allow read, write: if request.auth != null && request.auth.uid == userId;\n    }\n  }\n}\n```\n\n## Environment Variables\n\nFor security, store your Firebase config in environment variables:\n\n```bash\n# .env.local\nNEXT_PUBLIC_FIREBASE_API_KEY=your-api-key\nNEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com\nNEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id\n```\n\n```tsx\nconst firebaseConfig = {\n  apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,\n  authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,\n  projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,\n  // ... other config\n};\n```\n\n## Dependencies\n\n- Firebase SDK 10+\n- @dial8/auther (peer dependency)\n\n## Related Packages\n\n- [@dial8/auther](https://www.npmjs.com/package/@dial8/auther) - Core onboarding library\n- [@dial8/auther-template-minimal](https://www.npmjs.com/package/@dial8/auther-template-minimal) - Minimal template\n- [Firebase](https://www.npmjs.com/package/firebase) - Firebase SDK\n\n## Creating Custom Adapters\n\nWant to integrate with a different auth provider? Create a custom adapter:\n\n```tsx\nimport { AuthAdapter, User } from '@dial8/auther';\n\nexport function myAuthAdapter(config): AuthAdapter {\n  return {\n    async getSession(): Promise<User | null> {\n      // Return current authenticated user or null\n    },\n    \n    async signInEmailPassword(email: string, password: string): Promise<User> {\n      // Implement sign in logic\n    },\n    \n    async signUpEmailPassword(email: string, password: string): Promise<User> {\n      // Implement sign up logic  \n    },\n    \n    async sendVerificationEmail(email: string): Promise<void> {\n      // Send verification email to user\n    },\n    \n    async signOut(): Promise<void> {\n      // Implement sign out logic\n    },\n    \n    onAuthStateChanged(callback: (user: User | null) => void): () => void {\n      // Set up real-time auth state listener\n      // Return unsubscribe function\n    }\n  };\n}\n```\n\n## License\n\nMIT\n\n## Support\n\n- [GitHub Issues](https://github.com/yourusername/dial8-onboard/issues)\n- [Firebase Documentation](https://firebase.google.com/docs/auth)\n- [Firebase Console](https://console.firebase.google.com/)","readmeFilename":"README.md"}