firebase-tools 15.0.0 → 15.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/lib/accountExporter.js +3 -5
  2. package/lib/accountImporter.js +4 -5
  3. package/lib/api.js +3 -3
  4. package/lib/apiv2.js +9 -13
  5. package/lib/appUtils.js +33 -36
  6. package/lib/appdistribution/client.js +4 -8
  7. package/lib/appdistribution/distribution.js +4 -4
  8. package/lib/appdistribution/options-parser-util.js +8 -9
  9. package/lib/appdistribution/types.js +2 -2
  10. package/lib/appdistribution/yaml_helper.js +33 -17
  11. package/lib/apphosting/app.js +8 -13
  12. package/lib/apphosting/backend.js +34 -24
  13. package/lib/apphosting/config.js +14 -14
  14. package/lib/apphosting/githubConnections.js +38 -35
  15. package/lib/apphosting/localbuilds.js +4 -6
  16. package/lib/apphosting/repo.js +24 -20
  17. package/lib/apphosting/rollout.js +12 -5
  18. package/lib/apphosting/secrets/dialogs.js +9 -9
  19. package/lib/apphosting/secrets/index.js +9 -11
  20. package/lib/apphosting/utils.js +2 -3
  21. package/lib/apphosting/yaml.js +12 -11
  22. package/lib/apptesting/ensureProjectConfigured.js +1 -2
  23. package/lib/apptesting/invokeTests.js +2 -3
  24. package/lib/apptesting/parseTestFiles.js +5 -6
  25. package/lib/apptesting/types.js +2 -2
  26. package/lib/archiveDirectory.js +1 -2
  27. package/lib/auth.js +36 -40
  28. package/lib/bin/cli.js +2 -3
  29. package/lib/bin/mcp.js +47 -10
  30. package/lib/checkMinRequiredVersion.js +1 -2
  31. package/lib/checkValidTargetFilters.js +1 -2
  32. package/lib/command.js +6 -9
  33. package/lib/commands/appdistribution-testers-list.js +2 -3
  34. package/lib/commands/apphosting-backends-list.js +4 -6
  35. package/lib/commands/apphosting-builds-create.js +2 -3
  36. package/lib/commands/apphosting-builds-get.js +1 -2
  37. package/lib/commands/apphosting-rollouts-list.js +1 -2
  38. package/lib/commands/apps-init.js +1 -1
  39. package/lib/commands/{apptesting-execute.js → apptesting-wata.js} +3 -4
  40. package/lib/commands/crashlytics-symbols-upload.js +2 -2
  41. package/lib/commands/dataconnect-execute.js +4 -4
  42. package/lib/commands/dataconnect-sdk-generate.js +5 -6
  43. package/lib/commands/dataconnect-services-list.js +7 -8
  44. package/lib/commands/dataconnect-sql-diff.js +1 -2
  45. package/lib/commands/dataconnect-sql-migrate.js +4 -3
  46. package/lib/commands/dataconnect-sql-setup.js +2 -2
  47. package/lib/commands/dataconnect-sql-shell.js +5 -1
  48. package/lib/commands/emulators-start.js +1 -2
  49. package/lib/commands/ext-configure.js +6 -4
  50. package/lib/commands/ext-dev-list.js +2 -3
  51. package/lib/commands/ext-dev-upload.js +2 -2
  52. package/lib/commands/ext-export.js +1 -1
  53. package/lib/commands/ext-info.js +2 -3
  54. package/lib/commands/ext-install.js +5 -7
  55. package/lib/commands/firestore-backups-list.js +1 -2
  56. package/lib/commands/firestore-backups-schedules-list.js +1 -2
  57. package/lib/commands/firestore-indexes-list.js +1 -2
  58. package/lib/commands/firestore-utils.js +1 -2
  59. package/lib/commands/functions-artifacts-setpolicy.js +1 -2
  60. package/lib/commands/functions-config-export.js +2 -3
  61. package/lib/commands/hosting-channel-deploy.js +2 -2
  62. package/lib/commands/hosting-clone.js +2 -3
  63. package/lib/commands/hosting-sites-create.js +1 -1
  64. package/lib/commands/index.js +2 -3
  65. package/lib/commands/init.js +4 -5
  66. package/lib/commands/internaltesting-functions-discover.js +1 -1
  67. package/lib/commands/login.js +4 -5
  68. package/lib/commands/logout.js +3 -3
  69. package/lib/commands/projects-create.js +1 -1
  70. package/lib/commands/remoteconfig-experiments-list.js +2 -3
  71. package/lib/commands/remoteconfig-get.js +1 -1
  72. package/lib/commands/remoteconfig-rollback.js +1 -2
  73. package/lib/commands/remoteconfig-rollouts-list.js +2 -3
  74. package/lib/commands/remoteconfig-versions-list.js +3 -4
  75. package/lib/commands/use.js +3 -3
  76. package/lib/config.js +4 -5
  77. package/lib/crashlytics/buildToolsJarHelper.js +3 -5
  78. package/lib/crashlytics/events.js +4 -7
  79. package/lib/crashlytics/filters.js +10 -12
  80. package/lib/crashlytics/issues.js +2 -3
  81. package/lib/crashlytics/notes.js +3 -4
  82. package/lib/crashlytics/reports.js +21 -15
  83. package/lib/crashlytics/types.js +7 -7
  84. package/lib/crashlytics/utils.js +4 -4
  85. package/lib/database/api.js +2 -3
  86. package/lib/database/import.js +4 -4
  87. package/lib/database/metadata.js +5 -6
  88. package/lib/database/rulesConfig.js +2 -3
  89. package/lib/dataconnect/build.js +10 -13
  90. package/lib/dataconnect/checkIam.js +1 -2
  91. package/lib/dataconnect/client.js +15 -18
  92. package/lib/dataconnect/dataplaneClient.js +6 -6
  93. package/lib/dataconnect/ensureApis.js +2 -3
  94. package/lib/dataconnect/errors.js +8 -11
  95. package/lib/dataconnect/filters.js +2 -3
  96. package/lib/dataconnect/freeTrial.js +3 -4
  97. package/lib/dataconnect/graphqlError.js +5 -8
  98. package/lib/dataconnect/load.js +10 -11
  99. package/lib/dataconnect/names.js +14 -18
  100. package/lib/dataconnect/prompts.js +1 -2
  101. package/lib/dataconnect/provisionCloudSql.js +13 -17
  102. package/lib/dataconnect/schemaMigration.js +60 -27
  103. package/lib/dataconnect/types.js +10 -12
  104. package/lib/dataconnect/webhook.js +3 -3
  105. package/lib/defaultCredentials.js +3 -4
  106. package/lib/deploy/apphosting/deploy.js +2 -3
  107. package/lib/deploy/apphosting/prepare.js +3 -5
  108. package/lib/deploy/apphosting/release.js +1 -1
  109. package/lib/deploy/apphosting/util.js +1 -2
  110. package/lib/deploy/database/deploy.js +1 -2
  111. package/lib/deploy/database/prepare.js +1 -2
  112. package/lib/deploy/database/release.js +1 -2
  113. package/lib/deploy/dataconnect/context.js +15 -4
  114. package/lib/deploy/dataconnect/deploy.js +5 -6
  115. package/lib/deploy/dataconnect/prepare.js +7 -9
  116. package/lib/deploy/dataconnect/release.js +7 -10
  117. package/lib/deploy/extensions/deploy.js +7 -9
  118. package/lib/deploy/extensions/deploymentSummary.js +6 -7
  119. package/lib/deploy/extensions/planner.js +15 -18
  120. package/lib/deploy/extensions/prepare.js +9 -11
  121. package/lib/deploy/extensions/release.js +10 -12
  122. package/lib/deploy/extensions/secrets.js +8 -11
  123. package/lib/deploy/extensions/tasks.js +6 -8
  124. package/lib/deploy/extensions/v2FunctionHelper.js +2 -3
  125. package/lib/deploy/extensions/validate.js +1 -2
  126. package/lib/deploy/firestore/deploy.js +3 -5
  127. package/lib/deploy/firestore/prepare.js +2 -3
  128. package/lib/deploy/firestore/release.js +3 -4
  129. package/lib/deploy/functions/backend.js +52 -42
  130. package/lib/deploy/functions/build.js +41 -15
  131. package/lib/deploy/functions/cache/applyHash.js +3 -5
  132. package/lib/deploy/functions/cache/hash.js +4 -5
  133. package/lib/deploy/functions/cel.js +3 -3
  134. package/lib/deploy/functions/checkIam.js +8 -8
  135. package/lib/deploy/functions/containerCleaner.js +10 -6
  136. package/lib/deploy/functions/deploy.js +6 -8
  137. package/lib/deploy/functions/ensure.js +6 -9
  138. package/lib/deploy/functions/functionsDeployHelper.js +10 -11
  139. package/lib/deploy/functions/params.js +10 -10
  140. package/lib/deploy/functions/prepare.js +41 -36
  141. package/lib/deploy/functions/prepareFunctionsUpload.js +24 -10
  142. package/lib/deploy/functions/pricing.js +3 -3
  143. package/lib/deploy/functions/prompts.js +7 -10
  144. package/lib/deploy/functions/release/executor.js +5 -6
  145. package/lib/deploy/functions/release/fabricator.js +76 -29
  146. package/lib/deploy/functions/release/index.js +23 -14
  147. package/lib/deploy/functions/release/planner.js +15 -14
  148. package/lib/deploy/functions/release/reporter.js +20 -20
  149. package/lib/deploy/functions/release/sourceTokenScraper.js +4 -5
  150. package/lib/deploy/functions/remoteSource.js +3 -4
  151. package/lib/deploy/functions/runtimes/discovery/index.js +9 -12
  152. package/lib/deploy/functions/runtimes/discovery/parsing.js +2 -3
  153. package/lib/deploy/functions/runtimes/discovery/v1alpha1.js +29 -10
  154. package/lib/deploy/functions/runtimes/index.js +1 -2
  155. package/lib/deploy/functions/runtimes/node/index.js +18 -9
  156. package/lib/deploy/functions/runtimes/node/parseRuntimeAndValidateSDK.js +2 -2
  157. package/lib/deploy/functions/runtimes/node/validate.js +1 -2
  158. package/lib/deploy/functions/runtimes/node/versioning.js +6 -7
  159. package/lib/deploy/functions/runtimes/python/index.js +12 -12
  160. package/lib/deploy/functions/runtimes/supported/index.js +5 -6
  161. package/lib/deploy/functions/services/auth.js +49 -36
  162. package/lib/deploy/functions/services/database.js +1 -2
  163. package/lib/deploy/functions/services/dataconnect.js +16 -2
  164. package/lib/deploy/functions/services/firebaseAlerts.js +1 -2
  165. package/lib/deploy/functions/services/firestore.js +3 -5
  166. package/lib/deploy/functions/services/index.js +2 -2
  167. package/lib/deploy/functions/services/remoteConfig.js +1 -2
  168. package/lib/deploy/functions/services/storage.js +3 -5
  169. package/lib/deploy/functions/services/testLab.js +1 -2
  170. package/lib/deploy/functions/triggerRegionHelper.js +1 -2
  171. package/lib/deploy/functions/validate.js +12 -11
  172. package/lib/deploy/hosting/convertConfig.js +38 -22
  173. package/lib/deploy/hosting/deploy.js +4 -7
  174. package/lib/deploy/hosting/hashcache.js +2 -3
  175. package/lib/deploy/hosting/prepare.js +14 -14
  176. package/lib/deploy/hosting/release.js +1 -2
  177. package/lib/deploy/index.js +7 -8
  178. package/lib/deploy/lifecycleHooks.js +3 -5
  179. package/lib/deploy/remoteconfig/deploy.js +1 -1
  180. package/lib/deploy/remoteconfig/functions.js +5 -6
  181. package/lib/deploy/remoteconfig/prepare.js +2 -3
  182. package/lib/deploy/remoteconfig/release.js +2 -2
  183. package/lib/deploy/storage/deploy.js +1 -1
  184. package/lib/deploy/storage/prepare.js +1 -1
  185. package/lib/deploy/storage/release.js +1 -1
  186. package/lib/deploymentTool.js +5 -6
  187. package/lib/detectProjectRoot.js +1 -2
  188. package/lib/downloadUtils.js +2 -3
  189. package/lib/emulator/adminSdkConfig.js +2 -3
  190. package/lib/emulator/apphosting/config.js +1 -2
  191. package/lib/emulator/apphosting/developmentServer.js +3 -3
  192. package/lib/emulator/apphosting/serve.js +20 -14
  193. package/lib/emulator/auth/cloudFunctions.js +2 -3
  194. package/lib/emulator/auth/errors.js +2 -2
  195. package/lib/emulator/auth/handlers.js +3 -4
  196. package/lib/emulator/auth/index.js +6 -6
  197. package/lib/emulator/auth/operations.js +171 -129
  198. package/lib/emulator/auth/server.js +30 -22
  199. package/lib/emulator/auth/state.js +26 -36
  200. package/lib/emulator/auth/utils.js +12 -13
  201. package/lib/emulator/commandUtils.js +20 -20
  202. package/lib/emulator/controller.js +32 -29
  203. package/lib/emulator/databaseEmulator.js +1 -2
  204. package/lib/emulator/dataconnect/pgliteServer.js +48 -104
  205. package/lib/emulator/dataconnectEmulator.js +6 -9
  206. package/lib/emulator/download.js +2 -3
  207. package/lib/emulator/downloadableEmulatorInfo.json +31 -31
  208. package/lib/emulator/downloadableEmulators.js +49 -24
  209. package/lib/emulator/emulatorLogger.js +19 -4
  210. package/lib/emulator/env.js +6 -8
  211. package/lib/emulator/eventarcEmulator.js +2 -3
  212. package/lib/emulator/eventarcEmulatorUtils.js +3 -6
  213. package/lib/emulator/extensions/postinstall.js +1 -2
  214. package/lib/emulator/extensions/validation.js +4 -7
  215. package/lib/emulator/extensionsEmulator.js +6 -9
  216. package/lib/emulator/functionsEmulator.js +89 -46
  217. package/lib/emulator/functionsEmulatorRuntime.js +1 -1
  218. package/lib/emulator/functionsEmulatorShared.js +30 -30
  219. package/lib/emulator/functionsEmulatorShell.js +4 -6
  220. package/lib/emulator/functionsEmulatorUtils.js +8 -9
  221. package/lib/emulator/functionsRuntimeWorker.js +18 -9
  222. package/lib/emulator/hub.js +41 -34
  223. package/lib/emulator/hubClient.js +1 -1
  224. package/lib/emulator/initEmulators.js +2 -3
  225. package/lib/emulator/loggingEmulator.js +2 -2
  226. package/lib/emulator/portUtils.js +4 -5
  227. package/lib/emulator/registry.js +10 -4
  228. package/lib/emulator/shared/request.js +1 -2
  229. package/lib/emulator/storage/apis/firebase.js +16 -20
  230. package/lib/emulator/storage/apis/gcloud.js +6 -9
  231. package/lib/emulator/storage/apis/shared.js +1 -2
  232. package/lib/emulator/storage/crc.js +2 -3
  233. package/lib/emulator/storage/files.js +18 -41
  234. package/lib/emulator/storage/metadata.js +10 -4
  235. package/lib/emulator/storage/multipart.js +1 -2
  236. package/lib/emulator/storage/rfc.js +1 -2
  237. package/lib/emulator/storage/rules/config.js +1 -2
  238. package/lib/emulator/storage/rules/manager.js +3 -5
  239. package/lib/emulator/storage/rules/runtime.js +15 -13
  240. package/lib/emulator/storage/rules/types.js +2 -2
  241. package/lib/emulator/storage/rules/utils.js +5 -6
  242. package/lib/emulator/storage/server.js +1 -2
  243. package/lib/emulator/storage/upload.js +3 -4
  244. package/lib/emulator/taskQueue.js +11 -4
  245. package/lib/emulator/tasksEmulator.js +11 -12
  246. package/lib/emulator/types.js +6 -6
  247. package/lib/emulator/ui.js +6 -1
  248. package/lib/ensureApiEnabled.js +7 -9
  249. package/lib/env.js +2 -3
  250. package/lib/error.js +11 -13
  251. package/lib/errorOut.js +1 -2
  252. package/lib/experiments.js +15 -18
  253. package/lib/extensions/askUserForEventsConfig.js +12 -13
  254. package/lib/extensions/askUserForParam.js +11 -12
  255. package/lib/extensions/change-log.js +4 -5
  256. package/lib/extensions/checkProjectBilling.js +1 -2
  257. package/lib/extensions/diagnose.js +1 -2
  258. package/lib/extensions/displayExtensionInfo.js +25 -32
  259. package/lib/extensions/emulator/optionsHelper.js +6 -8
  260. package/lib/extensions/emulator/specHelper.js +15 -16
  261. package/lib/extensions/emulator/triggerHelper.js +3 -5
  262. package/lib/extensions/etags.js +2 -3
  263. package/lib/extensions/export.js +7 -9
  264. package/lib/extensions/extensionsApi.js +23 -29
  265. package/lib/extensions/extensionsHelper.js +52 -80
  266. package/lib/extensions/listExtensions.js +3 -5
  267. package/lib/extensions/localHelper.js +5 -5
  268. package/lib/extensions/manifest.js +15 -16
  269. package/lib/extensions/metricsUtils.js +3 -4
  270. package/lib/extensions/paramHelper.js +21 -18
  271. package/lib/extensions/provisioningHelper.js +17 -21
  272. package/lib/extensions/publishHelpers.js +1 -2
  273. package/lib/extensions/publisherApi.js +11 -13
  274. package/lib/extensions/refs.js +6 -7
  275. package/lib/extensions/runtimes/common.js +18 -19
  276. package/lib/extensions/runtimes/node.js +5 -6
  277. package/lib/extensions/secretsUtils.js +8 -8
  278. package/lib/extensions/tos.js +7 -8
  279. package/lib/extensions/types.js +3 -3
  280. package/lib/extensions/updateHelper.js +6 -7
  281. package/lib/extensions/utils.js +6 -8
  282. package/lib/extensions/versionHelper.js +1 -2
  283. package/lib/extensions/warnings.js +6 -8
  284. package/lib/fetchMOTD.js +1 -2
  285. package/lib/fetchWebSetup.js +3 -4
  286. package/lib/filterTargets.js +1 -2
  287. package/lib/firebaseConfigValidate.js +2 -3
  288. package/lib/firestore/api-sort.js +8 -9
  289. package/lib/firestore/api-types.js +15 -15
  290. package/lib/firestore/api.js +15 -13
  291. package/lib/firestore/backupUtils.js +3 -3
  292. package/lib/firestore/checkDatabaseType.js +1 -2
  293. package/lib/firestore/delete.js +1 -2
  294. package/lib/firestore/encodeFirestoreValue.js +1 -2
  295. package/lib/firestore/fsConfig.js +1 -2
  296. package/lib/firestore/options.js +1 -1
  297. package/lib/firestore/util.js +5 -6
  298. package/lib/firestore/validator.js +4 -5
  299. package/lib/frameworks/angular/index.js +14 -15
  300. package/lib/frameworks/angular/utils.js +21 -23
  301. package/lib/frameworks/astro/index.js +7 -7
  302. package/lib/frameworks/astro/utils.js +4 -6
  303. package/lib/frameworks/compose/discover/filesystem.js +3 -3
  304. package/lib/frameworks/compose/discover/frameworkMatcher.js +4 -5
  305. package/lib/frameworks/compose/discover/index.js +1 -2
  306. package/lib/frameworks/compose/discover/runtime/node.js +8 -11
  307. package/lib/frameworks/compose/driver/docker.js +3 -5
  308. package/lib/frameworks/compose/driver/hooks.js +2 -2
  309. package/lib/frameworks/compose/driver/index.js +2 -2
  310. package/lib/frameworks/compose/driver/local.js +2 -3
  311. package/lib/frameworks/compose/index.js +5 -7
  312. package/lib/frameworks/constants.js +3 -3
  313. package/lib/frameworks/express/index.js +7 -8
  314. package/lib/frameworks/flutter/index.js +6 -7
  315. package/lib/frameworks/flutter/utils.js +4 -5
  316. package/lib/frameworks/index.js +21 -22
  317. package/lib/frameworks/next/constants.js +5 -2
  318. package/lib/frameworks/next/index.js +34 -32
  319. package/lib/frameworks/next/utils.js +40 -39
  320. package/lib/frameworks/nuxt/index.js +9 -9
  321. package/lib/frameworks/nuxt/utils.js +4 -6
  322. package/lib/frameworks/nuxt2/index.js +7 -7
  323. package/lib/frameworks/sveltekit/index.js +6 -8
  324. package/lib/frameworks/utils.js +26 -24
  325. package/lib/frameworks/vite/index.js +8 -9
  326. package/lib/fsAsync.js +1 -2
  327. package/lib/fsutils.js +5 -6
  328. package/lib/functional.js +11 -11
  329. package/lib/functions/artifacts.js +25 -22
  330. package/lib/functions/ensureTargeted.js +1 -2
  331. package/lib/functions/env.js +13 -14
  332. package/lib/functions/functionslog.js +2 -3
  333. package/lib/functions/projectConfig.js +29 -33
  334. package/lib/functions/python.js +10 -4
  335. package/lib/functions/secrets.js +32 -18
  336. package/lib/functionsConfig.js +14 -14
  337. package/lib/functionsConfigClone.js +1 -2
  338. package/lib/functionsShellCommandAction.js +2 -3
  339. package/lib/gcp/apphosting.js +43 -28
  340. package/lib/gcp/apptesting.js +2 -2
  341. package/lib/gcp/artifactregistry.js +5 -5
  342. package/lib/gcp/auth.js +11 -13
  343. package/lib/gcp/cloudbilling.js +4 -5
  344. package/lib/gcp/cloudbuild.js +10 -11
  345. package/lib/gcp/cloudfunctions.js +61 -45
  346. package/lib/gcp/cloudfunctionsv2.js +81 -43
  347. package/lib/gcp/cloudlogging.js +2 -4
  348. package/lib/gcp/cloudmonitoring.js +7 -7
  349. package/lib/gcp/cloudscheduler.js +12 -14
  350. package/lib/gcp/cloudsql/cloudsqladmin.js +19 -21
  351. package/lib/gcp/cloudsql/connect.js +14 -9
  352. package/lib/gcp/cloudsql/fbToolsAuthClient.js +5 -3
  353. package/lib/gcp/cloudsql/interactive.js +2 -3
  354. package/lib/gcp/cloudsql/permissions.js +8 -8
  355. package/lib/gcp/cloudsql/permissionsSetup.js +9 -9
  356. package/lib/gcp/cloudtasks.js +19 -18
  357. package/lib/gcp/computeEngine.js +1 -2
  358. package/lib/gcp/devConnect.js +32 -29
  359. package/lib/gcp/docker.js +2 -4
  360. package/lib/gcp/eventarc.js +5 -5
  361. package/lib/gcp/firedata.js +4 -4
  362. package/lib/gcp/firestore.js +16 -16
  363. package/lib/gcp/iam.js +11 -12
  364. package/lib/gcp/identityPlatform.js +4 -5
  365. package/lib/gcp/k8s.js +1 -2
  366. package/lib/gcp/location.js +2 -2
  367. package/lib/gcp/proto.js +10 -11
  368. package/lib/gcp/pubsub.js +4 -5
  369. package/lib/gcp/resourceManager.js +5 -5
  370. package/lib/gcp/rules.js +13 -14
  371. package/lib/gcp/run.js +24 -31
  372. package/lib/gcp/runv2.js +39 -27
  373. package/lib/gcp/secretManager.js +60 -39
  374. package/lib/gcp/serviceusage.js +8 -4
  375. package/lib/gcp/storage.js +22 -20
  376. package/lib/gemini/fdcExperience.js +5 -5
  377. package/lib/getDefaultDatabaseInstance.js +2 -4
  378. package/lib/getDefaultHostingSite.js +3 -4
  379. package/lib/getProjectNumber.js +1 -2
  380. package/lib/hosting/api.js +32 -36
  381. package/lib/hosting/cloudRunProxy.js +2 -3
  382. package/lib/hosting/config.js +17 -17
  383. package/lib/hosting/expireUtils.js +3 -3
  384. package/lib/hosting/functionsProxy.js +1 -2
  385. package/lib/hosting/implicitInit.js +1 -2
  386. package/lib/hosting/initMiddleware.js +1 -2
  387. package/lib/hosting/interactive.js +1 -2
  388. package/lib/hosting/proxy.js +3 -5
  389. package/lib/hosting/runTags.js +8 -11
  390. package/lib/init/features/account.js +1 -2
  391. package/lib/init/features/ailogic/index.js +3 -5
  392. package/lib/init/features/ailogic/utils.js +6 -8
  393. package/lib/init/features/aitools/claude.js +1 -2
  394. package/lib/init/features/aitools/cursor.js +1 -2
  395. package/lib/init/features/aitools/gemini.js +1 -1
  396. package/lib/init/features/aitools/promptUpdater.js +10 -12
  397. package/lib/init/features/aitools.js +1 -2
  398. package/lib/init/features/apphosting.js +3 -4
  399. package/lib/init/features/apptesting/index.js +9 -9
  400. package/lib/init/features/database.js +4 -5
  401. package/lib/init/features/dataconnect/create_app.js +3 -4
  402. package/lib/init/features/dataconnect/index.js +25 -22
  403. package/lib/init/features/dataconnect/resolver.js +6 -10
  404. package/lib/init/features/dataconnect/sdk.js +31 -24
  405. package/lib/init/features/emulators.js +7 -6
  406. package/lib/init/features/extensions/index.js +3 -5
  407. package/lib/init/features/firestore/index.js +7 -9
  408. package/lib/init/features/firestore/indexes.js +2 -2
  409. package/lib/init/features/firestore/rules.js +3 -3
  410. package/lib/init/features/functions/index.js +3 -5
  411. package/lib/init/features/functions/javascript.js +1 -2
  412. package/lib/init/features/functions/npm-dependencies.js +1 -2
  413. package/lib/init/features/functions/python.js +1 -2
  414. package/lib/init/features/functions/typescript.js +1 -2
  415. package/lib/init/features/genkit/index.js +44 -18
  416. package/lib/init/features/hosting/github.js +6 -8
  417. package/lib/init/features/hosting/index.js +10 -13
  418. package/lib/init/features/project.js +4 -7
  419. package/lib/init/features/remoteconfig.js +1 -2
  420. package/lib/init/features/storage.js +3 -5
  421. package/lib/init/index.js +4 -7
  422. package/lib/init/spawn.js +7 -9
  423. package/lib/listFiles.js +1 -2
  424. package/lib/loadCJSON.js +1 -2
  425. package/lib/localFunction.js +14 -15
  426. package/lib/logError.js +1 -2
  427. package/lib/logger.js +7 -7
  428. package/lib/management/apps.js +22 -22
  429. package/lib/management/database.js +11 -12
  430. package/lib/management/projects.js +57 -56
  431. package/lib/management/provisioning/errorHandler.js +3 -5
  432. package/lib/management/provisioning/provision.js +15 -9
  433. package/lib/management/studio.js +2 -3
  434. package/lib/mcp/errors.js +4 -4
  435. package/lib/mcp/index.js +47 -45
  436. package/lib/mcp/prompt.js +1 -2
  437. package/lib/mcp/prompts/core/consult.js +2 -3
  438. package/lib/mcp/prompts/crashlytics/connect.js +15 -122
  439. package/lib/mcp/prompts/dataconnect/schema.js +3 -3
  440. package/lib/mcp/prompts/index.js +8 -10
  441. package/lib/mcp/resource.js +3 -15
  442. package/lib/mcp/resources/guides/app_id.js +39 -0
  443. package/lib/mcp/resources/guides/crashlytics_connect.js +51 -0
  444. package/lib/mcp/resources/guides/crashlytics_investigations.js +51 -0
  445. package/lib/mcp/resources/guides/crashlytics_issues.js +42 -0
  446. package/lib/mcp/resources/guides/crashlytics_reports.js +112 -0
  447. package/lib/mcp/resources/index.js +11 -3
  448. package/lib/mcp/tool.js +3 -15
  449. package/lib/mcp/tools/apphosting/fetch_logs.js +3 -4
  450. package/lib/mcp/tools/apphosting/list_backends.js +1 -1
  451. package/lib/mcp/tools/auth/get_users.js +5 -16
  452. package/lib/mcp/tools/core/create_android_sha.js +4 -1
  453. package/lib/mcp/tools/core/get_environment.js +7 -4
  454. package/lib/mcp/tools/core/get_sdk_config.js +4 -5
  455. package/lib/mcp/tools/core/get_security_rules.js +1 -2
  456. package/lib/mcp/tools/core/init.js +2 -2
  457. package/lib/mcp/tools/core/logout.js +1 -1
  458. package/lib/mcp/tools/core/read_resources.js +2 -2
  459. package/lib/mcp/tools/core/validate_security_rules.js +1 -2
  460. package/lib/mcp/tools/crashlytics/events.js +43 -19
  461. package/lib/mcp/tools/crashlytics/index.js +1 -6
  462. package/lib/mcp/tools/crashlytics/issues.js +33 -12
  463. package/lib/mcp/tools/crashlytics/reports.js +66 -117
  464. package/lib/mcp/tools/dataconnect/list_services.js +2 -3
  465. package/lib/mcp/tools/firestore/converter.js +3 -5
  466. package/lib/mcp/tools/firestore/delete_document.js +1 -1
  467. package/lib/mcp/tools/functions/get_logs.js +14 -12
  468. package/lib/mcp/tools/functions/list_functions.js +1 -1
  469. package/lib/mcp/tools/index.js +67 -50
  470. package/lib/mcp/util/apptesting/availability.js +1 -2
  471. package/lib/mcp/util/availability.js +1 -2
  472. package/lib/mcp/util/crashlytics/availability.js +1 -2
  473. package/lib/mcp/util/dataconnect/compile.js +7 -6
  474. package/lib/mcp/util/dataconnect/converter.js +7 -10
  475. package/lib/mcp/util/dataconnect/emulator.js +1 -2
  476. package/lib/mcp/util.js +9 -11
  477. package/lib/messaging/sendMessage.js +1 -2
  478. package/lib/metaprogramming.js +1 -2
  479. package/lib/operation-poller.js +2 -2
  480. package/lib/profileReport.js +6 -6
  481. package/lib/profiler.js +1 -2
  482. package/lib/projectPath.js +1 -2
  483. package/lib/projectUtils.js +5 -6
  484. package/lib/prompt.js +22 -13
  485. package/lib/rc.js +5 -7
  486. package/lib/remoteconfig/deleteExperiment.js +1 -2
  487. package/lib/remoteconfig/deleteRollout.js +1 -2
  488. package/lib/remoteconfig/get.js +2 -3
  489. package/lib/remoteconfig/getExperiment.js +2 -2
  490. package/lib/remoteconfig/getRollout.js +2 -2
  491. package/lib/remoteconfig/interfaces.js +1 -1
  492. package/lib/remoteconfig/listExperiments.js +2 -2
  493. package/lib/remoteconfig/listRollouts.js +2 -2
  494. package/lib/remoteconfig/publish.js +1 -2
  495. package/lib/remoteconfig/rollback.js +1 -2
  496. package/lib/remoteconfig/versionslist.js +1 -2
  497. package/lib/requireAuth.js +4 -6
  498. package/lib/requireConfig.js +5 -8
  499. package/lib/requireDatabaseInstance.js +2 -2
  500. package/lib/requireHostingSite.js +1 -2
  501. package/lib/requireInteractive.js +1 -1
  502. package/lib/requirePermissions.js +1 -2
  503. package/lib/requireTosAcceptance.js +1 -2
  504. package/lib/responseToError.js +1 -2
  505. package/lib/rtdb.js +2 -3
  506. package/lib/rulesDeploy.js +3 -4
  507. package/lib/serve/functions.js +9 -1
  508. package/lib/serve/hosting.js +4 -5
  509. package/lib/serve/index.js +1 -2
  510. package/lib/shortenUrl.js +1 -2
  511. package/lib/templates.js +3 -4
  512. package/lib/throttler/throttler.js +3 -3
  513. package/lib/timeout.js +2 -3
  514. package/lib/track.js +23 -14
  515. package/lib/tsconfig.publish.tsbuildinfo +1 -0
  516. package/lib/unzip.js +2 -3
  517. package/lib/utils.js +62 -63
  518. package/lib/vsCodeUtils.js +2 -3
  519. package/package.json +6 -6
  520. package/templates/extensions/typescript/index.ts +1 -1
  521. package/templates/extensions/typescript/package.lint.json +1 -1
  522. package/templates/extensions/typescript/package.nolint.json +1 -1
  523. package/templates/extensions/typescript/tsconfig.json +2 -1
@@ -0,0 +1 @@
1
+ {"root":["../src/accountExporter.ts","../src/accountImporter.ts","../src/api.ts","../src/apiv2.ts","../src/appUtils.ts","../src/archiveDirectory.ts","../src/auth.ts","../src/checkMinRequiredVersion.ts","../src/checkValidTargetFilters.ts","../src/command.ts","../src/config.ts","../src/configstore.ts","../src/defaultCredentials.ts","../src/deploymentTool.ts","../src/detectProjectRoot.ts","../src/downloadUtils.ts","../src/dynamicImport.js","../src/ensureApiEnabled.ts","../src/env.ts","../src/error.ts","../src/errorOut.ts","../src/experiments.ts","../src/fetchMOTD.ts","../src/fetchWebSetup.ts","../src/filterTargets.ts","../src/firebaseConfig.ts","../src/firebaseConfigValidate.ts","../src/fsAsync.ts","../src/fsutils.ts","../src/functional.ts","../src/functionsConfig.ts","../src/functionsConfigClone.ts","../src/functionsShellCommandAction.ts","../src/getDefaultDatabaseInstance.ts","../src/getDefaultHostingSite.ts","../src/getProjectNumber.ts","../src/index.ts","../src/listFiles.ts","../src/loadCJSON.ts","../src/localFunction.ts","../src/logError.ts","../src/logger.ts","../src/metaprogramming.ts","../src/operation-poller.ts","../src/options.ts","../src/profileReport.ts","../src/profiler.ts","../src/projectPath.ts","../src/projectUtils.ts","../src/prompt.ts","../src/rc.ts","../src/requireAuth.ts","../src/requireConfig.ts","../src/requireDatabaseInstance.ts","../src/requireHostingSite.ts","../src/requireInteractive.ts","../src/requirePermissions.ts","../src/requireTosAcceptance.ts","../src/responseToError.ts","../src/rtdb.ts","../src/rulesDeploy.ts","../src/scopes.ts","../src/shortenUrl.ts","../src/templates.ts","../src/timeout.ts","../src/track.ts","../src/unzip.ts","../src/utils.ts","../src/vsCodeUtils.ts","../src/appdistribution/client.ts","../src/appdistribution/distribution.ts","../src/appdistribution/options-parser-util.ts","../src/appdistribution/types.ts","../src/appdistribution/yaml_helper.ts","../src/apphosting/app.ts","../src/apphosting/backend.ts","../src/apphosting/config.ts","../src/apphosting/constants.ts","../src/apphosting/githubConnections.ts","../src/apphosting/index.ts","../src/apphosting/localbuilds.ts","../src/apphosting/repo.ts","../src/apphosting/rollout.ts","../src/apphosting/utils.ts","../src/apphosting/yaml.ts","../src/apphosting/secrets/dialogs.ts","../src/apphosting/secrets/index.ts","../src/apptesting/ensureProjectConfigured.ts","../src/apptesting/invokeTests.ts","../src/apptesting/parseTestFiles.ts","../src/apptesting/types.ts","../src/bin/cli.ts","../src/bin/firebase.ts","../src/bin/mcp.ts","../src/commands/appdistribution-distribute.ts","../src/commands/appdistribution-groups-create.ts","../src/commands/appdistribution-groups-delete.ts","../src/commands/appdistribution-groups-list.ts","../src/commands/appdistribution-testcases-export.ts","../src/commands/appdistribution-testcases-import.ts","../src/commands/appdistribution-testers-add.ts","../src/commands/appdistribution-testers-list.ts","../src/commands/appdistribution-testers-remove.ts","../src/commands/apphosting-backends-create.ts","../src/commands/apphosting-backends-delete.ts","../src/commands/apphosting-backends-get.ts","../src/commands/apphosting-backends-list.ts","../src/commands/apphosting-builds-create.ts","../src/commands/apphosting-builds-get.ts","../src/commands/apphosting-repos-create.ts","../src/commands/apphosting-rollouts-create.ts","../src/commands/apphosting-rollouts-list.ts","../src/commands/apphosting-secrets-access.ts","../src/commands/apphosting-secrets-describe.ts","../src/commands/apphosting-secrets-grantaccess.ts","../src/commands/apphosting-secrets-set.ts","../src/commands/apps-android-sha-create.ts","../src/commands/apps-android-sha-delete.ts","../src/commands/apps-android-sha-list.ts","../src/commands/apps-create.ts","../src/commands/apps-init.ts","../src/commands/apps-list.ts","../src/commands/apps-sdkconfig.ts","../src/commands/apptesting-wata.ts","../src/commands/auth-export.ts","../src/commands/auth-import.ts","../src/commands/crashlytics-mappingfile-generateid.ts","../src/commands/crashlytics-mappingfile-upload.ts","../src/commands/crashlytics-symbols-upload.ts","../src/commands/database-get.ts","../src/commands/database-import.ts","../src/commands/database-instances-create.ts","../src/commands/database-instances-list.ts","../src/commands/database-profile.ts","../src/commands/database-push.ts","../src/commands/database-remove.ts","../src/commands/database-rules-canary.ts","../src/commands/database-rules-get.ts","../src/commands/database-rules-list.ts","../src/commands/database-rules-release.ts","../src/commands/database-rules-stage.ts","../src/commands/database-set.ts","../src/commands/database-settings-get.ts","../src/commands/database-settings-set.ts","../src/commands/database-update.ts","../src/commands/dataconnect-execute.ts","../src/commands/dataconnect-sdk-generate.ts","../src/commands/dataconnect-services-list.ts","../src/commands/dataconnect-sql-diff.ts","../src/commands/dataconnect-sql-grant.ts","../src/commands/dataconnect-sql-migrate.ts","../src/commands/dataconnect-sql-setup.ts","../src/commands/dataconnect-sql-shell.ts","../src/commands/deploy.ts","../src/commands/emulators-exec.ts","../src/commands/emulators-export.ts","../src/commands/emulators-start.ts","../src/commands/experiments-describe.ts","../src/commands/experiments-disable.ts","../src/commands/experiments-enable.ts","../src/commands/experiments-list.ts","../src/commands/ext-configure.ts","../src/commands/ext-dev-deprecate.ts","../src/commands/ext-dev-init.ts","../src/commands/ext-dev-list.ts","../src/commands/ext-dev-register.ts","../src/commands/ext-dev-undeprecate.ts","../src/commands/ext-dev-upload.ts","../src/commands/ext-dev-usage.ts","../src/commands/ext-export.ts","../src/commands/ext-info.ts","../src/commands/ext-install.ts","../src/commands/ext-list.ts","../src/commands/ext-sdk-install.ts","../src/commands/ext-uninstall.ts","../src/commands/ext-update.ts","../src/commands/ext.ts","../src/commands/firestore-backups-delete.ts","../src/commands/firestore-backups-get.ts","../src/commands/firestore-backups-list.ts","../src/commands/firestore-backups-schedules-create.ts","../src/commands/firestore-backups-schedules-delete.ts","../src/commands/firestore-backups-schedules-list.ts","../src/commands/firestore-backups-schedules-update.ts","../src/commands/firestore-bulkdelete.ts","../src/commands/firestore-databases-clone.ts","../src/commands/firestore-databases-create.ts","../src/commands/firestore-databases-delete.ts","../src/commands/firestore-databases-get.ts","../src/commands/firestore-databases-list.ts","../src/commands/firestore-databases-restore.ts","../src/commands/firestore-databases-update.ts","../src/commands/firestore-delete.ts","../src/commands/firestore-indexes-list.ts","../src/commands/firestore-locations.ts","../src/commands/firestore-operations-cancel.ts","../src/commands/firestore-operations-describe.ts","../src/commands/firestore-operations-list.ts","../src/commands/firestore-utils.ts","../src/commands/functions-artifacts-setpolicy.ts","../src/commands/functions-config-clone.ts","../src/commands/functions-config-export.ts","../src/commands/functions-config-get.ts","../src/commands/functions-config-set.ts","../src/commands/functions-config-unset.ts","../src/commands/functions-delete.ts","../src/commands/functions-deletegcfartifacts.ts","../src/commands/functions-list.ts","../src/commands/functions-log.ts","../src/commands/functions-secrets-access.ts","../src/commands/functions-secrets-describe.ts","../src/commands/functions-secrets-destroy.ts","../src/commands/functions-secrets-get.ts","../src/commands/functions-secrets-prune.ts","../src/commands/functions-secrets-set.ts","../src/commands/functions-shell.ts","../src/commands/help.ts","../src/commands/hosting-channel-create.ts","../src/commands/hosting-channel-delete.ts","../src/commands/hosting-channel-deploy.ts","../src/commands/hosting-channel-list.ts","../src/commands/hosting-channel-open.ts","../src/commands/hosting-clone.ts","../src/commands/hosting-disable.ts","../src/commands/hosting-sites-create.ts","../src/commands/hosting-sites-delete.ts","../src/commands/hosting-sites-get.ts","../src/commands/hosting-sites-list.ts","../src/commands/index.ts","../src/commands/init.ts","../src/commands/internaltesting-frameworks-compose.ts","../src/commands/internaltesting-functions-discover.ts","../src/commands/login-add.ts","../src/commands/login-ci.ts","../src/commands/login-list.ts","../src/commands/login-use.ts","../src/commands/login.ts","../src/commands/logout.ts","../src/commands/mcp.ts","../src/commands/open.ts","../src/commands/projects-addfirebase.ts","../src/commands/projects-create.ts","../src/commands/projects-list.ts","../src/commands/remoteconfig-experiments-delete.ts","../src/commands/remoteconfig-experiments-get.ts","../src/commands/remoteconfig-experiments-list.ts","../src/commands/remoteconfig-get.ts","../src/commands/remoteconfig-rollback.ts","../src/commands/remoteconfig-rollouts-delete.ts","../src/commands/remoteconfig-rollouts-get.ts","../src/commands/remoteconfig-rollouts-list.ts","../src/commands/remoteconfig-versions-list.ts","../src/commands/serve.ts","../src/commands/setup-emulators-database.ts","../src/commands/setup-emulators-dataconnect.ts","../src/commands/setup-emulators-firestore.ts","../src/commands/setup-emulators-pubsub.ts","../src/commands/setup-emulators-storage.ts","../src/commands/setup-emulators-ui.ts","../src/commands/target-apply.ts","../src/commands/target-clear.ts","../src/commands/target-remove.ts","../src/commands/target.ts","../src/commands/use.ts","../src/crashlytics/buildToolsJarHelper.ts","../src/crashlytics/events.ts","../src/crashlytics/filters.ts","../src/crashlytics/issues.ts","../src/crashlytics/notes.ts","../src/crashlytics/reports.ts","../src/crashlytics/types.ts","../src/crashlytics/utils.ts","../src/database/api.ts","../src/database/import.ts","../src/database/listRemote.ts","../src/database/metadata.ts","../src/database/remove.ts","../src/database/removeRemote.ts","../src/database/rulesConfig.ts","../src/database/settings.ts","../src/dataconnect/build.ts","../src/dataconnect/checkIam.ts","../src/dataconnect/client.ts","../src/dataconnect/cloudAICompanionTypes.ts","../src/dataconnect/dataplaneClient.ts","../src/dataconnect/ensureApis.ts","../src/dataconnect/errors.ts","../src/dataconnect/filters.ts","../src/dataconnect/freeTrial.ts","../src/dataconnect/graphqlError.ts","../src/dataconnect/load.ts","../src/dataconnect/names.ts","../src/dataconnect/prompts.ts","../src/dataconnect/provisionCloudSql.ts","../src/dataconnect/schemaMigration.ts","../src/dataconnect/types.ts","../src/dataconnect/webhook.ts","../src/deploy/index.ts","../src/deploy/lifecycleHooks.ts","../src/deploy/apphosting/args.ts","../src/deploy/apphosting/deploy.ts","../src/deploy/apphosting/index.ts","../src/deploy/apphosting/prepare.ts","../src/deploy/apphosting/release.ts","../src/deploy/apphosting/util.ts","../src/deploy/database/deploy.ts","../src/deploy/database/index.ts","../src/deploy/database/prepare.ts","../src/deploy/database/release.ts","../src/deploy/dataconnect/context.ts","../src/deploy/dataconnect/deploy.ts","../src/deploy/dataconnect/index.ts","../src/deploy/dataconnect/prepare.ts","../src/deploy/dataconnect/release.ts","../src/deploy/extensions/args.ts","../src/deploy/extensions/deploy.ts","../src/deploy/extensions/deploymentSummary.ts","../src/deploy/extensions/errors.ts","../src/deploy/extensions/index.ts","../src/deploy/extensions/planner.ts","../src/deploy/extensions/prepare.ts","../src/deploy/extensions/release.ts","../src/deploy/extensions/secrets.ts","../src/deploy/extensions/tasks.ts","../src/deploy/extensions/v2FunctionHelper.ts","../src/deploy/extensions/validate.ts","../src/deploy/firestore/deploy.ts","../src/deploy/firestore/index.ts","../src/deploy/firestore/prepare.ts","../src/deploy/firestore/release.ts","../src/deploy/functions/args.ts","../src/deploy/functions/backend.ts","../src/deploy/functions/build.ts","../src/deploy/functions/cel.ts","../src/deploy/functions/checkIam.ts","../src/deploy/functions/containerCleaner.ts","../src/deploy/functions/deploy.ts","../src/deploy/functions/ensure.ts","../src/deploy/functions/ensureCloudBuildEnabled.ts","../src/deploy/functions/functionsDeployHelper.ts","../src/deploy/functions/index.ts","../src/deploy/functions/params.ts","../src/deploy/functions/prepare.ts","../src/deploy/functions/prepareFunctionsUpload.ts","../src/deploy/functions/pricing.ts","../src/deploy/functions/prompts.ts","../src/deploy/functions/remoteSource.ts","../src/deploy/functions/triggerRegionHelper.ts","../src/deploy/functions/validate.ts","../src/deploy/functions/cache/applyHash.ts","../src/deploy/functions/cache/hash.ts","../src/deploy/functions/release/executor.ts","../src/deploy/functions/release/fabricator.ts","../src/deploy/functions/release/index.ts","../src/deploy/functions/release/planner.ts","../src/deploy/functions/release/reporter.ts","../src/deploy/functions/release/sourceTokenScraper.ts","../src/deploy/functions/release/timer.ts","../src/deploy/functions/runtimes/index.ts","../src/deploy/functions/runtimes/discovery/index.ts","../src/deploy/functions/runtimes/discovery/mockDiscoveryServer.ts","../src/deploy/functions/runtimes/discovery/parsing.ts","../src/deploy/functions/runtimes/discovery/v1alpha1.ts","../src/deploy/functions/runtimes/node/index.ts","../src/deploy/functions/runtimes/node/parseRuntimeAndValidateSDK.ts","../src/deploy/functions/runtimes/node/validate.ts","../src/deploy/functions/runtimes/node/versioning.ts","../src/deploy/functions/runtimes/python/index.ts","../src/deploy/functions/runtimes/supported/index.ts","../src/deploy/functions/runtimes/supported/types.ts","../src/deploy/functions/services/auth.ts","../src/deploy/functions/services/database.ts","../src/deploy/functions/services/dataconnect.ts","../src/deploy/functions/services/firebaseAlerts.ts","../src/deploy/functions/services/firestore.ts","../src/deploy/functions/services/index.ts","../src/deploy/functions/services/remoteConfig.ts","../src/deploy/functions/services/storage.ts","../src/deploy/functions/services/testLab.ts","../src/deploy/hosting/args.ts","../src/deploy/hosting/context.ts","../src/deploy/hosting/convertConfig.ts","../src/deploy/hosting/deploy.ts","../src/deploy/hosting/hashcache.ts","../src/deploy/hosting/index.ts","../src/deploy/hosting/prepare.ts","../src/deploy/hosting/release.ts","../src/deploy/hosting/uploader.ts","../src/deploy/remoteconfig/deploy.ts","../src/deploy/remoteconfig/functions.ts","../src/deploy/remoteconfig/index.ts","../src/deploy/remoteconfig/prepare.ts","../src/deploy/remoteconfig/release.ts","../src/deploy/storage/deploy.ts","../src/deploy/storage/index.ts","../src/deploy/storage/prepare.ts","../src/deploy/storage/release.ts","../src/emulator/ExpressBasedEmulator.ts","../src/emulator/adminSdkConfig.ts","../src/emulator/commandUtils.ts","../src/emulator/constants.ts","../src/emulator/controller.ts","../src/emulator/databaseEmulator.ts","../src/emulator/dataconnectEmulator.ts","../src/emulator/dataconnectToolkitController.ts","../src/emulator/dns.ts","../src/emulator/download.ts","../src/emulator/downloadableEmulators.ts","../src/emulator/emulatorLogger.ts","../src/emulator/env.ts","../src/emulator/eventarcEmulator.ts","../src/emulator/eventarcEmulatorUtils.ts","../src/emulator/extensionsEmulator.ts","../src/emulator/firestoreEmulator.ts","../src/emulator/functionsEmulator.ts","../src/emulator/functionsEmulatorRuntime.ts","../src/emulator/functionsEmulatorShared.ts","../src/emulator/functionsEmulatorShell.ts","../src/emulator/functionsEmulatorUtils.ts","../src/emulator/functionsRuntimeWorker.ts","../src/emulator/hostingEmulator.ts","../src/emulator/hub.ts","../src/emulator/hubClient.ts","../src/emulator/hubExport.ts","../src/emulator/initEmulators.ts","../src/emulator/loggingEmulator.ts","../src/emulator/portUtils.ts","../src/emulator/pubsubEmulator.ts","../src/emulator/registry.ts","../src/emulator/taskQueue.ts","../src/emulator/tasksEmulator.ts","../src/emulator/types.ts","../src/emulator/ui.ts","../src/emulator/workQueue.ts","../src/emulator/apphosting/config.ts","../src/emulator/apphosting/developmentServer.ts","../src/emulator/apphosting/index.ts","../src/emulator/apphosting/serve.ts","../src/emulator/auth/apiSpec.ts","../src/emulator/auth/cloudFunctions.ts","../src/emulator/auth/errors.ts","../src/emulator/auth/handlers.ts","../src/emulator/auth/index.ts","../src/emulator/auth/operations.ts","../src/emulator/auth/schema.ts","../src/emulator/auth/server.ts","../src/emulator/auth/state.ts","../src/emulator/auth/types.ts","../src/emulator/auth/utils.ts","../src/emulator/auth/widget_ui.ts","../src/emulator/dataconnect/pgliteServer.ts","../src/emulator/events/types.ts","../src/emulator/extensions/postinstall.ts","../src/emulator/extensions/validation.ts","../src/emulator/shared/request.ts","../src/emulator/storage/cloudFunctions.ts","../src/emulator/storage/crc.ts","../src/emulator/storage/errors.ts","../src/emulator/storage/files.ts","../src/emulator/storage/index.ts","../src/emulator/storage/metadata.ts","../src/emulator/storage/multipart.ts","../src/emulator/storage/persistence.ts","../src/emulator/storage/rfc.ts","../src/emulator/storage/server.ts","../src/emulator/storage/upload.ts","../src/emulator/storage/apis/firebase.ts","../src/emulator/storage/apis/gcloud.ts","../src/emulator/storage/apis/shared.ts","../src/emulator/storage/rules/config.ts","../src/emulator/storage/rules/expressionValue.ts","../src/emulator/storage/rules/manager.ts","../src/emulator/storage/rules/runtime.ts","../src/emulator/storage/rules/types.ts","../src/emulator/storage/rules/utils.ts","../src/extensions/askUserForEventsConfig.ts","../src/extensions/askUserForParam.ts","../src/extensions/change-log.ts","../src/extensions/checkProjectBilling.ts","../src/extensions/diagnose.ts","../src/extensions/displayExtensionInfo.ts","../src/extensions/etags.ts","../src/extensions/export.ts","../src/extensions/extensionsApi.ts","../src/extensions/extensionsHelper.ts","../src/extensions/listExtensions.ts","../src/extensions/localHelper.ts","../src/extensions/manifest.ts","../src/extensions/metricsTypeDef.ts","../src/extensions/metricsUtils.ts","../src/extensions/paramHelper.ts","../src/extensions/provisioningHelper.ts","../src/extensions/publishHelpers.ts","../src/extensions/publisherApi.ts","../src/extensions/refs.ts","../src/extensions/secretsUtils.ts","../src/extensions/tos.ts","../src/extensions/types.ts","../src/extensions/updateHelper.ts","../src/extensions/utils.ts","../src/extensions/versionHelper.ts","../src/extensions/warnings.ts","../src/extensions/emulator/optionsHelper.ts","../src/extensions/emulator/specHelper.ts","../src/extensions/emulator/triggerHelper.ts","../src/extensions/runtimes/common.ts","../src/extensions/runtimes/node.ts","../src/firestore/api-sort.ts","../src/firestore/api-spec.ts","../src/firestore/api-types.ts","../src/firestore/api.ts","../src/firestore/backupUtils.ts","../src/firestore/checkDatabaseType.ts","../src/firestore/delete.ts","../src/firestore/encodeFirestoreValue.ts","../src/firestore/fsConfig.ts","../src/firestore/options.ts","../src/firestore/pretty-print.ts","../src/firestore/util.ts","../src/firestore/validator.ts","../src/frameworks/constants.ts","../src/frameworks/frameworks.ts","../src/frameworks/index.ts","../src/frameworks/interfaces.ts","../src/frameworks/utils.ts","../src/frameworks/angular/index.ts","../src/frameworks/angular/interfaces.ts","../src/frameworks/angular/utils.ts","../src/frameworks/astro/index.ts","../src/frameworks/astro/utils.ts","../src/frameworks/compose/index.ts","../src/frameworks/compose/interfaces.ts","../src/frameworks/compose/discover/filesystem.ts","../src/frameworks/compose/discover/frameworkMatcher.ts","../src/frameworks/compose/discover/frameworkSpec.ts","../src/frameworks/compose/discover/index.ts","../src/frameworks/compose/discover/mockFileSystem.ts","../src/frameworks/compose/discover/types.ts","../src/frameworks/compose/discover/runtime/node.ts","../src/frameworks/compose/driver/docker.ts","../src/frameworks/compose/driver/hooks.ts","../src/frameworks/compose/driver/index.ts","../src/frameworks/compose/driver/local.ts","../src/frameworks/docs/index.ts","../src/frameworks/express/index.ts","../src/frameworks/flutter/constants.ts","../src/frameworks/flutter/index.ts","../src/frameworks/flutter/utils.ts","../src/frameworks/lit/index.ts","../src/frameworks/next/constants.ts","../src/frameworks/next/index.ts","../src/frameworks/next/interfaces.ts","../src/frameworks/next/utils.ts","../src/frameworks/nuxt/index.ts","../src/frameworks/nuxt/interfaces.ts","../src/frameworks/nuxt/utils.ts","../src/frameworks/nuxt2/index.ts","../src/frameworks/preact/index.ts","../src/frameworks/react/index.ts","../src/frameworks/svelte/index.ts","../src/frameworks/sveltekit/index.ts","../src/frameworks/sveltekit/interfaces.ts","../src/frameworks/vite/index.ts","../src/functions/artifacts.ts","../src/functions/constants.ts","../src/functions/ensureTargeted.ts","../src/functions/env.ts","../src/functions/functionslog.ts","../src/functions/projectConfig.ts","../src/functions/python.ts","../src/functions/secrets.ts","../src/functions/events/index.ts","../src/functions/events/v1.ts","../src/functions/events/v2.ts","../src/gcp/apphosting.ts","../src/gcp/apptesting.ts","../src/gcp/artifactregistry.ts","../src/gcp/auth.ts","../src/gcp/cloudbilling.ts","../src/gcp/cloudbuild.ts","../src/gcp/cloudfunctions.ts","../src/gcp/cloudfunctionsv2.ts","../src/gcp/cloudlogging.ts","../src/gcp/cloudmonitoring.ts","../src/gcp/cloudscheduler.ts","../src/gcp/cloudtasks.ts","../src/gcp/computeEngine.ts","../src/gcp/devConnect.ts","../src/gcp/docker.ts","../src/gcp/eventarc.ts","../src/gcp/firedata.ts","../src/gcp/firestore.ts","../src/gcp/iam.ts","../src/gcp/identityPlatform.ts","../src/gcp/index.ts","../src/gcp/k8s.ts","../src/gcp/location.ts","../src/gcp/proto.ts","../src/gcp/pubsub.ts","../src/gcp/resourceManager.ts","../src/gcp/rules.ts","../src/gcp/run.ts","../src/gcp/runtimeconfig.ts","../src/gcp/runv2.ts","../src/gcp/secretManager.ts","../src/gcp/serviceusage.ts","../src/gcp/storage.ts","../src/gcp/cloudsql/cloudsqladmin.ts","../src/gcp/cloudsql/connect.ts","../src/gcp/cloudsql/fbToolsAuthClient.ts","../src/gcp/cloudsql/interactive.ts","../src/gcp/cloudsql/permissions.ts","../src/gcp/cloudsql/permissionsSetup.ts","../src/gcp/cloudsql/types.ts","../src/gemini/fdcExperience.ts","../src/gemini/types.ts","../src/hosting/api.ts","../src/hosting/cloudRunProxy.ts","../src/hosting/config.ts","../src/hosting/expireUtils.ts","../src/hosting/functionsProxy.ts","../src/hosting/implicitInit.ts","../src/hosting/initMiddleware.ts","../src/hosting/interactive.ts","../src/hosting/options.ts","../src/hosting/proxy.ts","../src/hosting/runTags.ts","../src/init/index.ts","../src/init/spawn.ts","../src/init/features/account.ts","../src/init/features/aitools.ts","../src/init/features/apphosting.ts","../src/init/features/database.ts","../src/init/features/emulators.ts","../src/init/features/index.ts","../src/init/features/project.ts","../src/init/features/remoteconfig.ts","../src/init/features/storage.ts","../src/init/features/ailogic/index.ts","../src/init/features/ailogic/utils.ts","../src/init/features/aitools/claude.ts","../src/init/features/aitools/cursor.ts","../src/init/features/aitools/gemini.ts","../src/init/features/aitools/index.ts","../src/init/features/aitools/promptUpdater.ts","../src/init/features/aitools/studio.ts","../src/init/features/aitools/types.ts","../src/init/features/apptesting/index.ts","../src/init/features/dataconnect/create_app.ts","../src/init/features/dataconnect/index.ts","../src/init/features/dataconnect/resolver.ts","../src/init/features/dataconnect/sdk.ts","../src/init/features/extensions/index.ts","../src/init/features/firestore/index.ts","../src/init/features/firestore/indexes.ts","../src/init/features/firestore/rules.ts","../src/init/features/functions/index.ts","../src/init/features/functions/javascript.ts","../src/init/features/functions/npm-dependencies.ts","../src/init/features/functions/python.ts","../src/init/features/functions/typescript.ts","../src/init/features/genkit/index.ts","../src/init/features/hosting/github.ts","../src/init/features/hosting/index.ts","../src/management/apps.ts","../src/management/database.ts","../src/management/projects.ts","../src/management/studio.ts","../src/management/provisioning/errorHandler.ts","../src/management/provisioning/provision.ts","../src/management/provisioning/types.ts","../src/mcp/errors.ts","../src/mcp/index.ts","../src/mcp/logging-transport.ts","../src/mcp/prompt.ts","../src/mcp/resource.ts","../src/mcp/tool.ts","../src/mcp/types.ts","../src/mcp/util.test.ts","../src/mcp/util.ts","../src/mcp/prompts/index.ts","../src/mcp/prompts/apptesting/index.ts","../src/mcp/prompts/apptesting/run_test.ts","../src/mcp/prompts/core/consult.ts","../src/mcp/prompts/core/deploy.ts","../src/mcp/prompts/core/index.ts","../src/mcp/prompts/core/init.ts","../src/mcp/prompts/crashlytics/connect.ts","../src/mcp/prompts/crashlytics/index.ts","../src/mcp/prompts/dataconnect/index.ts","../src/mcp/prompts/dataconnect/schema.ts","../src/mcp/resources/docs.ts","../src/mcp/resources/index.ts","../src/mcp/resources/guides/app_id.ts","../src/mcp/resources/guides/crashlytics_connect.ts","../src/mcp/resources/guides/crashlytics_investigations.ts","../src/mcp/resources/guides/crashlytics_issues.ts","../src/mcp/resources/guides/crashlytics_reports.ts","../src/mcp/resources/guides/init_ai.ts","../src/mcp/resources/guides/init_auth.ts","../src/mcp/resources/guides/init_backend.ts","../src/mcp/resources/guides/init_data_connect.ts","../src/mcp/resources/guides/init_firestore.ts","../src/mcp/resources/guides/init_firestore_rules.ts","../src/mcp/resources/guides/init_hosting.ts","../src/mcp/resources/guides/init_rtdb.ts","../src/mcp/tools/index.ts","../src/mcp/tools/apphosting/fetch_logs.ts","../src/mcp/tools/apphosting/index.ts","../src/mcp/tools/apphosting/list_backends.ts","../src/mcp/tools/apptesting/index.ts","../src/mcp/tools/apptesting/tests.ts","../src/mcp/tools/auth/get_users.ts","../src/mcp/tools/auth/index.ts","../src/mcp/tools/auth/set_sms_region_policy.ts","../src/mcp/tools/auth/update_user.ts","../src/mcp/tools/core/create_android_sha.ts","../src/mcp/tools/core/create_app.ts","../src/mcp/tools/core/create_project.ts","../src/mcp/tools/core/get_environment.ts","../src/mcp/tools/core/get_project.ts","../src/mcp/tools/core/get_sdk_config.ts","../src/mcp/tools/core/get_security_rules.ts","../src/mcp/tools/core/index.ts","../src/mcp/tools/core/init.ts","../src/mcp/tools/core/list_apps.ts","../src/mcp/tools/core/list_projects.ts","../src/mcp/tools/core/login.ts","../src/mcp/tools/core/logout.ts","../src/mcp/tools/core/read_resources.ts","../src/mcp/tools/core/update_environment.ts","../src/mcp/tools/core/validate_security_rules.ts","../src/mcp/tools/crashlytics/events.ts","../src/mcp/tools/crashlytics/index.ts","../src/mcp/tools/crashlytics/issues.ts","../src/mcp/tools/crashlytics/notes.ts","../src/mcp/tools/crashlytics/reports.ts","../src/mcp/tools/dataconnect/compile.ts","../src/mcp/tools/dataconnect/execute.ts","../src/mcp/tools/dataconnect/generate_operation.ts","../src/mcp/tools/dataconnect/generate_schema.ts","../src/mcp/tools/dataconnect/index.ts","../src/mcp/tools/dataconnect/list_services.ts","../src/mcp/tools/firestore/converter.ts","../src/mcp/tools/firestore/delete_document.ts","../src/mcp/tools/firestore/get_documents.ts","../src/mcp/tools/firestore/index.ts","../src/mcp/tools/firestore/list_collections.ts","../src/mcp/tools/firestore/query_collection.ts","../src/mcp/tools/functions/get_logs.ts","../src/mcp/tools/functions/index.ts","../src/mcp/tools/functions/list_functions.ts","../src/mcp/tools/messaging/index.ts","../src/mcp/tools/messaging/send_message.ts","../src/mcp/tools/realtime_database/get_data.ts","../src/mcp/tools/realtime_database/index.ts","../src/mcp/tools/realtime_database/set_data.ts","../src/mcp/tools/remoteconfig/get_template.ts","../src/mcp/tools/remoteconfig/index.ts","../src/mcp/tools/remoteconfig/update_template.ts","../src/mcp/tools/storage/get_download_url.ts","../src/mcp/tools/storage/index.ts","../src/mcp/util/availability.ts","../src/mcp/util/apptesting/availability.ts","../src/mcp/util/crashlytics/availability.ts","../src/mcp/util/dataconnect/compile.ts","../src/mcp/util/dataconnect/content.ts","../src/mcp/util/dataconnect/converter.ts","../src/mcp/util/dataconnect/emulator.ts","../src/messaging/interfaces.ts","../src/messaging/sendMessage.ts","../src/remoteconfig/deleteExperiment.ts","../src/remoteconfig/deleteRollout.ts","../src/remoteconfig/get.ts","../src/remoteconfig/getExperiment.ts","../src/remoteconfig/getRollout.ts","../src/remoteconfig/interfaces.ts","../src/remoteconfig/listExperiments.ts","../src/remoteconfig/listRollouts.ts","../src/remoteconfig/options.ts","../src/remoteconfig/publish.ts","../src/remoteconfig/rollback.ts","../src/remoteconfig/versionslist.ts","../src/serve/functions.ts","../src/serve/hosting.ts","../src/serve/index.ts","../src/throttler/queue.ts","../src/throttler/stack.ts","../src/throttler/throttler.ts","../src/throttler/errors/retries-exhausted-error.ts","../src/throttler/errors/task-error.ts","../src/throttler/errors/timeout-error.ts","../src/types/extractTriggers.d.ts","../src/types/update-notifier-cjs.d.ts","../src/types/auth/index.d.ts","../src/types/project/index.d.ts","../src/types/proxy/index.d.ts"],"version":"5.9.3"}
package/lib/unzip.js CHANGED
@@ -111,11 +111,10 @@ class UnzipTransform extends stream_1.Transform {
111
111
  callback();
112
112
  }
113
113
  async _flush(callback) {
114
- var _a, _b;
115
114
  try {
116
115
  await extractEntriesFromBuffer(Buffer.concat(this.chunks), this.outputDir);
117
116
  callback();
118
- (_a = this._resolve) === null || _a === void 0 ? void 0 : _a.call(this);
117
+ this._resolve?.();
119
118
  }
120
119
  catch (error) {
121
120
  const firebaseError = new error_1.FirebaseError("Unable to unzip the target", {
@@ -123,7 +122,7 @@ class UnzipTransform extends stream_1.Transform {
123
122
  original: error instanceof Error ? error : undefined,
124
123
  });
125
124
  callback(firebaseError);
126
- (_b = this._reject) === null || _b === void 0 ? void 0 : _b.call(this, firebaseError);
125
+ this._reject?.(firebaseError);
127
126
  }
128
127
  }
129
128
  async promise() {
package/lib/utils.js CHANGED
@@ -1,7 +1,66 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.openInBrowser = exports.connectableHostname = exports.randomInt = exports.debounce = exports.last = exports.cloneDeep = exports.groupBy = exports.assertIsStringOrUndefined = exports.assertIsNumber = exports.assertIsString = exports.thirtyDaysFromNow = exports.isRunningInGithubAction = exports.isRunningInWSL = exports.isCloudEnvironment = exports.datetimeString = exports.createDestroyer = exports.sleep = exports.promiseWithSpinner = exports.tryParse = exports.promiseProps = exports.withTimeout = exports.promiseWhile = exports.promiseAllSettled = exports.getFunctionsEventProvider = exports.endpoint = exports.makeActiveProject = exports.streamToString = exports.stringToStream = exports.explainStdin = exports.allSettled = exports.reject = exports.logLabeledError = exports.logLabeledWarning = exports.logWarningToStderr = exports.logWarning = exports.logLabeledBullet = exports.logBullet = exports.logLabeledSuccess = exports.logSuccess = exports.addSubdomain = exports.addDatabaseNamespace = exports.getDatabaseViewDataUrl = exports.getDatabaseUrl = exports.envOverride = exports.setVSCodeEnvVars = exports.getInheritedOption = exports.consoleUrl = exports.vscodeEnvVars = exports.envOverrides = exports.IS_WINDOWS = void 0;
4
- exports.resolveWithin = exports.commandExistsSync = exports.newUniqueId = exports.deepEqual = exports.promptForDirectory = exports.updateOrCreateGitignore = exports.readSecretValue = exports.generatePassword = exports.generateId = exports.wrappedSafeLoad = exports.readFileFromDirectory = exports.getHostnameFromUrl = exports.openInBrowserPopup = void 0;
3
+ exports.vscodeEnvVars = exports.envOverrides = exports.IS_WINDOWS = void 0;
4
+ exports.consoleUrl = consoleUrl;
5
+ exports.getInheritedOption = getInheritedOption;
6
+ exports.setVSCodeEnvVars = setVSCodeEnvVars;
7
+ exports.envOverride = envOverride;
8
+ exports.getDatabaseUrl = getDatabaseUrl;
9
+ exports.getDatabaseViewDataUrl = getDatabaseViewDataUrl;
10
+ exports.addDatabaseNamespace = addDatabaseNamespace;
11
+ exports.addSubdomain = addSubdomain;
12
+ exports.logSuccess = logSuccess;
13
+ exports.logLabeledSuccess = logLabeledSuccess;
14
+ exports.logBullet = logBullet;
15
+ exports.logLabeledBullet = logLabeledBullet;
16
+ exports.logWarning = logWarning;
17
+ exports.logWarningToStderr = logWarningToStderr;
18
+ exports.logLabeledWarning = logLabeledWarning;
19
+ exports.logLabeledError = logLabeledError;
20
+ exports.reject = reject;
21
+ exports.allSettled = allSettled;
22
+ exports.explainStdin = explainStdin;
23
+ exports.stringToStream = stringToStream;
24
+ exports.streamToString = streamToString;
25
+ exports.makeActiveProject = makeActiveProject;
26
+ exports.endpoint = endpoint;
27
+ exports.getFunctionsEventProvider = getFunctionsEventProvider;
28
+ exports.promiseAllSettled = promiseAllSettled;
29
+ exports.promiseWhile = promiseWhile;
30
+ exports.withTimeout = withTimeout;
31
+ exports.promiseProps = promiseProps;
32
+ exports.tryParse = tryParse;
33
+ exports.promiseWithSpinner = promiseWithSpinner;
34
+ exports.sleep = sleep;
35
+ exports.createDestroyer = createDestroyer;
36
+ exports.datetimeString = datetimeString;
37
+ exports.isCloudEnvironment = isCloudEnvironment;
38
+ exports.isRunningInWSL = isRunningInWSL;
39
+ exports.isRunningInGithubAction = isRunningInGithubAction;
40
+ exports.thirtyDaysFromNow = thirtyDaysFromNow;
41
+ exports.assertIsString = assertIsString;
42
+ exports.assertIsNumber = assertIsNumber;
43
+ exports.assertIsStringOrUndefined = assertIsStringOrUndefined;
44
+ exports.groupBy = groupBy;
45
+ exports.cloneDeep = cloneDeep;
46
+ exports.last = last;
47
+ exports.debounce = debounce;
48
+ exports.randomInt = randomInt;
49
+ exports.connectableHostname = connectableHostname;
50
+ exports.openInBrowser = openInBrowser;
51
+ exports.openInBrowserPopup = openInBrowserPopup;
52
+ exports.getHostnameFromUrl = getHostnameFromUrl;
53
+ exports.readFileFromDirectory = readFileFromDirectory;
54
+ exports.wrappedSafeLoad = wrappedSafeLoad;
55
+ exports.generateId = generateId;
56
+ exports.generatePassword = generatePassword;
57
+ exports.readSecretValue = readSecretValue;
58
+ exports.updateOrCreateGitignore = updateOrCreateGitignore;
59
+ exports.promptForDirectory = promptForDirectory;
60
+ exports.deepEqual = deepEqual;
61
+ exports.newUniqueId = newUniqueId;
62
+ exports.commandExistsSync = commandExistsSync;
63
+ exports.resolveWithin = resolveWithin;
5
64
  const fs = require("fs-extra");
6
65
  const tty = require("tty");
7
66
  const path = require("node:path");
@@ -37,7 +96,6 @@ function consoleUrl(project, path) {
37
96
  const api = require("./api");
38
97
  return `${api.consoleOrigin()}/project/${project}${path}`;
39
98
  }
40
- exports.consoleUrl = consoleUrl;
41
99
  function getInheritedOption(options, key) {
42
100
  let target = options;
43
101
  while (target) {
@@ -47,11 +105,9 @@ function getInheritedOption(options, key) {
47
105
  target = target.parent;
48
106
  }
49
107
  }
50
- exports.getInheritedOption = getInheritedOption;
51
108
  function setVSCodeEnvVars(envVar, value) {
52
109
  exports.vscodeEnvVars[envVar] = value;
53
110
  }
54
- exports.setVSCodeEnvVars = setVSCodeEnvVars;
55
111
  function envOverride(envname, value, coerce) {
56
112
  const currentEnvValue = (0, vsCodeUtils_1.isVSCodeExtension)() && exports.vscodeEnvVars[envname] ? exports.vscodeEnvVars[envname] : process.env[envname];
57
113
  if (currentEnvValue && currentEnvValue.length) {
@@ -68,12 +124,10 @@ function envOverride(envname, value, coerce) {
68
124
  }
69
125
  return value;
70
126
  }
71
- exports.envOverride = envOverride;
72
127
  function getDatabaseUrl(origin, namespace, pathname) {
73
128
  const withPath = url.resolve(origin, pathname);
74
129
  return addDatabaseNamespace(withPath, namespace);
75
130
  }
76
- exports.getDatabaseUrl = getDatabaseUrl;
77
131
  function getDatabaseViewDataUrl(origin, project, namespace, pathname) {
78
132
  const urlObj = new url.URL(origin);
79
133
  if (urlObj.hostname.includes("firebaseio") || urlObj.hostname.includes("firebasedatabase")) {
@@ -81,7 +135,6 @@ function getDatabaseViewDataUrl(origin, project, namespace, pathname) {
81
135
  }
82
136
  return getDatabaseUrl(origin, namespace, pathname + ".json");
83
137
  }
84
- exports.getDatabaseViewDataUrl = getDatabaseViewDataUrl;
85
138
  function addDatabaseNamespace(origin, namespace) {
86
139
  const urlObj = new url.URL(origin);
87
140
  if (urlObj.hostname.includes(namespace)) {
@@ -93,48 +146,37 @@ function addDatabaseNamespace(origin, namespace) {
93
146
  urlObj.searchParams.set("ns", namespace);
94
147
  return urlObj.href;
95
148
  }
96
- exports.addDatabaseNamespace = addDatabaseNamespace;
97
149
  function addSubdomain(origin, subdomain) {
98
150
  return origin.replace("//", `//${subdomain}.`);
99
151
  }
100
- exports.addSubdomain = addSubdomain;
101
152
  function logSuccess(message, type = "info", data = undefined) {
102
153
  logger_1.logger[type](clc.green(clc.bold(`${SUCCESS_CHAR} `)), message, data);
103
154
  }
104
- exports.logSuccess = logSuccess;
105
155
  function logLabeledSuccess(label, message, type = "info", data = undefined) {
106
156
  logger_1.logger[type](clc.green(clc.bold(`${SUCCESS_CHAR} ${label}:`)), message, data);
107
157
  }
108
- exports.logLabeledSuccess = logLabeledSuccess;
109
158
  function logBullet(message, type = "info", data = undefined) {
110
159
  logger_1.logger[type](clc.cyan(clc.bold("i ")), message, data);
111
160
  }
112
- exports.logBullet = logBullet;
113
161
  function logLabeledBullet(label, message, type = "info", data = undefined) {
114
162
  logger_1.logger[type](clc.cyan(clc.bold(`i ${label}:`)), message, data);
115
163
  }
116
- exports.logLabeledBullet = logLabeledBullet;
117
164
  function logWarning(message, type = "warn", data = undefined) {
118
165
  logger_1.logger[type](clc.yellow(clc.bold(`${WARNING_CHAR} `)), message, data);
119
166
  }
120
- exports.logWarning = logWarning;
121
167
  function logWarningToStderr(message) {
122
168
  const prefix = clc.bold(`${WARNING_CHAR} `);
123
169
  process.stderr.write(clc.yellow(prefix + message) + "\n");
124
170
  }
125
- exports.logWarningToStderr = logWarningToStderr;
126
171
  function logLabeledWarning(label, message, type = "warn", data = undefined) {
127
172
  logger_1.logger[type](clc.yellow(clc.bold(`${WARNING_CHAR} ${label}:`)), message, data);
128
173
  }
129
- exports.logLabeledWarning = logLabeledWarning;
130
174
  function logLabeledError(label, message, type = "error", data = undefined) {
131
175
  logger_1.logger[type](clc.red(clc.bold(`${ERROR_CHAR} ${label}:`)), message, data);
132
176
  }
133
- exports.logLabeledError = logLabeledError;
134
177
  function reject(message, options) {
135
178
  return Promise.reject(new error_1.FirebaseError(message, options));
136
179
  }
137
- exports.reject = reject;
138
180
  function allSettled(promises) {
139
181
  if (!promises.length) {
140
182
  return Promise.resolve([]);
@@ -163,7 +205,6 @@ function allSettled(promises) {
163
205
  }
164
206
  });
165
207
  }
166
- exports.allSettled = allSettled;
167
208
  function explainStdin() {
168
209
  if (exports.IS_WINDOWS) {
169
210
  throw new error_1.FirebaseError("STDIN input is not available on Windows.", {
@@ -174,7 +215,6 @@ function explainStdin() {
174
215
  logger_1.logger.info(clc.bold("Note:"), "Reading STDIN. Type JSON data and then press Ctrl-D");
175
216
  }
176
217
  }
177
- exports.explainStdin = explainStdin;
178
218
  function stringToStream(text) {
179
219
  if (!text) {
180
220
  return undefined;
@@ -184,7 +224,6 @@ function stringToStream(text) {
184
224
  s.push(null);
185
225
  return s;
186
226
  }
187
- exports.stringToStream = stringToStream;
188
227
  function streamToString(s) {
189
228
  return new Promise((resolve, reject) => {
190
229
  let b = "";
@@ -193,7 +232,6 @@ function streamToString(s) {
193
232
  s.once("end", () => resolve(b));
194
233
  });
195
234
  }
196
- exports.streamToString = streamToString;
197
235
  function makeActiveProject(projectDir, newActive) {
198
236
  const activeProjects = configstore_1.configstore.get("activeProjects") || {};
199
237
  if (newActive) {
@@ -204,11 +242,9 @@ function makeActiveProject(projectDir, newActive) {
204
242
  }
205
243
  configstore_1.configstore.set("activeProjects", activeProjects);
206
244
  }
207
- exports.makeActiveProject = makeActiveProject;
208
245
  function endpoint(parts) {
209
246
  return `/${parts.join("/")}`;
210
247
  }
211
- exports.endpoint = endpoint;
212
248
  function getFunctionsEventProvider(eventType) {
213
249
  const parts = eventType.split("/");
214
250
  if (parts.length > 1) {
@@ -238,7 +274,6 @@ function getFunctionsEventProvider(eventType) {
238
274
  }
239
275
  return _.capitalize(eventType.split(".")[1]);
240
276
  }
241
- exports.getFunctionsEventProvider = getFunctionsEventProvider;
242
277
  function promiseAllSettled(promises) {
243
278
  const wrappedPromises = promises.map(async (p) => {
244
279
  try {
@@ -251,7 +286,6 @@ function promiseAllSettled(promises) {
251
286
  });
252
287
  return Promise.all(wrappedPromises);
253
288
  }
254
- exports.promiseAllSettled = promiseAllSettled;
255
289
  async function promiseWhile(action, check, interval = 2500) {
256
290
  return new Promise((resolve, promiseReject) => {
257
291
  const run = async () => {
@@ -269,7 +303,6 @@ async function promiseWhile(action, check, interval = 2500) {
269
303
  run();
270
304
  });
271
305
  }
272
- exports.promiseWhile = promiseWhile;
273
306
  function withTimeout(timeoutMs, promise) {
274
307
  return new Promise((resolve, reject) => {
275
308
  const timeout = setTimeout(() => reject(new Error("Timed out.")), timeoutMs);
@@ -282,7 +315,6 @@ function withTimeout(timeoutMs, promise) {
282
315
  });
283
316
  });
284
317
  }
285
- exports.withTimeout = withTimeout;
286
318
  async function promiseProps(obj) {
287
319
  const resultObj = {};
288
320
  const promises = Object.keys(obj).map(async (key) => {
@@ -291,7 +323,6 @@ async function promiseProps(obj) {
291
323
  });
292
324
  return Promise.all(promises).then(() => resultObj);
293
325
  }
294
- exports.promiseProps = promiseProps;
295
326
  function tryParse(value) {
296
327
  if (typeof value !== "string") {
297
328
  return value;
@@ -299,11 +330,10 @@ function tryParse(value) {
299
330
  try {
300
331
  return JSON.parse(value);
301
332
  }
302
- catch (_a) {
333
+ catch {
303
334
  return value;
304
335
  }
305
336
  }
306
- exports.tryParse = tryParse;
307
337
  async function promiseWithSpinner(action, message) {
308
338
  const spinner = ora(message).start();
309
339
  let data;
@@ -317,11 +347,9 @@ async function promiseWithSpinner(action, message) {
317
347
  }
318
348
  return data;
319
349
  }
320
- exports.promiseWithSpinner = promiseWithSpinner;
321
350
  function sleep(ms) {
322
351
  return new Promise((resolve) => setTimeout(resolve, ms));
323
352
  }
324
- exports.sleep = sleep;
325
353
  function createDestroyer(server) {
326
354
  const connections = new Set();
327
355
  server.on("connection", (conn) => {
@@ -343,7 +371,6 @@ function createDestroyer(server) {
343
371
  return destroyPromise;
344
372
  };
345
373
  }
346
- exports.createDestroyer = createDestroyer;
347
374
  function datetimeString(d) {
348
375
  const day = `${d.getFullYear()}-${(d.getMonth() + 1).toString().padStart(2, "0")}-${d
349
376
  .getDate()
@@ -355,26 +382,21 @@ function datetimeString(d) {
355
382
  .padStart(2, "0")}:${d.getSeconds().toString().padStart(2, "0")}`;
356
383
  return `${day} ${time}`;
357
384
  }
358
- exports.datetimeString = datetimeString;
359
385
  function isCloudEnvironment() {
360
386
  return (!!process.env.CODESPACES ||
361
387
  !!process.env.GOOGLE_CLOUD_WORKSTATIONS ||
362
388
  !!process.env.CLOUD_SHELL ||
363
389
  !!process.env.GOOGLE_CLOUD_SHELL);
364
390
  }
365
- exports.isCloudEnvironment = isCloudEnvironment;
366
391
  function isRunningInWSL() {
367
392
  return !!process.env.WSL_DISTRO_NAME;
368
393
  }
369
- exports.isRunningInWSL = isRunningInWSL;
370
394
  function isRunningInGithubAction() {
371
395
  return process.env.GITHUB_ACTION_REPOSITORY === "FirebaseExtended/action-hosting-deploy";
372
396
  }
373
- exports.isRunningInGithubAction = isRunningInGithubAction;
374
397
  function thirtyDaysFromNow() {
375
398
  return new Date(Date.now() + THIRTY_DAYS_IN_MILLISECONDS);
376
399
  }
377
- exports.thirtyDaysFromNow = thirtyDaysFromNow;
378
400
  function assertIsString(val, message) {
379
401
  if (typeof val !== "string") {
380
402
  throw new assert_1.AssertionError({
@@ -382,7 +404,6 @@ function assertIsString(val, message) {
382
404
  });
383
405
  }
384
406
  }
385
- exports.assertIsString = assertIsString;
386
407
  function assertIsNumber(val, message) {
387
408
  if (typeof val !== "number") {
388
409
  throw new assert_1.AssertionError({
@@ -390,7 +411,6 @@ function assertIsNumber(val, message) {
390
411
  });
391
412
  }
392
413
  }
393
- exports.assertIsNumber = assertIsNumber;
394
414
  function assertIsStringOrUndefined(val, message) {
395
415
  if (!(val === undefined || typeof val === "string")) {
396
416
  throw new assert_1.AssertionError({
@@ -398,7 +418,6 @@ function assertIsStringOrUndefined(val, message) {
398
418
  });
399
419
  }
400
420
  }
401
- exports.assertIsStringOrUndefined = assertIsStringOrUndefined;
402
421
  function groupBy(arr, f) {
403
422
  return arr.reduce((result, item) => {
404
423
  const key = f(item);
@@ -411,7 +430,6 @@ function groupBy(arr, f) {
411
430
  return result;
412
431
  }, {});
413
432
  }
414
- exports.groupBy = groupBy;
415
433
  function cloneArray(arr) {
416
434
  return arr.map((e) => cloneDeep(e));
417
435
  }
@@ -440,14 +458,12 @@ function cloneDeep(obj) {
440
458
  }
441
459
  return cloneObject(obj);
442
460
  }
443
- exports.cloneDeep = cloneDeep;
444
461
  function last(arr) {
445
462
  if (!Array.isArray(arr)) {
446
463
  return undefined;
447
464
  }
448
465
  return arr[arr.length - 1];
449
466
  }
450
- exports.last = last;
451
467
  function debounce(fn, delay, { leading } = {}) {
452
468
  let timer;
453
469
  return (...args) => {
@@ -458,13 +474,11 @@ function debounce(fn, delay, { leading } = {}) {
458
474
  timer = setTimeout(() => fn(...args), delay);
459
475
  };
460
476
  }
461
- exports.debounce = debounce;
462
477
  function randomInt(min, max) {
463
478
  min = Math.floor(min);
464
479
  max = Math.ceil(max) + 1;
465
480
  return Math.floor(Math.random() * (max - min) + min);
466
481
  }
467
- exports.randomInt = randomInt;
468
482
  function connectableHostname(hostname) {
469
483
  if (hostname === "0.0.0.0") {
470
484
  hostname = "127.0.0.1";
@@ -477,11 +491,9 @@ function connectableHostname(hostname) {
477
491
  }
478
492
  return hostname;
479
493
  }
480
- exports.connectableHostname = connectableHostname;
481
494
  async function openInBrowser(url) {
482
495
  await open(url);
483
496
  }
484
- exports.openInBrowser = openInBrowser;
485
497
  async function openInBrowserPopup(url, buttonText) {
486
498
  const popupPage = (0, templates_1.readTemplateSync)("popup.html")
487
499
  .replace("${url}", url)
@@ -505,7 +517,6 @@ async function openInBrowserPopup(url, buttonText) {
505
517
  },
506
518
  };
507
519
  }
508
- exports.openInBrowserPopup = openInBrowserPopup;
509
520
  function getHostnameFromUrl(url) {
510
521
  try {
511
522
  return new URL(url).hostname;
@@ -514,7 +525,6 @@ function getHostnameFromUrl(url) {
514
525
  return null;
515
526
  }
516
527
  }
517
- exports.getHostnameFromUrl = getHostnameFromUrl;
518
528
  function readFileFromDirectory(directory, file) {
519
529
  return new Promise((resolve, reject) => {
520
530
  fs.readFile(path.resolve(directory, file), "utf8", (err, data) => {
@@ -535,7 +545,6 @@ function readFileFromDirectory(directory, file) {
535
545
  };
536
546
  });
537
547
  }
538
- exports.readFileFromDirectory = readFileFromDirectory;
539
548
  function wrappedSafeLoad(source) {
540
549
  try {
541
550
  return yaml.parse(source);
@@ -544,7 +553,6 @@ function wrappedSafeLoad(source) {
544
553
  throw new error_1.FirebaseError(`YAML Error: ${(0, error_1.getErrMsg)(err)}`, { original: (0, error_1.getError)(err) });
545
554
  }
546
555
  }
547
- exports.wrappedSafeLoad = wrappedSafeLoad;
548
556
  function generateId(n = 6) {
549
557
  const letters = "abcdefghijklmnopqrstuvwxyz";
550
558
  const allChars = "01234567890-abcdefghijklmnopqrstuvwxyz";
@@ -555,7 +563,6 @@ function generateId(n = 6) {
555
563
  }
556
564
  return id;
557
565
  }
558
- exports.generateId = generateId;
559
566
  function generatePassword(n = 20) {
560
567
  const lower = "abcdefghijklmnopqrstuvwxyz";
561
568
  const upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
@@ -577,7 +584,6 @@ function generatePassword(n = 20) {
577
584
  }
578
585
  return pwArray.join("");
579
586
  }
580
- exports.generatePassword = generatePassword;
581
587
  function readSecretValue(prompt, dataFile) {
582
588
  if ((!dataFile || dataFile === "-") && tty.isatty(0)) {
583
589
  return (0, prompt_1.password)({ message: prompt });
@@ -596,7 +602,6 @@ function readSecretValue(prompt, dataFile) {
596
602
  throw e;
597
603
  }
598
604
  }
599
- exports.readSecretValue = readSecretValue;
600
605
  function updateOrCreateGitignore(dirPath, entries) {
601
606
  const gitignorePath = path.join(dirPath, ".gitignore");
602
607
  if (!fs.existsSync(gitignorePath)) {
@@ -611,7 +616,6 @@ function updateOrCreateGitignore(dirPath, entries) {
611
616
  }
612
617
  fs.writeFileSync(gitignorePath, content);
613
618
  }
614
- exports.updateOrCreateGitignore = updateOrCreateGitignore;
615
619
  async function promptForDirectory(args) {
616
620
  let dir = "";
617
621
  while (!dir) {
@@ -635,7 +639,6 @@ async function promptForDirectory(args) {
635
639
  }
636
640
  return dir;
637
641
  }
638
- exports.promptForDirectory = promptForDirectory;
639
642
  function deepEqual(a, b) {
640
643
  if (a === b) {
641
644
  return true;
@@ -655,7 +658,6 @@ function deepEqual(a, b) {
655
658
  }
656
659
  return true;
657
660
  }
658
- exports.deepEqual = deepEqual;
659
661
  function newUniqueId(recommended, existingIDs) {
660
662
  let id = recommended;
661
663
  let i = 1;
@@ -665,7 +667,6 @@ function newUniqueId(recommended, existingIDs) {
665
667
  }
666
668
  return id;
667
669
  }
668
- exports.newUniqueId = newUniqueId;
669
670
  function commandExistsSync(command) {
670
671
  try {
671
672
  const isWindows = (0, node_os_1.platform)() === "win32";
@@ -679,7 +680,6 @@ function commandExistsSync(command) {
679
680
  return false;
680
681
  }
681
682
  }
682
- exports.commandExistsSync = commandExistsSync;
683
683
  function resolveWithin(base, subPath, errMsg) {
684
684
  const abs = path.resolve(base, subPath);
685
685
  const rel = path.relative(base, abs);
@@ -688,4 +688,3 @@ function resolveWithin(base, subPath, errMsg) {
688
688
  }
689
689
  return abs;
690
690
  }
691
- exports.resolveWithin = resolveWithin;
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setIsVSCodeExtension = exports.isVSCodeExtension = void 0;
3
+ exports.isVSCodeExtension = isVSCodeExtension;
4
+ exports.setIsVSCodeExtension = setIsVSCodeExtension;
4
5
  let _IS_WEBPACKED_FOR_VSCE = false;
5
6
  function isVSCodeExtension() {
6
7
  return _IS_WEBPACKED_FOR_VSCE;
7
8
  }
8
- exports.isVSCodeExtension = isVSCodeExtension;
9
9
  function setIsVSCodeExtension(v) {
10
10
  _IS_WEBPACKED_FOR_VSCE = v;
11
11
  }
12
- exports.setIsVSCodeExtension = setIsVSCodeExtension;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "firebase-tools",
3
- "version": "15.0.0",
3
+ "version": "15.2.0",
4
4
  "description": "Command-Line Interface for Firebase",
5
5
  "main": "./lib/index.js",
6
6
  "mcpName": "io.github.firebase/firebase-mcp",
@@ -68,8 +68,8 @@
68
68
  "@electric-sql/pglite-tools": "^0.2.8",
69
69
  "@google-cloud/cloud-sql-connector": "^1.3.3",
70
70
  "@google-cloud/pubsub": "^5.2.0",
71
- "@inquirer/prompts": "^7.4.0",
72
- "@modelcontextprotocol/sdk": "^1.10.2",
71
+ "@inquirer/prompts": "^8.1.0",
72
+ "@modelcontextprotocol/sdk": "^1.24.0",
73
73
  "abort-controller": "^3.0.0",
74
74
  "ajv": "^8.17.1",
75
75
  "ajv-formats": "3.0.1",
@@ -95,11 +95,11 @@
95
95
  "fs-extra": "^10.1.0",
96
96
  "fuzzy": "^0.1.3",
97
97
  "gaxios": "^6.7.0",
98
- "glob": "^10.4.1",
98
+ "glob": "^10.5.0",
99
99
  "google-auth-library": "^9.11.0",
100
100
  "ignore": "^7.0.4",
101
- "js-yaml": "^3.14.1",
102
- "jsonwebtoken": "^9.0.0",
101
+ "js-yaml": "^3.14.2",
102
+ "jsonwebtoken": "^9.0.2",
103
103
  "leven": "^3.1.0",
104
104
  "libsodium-wrappers": "^0.7.10",
105
105
  "lodash": "^4.17.21",
@@ -8,7 +8,7 @@
8
8
  * https://firebase.google.com/docs/extensions/publishers
9
9
  */
10
10
 
11
- import * as functions from "firebase-functions";
11
+ import * as functions from "firebase-functions/v1";
12
12
 
13
13
  exports.greetTheWorld = functions.https.onRequest(
14
14
  (req: functions.Request, res: functions.Response) => {