SIGN IN SIGN UP

Initial commit for ext:migrate (#10974)

* Add wizard to select an instance to migrate

* More cases. More testing

* feat: implement ext:migrate command initial unique veneer logic

### Description
Implement the initial Unique Veneer section of the ext:migrate workflow. This includes the extmigration experiment registration, replacements.json integration, table formatting of installed extensions, instance filtering, interactive prompt selection via createMigrationPlan, and the ext:migrate CLI command.

### Scenarios Tested
- Unit tests in src/extensions/migrate.spec.ts covering all 9 manual scenarios (no flags, --ext-instance, --extension, and error states).

### Sample Commands
firebase ext:migrate --project P
firebase ext:migrate --project P --ext-instance E1
firebase ext:migrate --project P --extension storage-resize-images

* fix: resolve function kit using instance extensionRef during --extension migration

* fix(ext:migrate): address PR feedback on ext:migrate command

### Description
Address review feedback on PR #10974:
- Validate `--package` CLI option using `validateNpmPackageName`
- Simplify `getKitPackage` lookup logic (removed shortName fallback)
- Update error messages when no kit package is found to encourage forking
- Add unit test verifying `getKitPackage` returns undefined for extension refs without a replacement package

### Scenarios Tested
- Tested `ext:migrate` unit test suite (`npm run mocha:fast src/extensions/migrate.spec.ts`)
- Tested `functions:kits:install` unit test suite (`npm run mocha:fast src/commands/functions-kits-install.spec.ts`)

* test(ext:migrate): update test assertions for @firebase-function-kits package names from main
T
Thomas Bouldin committed
9b5ebbab6e5085720967e6df3789d08565ef50ec
Parent: 0eeca4c
Committed by GitHub <noreply@github.com> on 8/25/2026, 12:59:38 AM