feat: dynamically resolve and save kit SDK dependencies (#11019)
### Description
Updates Functions Kits installation to dynamically resolve and save SDK dependencies based on what the kit declares and npm installs, eliminating hardcoded pinned versions.
Key changes:
- **Dedicated Kit Template**: Added package-kit.json template starting with empty dependencies: {} and omitting firebase-functions-test.
- **Dynamic Dependency Resolution**: After the initial kit install, inspects package-lock.json (falling back to the kit manifest) to determine SDK versions. Always saves firebase-functions, and only saves firebase-admin if explicitly declared by the kit.
- **NPM-Managed Saving**: Uses npm install to update package.json and package-lock.json, failing fast if dependency resolution fails.
### Scenarios Tested
- **Unit tests**: Added and updated tests in install.spec.ts covering SDK version resolution from lockfile and fallback manifests, conditional omission of firebase-admin, template scaffolding, and install failure handling.
- npm run test
- npm run build
- Manually testing with firebase functions:kits:install
### Sample Commands
```bash
firebase functions:kits:install @firebase-function-kits/firestore-bigquery-export
``` A
Andy Perelson committed
182390ee2a2084cc56a8d64b3cd6257d6646e843
Parent: 24cd950
Committed by GitHub <noreply@github.com>
on 9/2/2026, 9:26:34 PM