{"_id":"@api-buddy/plugin-auth-firebase","_rev":"6-7a4b939c4bf79ec291846731522d7555","name":"@api-buddy/plugin-auth-firebase","dist-tags":{"latest":"4.0.0"},"versions":{"1.0.0":{"name":"@api-buddy/plugin-auth-firebase","version":"1.0.0","keywords":["api-buddy","plugin","authentication","firebase","auth"],"author":{"name":"API Buddy Team"},"license":"MIT","_id":"@api-buddy/plugin-auth-firebase@1.0.0","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase-auth":"dist/cli.js"},"dist":{"shasum":"7ffc82c3329cc78463f63bec11b6c866c5fedef9","tarball":"https://registry.npmjs.org/@api-buddy/plugin-auth-firebase/-/plugin-auth-firebase-1.0.0.tgz","fileCount":8,"integrity":"sha512-D7FM1/zSdlpDr1oBwq3kkX5dvxtRansZoyjNjn6sgKJvdm8ozOwB6SbKXumntAkUQS8gd9d3agXYrikRAvZ23A==","signatures":[{"sig":"MEQCIDuYKPyJjX+X59Mu1qKT2/XKvlom1H6bKX7DKvYqJek9AiB7Tp0tamB7EagIPQKboV+1EsRYlD4CwyMXyi2meWqpOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155293},"main":"dist/index.js","_from":"file:api-buddy-plugin-auth-firebase-1.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"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}\"","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'));\"","type-check":"tsc --noEmit"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/a8d181b89c05df02a9f2473c90c66175/api-buddy-plugin-auth-firebase-1.0.0.tgz","api-buddy":{"plugin":"./dist/index.js"},"_integrity":"sha512-D7FM1/zSdlpDr1oBwq3kkX5dvxtRansZoyjNjn6sgKJvdm8ozOwB6SbKXumntAkUQS8gd9d3agXYrikRAvZ23A==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git#main","type":"git"},"_npmVersion":"9.8.1","description":"Firebase Authentication plugin for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"ora":"^8.0.1","chalk":"^4.1.2","execa":"^8.0.1","globby":"^13.2.2","firebase":"^10.11.1","inquirer":"^9.2.12","commander":"^11.1.0","firebase-admin":"^12.1.0","@api-buddy/plugin-core":"1.0.0","@api-buddy/tsup-config":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","rimraf":"^5.0.5","vitest":"^1.0.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^20.19.0","@types/inquirer":"^9.0.7"},"peerDependencies":{"firebase":">=9.0.0"},"peerDependenciesMeta":{"firebase":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plugin-auth-firebase_1.0.0_1750088001765_0.3901333495547892","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@api-buddy/plugin-auth-firebase","version":"2.0.0","keywords":["api-buddy","plugin","authentication","firebase","auth"],"author":{"name":"API Buddy Team"},"license":"MIT","_id":"@api-buddy/plugin-auth-firebase@2.0.0","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase-auth":"dist/cli.js"},"dist":{"shasum":"4c2bbf5daa3487a6637613762d28e884a6177a92","tarball":"https://registry.npmjs.org/@api-buddy/plugin-auth-firebase/-/plugin-auth-firebase-2.0.0.tgz","fileCount":8,"integrity":"sha512-8Gx96N1nuS1UYAG2priKEUktVUreO86oJ73iW7/ttb+DPV8nBqpduYbGbG4l0lNuJ9PR6M03IRChRhVh7lGi0A==","signatures":[{"sig":"MEUCIHF92gbCe50C8HcDRZR7Fvsk8fBJdOt3365iK5jibqg8AiEApLEIB7u1ys5QhqsLDmF/6KeHgpZK9ikNF+GNpUCedTU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163023},"main":"dist/index.js","_from":"file:api-buddy-plugin-auth-firebase-2.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"pnpm clean && tsup","clean":"rimraf dist","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'));\"","test:watch":"vitest","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/fd3166bd41ef6a99b633f336c20ba5ba/api-buddy-plugin-auth-firebase-2.0.0.tgz","api-buddy":{"plugin":"./dist/index.js"},"_integrity":"sha512-8Gx96N1nuS1UYAG2priKEUktVUreO86oJ73iW7/ttb+DPV8nBqpduYbGbG4l0lNuJ9PR6M03IRChRhVh7lGi0A==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git#main","type":"git"},"_npmVersion":"9.8.1","description":"Firebase Authentication plugin for API Buddy","directories":{},"_nodeVersion":"18.18.0","dependencies":{"ora":"^8.0.1","chalk":"^4.1.2","execa":"^8.0.1","globby":"^13.2.2","firebase":"^10.11.1","inquirer":"^9.2.12","commander":"^11.1.0","firebase-admin":"^12.1.0","@api-buddy/plugin-core":"2.0.0","@api-buddy/tsup-config":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.3.3","tsup":"^8.0.2","rimraf":"^5.0.5","vitest":"^1.0.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^20.19.0","@types/react":"^19.1.8","@types/inquirer":"^9.0.7","@types/react-dom":"^19.1.6"},"peerDependencies":{"firebase":">=9.0.0"},"peerDependenciesMeta":{"next":{"optional":false},"react":{"optional":false},"firebase":{"optional":true},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/plugin-auth-firebase_2.0.0_1750103161049_0.8891936849958102","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@api-buddy/plugin-auth-firebase","version":"3.0.0","keywords":["api-buddy","plugin","authentication","firebase","auth"],"author":{"name":"API Buddy Team"},"license":"MIT","_id":"@api-buddy/plugin-auth-firebase@3.0.0","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase-auth":"dist/cli.mjs"},"dist":{"shasum":"23cba42f8081924f8debe48d0778cf2bf18b655e","tarball":"https://registry.npmjs.org/@api-buddy/plugin-auth-firebase/-/plugin-auth-firebase-3.0.0.tgz","fileCount":65,"integrity":"sha512-cGMwitrV5aWZJqJHkejfYYdAIFOucUUcpWW9QLwwXjq5T35p3IRhFeTBiW2VN9OH9+Ye7FndU5BTqCc9WZneiQ==","signatures":[{"sig":"MEUCIGqSVm0bfN3A5/sGgFeUdTwxGFgLz+rFbGNUIJQxk4BKAiEArJl6oRnzNPIooh21C3wGjsav6BB18+dAIOfZ2l+2S6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":639345},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.mjs","default":"./dist/cli/index.mjs","require":"./dist/cli/index.js"},"./package.json":"./package.json","./template-utils":{"types":"./dist/template-utils.d.ts","import":"./dist/template-utils.mjs","default":"./dist/template-utils.mjs","require":"./dist/template-utils.js"}},"gitHead":"6287f1224e808037064a31aa426ca22174a94d9b","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"pnpm clean && tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx}\"","prepare":"pnpm run build","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'));\"","postbuild":"tsx scripts/fix-imports.ts dist && node scripts/copy-templates.js","test:watch":"vitest","type-check":"tsc --noEmit","fix-imports":"tsx scripts/fix-imports.ts src","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","type-check:templates":"tsc --noEmit --project tsconfig.template-files.json"},"_npmUser":{"name":"iamtomhanks","actor":{"name":"iamtomhanks","type":"user","email":"brechanson@gmail.com"},"email":"brechanson@gmail.com"},"api-buddy":{"plugin":"./dist/index.js"},"repository":{"url":"git+https://github.com/api-buddy/api-buddy.git#main","type":"git"},"_npmVersion":"9.8.1","description":"CLI plugin for generating Firebase Authentication code in API Buddy projects","directories":{},"_nodeVersion":"18.18.0","dependencies":{"ora":"^8.0.1","zod":"^3.25.67","chalk":"^4.1.2","execa":"^8.0.1","globby":"^13.2.2","firebase":"^10.14.1","inquirer":"^9.2.12","commander":"^11.1.0","handlebars":"^4.7.8","node-fetch":"^3.3.2","firebase-admin":"^12.7.0","@api-buddy/core":"workspace:*","react-hook-form":"^7.58.1","@api-buddy/codegen":"^2.0.0","@hookform/resolvers":"^5.1.1","@api-buddy/plugin-core":"workspace:*","@api-buddy/tsup-config":"workspace:*","@api-buddy/plugin-utils":"workspace:*","@api-buddy/auth-firebase":"workspace:^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.3.4","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^6.0.1","vitest":"^1.6.1","postcss":"^8.5.6","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","typescript":"^5.8.3","@types/next":"^9.0.0","@types/node":"^20.19.0","tailwindcss":"^4.1.10","@types/react":"^19.1.8","autoprefixer":"^10.4.21","@types/prompts":"^2.4.9","@api-buddy/core":"workspace:*","@types/inquirer":"^9.0.7","@types/react-dom":"^19.1.6","@types/node-fetch":"^2.6.12","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.2.0","eslint-plugin-unused-imports":"^3.1.0","@typescript-eslint/eslint-plugin":"^7.2.0"},"peerDependencies":{"next":">=13.0.0","react":">=18.0.0","firebase":"^10.0.0","next-auth":"^4.24.0","react-dom":">=18.0.0","firebase-admin":"^11.4.1","@auth/firebase-adapter":"1.6.0"},"peerDependenciesMeta":{"next":{"optional":false},"react":{"optional":false},"firebase":{"optional":true},"next-auth":{"optional":true},"react-dom":{"optional":false},"firebase-admin":{"optional":true},"@auth/firebase-adapter":{"optional":true},"@api-buddy/plugin-utils":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/plugin-auth-firebase_3.0.0_1751250137407_0.28581642123184237","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@api-buddy/plugin-auth-firebase","version":"3.0.2","keywords":["api-buddy","plugin","authentication","firebase","auth"],"author":{"name":"API Buddy Team"},"license":"MIT","_id":"@api-buddy/plugin-auth-firebase@3.0.2","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase-auth":"dist/cli.mjs"},"dist":{"shasum":"c77732e03b990aab332b47cfec9b1fe53f814e5f","tarball":"https://registry.npmjs.org/@api-buddy/plugin-auth-firebase/-/plugin-auth-firebase-3.0.2.tgz","fileCount":65,"integrity":"sha512-n6rpvIE0H2NPk+3Tsn+03asF5LrlUCQsTxoDxiUcHM1YkGD8oKFl2d2Jytk422H2E9gZN/IV+IDmDa6XJ11jog==","signatures":[{"sig":"MEUCIQCwiZPGvs0f6k65ndw6mlaxETYnRCh0YAT18taWJPKGIwIgNial/7LHQg/7fdc/VDya1dyKWA17tKS6RiwAqxWgUac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":639307},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.mjs","default":"./dist/cli/index.mjs","require":"./dist/cli/index.js"},"./package.json":"./package.json","./template-utils":{"types":"./dist/template-utils.d.ts","import":"./dist/template-utils.mjs","default":"./dist/template-utils.mjs","require":"./dist/template-utils.js"}},"gitHead":"15196bc4229da5db5a45ea4e3900ad7931927b1e","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"pnpm clean && tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx}\"","prepare":"pnpm run build","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'));\"","postbuild":"tsx scripts/fix-imports.ts dist && node scripts/copy-templates.js","test:watch":"vitest","type-check":"tsc --noEmit","fix-imports":"tsx scripts/fix-imports.ts src","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","type-check:templates":"tsc --noEmit --project tsconfig.template-files.json"},"_npmUser":{"name":"iamtomhanks","actor":{"name":"iamtomhanks","type":"user","email":"brechanson@gmail.com"},"email":"brechanson@gmail.com"},"api-buddy":{"plugin":"./dist/index.js"},"repository":{"url":"git+https://github.com/api-buddy/api-buddy.git#main","type":"git"},"_npmVersion":"9.8.1","description":"CLI plugin for generating Firebase Authentication code in API Buddy projects","directories":{},"_nodeVersion":"18.18.0","dependencies":{"ora":"^8.0.1","zod":"^3.25.67","chalk":"^4.1.2","execa":"^8.0.1","globby":"^13.2.2","firebase":"^10.14.1","inquirer":"^9.2.12","commander":"^11.1.0","handlebars":"^4.7.8","node-fetch":"^3.3.2","firebase-admin":"^12.7.0","@api-buddy/core":"workspace:*","react-hook-form":"^7.58.1","@api-buddy/codegen":"^2.0.0","@hookform/resolvers":"^5.1.1","@api-buddy/plugin-core":"workspace:*","@api-buddy/tsup-config":"workspace:*","@api-buddy/plugin-utils":"workspace:*","@api-buddy/auth-firebase":"workspace:^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.3.4","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^6.0.1","vitest":"^1.6.1","postcss":"^8.5.6","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","typescript":"^5.8.3","@types/next":"^9.0.0","@types/node":"^20.19.0","tailwindcss":"^4.1.10","@types/react":"^19.1.8","autoprefixer":"^10.4.21","@types/prompts":"^2.4.9","@types/inquirer":"^9.0.7","@types/react-dom":"^19.1.6","@types/node-fetch":"^2.6.12","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.2.0","eslint-plugin-unused-imports":"^3.1.0","@typescript-eslint/eslint-plugin":"^7.2.0"},"peerDependencies":{"next":">=13.0.0","react":">=18.0.0","firebase":"^10.0.0","next-auth":"^4.24.0","react-dom":">=18.0.0","firebase-admin":"^11.4.1","@auth/firebase-adapter":"1.6.0"},"peerDependenciesMeta":{"next":{"optional":false},"react":{"optional":false},"firebase":{"optional":true},"next-auth":{"optional":true},"react-dom":{"optional":false},"firebase-admin":{"optional":true},"@auth/firebase-adapter":{"optional":true},"@api-buddy/plugin-utils":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/plugin-auth-firebase_3.0.2_1751251977960_0.4796848661635611","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@api-buddy/plugin-auth-firebase","version":"3.0.3","keywords":["api-buddy","plugin","authentication","firebase","auth"],"author":{"name":"API Buddy Team"},"license":"MIT","_id":"@api-buddy/plugin-auth-firebase@3.0.3","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"homepage":"https://github.com/api-buddy/api-buddy/tree/main#readme","bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"bin":{"api-buddy-firebase-auth":"dist/cli.mjs"},"dist":{"shasum":"abbc0632bc5a58d782e160421e2ebf58841dc6c9","tarball":"https://registry.npmjs.org/@api-buddy/plugin-auth-firebase/-/plugin-auth-firebase-3.0.3.tgz","fileCount":65,"integrity":"sha512-IuO8PqhufrSowrfvcQalqTKFS9yxeVmlvClAlC+v0a24snbuv56aF5/DCYWOGg8BMeXAWLF6df6PKE8o2F5dvw==","signatures":[{"sig":"MEUCIGLCtHo7/ciKmUok+JhdSGBF56nkqmM74UeNgTaZTxydAiEAqGXFMHy/dQrMCWuwUAo/NcsM7b+P0k8H+lB/q9cwMTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":650597},"main":"dist/index.js","type":"module","_from":"file:api-buddy-plugin-auth-firebase-3.0.3.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.mjs","default":"./dist/cli/index.mjs","require":"./dist/cli/index.js"},"./package.json":"./package.json","./template-utils":{"types":"./dist/template-utils.d.ts","import":"./dist/template-utils.mjs","default":"./dist/template-utils.mjs","require":"./dist/template-utils.js"}},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"pnpm clean && tsup","clean":"rimraf dist","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'));\"","postbuild":"tsx scripts/fix-imports.ts dist && node scripts/copy-templates.js","test:watch":"vitest","type-check":"tsc --noEmit","fix-imports":"tsx scripts/fix-imports.ts src","test:coverage":"vitest run --coverage","type-check:templates":"tsc --noEmit --project tsconfig.template-files.json"},"_npmUser":{"name":"iamtomhanks","actor":{"name":"iamtomhanks","type":"user","email":"brechanson@gmail.com"},"email":"brechanson@gmail.com"},"_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/6eb746613e404239b7e58b60ff03db27/api-buddy-plugin-auth-firebase-3.0.3.tgz","api-buddy":{"plugin":"./dist/index.js"},"_integrity":"sha512-IuO8PqhufrSowrfvcQalqTKFS9yxeVmlvClAlC+v0a24snbuv56aF5/DCYWOGg8BMeXAWLF6df6PKE8o2F5dvw==","repository":{"url":"git+https://github.com/api-buddy/api-buddy.git#main","type":"git"},"_npmVersion":"9.8.1","description":"CLI plugin for generating Firebase Authentication code in API Buddy projects","directories":{},"_nodeVersion":"18.18.0","dependencies":{"ora":"^8.2.0","tsx":"^4.7.0","zod":"^3.22.4","chalk":"^4.1.2","execa":"^8.0.1","react":"^18.2.0","globby":"^14.0.0","rimraf":"^5.0.5","js-yaml":"^4.1.0","pkg-dir":"^8.0.0","firebase":"^10.14.1","fs-extra":"^11.1.1","inquirer":"^9.3.7","commander":"^11.1.0","next-auth":"^4.24.11","react-dom":"^18.2.0","handlebars":"^4.7.8","node-fetch":"^3.3.2","firebase-admin":"^12.7.0","@api-buddy/core":"^2.0.17","react-hook-form":"^7.53.0","react-hot-toast":"^2.4.1","@api-buddy/types":"^3.0.0","@hookform/resolvers":"^5.1.1","@api-buddy/tsup-config":"2.0.0","@auth/firebase-adapter":"^1.6.0","@api-buddy/plugin-utils":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.3.4","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^6.0.1","vitest":"^1.6.1","postcss":"^8.5.6","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","typescript":"^5.8.3","@types/next":"^9.0.0","@types/node":"^20.19.0","tailwindcss":"^4.1.10","@types/react":"^19.1.8","autoprefixer":"^10.4.21","@types/prompts":"^2.4.9","@types/inquirer":"^9.0.7","@types/react-dom":"^19.1.6","@types/node-fetch":"^2.6.12","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.2.0","eslint-plugin-unused-imports":"^3.1.0","@typescript-eslint/eslint-plugin":"^7.2.0"},"peerDependencies":{"zod":"^3.0.0","next":">=13.0.0","react":">=18.0.0","firebase":"^10.0.0","next-auth":"^4.24.0","react-dom":">=18.0.0","firebase-admin":"^12.0.0","react-hook-form":"^7.0.0","react-hot-toast":"^2.0.0","@hookform/resolvers":"^5.0.0","@auth/firebase-adapter":"^1.6.0","@api-buddy/plugin-utils":"2.0.0"},"optionalDependencies":{"zod":"^3.22.4","react":"^18.2.0","firebase":"^10.14.1","next-auth":"^4.24.11","react-dom":"^18.2.0","firebase-admin":"^12.7.0","react-hook-form":"^7.53.0","react-hot-toast":"^2.4.1","@hookform/resolvers":"^5.1.1","@auth/firebase-adapter":"^1.6.0"},"peerDependenciesMeta":{"zod":{"optional":true},"next":{"optional":false},"react":{"optional":false},"firebase":{"optional":true},"next-auth":{"optional":true},"react-dom":{"optional":false},"firebase-admin":{"optional":true},"react-hook-form":{"optional":true},"react-hot-toast":{"optional":true},"@hookform/resolvers":{"optional":true},"@auth/firebase-adapter":{"optional":true},"@api-buddy/plugin-utils":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/plugin-auth-firebase_3.0.3_1751337407595_0.16955769177754854","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@api-buddy/plugin-auth-firebase","version":"4.0.0","description":"CLI plugin for generating Firebase Authentication code in API Buddy projects","type":"module","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js","default":"./dist/index.mjs"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.mjs","require":"./dist/cli/index.js","default":"./dist/cli/index.mjs"},"./template-utils":{"types":"./dist/template-utils.d.ts","import":"./dist/template-utils.mjs","require":"./dist/template-utils.js","default":"./dist/template-utils.mjs"},"./package.json":"./package.json"},"bin":{"api-buddy-firebase-auth":"dist/cli.mjs"},"peerDependencies":{"firebase":"^10.0.0","next":">=13.0.0","next-auth":"^4.24.0","@auth/firebase-adapter":"^2.10.0","firebase-admin":"^11.4.1","react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"firebase":{"optional":true},"next":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"next-auth":{"optional":true},"@auth/firebase-adapter":{"optional":true},"firebase-admin":{"optional":true},"@api-buddy/plugin-utils":{"optional":false}},"dependencies":{"@auth/firebase-adapter":"^2.10.0","@hookform/resolvers":"^5.1.1","chalk":"^4.1.2","commander":"^11.1.0","execa":"^8.0.1","firebase":"^10.14.1","firebase-admin":"^12.7.0","fs-extra":"^11.1.1","globby":"^14.0.0","handlebars":"^4.7.8","inquirer":"^9.3.7","js-yaml":"^4.1.0","next-auth":"^4.24.11","node-fetch":"^3.3.2","ora":"^8.2.0","pkg-dir":"^8.0.0","react-hook-form":"^7.53.0","react-hot-toast":"^2.4.1","rimraf":"^5.0.5","tsx":"^4.7.0","zod":"^3.22.4","@api-buddy/auth-firebase":"3.0.0","@api-buddy/codegen":"3.0.0","@api-buddy/tsup-config":"3.0.0","@api-buddy/plugin-core":"3.0.0","@api-buddy/core":"3.0.0","@api-buddy/plugin-utils":"3.0.0"},"devDependencies":{"@types/inquirer":"^9.0.7","@types/next":"^9.0.0","@types/node":"^20.19.0","@types/node-fetch":"^2.6.12","@types/prompts":"^2.4.9","@types/react":"^19.1.8","@types/react-dom":"^19.1.6","@typescript-eslint/eslint-plugin":"^7.2.0","@typescript-eslint/parser":"^7.2.0","autoprefixer":"^10.4.21","eslint":"^8.57.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-unused-imports":"^3.1.0","next":"^15.3.4","postcss":"^8.5.6","prettier":"^3.2.5","rimraf":"^6.0.1","tailwindcss":"^4.1.10","ts-jest":"^29.1.2","ts-node":"^10.9.2","tsup":"^8.0.2","typescript":"^5.8.3","vitest":"^1.6.1"},"engines":{"node":">=16.0.0"},"keywords":["api-buddy","plugin","authentication","firebase","auth"],"api-buddy":{"plugin":"./dist/index.js"},"author":{"name":"API Buddy Team"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/api-buddy/api-buddy.git#main"},"bugs":{"url":"https://github.com/api-buddy/api-buddy/issues"},"publishConfig":{"access":"public"},"scripts":{"build":"pnpm clean && tsup","postbuild":"tsx scripts/fix-imports.ts dist && node scripts/copy-templates.js","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","clean":"rimraf dist","lint":"eslint src --ext .ts,.tsx","type-check":"tsc --noEmit","type-check:templates":"tsc --noEmit --project tsconfig.template-files.json","format":"prettier --write \"src/**/*.{ts,tsx}\"","fix-imports":"tsx scripts/fix-imports.ts src","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'));\""},"homepage":"https://github.com/api-buddy/api-buddy/tree/main#readme","_id":"@api-buddy/plugin-auth-firebase@4.0.0","_integrity":"sha512-cc3YV9TUnE7BJHnRCxijIQ6GEiAKDnfVFL0qwiKcd8wOjgVb5OywttUMjL5b4ua/FIwm0EYS4jP4lm7CFyQs8A==","_resolved":"/private/var/folders/w3/00m0j5k95zjfx4vwz3csj_vc0000gn/T/3aef7c35f4f87481b5234df16327be1c/api-buddy-plugin-auth-firebase-4.0.0.tgz","_from":"file:api-buddy-plugin-auth-firebase-4.0.0.tgz","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-cc3YV9TUnE7BJHnRCxijIQ6GEiAKDnfVFL0qwiKcd8wOjgVb5OywttUMjL5b4ua/FIwm0EYS4jP4lm7CFyQs8A==","shasum":"27fda7f3f215efcadcf3d87ceb36234d6377db4d","tarball":"https://registry.npmjs.org/@api-buddy/plugin-auth-firebase/-/plugin-auth-firebase-4.0.0.tgz","fileCount":65,"unpackedSize":653055,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDIenZ32MRxE10iSmE0W4ZhSinFCk6r3g7+bi8mxixU+gIhAPuFP4seh70hMK0IEUskqdgX/oK7zLbopDfWilkQeRhu"}]},"_npmUser":{"name":"iamtomhanks","email":"brechanson@gmail.com","actor":{"name":"iamtomhanks","email":"brechanson@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-auth-firebase_4.0.0_1751386919007_0.6115603856570213"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-16T15:33:21.684Z","modified":"2025-07-01T16:21:59.439Z","1.0.0":"2025-06-16T15:33:21.941Z","2.0.0":"2025-06-16T19:46:01.266Z","3.0.0":"2025-06-30T02:22:17.614Z","3.0.2":"2025-06-30T02:52:58.203Z","3.0.3":"2025-07-01T02:36:47.875Z","4.0.0":"2025-07-01T16:21:59.255Z"},"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/tree/main#readme","keywords":["api-buddy","plugin","authentication","firebase","auth"],"repository":{"type":"git","url":"git+https://github.com/api-buddy/api-buddy.git#main"},"description":"CLI plugin for generating Firebase Authentication code in API Buddy projects","maintainers":[{"name":"iamtomhanks","email":"brechanson@gmail.com"}],"readme":"# Firebase Auth Plugin for API Buddy\n\nA comprehensive authentication solution for Next.js applications using Firebase Authentication. This plugin provides everything you need to add secure authentication to your API Buddy projects with minimal configuration.\n\n## ✨ Features\n\n- **Seamless Integration**: Built specifically for the API Buddy ecosystem\n- **Full-Stack Ready**: Includes both frontend components and API routes\n- **TypeScript First**: Fully typed for a great developer experience\n- **Production Ready**: Battle-tested patterns for security and reliability\n- **Customizable**: Easy to extend and style to match your application\n\n## 🚀 Quick Start\n\n1. **Create a new Next.js application** (if you haven't already):\n   ```bash\n   npx create-next-app@latest my-app\n   cd my-app\n   ```\n\n2. **Install the plugin**:\n   ```bash\n   pnpm add @api-buddy/plugin-auth-firebase\n   ```\n\n3. **Initialize Firebase Auth**:\n   ```bash\n   npx api-buddy firebase-auth init --project-id your-project-id --api-key your-api-key --auth-domain your-app.firebaseapp.com\n   ```\n   This will:\n   - Set up Firebase configuration\n   - Create necessary API routes\n   - Generate authentication pages\n   - Configure environment variables\n\n## 🔧 Initialization\n\nThe `init` command sets up everything needed for Firebase Authentication:\n\n```bash\nnpx api-buddy firebase-auth init [project-dir] [options]\n```\n\n### Options:\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `-f, --force` | Overwrite existing files | `false` |\n| `--skip-install` | Skip installing dependencies | `false` |\n| `--only-api` | Only generate API routes | `false` |\n| `--only-pages` | Only generate pages | `false` |\n| `--only-components` | Only generate components | `false` |\n| `--dry-run` | Run without making changes | `false` |\n| `--project-id <projectId>` | Firebase project ID | - |\n| `--api-key <apiKey>` | Firebase API key | - |\n| `--auth-domain <authDomain>` | Firebase auth domain | - |\n| `--use-emulator` | Use Firebase emulator | `false` |\n| `--emulator-host <host>` | Firebase emulator host | `localhost` |\n| `--emulator-port <port>` | Firebase emulator port | `9099` |\n| `--auth-providers <providers>` | Comma-separated list of auth providers | `email` |\n| `--no-email-verification` | Disable email verification | `true` |\n| `--no-password-reset` | Disable password reset | `true` |\n\n### Examples:\n\n1. Basic setup with email authentication:\n   ```bash\n   npx api-buddy firebase-auth init --project-id my-project --api-key abc123 --auth-domain my-app.firebaseapp.com\n   ```\n\n2. Setup with Google and GitHub auth:\n   ```bash\n   npx api-buddy firebase-auth init --project-id my-project --auth-providers \"email,google,github\"\n   ```\n\n3. Setup with emulator:\n   ```bash\n   npx api-buddy firebase-auth init --use-emulator --emulator-port 9099\n   ```\n\n### What it does:\n1. **Configuration**\n   - Creates a Firebase configuration file\n   - Sets up environment variables\n   - Configures Firebase Admin SDK\n   - Sets up authentication providers\n   - Configures email verification and password reset\n\n2. **API Routes**\n   - `/api/auth/signin` - Handle user sign in\n   - `/api/auth/signup` - Handle user registration\n   - `/api/auth/signout` - Handle user sign out\n   - `/api/auth/session` - Get current session\n\n3. **Frontend**\n   - Authentication provider\n   - Custom hooks\n   - Example pages\n\n## ⚛️ Using Frontend Hooks\n\nThe plugin provides several React hooks for authentication:\n\n### `useAuth` Hook\n\n```typescript\n'use client';\n\nimport { useAuth } from '@api-buddy/plugin-auth-firebase';\n\nexport default function Profile() {\n  const {\n    user,           // Current user object or null\n    loading,        // Loading state\n    error,         // Error object if any\n    signIn,        // Sign in function\n    signUp,        // Sign up function\n    signOut,       // Sign out function\n    updateProfile, // Update user profile\n  } = useAuth();\n\n  if (loading) return <div>Loading...</div>;\n  if (error) return <div>Error: {error.message}</div>;\n\n  return (\n    <div>\n      {user ? (\n        <div>\n          <h1>Welcome, {user.displayName || user.email}!</h1>\n          <button onClick={signOut}>Sign Out</button>\n        </div>\n      ) : (\n        <div>\n          <button onClick={() => signIn({ email: 'test@example.com', password: 'password' })}>\n            Sign In\n          </button>\n        </div>\n      )}\n    </div>\n  );\n}\n```\n\n### `useUser` Hook\n\nFor simple user access:\n\n```typescript\n'use client';\n\nimport { useUser } from '@api-buddy/plugin-auth-firebase';\n\nexport default function UserInfo() {\n  const user = useUser();\n  \n  if (!user) return <div>Not signed in</div>;\n  \n  return (\n    <div>\n      <p>Email: {user.email}</p>\n      <p>Name: {user.displayName || 'Not set'}</p>\n    </div>\n  );\n}\n```\n\n## 🔄 API Buddy Ecosystem Integration\n\nThis plugin is designed to work seamlessly with the API Buddy ecosystem:\n\n1. **Unified Authentication**\n   - Single sign-on across all API Buddy services\n   - Centralized user management\n   - Consistent authentication patterns\n\n2. **API Protection**\n   - Automatic token validation\n   - Role-based access control\n   - Rate limiting and security headers\n\n3. **Development Experience**\n   - TypeScript support\n   - Hot reloading\n   - Development tools\n\n## 🔒 Environment Variables\n\nAfter initialization, you'll need to set these environment variables in your `.env.local`. Instructions for obtaining the api keys from Firebase are in /docs/FIREBASE-SETUP.md.\n\n## 📚 Documentation\n\nFor more detailed information, please refer to:\n\n- [API Reference](./docs/API.md)\n- [Customization Guide](./docs/CUSTOMIZATION.md)\n- [Migration Guide](./docs/MIGRATION.md)\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) to get started.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}