{"_id":"@api-buddy/firebase","_rev":"11-f826b15489e0e1552e7705733b914947","name":"@api-buddy/firebase","dist-tags":{"latest":"2.0.0"},"versions":{"0.1.0":{"name":"@api-buddy/firebase","version":"0.1.0","keywords":["firebase","firestore","forms","react","nextjs","api-buddy"],"_id":"@api-buddy/firebase@0.1.0","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main/packages/firebase#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"dist":{"shasum":"7dd9497b9a5a104af1501e894291b613e5b98527","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.1.0.tgz","fileCount":37,"integrity":"sha512-gKnaKf6deblLHjYk0CLeL/0P4gBbMUS5UDODNuiYVYZIxn2+bmn0NP7didlxTLLhzpYjtDHpu1Ma+LHWvubQSQ==","signatures":[{"sig":"MEUCIQChAGHeD9+tz8s+UrD0d/JZ1uvCmKDqE4pbLr5OvtsqiAIgNF5jnFn/PpB8rjG4aDCZ/UTowvElsZvvKlKDl+vztjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206472},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"0ddcc6073ce39e05f4698dd5b3e9c4eda995820c","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","build":"tsup","prepare":"pnpm build","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git","directory":"packages/firebase"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"yup":"^1.4.0","clsx":"^2.1.0","formik":"^2.4.5","firebase":"^10.14.1","lucide-react":"^0.315.0","tailwind-merge":"^2.2.1","tailwindcss-animate":"^1.0.7","class-variance-authority":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^8.56.0","prettier":"^3.1.1","tsc-alias":"^1.8.16","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","eslint-plugin-react":"^7.33.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.19.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"yup":"^1.3.3","react":"^18.2.0","formik":"^2.4.5","firebase":"^10.8.0","react-dom":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.1.0_1749387091923_0.959058889147067","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@api-buddy/firebase","version":"0.1.1","keywords":["firebase","firestore","forms","react","nextjs","api-buddy"],"_id":"@api-buddy/firebase@0.1.1","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main/packages/firebase#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase":"cli.cjs"},"dist":{"shasum":"f3ded22b2a461effaf856493900371776ebacc48","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.1.1.tgz","fileCount":26,"integrity":"sha512-gypB5XTJRmMW4xETWxkXAbUeFSF8BDoUIIAqy25J7zEIvLrbkPc3cr/EshQdVi2Kv4SQ8x9GRi3qpWVaSY8Bzg==","signatures":[{"sig":"MEQCIDvNcP0RqUS0dwZZMBwjBQE4pSsroLwpsXQwuSPDpgrPAiBl8HZSHjMzV18UoNPj2w26rqJnEkGq36jr4XKFeogL3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220567},"main":"./dist/index.cjs","type":"module","_from":"file:api-buddy-firebase-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch --sourcemap","lint":"eslint . --ext .ts,.tsx","build":"tsup --format esm,cjs --dts && node ./scripts/copy-files.cjs","clean":"rimraf dist","prebuild":"pnpm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/ef7c4bcb92139643a9aa93d7b98894ab/api-buddy-firebase-0.1.1.tgz","_integrity":"sha512-gypB5XTJRmMW4xETWxkXAbUeFSF8BDoUIIAqy25J7zEIvLrbkPc3cr/EshQdVi2Kv4SQ8x9GRi3qpWVaSY8Bzg==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git","directory":"packages/firebase"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"yup":"^1.4.0","clsx":"^2.1.0","formik":"^2.4.5","firebase":"^10.14.1","lucide-react":"^0.315.0","tailwind-merge":"^2.2.1","tailwindcss-animate":"^1.0.7","class-variance-authority":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^8.56.0","rimraf":"^6.0.1","prettier":"^3.1.1","tsc-alias":"^1.8.16","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","eslint-plugin-react":"^7.33.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.19.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"yup":"^1.3.3","react":"^18.2.0","formik":"^2.4.5","firebase":"^10.8.0","react-dom":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.1.1_1749392276907_0.7716443650646561","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@api-buddy/firebase","version":"0.1.2","keywords":["firebase","firestore","forms","react","nextjs","api-buddy"],"_id":"@api-buddy/firebase@0.1.2","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main/packages/firebase#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase":"cli.cjs"},"dist":{"shasum":"cbb6d6caff7b85326ddc9f67d191d5541716cc9f","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.1.2.tgz","fileCount":26,"integrity":"sha512-Q9UYsXYTj695g9PawY6xaolyniOO++RId9JayEAQOzYw4zFhEveOT9dfqXFfc2ISFuPkuI2AjNz8xjO8NvIg9w==","signatures":[{"sig":"MEUCIQDqS0bngiNYRyDTPBuWISIJmoFXm8mCkWcNUrNs6fynogIgIjLLH+oZV4grNlAcEovOcURmlmgEObaoLAk4ukh5Qws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220567},"main":"./dist/index.cjs","type":"module","_from":"file:api-buddy-firebase-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch --sourcemap","lint":"eslint . --ext .ts,.tsx","build":"tsup --format esm,cjs --dts && node ./scripts/copy-files.cjs","clean":"rimraf dist","prebuild":"pnpm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/879105959795c47195c3daaea40f4744/api-buddy-firebase-0.1.2.tgz","_integrity":"sha512-Q9UYsXYTj695g9PawY6xaolyniOO++RId9JayEAQOzYw4zFhEveOT9dfqXFfc2ISFuPkuI2AjNz8xjO8NvIg9w==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git","directory":"packages/firebase"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"yup":"^1.4.0","clsx":"^2.1.0","formik":"^2.4.5","firebase":"^10.14.1","lucide-react":"^0.315.0","tailwind-merge":"^2.2.1","tailwindcss-animate":"^1.0.7","class-variance-authority":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^8.56.0","rimraf":"^6.0.1","prettier":"^3.1.1","tsc-alias":"^1.8.16","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","eslint-plugin-react":"^7.33.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.19.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"yup":"^1.3.3","react":"^18.2.0","formik":"^2.4.5","firebase":"^10.8.0","react-dom":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.1.2_1749394268371_0.12773817091696738","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@api-buddy/firebase","version":"0.1.3","keywords":["firebase","firestore","forms","react","nextjs","api-buddy"],"_id":"@api-buddy/firebase@0.1.3","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main/packages/firebase#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase":"cli.cjs"},"dist":{"shasum":"c8eb48b3da55801d3ca499fca4448b5093339af6","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.1.3.tgz","fileCount":26,"integrity":"sha512-XpEIDZZM0a0EaLZVHSMQqxS7ghpvz6x8afsnl1p2ZnZKfN5QnbnefYfuzCDjDP99R4q7RxOXF5LOIAy7BSRwgA==","signatures":[{"sig":"MEUCIBdjJjfA0cfap3dFuupShWPoqm9JxxMMQe4UfQSMmQKYAiEApD6CyCILWDaZMXJroF9v6LCVdhhFfkB0KZ7rRhmdtCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220567},"main":"./dist/index.cjs","type":"module","_from":"file:api-buddy-firebase-0.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch --sourcemap","lint":"eslint . --ext .ts,.tsx","build":"tsup --format esm,cjs --dts && node ./scripts/copy-files.cjs","clean":"rimraf dist","prebuild":"pnpm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/b6066348ed397d1902b07aec28cb147e/api-buddy-firebase-0.1.3.tgz","_integrity":"sha512-XpEIDZZM0a0EaLZVHSMQqxS7ghpvz6x8afsnl1p2ZnZKfN5QnbnefYfuzCDjDP99R4q7RxOXF5LOIAy7BSRwgA==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git","directory":"packages/firebase"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"yup":"^1.4.0","clsx":"^2.1.0","formik":"^2.4.5","firebase":"^10.14.1","lucide-react":"^0.315.0","tailwind-merge":"^2.2.1","tailwindcss-animate":"^1.0.7","class-variance-authority":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^8.56.0","rimraf":"^6.0.1","prettier":"^3.1.1","tsc-alias":"^1.8.16","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","eslint-plugin-react":"^7.33.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.19.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"yup":"^1.3.3","react":"^18.2.0","formik":"^2.4.5","firebase":"^10.8.0","react-dom":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.1.3_1749395294244_0.6331480387684605","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@api-buddy/firebase","version":"0.1.4","keywords":["firebase","firestore","forms","react","nextjs","api-buddy"],"_id":"@api-buddy/firebase@0.1.4","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main/packages/firebase#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase":"cli.cjs"},"dist":{"shasum":"6516803a93858e44b307007f23ed736f33df3874","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.1.4.tgz","fileCount":27,"integrity":"sha512-lp+mFVV9bs8NBwlxbqi+K11GXjXPi62gMpCwbayI2tq0fC3sxBN76s31hp9LhfMmxLMV3QIb1+JjupjECgzfSw==","signatures":[{"sig":"MEUCIHnILKGFVOC5bCxkampPktIxCD7jBEDkx/my1N2/DIZ3AiEAmVI3+95S73EE/qr6MLdRmJHbVF5ga9/vqa/qNP89z9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231415},"main":"./dist/index.cjs","type":"module","_from":"file:api-buddy-firebase-0.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch --sourcemap","lint":"eslint . --ext .ts,.tsx","build":"tsup --format esm,cjs --dts && node ./scripts/copy-files.cjs","clean":"rimraf dist","prebuild":"pnpm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/22915c1541030e562b715d8f419b7bcc/api-buddy-firebase-0.1.4.tgz","_integrity":"sha512-lp+mFVV9bs8NBwlxbqi+K11GXjXPi62gMpCwbayI2tq0fC3sxBN76s31hp9LhfMmxLMV3QIb1+JjupjECgzfSw==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git","directory":"packages/firebase"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"yup":"^1.4.0","clsx":"^2.1.0","formik":"^2.4.5","firebase":"^10.14.1","inquirer":"^9.3.7","lucide-react":"^0.315.0","tailwind-merge":"^2.2.1","tailwindcss-animate":"^1.0.7","class-variance-authority":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^8.56.0","rimraf":"^6.0.1","prettier":"^3.1.1","tsc-alias":"^1.8.16","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/inquirer":"^9.0.0","@types/react-dom":"^18.2.0","eslint-plugin-react":"^7.33.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.19.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"yup":"^1.3.3","react":"^18.2.0","formik":"^2.4.5","firebase":"^10.8.0","react-dom":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.1.4_1749396153123_0.8500596264099913","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@api-buddy/firebase","version":"0.1.6","keywords":["firebase","firestore","forms","react","nextjs","api-buddy"],"_id":"@api-buddy/firebase@0.1.6","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main/packages/firebase#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase":"cli.cjs"},"dist":{"shasum":"e430ef199dc9c510ed12717ec33101dca8e26f7f","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.1.6.tgz","fileCount":27,"integrity":"sha512-s6wbcWwwuKtcNofelzx8FhVvh5ztMkBE8O6vf6rKdKb/4pr2A9pb03uIlue0OcEJhAXmbHkwJoIZuhxRniA+QQ==","signatures":[{"sig":"MEYCIQDdU0rWBmllRdQe2OP3HWturSFdixKPGCYkLznjSfxCUQIhALJmw3K9/RUr4z0ObnMaYHVwwcgGhXUwIC0rbuJ9tz9n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231415},"main":"./dist/index.cjs","type":"module","_from":"file:api-buddy-firebase-0.1.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch --sourcemap","lint":"eslint . --ext .ts,.tsx","build":"tsup --format esm,cjs --dts && node ./scripts/copy-files.cjs","clean":"rimraf dist","prebuild":"pnpm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/0cab42864b86001c6a49c75d11ae1e46/api-buddy-firebase-0.1.6.tgz","_integrity":"sha512-s6wbcWwwuKtcNofelzx8FhVvh5ztMkBE8O6vf6rKdKb/4pr2A9pb03uIlue0OcEJhAXmbHkwJoIZuhxRniA+QQ==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git","directory":"packages/firebase"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"yup":"^1.4.0","clsx":"^2.1.0","formik":"^2.4.5","firebase":"^10.14.1","inquirer":"^9.3.7","lucide-react":"^0.315.0","tailwind-merge":"^2.2.1","tailwindcss-animate":"^1.0.7","class-variance-authority":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^8.56.0","rimraf":"^6.0.1","prettier":"^3.1.1","tsc-alias":"^1.8.16","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/inquirer":"^9.0.0","@types/react-dom":"^18.2.0","eslint-plugin-react":"^7.33.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.19.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"yup":"^1.3.3","react":"^18.2.0","formik":"^2.4.5","firebase":"^10.8.0","react-dom":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.1.6_1749396260520_0.5215008534512462","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@api-buddy/firebase","version":"0.1.7","keywords":["firebase","firestore","forms","react","nextjs","api-buddy"],"_id":"@api-buddy/firebase@0.1.7","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main/packages/firebase#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase":"cli.cjs"},"dist":{"shasum":"b294e166ec0672886f52d0c05b0d2fe45f1eb54d","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.1.7.tgz","fileCount":27,"integrity":"sha512-hJ9HWG+Z9s3xJeMKF/Do6MwU9KvkkgyVhB4oWBHZGCbG321dEhBXuDu6Ea9Nfcm1zIsvnxK+blqBHO2ICdmXrQ==","signatures":[{"sig":"MEQCICOfrUMvT6wDyjgHWGnlvJpko3tRVkRQFp+Lk9XYeaqQAiAVtovMGgX2cz4phws4c2+pK7ixGGXbvCM/bMvar35E+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232382},"main":"./dist/index.cjs","type":"module","_from":"file:api-buddy-firebase-0.1.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch --sourcemap","lint":"eslint . --ext .ts,.tsx","build":"tsup --format esm,cjs --dts && node ./scripts/copy-files.cjs","clean":"rimraf dist","prebuild":"pnpm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/f839c9587cc998289598495c9250fe4b/api-buddy-firebase-0.1.7.tgz","_integrity":"sha512-hJ9HWG+Z9s3xJeMKF/Do6MwU9KvkkgyVhB4oWBHZGCbG321dEhBXuDu6Ea9Nfcm1zIsvnxK+blqBHO2ICdmXrQ==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git","directory":"packages/firebase"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"yup":"^1.4.0","clsx":"^2.1.0","formik":"^2.4.5","firebase":"^10.14.1","inquirer":"^9.3.7","lucide-react":"^0.315.0","tailwind-merge":"^2.2.1","tailwindcss-animate":"^1.0.7","class-variance-authority":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^8.56.0","rimraf":"^6.0.1","prettier":"^3.1.1","tsc-alias":"^1.8.16","typescript":"^5.3.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/inquirer":"^9.0.0","@types/react-dom":"^18.2.0","eslint-plugin-react":"^7.33.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.19.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"yup":"^1.3.3","react":"^18.2.0","formik":"^2.4.5","firebase":"^10.8.0","react-dom":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.1.7_1749397090332_0.24404203790726298","host":"s3://npm-registry-packages-npm-production"}},"0.4.109":{"name":"@api-buddy/firebase","version":"0.4.109","keywords":["api-buddy","firebase","database","authentication","storage"],"author":{"name":"API Buddy Team"},"license":"MIT","_id":"@api-buddy/firebase@0.4.109","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"dist":{"shasum":"eeb6f64110f2c2dcb9bc9caa8e0ede92c8ac733a","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.4.109.tgz","fileCount":6,"integrity":"sha512-CAExWyw4AS9hOdnsrWC+BUMdGmmwk9twuVXRIISlxEiX471jqovcVcQopozO/57GLexf4yr9g7DHRnTIoXq2QA==","signatures":[{"sig":"MEUCIHWrPI4pA622FgRX4OJr4+Sw8y+zH7PTzkzciS/FmOZOAiEAolgbIhTtL4qkLaN/CAwQB8F5sX2sJCEorpYu1QQV0SM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12996},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"c882bf125a0b841951225fd4b589892f477fb904","scripts":{"dev":"tsup --watch","build":"run-s build:types build:js","clean":"rm -rf dist","build:js":"tsup","typecheck":"tsc --noEmit","build:types":"tsc -p tsconfig.json --emitDeclarationOnly --declaration --declarationMap --outDir dist/types --pretty","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"firebase":"^10.0.0","firebase-admin":"^11.0.0","@api-buddy/core":"^0.4.109","@api-buddy/shared":"^0.4.109"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.0.0","@types/node":"^18.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.4.109_1749661425292_0.09164903743206332","host":"s3://npm-registry-packages-npm-production"}},"0.4.111":{"name":"@api-buddy/firebase","version":"0.4.111","keywords":["api-buddy","firebase","database","authentication","storage"],"author":{"name":"API Buddy Team"},"license":"MIT","_id":"@api-buddy/firebase@0.4.111","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"dist":{"shasum":"71ae15ef9ed6cb6f24a0b009155e19a43e358aca","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-0.4.111.tgz","fileCount":6,"integrity":"sha512-tUUEQFKrmv/6lO+kTmRnP0GIVVrcOxGbv0M2kYK0mAdKtkIs8eLEvXygAB8mOVXioBfAkA7mSwzwy0SAIiH+Iw==","signatures":[{"sig":"MEUCIQCPi0v7rcB2fcNa/pMmHgwmnn7ZoeLbyvSi3gdqG34o+gIgcC0OJ2ohe6b4MFdnbUQJje00HbVrTd6uHzftiC9TNT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12996},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"5f022852071df846c09ae31848e2ae05e771c453","scripts":{"dev":"tsup --watch","build":"run-s build:types build:js","clean":"rm -rf dist","build:js":"tsup","typecheck":"tsc --noEmit","build:types":"tsc -p tsconfig.json --emitDeclarationOnly --declaration --declarationMap --outDir dist/types --pretty","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"firebase":"^10.0.0","firebase-admin":"^11.0.0","@api-buddy/core":"^0.4.111","@api-buddy/shared":"^0.4.111"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.0.0","@types/node":"^18.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_0.4.111_1749668680636_0.6405402483520071","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@api-buddy/firebase","version":"1.0.0","keywords":["api-buddy","firebase","database","authentication","storage"],"author":{"name":"API Buddy Team"},"license":"MIT","_id":"@api-buddy/firebase@1.0.0","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"dist":{"shasum":"9d04ab357a6934238617a6410ecc5bbb96b52147","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-1.0.0.tgz","fileCount":6,"integrity":"sha512-EQzncEgJl5SAmbw2dWUUZuT0pA1VDJdEsTjp24O3t4Q6svQ1W2GdchDEqKgDOejwR2pfn85nIu97wv5VH3/FZA==","signatures":[{"sig":"MEYCIQDMv686UPBEtZp7Z1riS17rDq2czKbEQpRDHMY2rzlCgAIhAPMfnHSmWkkuSSQF67V53Zt3ly++PkxhqIdVTRCmf7MG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52533},"main":"dist/index.js","_from":"file:api-buddy-firebase-1.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"pnpm clean && tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx}\"","build:js":"tsup","prebuild":"node -e \"const { execSync } = require('child_process'); const path = require('path'); const fs = require('fs'); let root = process.cwd(); while (root !== '/' && !fs.existsSync(path.join(root, 'pnpm-workspace.yaml'))) { root = path.dirname(root); } if (root === '/') { console.error('❌ Could not find project root directory'); process.exit(1); } require(path.join(root, 'scripts/ensure-tsup-config.js'));\"","typecheck":"tsc --noEmit","type-check":"tsc --noEmit","build:types":"tsc -p tsconfig.json --emitDeclarationOnly --declaration --declarationMap --outDir dist/types --pretty"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/47ff9904ef9ac1ce5563a1599c0ad738/api-buddy-firebase-1.0.0.tgz","_integrity":"sha512-EQzncEgJl5SAmbw2dWUUZuT0pA1VDJdEsTjp24O3t4Q6svQ1W2GdchDEqKgDOejwR2pfn85nIu97wv5VH3/FZA==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git","type":"git"},"_npmVersion":"9.8.1","description":"Firebase integration for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"firebase":"^10.0.0","firebase-admin":"^11.0.0","@api-buddy/shared":"1.0.0","@api-buddy/plugin-core":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.5","typescript":"^5.0.0","@types/node":"^18.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@api-buddy/tsup-config":"1.0.0"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/firebase_1.0.0_1750087961623_0.0321699471341903","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@api-buddy/firebase","version":"2.0.0","description":"Firebase integration for API Buddy","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","dependencies":{"firebase":"^10.0.0","firebase-admin":"^11.0.0","@api-buddy/shared":"2.0.0","@api-buddy/plugin-core":"2.0.0"},"devDependencies":{"@types/node":"^18.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","tsup":"^8.0.0","typescript":"^5.0.0","rimraf":"^5.0.5","@api-buddy/tsup-config":"2.0.0"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/api-buddy/api-buddy.git"},"keywords":["api-buddy","firebase","database","authentication","storage"],"author":{"name":"API Buddy Team"},"license":"MIT","scripts":{"build":"pnpm clean && tsup","build:js":"tsup","build:types":"tsc -p tsconfig.json --emitDeclarationOnly --declaration --declarationMap --outDir dist/types --pretty","dev":"tsup --watch","clean":"rimraf dist","typecheck":"tsc --noEmit","test":"jest","lint":"eslint src --ext .ts,.tsx","type-check":"tsc --noEmit","format":"prettier --write \"src/**/*.{ts,tsx}\"","prebuild":"node -e \"const { execSync } = require('child_process'); const path = require('path'); const fs = require('fs'); let root = process.cwd(); while (root !== '/' && !fs.existsSync(path.join(root, 'pnpm-workspace.yaml'))) { root = path.dirname(root); } if (root === '/') { console.error('❌ Could not find project root directory'); process.exit(1); } require(path.join(root, 'scripts/ensure-tsup-config.js'));\""},"bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"homepage":"https://github.com/api-buddy/api-buddy#readme","_id":"@api-buddy/firebase@2.0.0","_integrity":"sha512-+TfUsdMlUL24MqkNLQRTsG1BMuQRFdQ8dR+u8x/TKqkw0Pvg98EbXNtt5fZtuVaj5WUDfw89fkBsE2G7o3/dDA==","_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/747a108ac4969e354591ceca4fc8e30f/api-buddy-firebase-2.0.0.tgz","_from":"file:api-buddy-firebase-2.0.0.tgz","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-+TfUsdMlUL24MqkNLQRTsG1BMuQRFdQ8dR+u8x/TKqkw0Pvg98EbXNtt5fZtuVaj5WUDfw89fkBsE2G7o3/dDA==","shasum":"8ee0b5e660ac550df83a737f12a4a5cd66bb3135","tarball":"https://registry.npmjs.org/@api-buddy/firebase/-/firebase-2.0.0.tgz","fileCount":6,"unpackedSize":52533,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGhGGUCIK3XHaA2LmV1sJtuYMi/I4J0jKBXnPwA6N80cAiBe86BFLO3h9w3QEMeNuSt7pa7YyYYbkoY3QEBuafWRxQ=="}]},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"directories":{},"maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/firebase_2.0.0_1750103113497_0.7983748371393753"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-08T12:51:31.804Z","modified":"2025-06-16T19:45:13.857Z","0.1.0":"2025-06-08T12:51:32.135Z","0.1.1":"2025-06-08T14:17:57.148Z","0.1.2":"2025-06-08T14:51:08.573Z","0.1.3":"2025-06-08T15:08:14.440Z","0.1.4":"2025-06-08T15:22:33.306Z","0.1.6":"2025-06-08T15:24:20.711Z","0.1.7":"2025-06-08T15:38:10.525Z","0.4.109":"2025-06-11T17:03:45.478Z","0.4.111":"2025-06-11T19:04:40.811Z","1.0.0":"2025-06-16T15:32:41.826Z","2.0.0":"2025-06-16T19:45:13.667Z"},"bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"author":{"name":"API Buddy Team"},"license":"MIT","homepage":"https://github.com/api-buddy/api-buddy#readme","keywords":["api-buddy","firebase","database","authentication","storage"],"repository":{"type":"git","url":"git+https://github.com/api-buddy/api-buddy.git"},"description":"Firebase integration for API Buddy","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"readme":"# @api-buddy/firebase\n\nFirebase integration for API Buddy. This package provides a set of utilities, type-safe operations, and React hooks for working with Firebase services in your API Buddy projects.\n\n## Features\n\n- 🔒 Type-safe Firestore operations\n- ⚡ Real-time data subscriptions\n- 🎣 React hooks for easy integration\n- 🔄 Optimistic updates\n- 🔐 Security rules templates\n- 🚀 Batch and transaction support\n\n## Installation\n\n```bash\npnpm add @api-buddy/firebase firebase\n```\n\n## Quick Start\n\n### Initialize Firebase\n\n```typescript\n// lib/firebase.ts\nimport { initializeApp } from 'firebase/app';\nimport { getFirestore } from 'firebase/firestore';\nimport { getAuth } from 'firebase/auth';\n\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\nconst app = initializeApp(firebaseConfig);\nexport const db = getFirestore(app);\nexport const auth = getAuth(app);\n```\n\n## Firestore Operations\n\n### Basic CRUD Operations\n\n```typescript\nimport { FirestoreService } from '@api-buddy/firebase';\n\ninterface User {\n  name: string;\n  email: string;\n  createdAt: Date;\n}\n\nconst usersService = new FirestoreService<User>('users');\n\n// Create\nexport const createUser = async (id: string, userData: User) => {\n  return usersService.create(id, userData);\n};\n\n// Read\nexport const getUser = async (id: string) => {\n  return usersService.get(id);\n};\n\n// Update\nexport const updateUser = async (id: string, updates: Partial<User>) => {\n  return usersService.update(id, updates);\n};\n\n// Delete\nexport const deleteUser = async (id: string) => {\n  return usersService.delete(id);\n};\n```\n\n### Querying Data\n\n```typescript\n// Get all active users, ordered by name\nconst activeUsers = await usersService.query({\n  where: [['status', '==', 'active']],\n  orderBy: [['name', 'asc']],\n  limit: 10\n});\n\n// Pagination\nconst firstPage = await usersService.query({\n  orderBy: [['createdAt', 'desc']],\n  limit: 10\n});\n\nconst nextPage = await usersService.query({\n  orderBy: [['createdAt', 'desc']],\n  startAfter: firstPage[firstPage.length - 1],\n  limit: 10\n});\n```\n\n## React Hooks\n\n### useDocument Hook\n\n```tsx\nimport { useDocument } from '@api-buddy/firebase';\n\nfunction UserProfile({ userId }: { userId: string }) {\n  const usersService = useFirestoreService<User>('users');\n  const { data: user, loading, error } = useDocument(usersService, userId);\n\n  if (loading) return <div>Loading...</div>;\n  if (error) return <div>Error: {error.message}</div>;\n  if (!user) return <div>User not found</div>;\n\n  return (\n    <div>\n      <h1>{user.name}</h1>\n      <p>Email: {user.email}</p>\n    </div>\n  );\n}\n```\n\n### useCollection Hook\n\n```tsx\nimport { useCollection } from '@api-buddy/firebase';\n\nfunction UserList() {\n  const usersService = useFirestoreService<User>('users');\n  const { \n    data: users, \n    loading, \n    error, \n    hasMore, \n    fetchMore \n  } = useCollection(usersService, {\n    where: [['status', '==', 'active']],\n    orderBy: [['createdAt', 'desc']],\n    limit: 10\n  });\n\n  if (loading && !users?.length) return <div>Loading...</div>;\n  if (error) return <div>Error: {error.message}</div>;\n\n  return (\n    <div>\n      {users.map(user => (\n        <UserCard key={user.id} user={user} />\n      ))}\n      {hasMore && (\n        <button onClick={fetchMore} disabled={loading}>\n          {loading ? 'Loading...' : 'Load More'}\n        </button>\n      )}\n    </div>\n  );\n}\n```\n\n### useRealtimeCollection Hook\n\n```tsx\nimport { useRealtimeCollection } from '@api-buddy/firebase';\n\nfunction RealtimeComments({ postId }: { postId: string }) {\n  const commentsService = useFirestoreService<Comment>('comments');\n  const { data: comments, loading, error } = useRealtimeCollection(commentsService, {\n    where: [['postId', '==', postId]],\n    orderBy: [['createdAt', 'asc']]\n  });\n\n  if (loading) return <div>Loading comments...</div>;\n  if (error) return <div>Error: {error.message}</div>;\n\n  return (\n    <div>\n      {comments.map(comment => (\n        <CommentItem key={comment.id} comment={comment} />\n      ))}\n    </div>\n  );\n}\n```\n\n## Security Rules\n\nWe provide a set of recommended security rules in the `security-rules` directory. To deploy them:\n\n1. Copy the rules to your Firebase project\n2. Run the deployment script:\n\n```bash\n# Set your Firebase project ID\nFIREBASE_PROJECT=your-project-id pnpm tsx scripts/deploy-rules.ts\n```\n\n## Environment Variables\n\n```env\n# Firebase Config\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\nNEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-project.appspot.com\nNEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id\nNEXT_PUBLIC_FIREBASE_APP_ID=your-app-id\nNEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=G-XXXXXXXXXX\n\n# For local development\nFIREBASE_EMULATOR_HOST=localhost\nFIREBASE_FIRESTORE_EMULATOR_PORT=8080\nFIREBASE_AUTH_EMULATOR_PORT=9099\n```\n\n## TypeScript Support\n\nAll Firestore operations are fully typed. Define your data models as TypeScript interfaces:\n\n```typescript\ninterface Product {\n  name: string;\n  price: number;\n  category: string;\n  createdAt: Date;\n  updatedAt: Date;\n}\n\nconst productsService = new FirestoreService<Product>('products');\n// All operations will be type-checked against the Product interface\n```\n\n## Error Handling\n\nAll operations throw standard Firebase errors. You can catch and handle them appropriately:\n\n```typescript\ntry {\n  await usersService.update('user123', { name: 'New Name' });\n} catch (error) {\n  if (error.code === 'permission-denied') {\n    console.error('You do not have permission to update this user');\n  } else {\n    console.error('Error updating user:', error);\n  }\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}