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