SIGN IN SIGN UP

ext:migrate now upgrades extensions (#10977)

* 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

* fix: partition systemParams, enforce 4-rule parameter prompting, and propagate prompt cancellation

### Description
- Rebased cleanly onto PR #10974 ().
- Added  helper in  to separate user params from system params (such as ).
- Updated  in  to accept and forward  to .
- Refactored  in  to strictly enforce parameter prompting rules (only prompting for changed types, rejected validator values, newly required unset params, or advanced/system params when old params are dropped or location is unset).
- Removed error-swallowing try-catch in  () so Ctrl+C or prompt cancellations immediately abort instance updates.
- Added log bullet right before  execution.

### Scenarios Tested
- Executed unit test suite ( mocha tests passing).
- Clean build (
> firebase-tools@15.28.1 build
> npm run build:mcp-apps && tsc && npm run copyfiles

> firebase-tools@15.28.1 build:mcp-apps
> vite build --config src/mcp/apps/update_environment/vite.config.ts && vite build --config src/mcp/apps/init/vite.config.ts && vite build --config src/mcp/apps/deploy/vite.config.ts

vite v4.2.1 building for production...
transforming...
✓ 146 modules transformed.
rendering chunks...
../../../../lib/mcp/apps/update_environment/mcp-app.html  139.69 kB
✓ built in 396ms
vite v4.2.1 building for production...
transforming...
✓ 146 modules transformed.
rendering chunks...
../../../../lib/mcp/apps/init/mcp-app.html  142.63 kB
✓ built in 378ms
vite v4.2.1 building for production...
transforming...
✓ 146 modules transformed.
rendering chunks...
../../../../lib/mcp/apps/deploy/mcp-app.html  138.16 kB
✓ built in 371ms
src/extensions/askUserForParam.ts(199,15): error TS2554: Expected 1 arguments, but got 2.
src/extensions/migrate.spec.ts(362,9): error TS2554: Expected 3 arguments, but got 4.
src/extensions/migrate.spec.ts(380,9): error TS2554: Expected 3 arguments, but got 4.) and lint (
> firebase-tools@15.28.1 lint:changed-files
> ts-node ./scripts/lint-changed-files.ts

Ignoring changed files:
 - CHANGELOG.md

/Users/inlined/.gemini/antigravity/worktrees/firebase-tools/super_vertex_darts_17h45/src/commands/index.ts
    4:33  warning  Unexpected any. Specify a different type                    @typescript-eslint/no-explicit-any
    4:51  warning  Unexpected any. Specify a different type                    @typescript-eslint/no-explicit-any
   11:18  warning  Missing return type on function                             @typescript-eslint/explicit-function-return-type
   12:13  warning  Unsafe assignment of an `any` value                         @typescript-eslint/no-unsafe-assignment
   12:32  warning  Require statement not part of import statement              @typescript-eslint/no-var-requires
   13:7   warning  Unsafe member access .register on an `any` value            @typescript-eslint/no-unsafe-member-access
   13:7   warning  Unsafe call of an `any` typed value                         @typescript-eslint/no-unsafe-call
   14:7   warning  Unsafe return of an `any` typed value                       @typescript-eslint/no-unsafe-return
   14:14  warning  Unsafe member access .runner on an `any` value              @typescript-eslint/no-unsafe-member-access
   14:14  warning  Unsafe call of an `any` typed value                         @typescript-eslint/no-unsafe-call
   17:37  warning  Unexpected any. Specify a different type                    @typescript-eslint/no-explicit-any
   18:13  warning  Unsafe assignment of an `any` value                         @typescript-eslint/no-unsafe-assignment
   19:7   warning  Unsafe return of an `any` typed value                       @typescript-eslint/no-unsafe-return
   19:14  warning  Unsafe call of an `any` typed value                         @typescript-eslint/no-unsafe-call
   24:7   warning  Unsafe member access .command on an `any` value             @typescript-eslint/no-unsafe-member-access
   24:7   warning  Unsafe call of an `any` typed value                         @typescript-eslint/no-unsafe-call
   24:7   warning  Require statement not part of import statement              @typescript-eslint/no-var-requires
   33:3   warning  Unsafe member access .debugtokens on an `any` value         @typescript-eslint/no-unsafe-member-access
   34:3   warning  Unsafe member access .debugtokens on an `any` value         @typescript-eslint/no-unsafe-member-access
   35:3   warning  Unsafe member access .debugtokens on an `any` value         @typescript-eslint/no-unsafe-member-access
   36:3   warning  Unsafe member access .debugtokens on an `any` value         @typescript-eslint/no-unsafe-member-access
   41:5   warning  Unsafe member access .services on an `any` value            @typescript-eslint/no-unsafe-member-access
   42:5   warning  Unsafe member access .services on an `any` value            @typescript-eslint/no-unsafe-member-access
   43:5   warning  Unsafe member access .services on an `any` value            @typescript-eslint/no-unsafe-member-access
   44:5   warning  Unsafe member access .services on an `any` value            @typescript-eslint/no-unsafe-member-access
   45:5   warning  Unsafe member access .providers on an `any` value           @typescript-eslint/no-unsafe-member-access
   46:5   warning  Unsafe member access .providers on an `any` value           @typescript-eslint/no-unsafe-member-access
   47:5   warning  Unsafe member access .providers on an `any` value           @typescript-eslint/no-unsafe-member-access
   48:5   warning  Unsafe member access .providers on an `any` value           @typescript-eslint/no-unsafe-member-access
   49:5   warning  Unsafe member access .apps on an `any` value                @typescript-eslint/no-unsafe-member-access
   50:5   warning  Unsafe member access .apps on an `any` value                @typescript-eslint/no-unsafe-member-access
   53:3   warning  Unsafe member access .distribute on an `any` value          @typescript-eslint/no-unsafe-member-access
   54:3   warning  Unsafe member access .testers on an `any` value             @typescript-eslint/no-unsafe-member-access
   55:3   warning  Unsafe member access .testers on an `any` value             @typescript-eslint/no-unsafe-member-access
   56:3   warning  Unsafe member access .testers on an `any` value             @typescript-eslint/no-unsafe-member-access
   57:3   warning  Unsafe member access .testers on an `any` value             @typescript-eslint/no-unsafe-member-access
   58:3   warning  Unsafe member access .groups on an `any` value              @typescript-eslint/no-unsafe-member-access
   59:3   warning  Unsafe member access .groups on an `any` value              @typescript-eslint/no-unsafe-member-access
   60:3   warning  Unsafe member access .groups on an `any` value              @typescript-eslint/no-unsafe-member-access
   61:3   warning  Unsafe member access .groups on an `any` value              @typescript-eslint/no-unsafe-member-access
   62:3   warning  Unsafe assignment of an `any` value                         @typescript-eslint/no-unsafe-assignment
   62:3   warning  Unsafe member access .group on an `any` value               @typescript-eslint/no-unsafe-member-access
   62:34  warning  Unsafe member access .groups on an `any` value              @typescript-eslint/no-unsafe-member-access
   63:3   warning  Unsafe member access .testCases on an `any` value           @typescript-eslint/no-unsafe-member-access
   64:3   warning  Unsafe member access .testCases on an `any` value           @typescript-eslint/no-unsafe-member-access
   65:3   warning  Unsafe member access .testCases on an `any` value           @typescript-eslint/no-unsafe-member-access
   67:3   warning  Unsafe member access .execute on an `any` value             @typescript-eslint/no-unsafe-member-access
   69:5   warning  Unsafe member access .wata on an `any` value                @typescript-eslint/no-unsafe-member-access
   72:3   warning  Unsafe member access .create on an `any` value              @typescript-eslint/no-unsafe-member-access
   73:3   warning  Unsafe member access .list on an `any` value                @typescript-eslint/no-unsafe-member-access
   74:3   warning  Unsafe member access .init on an `any` value                @typescript-eslint/no-unsafe-member-access
   75:3   warning  Unsafe member access .sdkconfig on an `any` value           @typescript-eslint/no-unsafe-member-access
   76:3   warning  Unsafe member access .android on an `any` value             @typescript-eslint/no-unsafe-member-access
   77:3   warning  Unsafe member access .android on an `any` value             @typescript-eslint/no-unsafe-member-access
   78:3   warning  Unsafe member access .android on an `any` value             @typescript-eslint/no-unsafe-member-access
   79:3   warning  Unsafe member access .android on an `any` value             @typescript-eslint/no-unsafe-member-access
   80:3   warning  Unsafe member access .android on an `any` value             @typescript-eslint/no-unsafe-member-access
   82:3   warning  Unsafe member access .export on an `any` value              @typescript-eslint/no-unsafe-member-access
   83:3   warning  Unsafe member access .import on an `any` value              @typescript-eslint/no-unsafe-member-access
   85:3   warning  Unsafe member access .onboard on an `any` value             @typescript-eslint/no-unsafe-member-access
   86:3   warning  Unsafe member access .onboard on an `any` value             @typescript-eslint/no-unsafe-member-access
   87:3   warning  Unsafe member access .symbols on an `any` value             @typescript-eslint/no-unsafe-member-access
   88:3   warning  Unsafe member access .symbols on an `any` value             @typescript-eslint/no-unsafe-member-access
   89:3   warning  Unsafe member access .mappingfile on an `any` value         @typescript-eslint/no-unsafe-member-access
   90:3   warning  Unsafe member access .mappingfile on an `any` value         @typescript-eslint/no-unsafe-member-access
   91:3   warning  Unsafe member access .mappingfile on an `any` value         @typescript-eslint/no-unsafe-member-access
   93:5   warning  Unsafe member access .sourcemap on an `any` value           @typescript-eslint/no-unsafe-member-access
   94:5   warning  Unsafe member access .sourcemap on an `any` value           @typescript-eslint/no-unsafe-member-access
   97:3   warning  Unsafe member access .get on an `any` value                 @typescript-eslint/no-unsafe-member-access
   98:3   warning  Unsafe member access .import on an `any` value              @typescript-eslint/no-unsafe-member-access
   99:3   warning  Unsafe member access .instances on an `any` value           @typescript-eslint/no-unsafe-member-access
  100:3   warning  Unsafe member access .instances on an `any` value           @typescript-eslint/no-unsafe-member-access
  101:3   warning  Unsafe member access .instances on an `any` value           @typescript-eslint/no-unsafe-member-access
  102:3   warning  Unsafe member access .profile on an `any` value             @typescript-eslint/no-unsafe-member-access
  103:3   warning  Unsafe member access .push on an `any` value                @typescript-eslint/no-unsafe-member-access
  104:3   warning  Unsafe member access .remove on an `any` value              @typescript-eslint/no-unsafe-member-access
  106:5   warning  Unsafe member access .rules on an `any` value               @typescript-eslint/no-unsafe-member-access
  107:5   warning  Unsafe member access .rules on an `any` value               @typescript-eslint/no-unsafe-member-access
  108:5   warning  Unsafe member access .rules on an `any` value               @typescript-eslint/no-unsafe-member-access
  109:5   warning  Unsafe member access .rules on an `any` value               @typescript-eslint/no-unsafe-member-access
  110:5   warning  Unsafe member access .rules on an `any` value               @typescript-eslint/no-unsafe-member-access
  111:5   warning  Unsafe member access .rules on an `any` value               @typescript-eslint/no-unsafe-member-access
  113:3   warning  Unsafe member access .set on an `any` value                 @typescript-eslint/no-unsafe-member-access
  114:3   warning  Unsafe member access .settings on an `any` value            @typescript-eslint/no-unsafe-member-access
  115:3   warning  Unsafe member access .settings on an `any` value            @typescript-eslint/no-unsafe-member-access
  116:3   warning  Unsafe member access .settings on an `any` value            @typescript-eslint/no-unsafe-member-access
  117:3   warning  Unsafe member access .update on an `any` value              @typescript-eslint/no-unsafe-member-access
  120:3   warning  Unsafe member access .exec on an `any` value                @typescript-eslint/no-unsafe-member-access
  121:3   warning  Unsafe member access .export on an `any` value              @typescript-eslint/no-unsafe-member-access
  122:3   warning  Unsafe member access .start on an `any` value               @typescript-eslint/no-unsafe-member-access
  124:3   warning  Unsafe member access .list on an `any` value                @typescript-eslint/no-unsafe-member-access
  125:3   warning  Unsafe member access .describe on an `any` value            @typescript-eslint/no-unsafe-member-access
  126:3   warning  Unsafe member access .enable on an `any` value              @typescript-eslint/no-unsafe-member-access
  127:3   warning  Unsafe member access .disable on an `any` value             @typescript-eslint/no-unsafe-member-access
  129:3   warning  Unsafe member access .configure on an `any` value           @typescript-eslint/no-unsafe-member-access
  130:3   warning  Unsafe member access .info on an `any` value                @typescript-eslint/no-unsafe-member-access
  131:3   warning  Unsafe member access .export on an `any` value              @typescript-eslint/no-unsafe-member-access
  132:3   warning  Unsafe member access .install on an `any` value             @typescript-eslint/no-unsafe-member-access
  133:3   warning  Unsafe member access .list on an `any` value                @typescript-eslint/no-unsafe-member-access
  134:3   warning  Unsafe member access .uninstall on an `any` value           @typescript-eslint/no-unsafe-member-access
  135:3   warning  Unsafe member access .update on an `any` value              @typescript-eslint/no-unsafe-member-access
  137:5   warning  Unsafe member access .migrate on an `any` value             @typescript-eslint/no-unsafe-member-access
  139:3   warning  Unsafe member access .sdk on an `any` value                 @typescript-eslint/no-unsafe-member-access
  140:3   warning  Unsafe member access .sdk on an `any` value                 @typescript-eslint/no-unsafe-member-access
  141:3   warning  Unsafe member access .dev on an `any` value                 @typescript-eslint/no-unsafe-member-access
  142:3   warning  Unsafe member access .dev on an `any` value                 @typescript-eslint/no-unsafe-member-access
  143:3   warning  Unsafe member access .dev on an `any` value                 @typescript-eslint/no-unsafe-member-access
  144:3   warning  Unsafe member access .dev on an `any` value                 @typescript-eslint/no-unsafe-member-access
  145:3   warning  Unsafe member access .dev on an `any` value                 @typescript-eslint/no-unsafe-member-access
  146:3   warning  Unsafe member access .dev on an `any` value                 @typescript-eslint/no-unsafe-member-access
  147:3   warning  Unsafe member access .dev on an `any` value                 @typescript-eslint/no-unsafe-member-access
  148:3   warning  Unsafe member access .dev on an `any` value                 @typescript-eslint/no-unsafe-member-access
  150:3   warning  Unsafe member access .delete on an `any` value              @typescript-eslint/no-unsafe-member-access
  151:3   warning  Unsafe member access .bulkDelete on an `any` value          @typescript-eslint/no-unsafe-member-access
  152:3   warning  Unsafe member access .indexes on an `any` value             @typescript-eslint/no-unsafe-member-access
  153:3   warning  Unsafe member access .locations on an `any` value           @typescript-eslint/no-unsafe-member-access
  154:3   warning  Unsafe member access .operations on an `any` value          @typescript-eslint/no-unsafe-member-access
  155:3   warning  Unsafe member access .operations on an `any` value          @typescript-eslint/no-unsafe-member-access
  156:3   warning  Unsafe member access .operations on an `any` value          @typescript-eslint/no-unsafe-member-access
  157:3   warning  Unsafe member access .operations on an `any` value          @typescript-eslint/no-unsafe-member-access
  158:3   warning  Unsafe member access .databases on an `any` value           @typescript-eslint/no-unsafe-member-access
  159:3   warning  Unsafe member access .databases on an `any` value           @typescript-eslint/no-unsafe-member-access
  160:3   warning  Unsafe member access .databases on an `any` value           @typescript-eslint/no-unsafe-member-access
  161:3   warning  Unsafe member access .databases on an `any` value           @typescript-eslint/no-unsafe-member-access
  162:3   warning  Unsafe member access .databases on an `any` value           @typescript-eslint/no-unsafe-member-access
  163:3   warning  Unsafe member access .databases on an `any` value           @typescript-eslint/no-unsafe-member-access
  164:3   warning  Unsafe member access .databases on an `any` value           @typescript-eslint/no-unsafe-member-access
  165:3   warning  Unsafe member access .databases on an `any` value           @typescript-eslint/no-unsafe-member-access
  166:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  167:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  168:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  169:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  170:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  171:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  172:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  173:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  174:3   warning  Unsafe member access .backups on an `any` value             @typescript-eslint/no-unsafe-member-access
  176:3   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  177:3   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  178:3   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  179:3   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  180:3   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  181:3   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  182:3   warning  Unsafe member access .delete on an `any` value              @typescript-eslint/no-unsafe-member-access
  184:5   warning  Unsafe member access .export on an `any` value              @typescript-eslint/no-unsafe-member-access
  186:3   warning  Unsafe member access .log on an `any` value                 @typescript-eslint/no-unsafe-member-access
  187:3   warning  Unsafe member access .shell on an `any` value               @typescript-eslint/no-unsafe-member-access
  188:3   warning  Unsafe member access .list on an `any` value                @typescript-eslint/no-unsafe-member-access
  189:3   warning  Unsafe member access .lifecycle on an `any` value           @typescript-eslint/no-unsafe-member-access
  190:3   warning  Unsafe member access .lifecycle on an `any` value           @typescript-eslint/no-unsafe-member-access
  191:3   warning  Unsafe member access .lifecycle on an `any` value           @typescript-eslint/no-unsafe-member-access
  193:5   warning  Unsafe member access .deletegcfartifacts on an `any` value  @typescript-eslint/no-unsafe-member-access
  195:3   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  196:3   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  197:3   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  198:3   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  199:3   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  200:3   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  201:3   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  202:3   warning  Unsafe member access .artifacts on an `any` value           @typescript-eslint/no-unsafe-member-access
  203:3   warning  Unsafe member access .artifacts on an `any` value           @typescript-eslint/no-unsafe-member-access
  205:5   warning  Unsafe member access .kits on an `any` value                @typescript-eslint/no-unsafe-member-access
  206:5   warning  Unsafe member access .kits on an `any` value                @typescript-eslint/no-unsafe-member-access
  207:5   warning  Unsafe member access .kits on an `any` value                @typescript-eslint/no-unsafe-member-access
  211:3   warning  Unsafe member access .channel on an `any` value             @typescript-eslint/no-unsafe-member-access
  212:3   warning  Unsafe member access .channel on an `any` value             @typescript-eslint/no-unsafe-member-access
  213:3   warning  Unsafe member access .channel on an `any` value             @typescript-eslint/no-unsafe-member-access
  214:3   warning  Unsafe member access .channel on an `any` value             @typescript-eslint/no-unsafe-member-access
  215:3   warning  Unsafe member access .channel on an `any` value             @typescript-eslint/no-unsafe-member-access
  216:3   warning  Unsafe member access .channel on an `any` value             @typescript-eslint/no-unsafe-member-access
  217:3   warning  Unsafe member access .clone on an `any` value               @typescript-eslint/no-unsafe-member-access
  218:3   warning  Unsafe member access .disable on an `any` value             @typescript-eslint/no-unsafe-member-access
  219:3   warning  Unsafe member access .sites on an `any` value               @typescript-eslint/no-unsafe-member-access
  220:3   warning  Unsafe member access .sites on an `any` value               @typescript-eslint/no-unsafe-member-access
  221:3   warning  Unsafe member access .sites on an `any` value               @typescript-eslint/no-unsafe-member-access
  222:3   warning  Unsafe member access .sites on an `any` value               @typescript-eslint/no-unsafe-member-access
  223:3   warning  Unsafe member access .sites on an `any` value               @typescript-eslint/no-unsafe-member-access
  227:5   warning  Unsafe member access .frameworks on an `any` value          @typescript-eslint/no-unsafe-member-access
  228:5   warning  Unsafe member access .frameworks on an `any` value          @typescript-eslint/no-unsafe-member-access
  229:5   warning  Unsafe member access .functions on an `any` value           @typescript-eslint/no-unsafe-member-access
  230:5   warning  Unsafe member access .functions on an `any` value           @typescript-eslint/no-unsafe-member-access
  234:5   warning  Unsafe member access .backends on an `any` value            @typescript-eslint/no-unsafe-member-access
  235:5   warning  Unsafe member access .backends on an `any` value            @typescript-eslint/no-unsafe-member-access
  236:5   warning  Unsafe member access .backends on an `any` value            @typescript-eslint/no-unsafe-member-access
  237:5   warning  Unsafe member access .backends on an `any` value            @typescript-eslint/no-unsafe-member-access
  238:5   warning  Unsafe member access .backends on an `any` value            @typescript-eslint/no-unsafe-member-access
  239:5   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  240:5   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  241:5   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  242:5   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  243:5   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  244:5   warning  Unsafe member access .secrets on an `any` value             @typescript-eslint/no-unsafe-member-access
  245:5   warning  Unsafe member access .rollouts on an `any` value            @typescript-eslint/no-unsafe-member-access
  246:5   warning  Unsafe member access .rollouts on an `any` value            @typescript-eslint/no-unsafe-member-access
  247:5   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  249:7   warning  Unsafe member access .builds on an `any` value              @typescript-eslint/no-unsafe-member-access
  250:7   warning  Unsafe member access .builds on an `any` value              @typescript-eslint/no-unsafe-member-access
  251:7   warning  Unsafe member access .builds on an `any` value              @typescript-eslint/no-unsafe-member-access
  252:7   warning  Unsafe member access .repos on an `any` value               @typescript-eslint/no-unsafe-member-access
  253:7   warning  Unsafe member access .repos on an `any` value               @typescript-eslint/no-unsafe-member-access
  254:7   warning  Unsafe member access .rollouts on an `any` value            @typescript-eslint/no-unsafe-member-access
  261:5   warning  Unsafe member access .providers on an `any` value           @typescript-eslint/no-unsafe-member-access
  262:5   warning  Unsafe member access .providers on an `any` value           @typescript-eslint/no-unsafe-member-access
  263:5   warning  Unsafe member access .providers on an `any` value           @typescript-eslint/no-unsafe-member-access
  264:5   warning  Unsafe member access .providers on an `any` value           @typescript-eslint/no-unsafe-member-access
  265:5   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  266:5   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  267:5   warning  Unsafe member access .config on an `any` value              @typescript-eslint/no-unsafe-member-access
  268:5   warning  Unsafe member access .templates on an `any` value           @typescript-eslint/no-unsafe-member-access
  269:5   warning  Unsafe member access .templates on an `any` value           @typescript-eslint/no-unsafe-member-access
  270:5   warning  Unsafe member access .templates on an `any` value           @typescript-eslint/no-unsafe-member-access
  271:5   warning  Unsafe member access .templates on an `any` value           @typescript-eslint/no-unsafe-member-access
  272:5   warning  Unsafe member access .templates on an `any` value           @typescript-eslint/no-unsafe-member-access
  273:5   warning  Unsafe member access .templates on an `any` value           @typescript-eslint/no-unsafe-member-access
  277:3   warning  Unsafe member access .add on an `any` value                 @typescript-eslint/no-unsafe-member-access
  278:3   warning  Unsafe member access .ci on an `any` value                  @typescript-eslint/no-unsafe-member-access
  279:3   warning  Unsafe member access .list on an `any` value                @typescript-eslint/no-unsafe-member-access
  280:3   warning  Unsafe member access .use on an `any` value                 @typescript-eslint/no-unsafe-member-access
  287:3   warning  Unsafe member access .addfirebase on an `any` value         @typescript-eslint/no-unsafe-member-access
  288:3   warning  Unsafe member access .create on an `any` value              @typescript-eslint/no-unsafe-member-access
  289:3   warning  Unsafe member access .list on an `any` value                @typescript-eslint/no-unsafe-member-access
  291:3   warning  Unsafe member access .get on an `any` value                 @typescript-eslint/no-unsafe-member-access
  292:3   warning  Unsafe member access .rollback on an `any` value            @typescript-eslint/no-unsafe-member-access
  293:3   warning  Unsafe member access .versions on an `any` value            @typescript-eslint/no-unsafe-member-access
  294:3   warning  Unsafe member access .versions on an `any` value            @typescript-eslint/no-unsafe-member-access
  295:3   warning  Unsafe member access .rollouts on an `any` value            @typescript-eslint/no-unsafe-member-access
  296:3   warning  Unsafe member access .rollouts on an `any` value            @typescript-eslint/no-unsafe-member-access
  297:3   warning  Unsafe member access .rollouts on an `any` value            @typescript-eslint/no-unsafe-member-access
  298:3   warning  Unsafe member access .rollouts on an `any` value            @typescript-eslint/no-unsafe-member-access
  299:3   warning  Unsafe member access .experiments on an `any` value         @typescript-eslint/no-unsafe-member-access
  300:3   warning  Unsafe member access .experiments on an `any` value         @typescript-eslint/no-unsafe-member-access
  301:3   warning  Unsafe member access .experiments on an `any` value         @typescript-eslint/no-unsafe-member-access
  302:3   warning  Unsafe member access .experiments on an `any` value         @typescript-eslint/no-unsafe-member-access
  305:3   warning  Unsafe member access .emulators on an `any` value           @typescript-eslint/no-unsafe-member-access
  306:3   warning  Unsafe member access .emulators on an `any` value           @typescript-eslint/no-unsafe-member-access
  307:3   warning  Unsafe member access .emulators on an `any` value           @typescript-eslint/no-unsafe-member-access
  308:3   warning  Unsafe member access .emulators on an `any` value           @typescript-eslint/no-unsafe-member-access
  309:3   warning  Unsafe member access .emulators on an `any` value           @typescript-eslint/no-unsafe-member-access
  310:3   warning  Unsafe member access .emulators on an `any` value           @typescript-eslint/no-unsafe-member-access
  312:3   warning  Unsafe member access .emulators on an `any` value           @typescript-eslint/no-unsafe-member-access
  313:3   warning  Unsafe member access .execute on an `any` value             @typescript-eslint/no-unsafe-member-access
  314:3   warning  Unsafe member access .services on an `any` value            @typescript-eslint/no-unsafe-member-access
  315:3   warning  Unsafe member access .services on an `any` value            @typescript-eslint/no-unsafe-member-access
  316:3   warning  Unsafe member access .sql on an `any` value                 @typescript-eslint/no-unsafe-member-access
  317:3   warning  Unsafe member access .sql on an `any` value                 @typescript-eslint/no-unsafe-member-access
  318:3   warning  Unsafe member access .sql on an `any` value                 @typescript-eslint/no-unsafe-member-access
  319:3   warning  Unsafe member access .sql on an `any` value                 @typescript-eslint/no-unsafe-member-access
  320:3   warning  Unsafe member access .sql on an `any` value                 @typescript-eslint/no-unsafe-member-access
  321:3   warning  Unsafe member access .sql on an `any` value                 @typescript-eslint/no-unsafe-member-access
  322:3   warning  Unsafe member access .compile on an `any` value             @typescript-eslint/no-unsafe-member-access
  323:3   warning  Unsafe member access .sdk on an `any` value                 @typescript-eslint/no-unsafe-member-access
  324:3   warning  Unsafe member access .sdk on an `any` value                 @typescript-eslint/no-unsafe-member-access
  326:3   warning  Unsafe member access .export on an `any` value              @typescript-eslint/no-unsafe-member-access
  328:3   warning  Unsafe member access .apply on an `any` value               @typescript-eslint/no-unsafe-member-access
  329:3   warning  Unsafe member access .clear on an `any` value               @typescript-eslint/no-unsafe-member-access
  330:3   warning  Unsafe member access .remove on an `any` value              @typescript-eslint/no-unsafe-member-access

/Users/inlined/.gemini/antigravity/worktrees/firebase-tools/super_vertex_darts_17h45/src/extensions/askUserForParam.ts
   82:1   warning  @param path declaration ("args.projectId") appears before any real parameter                                                    jsdoc/check-param-names
  130:64  warning  Unsafe argument of type `any` assigned to a parameter of type `((value: void) => void | PromiseLike<void>) | null | undefined`  @typescript-eslint/no-unsafe-argument
  130:71  warning  Unexpected any. Specify a different type                                                                                        @typescript-eslint/no-explicit-any
  141:50  warning  Unsafe argument of type `any` assigned to a parameter of type `((value: void) => void | PromiseLike<void>) | null | undefined`  @typescript-eslint/no-unsafe-argument
  141:57  warning  Unexpected any. Specify a different type                                                                                        @typescript-eslint/no-explicit-any
  149:1   warning  @param path declaration ("args.projectId") appears before any real parameter                                                    jsdoc/check-param-names

/Users/inlined/.gemini/antigravity/worktrees/firebase-tools/super_vertex_darts_17h45/src/extensions/migrate.spec.ts
  352:67  warning  Unsafe argument of type `any` assigned to a parameter of type `ExtensionVersion | undefined`  @typescript-eslint/no-unsafe-argument
  356:12  warning  Unexpected any. Specify a different type                                                      @typescript-eslint/no-explicit-any
  370:67  warning  Unsafe argument of type `any` assigned to a parameter of type `ExtensionVersion | undefined`  @typescript-eslint/no-unsafe-argument
  374:12  warning  Unexpected any. Specify a different type                                                      @typescript-eslint/no-explicit-any

/Users/inlined/.gemini/antigravity/worktrees/firebase-tools/super_vertex_darts_17h45/src/extensions/paramHelper.ts
   30:8   warning  Missing JSDoc comment                                    jsdoc/require-jsdoc
   43:8   warning  Missing JSDoc comment                                    jsdoc/require-jsdoc
   58:1   warning  Expected only 0 line after block description             jsdoc/tag-lines
   80:1   warning  Missing @param "args.projectId"                          jsdoc/check-param-names
   80:1   warning  Missing @param "args.instanceId"                         jsdoc/check-param-names
   80:1   warning  Missing @param "args.paramSpecs"                         jsdoc/check-param-names
   80:1   warning  Missing @param "args.nonInteractive"                     jsdoc/check-param-names
   80:1   warning  Missing @param "args.reconfiguring"                      jsdoc/check-param-names
   81:1   warning  @param "projectId" does not match parameter name "args"  jsdoc/check-param-names
  109:8   warning  Missing JSDoc comment                                    jsdoc/require-jsdoc
  134:1   warning  Expected only 0 line after block description             jsdoc/tag-lines
  135:1   warning  Missing @param "args.spec"                               jsdoc/check-param-names
  135:1   warning  Missing @param "args.newSpec"                            jsdoc/check-param-names
  135:1   warning  Missing @param "args.currentParams"                      jsdoc/check-param-names
  135:1   warning  Missing @param "args.projectId"                          jsdoc/check-param-names
  135:1   warning  Missing @param "args.instanceId"                         jsdoc/check-param-names
  136:1   warning  @param "spec" does not match parameter name "args"       jsdoc/check-param-names
  267:8   warning  Missing JSDoc comment                                    jsdoc/require-jsdoc
  280:8   warning  Missing JSDoc comment                                    jsdoc/require-jsdoc
  281:49  warning  Unnecessary escape character: \.                         no-useless-escape
  285:8   warning  Missing JSDoc comment                                    jsdoc/require-jsdoc
  303:8   warning  Missing JSDoc comment                                    jsdoc/require-jsdoc

/Users/inlined/.gemini/antigravity/worktrees/firebase-tools/super_vertex_darts_17h45/src/extensions/updateHelper.ts
   27:8    warning  Missing JSDoc comment                                                  jsdoc/require-jsdoc
   65:8    warning  Missing return type on function                                        @typescript-eslint/explicit-function-return-type
   78:123  warning  Invalid type "string | undefined" of template literal expression       @typescript-eslint/restrict-template-expressions
  110:69   warning  Unexpected any. Specify a different type                               @typescript-eslint/no-explicit-any
  167:17   warning  Unexpected any. Specify a different type                               @typescript-eslint/no-explicit-any
  185:1    warning  @param "existingSource" does not match an existing function parameter  jsdoc/check-param-names
  197:17   warning  Unexpected any. Specify a different type                               @typescript-eslint/no-explicit-any
  209:8    warning  Missing JSDoc comment                                                  jsdoc/require-jsdoc

/Users/inlined/.gemini/antigravity/worktrees/firebase-tools/super_vertex_darts_17h45/src/prompt.ts
   34:1  warning  Expected only 0 line after block description                               jsdoc/tag-lines
   37:1  warning  Invalid JSDoc tag (preference). Replace "returns" JSDoc tag with "return"  jsdoc/check-tag-names
   80:8  warning  Missing JSDoc comment                                                      jsdoc/require-jsdoc
  112:8  warning  Missing return type on function                                            @typescript-eslint/explicit-function-return-type
  112:8  warning  Missing JSDoc comment                                                      jsdoc/require-jsdoc
  247:8  warning  Missing JSDoc comment                                                      jsdoc/require-jsdoc
  281:8  warning  Missing JSDoc comment                                                      jsdoc/require-jsdoc

✖ 303 problems (0 errors, 303 warnings)
  0 errors and 17 warnings potentially fixable with the `--fix` option.).

* fix: rebase cleanly onto #10974 and resolve TypeScript and lint warnings

* fix: resolve merge conflict in migrate.spec.ts

* fix: use finalParams ?? {} when prompting for new parameters

* fix: restore getInquirerDefault behavior and checkbox prompt guard in non-interactive mode

* feat: force extension upgrading during migration and restore prompting for new non-system params

* refactor: rename tryUpdateInstance to ensureInstanceUpToDate and extract spec fetch helpers

* fix: revert nullish coalescing in getInquirerDefault and require manual upgrade on failure

* feat: prompt user to continue when extension ref parsing fails during ensureInstanceUpToDate

* chore: restore missing CHANGELOG entry

* fix: merge instance.config.systemParams into finalParams during extension update

* fix: restore MULTISELECT pre-checked defaults, rename getLatestExtensionVersionNumber, and fix log tone
T
Thomas Bouldin committed
8d4c6b440ab63ad5326a368d84d95d7385fc1308
Parent: be0000e
Committed by GitHub <noreply@github.com> on 8/31/2026, 3:58:55 PM