firebase-tools 15.1.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 +19 -21
  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 +1 -2
  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 +7 -7
  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 +18 -20
  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 +16 -23
  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 +3 -3
  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 +17 -9
  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
@@ -1,6 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isIncomaptibleArchError = exports.start = exports.downloadIfNecessary = exports.stop = exports.getPID = exports.get = exports.getDownloadDetails = exports.requiresJava = exports.handleEmulatorProcessError = exports._getCommand = exports.getLogFileName = void 0;
3
+ exports.getLogFileName = getLogFileName;
4
+ exports._getCommand = _getCommand;
5
+ exports.handleEmulatorProcessError = handleEmulatorProcessError;
6
+ exports.requiresJava = requiresJava;
7
+ exports.getDownloadDetails = getDownloadDetails;
8
+ exports.get = get;
9
+ exports.getPID = getPID;
10
+ exports.stop = stop;
11
+ exports.downloadIfNecessary = downloadIfNecessary;
12
+ exports.start = start;
13
+ exports.isIncomaptibleArchError = isIncomaptibleArchError;
4
14
  const lsofi = require("lsofi");
5
15
  const types_1 = require("./types");
6
16
  const constants_1 = require("./constants");
@@ -36,19 +46,31 @@ function generateDownloadDetails(emulator) {
36
46
  return {
37
47
  downloadPath: path.join(CACHE_DIR, EMULATOR_UPDATE_DETAILS.database.downloadPathRelativeToCacheDir),
38
48
  version: EMULATOR_UPDATE_DETAILS.database.version,
39
- opts: Object.assign(Object.assign({}, EMULATOR_UPDATE_DETAILS.database), { cacheDir: CACHE_DIR, namePrefix: "firebase-database-emulator" }),
49
+ opts: {
50
+ ...EMULATOR_UPDATE_DETAILS.database,
51
+ cacheDir: CACHE_DIR,
52
+ namePrefix: "firebase-database-emulator",
53
+ },
40
54
  };
41
55
  case "firestore":
42
56
  return {
43
57
  downloadPath: path.join(CACHE_DIR, EMULATOR_UPDATE_DETAILS.firestore.downloadPathRelativeToCacheDir),
44
58
  version: EMULATOR_UPDATE_DETAILS.firestore.version,
45
- opts: Object.assign(Object.assign({}, EMULATOR_UPDATE_DETAILS.firestore), { cacheDir: CACHE_DIR, namePrefix: "cloud-firestore-emulator" }),
59
+ opts: {
60
+ ...EMULATOR_UPDATE_DETAILS.firestore,
61
+ cacheDir: CACHE_DIR,
62
+ namePrefix: "cloud-firestore-emulator",
63
+ },
46
64
  };
47
65
  case "storage":
48
66
  return {
49
67
  downloadPath: path.join(CACHE_DIR, EMULATOR_UPDATE_DETAILS.storage.downloadPathRelativeToCacheDir),
50
68
  version: EMULATOR_UPDATE_DETAILS.storage.version,
51
- opts: Object.assign(Object.assign({}, EMULATOR_UPDATE_DETAILS.storage), { cacheDir: CACHE_DIR, namePrefix: "cloud-storage-rules-emulator" }),
69
+ opts: {
70
+ ...EMULATOR_UPDATE_DETAILS.storage,
71
+ cacheDir: CACHE_DIR,
72
+ namePrefix: "cloud-storage-rules-emulator",
73
+ },
52
74
  };
53
75
  case "ui":
54
76
  return {
@@ -56,7 +78,13 @@ function generateDownloadDetails(emulator) {
56
78
  downloadPath: path.join(CACHE_DIR, emulatorUiDetails.downloadPathRelativeToCacheDir),
57
79
  unzipDir: path.join(CACHE_DIR, `ui-v${emulatorUiDetails.version}`),
58
80
  binaryPath: path.join(CACHE_DIR, emulatorUiDetails.binaryPathRelativeToCacheDir),
59
- opts: Object.assign(Object.assign({}, emulatorUiDetails), { cacheDir: CACHE_DIR, skipCache: experiments.isEnabled("emulatoruisnapshot"), skipChecksumAndSize: experiments.isEnabled("emulatoruisnapshot"), namePrefix: "ui" }),
81
+ opts: {
82
+ ...emulatorUiDetails,
83
+ cacheDir: CACHE_DIR,
84
+ skipCache: experiments.isEnabled("emulatoruisnapshot"),
85
+ skipChecksumAndSize: experiments.isEnabled("emulatoruisnapshot"),
86
+ namePrefix: "ui",
87
+ },
60
88
  };
61
89
  case "pubsub":
62
90
  return {
@@ -64,14 +92,24 @@ function generateDownloadDetails(emulator) {
64
92
  version: EMULATOR_UPDATE_DETAILS.pubsub.version,
65
93
  unzipDir: path.join(CACHE_DIR, `pubsub-emulator-${EMULATOR_UPDATE_DETAILS.pubsub.version}`),
66
94
  binaryPath: path.join(CACHE_DIR, EMULATOR_UPDATE_DETAILS.pubsub.binaryPathRelativeToCacheDir),
67
- opts: Object.assign(Object.assign({}, EMULATOR_UPDATE_DETAILS.pubsub), { cacheDir: CACHE_DIR, namePrefix: "pubsub-emulator" }),
95
+ opts: {
96
+ ...EMULATOR_UPDATE_DETAILS.pubsub,
97
+ cacheDir: CACHE_DIR,
98
+ namePrefix: "pubsub-emulator",
99
+ },
68
100
  };
69
101
  case "dataconnect":
70
102
  return {
71
103
  downloadPath: path.join(CACHE_DIR, dataconnectDetails.downloadPathRelativeToCacheDir),
72
104
  version: dataconnectDetails.version,
73
105
  binaryPath: path.join(CACHE_DIR, dataconnectDetails.downloadPathRelativeToCacheDir),
74
- opts: Object.assign(Object.assign({}, dataconnectDetails), { cacheDir: CACHE_DIR, skipChecksumAndSize: false, namePrefix: "dataconnect-emulator", auth: false }),
106
+ opts: {
107
+ ...dataconnectDetails,
108
+ cacheDir: CACHE_DIR,
109
+ skipChecksumAndSize: false,
110
+ namePrefix: "dataconnect-emulator",
111
+ auth: false,
112
+ },
75
113
  };
76
114
  default:
77
115
  throw new Error(`Invalid downloadable emulator: ${emulator}`);
@@ -191,7 +229,6 @@ function getExecPath(name) {
191
229
  function getLogFileName(name) {
192
230
  return `${name}-debug.log`;
193
231
  }
194
- exports.getLogFileName = getLogFileName;
195
232
  function _getCommand(emulator, args) {
196
233
  const baseCmd = Commands[emulator];
197
234
  const defaultPort = constants_1.Constants.getDefaultPort(emulator);
@@ -232,7 +269,6 @@ function _getCommand(emulator, args) {
232
269
  port: args.port,
233
270
  };
234
271
  }
235
- exports._getCommand = _getCommand;
236
272
  async function _fatal(emulator, errorMsg) {
237
273
  try {
238
274
  const logger = emulatorLogger_1.EmulatorLogger.forEmulator(emulator);
@@ -256,22 +292,19 @@ async function handleEmulatorProcessError(emulator, err, port) {
256
292
  await _fatal(emulator, `${description} has exited: ${err}`);
257
293
  }
258
294
  }
259
- exports.handleEmulatorProcessError = handleEmulatorProcessError;
260
295
  function requiresJava(emulator) {
261
296
  if (emulator in Commands) {
262
297
  return Commands[emulator].binary === "java";
263
298
  }
264
299
  return false;
265
300
  }
266
- exports.requiresJava = requiresJava;
267
301
  async function _runBinary(emulator, command, extraEnv) {
268
302
  return new Promise((resolve) => {
269
- var _a, _b;
270
303
  const logger = emulatorLogger_1.EmulatorLogger.forEmulator(emulator.name);
271
304
  emulator.stdout = fs.createWriteStream(getLogFileName(emulator.name));
272
305
  try {
273
306
  const opts = {
274
- env: Object.assign(Object.assign({}, process.env), extraEnv),
307
+ env: { ...process.env, ...extraEnv },
275
308
  detached: true,
276
309
  stdio: ["inherit", "pipe", "pipe"],
277
310
  };
@@ -300,11 +333,11 @@ async function _runBinary(emulator, command, extraEnv) {
300
333
  return;
301
334
  }
302
335
  logger.logLabeled("BULLET", emulator.name, `${description} logging to ${clc.bold(getLogFileName(emulator.name))}`);
303
- (_a = emulator.instance.stdout) === null || _a === void 0 ? void 0 : _a.on("data", (data) => {
336
+ emulator.instance.stdout?.on("data", (data) => {
304
337
  logger.log("DEBUG", data.toString());
305
338
  emulator.stdout.write(data);
306
339
  });
307
- (_b = emulator.instance.stderr) === null || _b === void 0 ? void 0 : _b.on("data", (data) => {
340
+ emulator.instance.stderr?.on("data", (data) => {
308
341
  logger.log("DEBUG", data.toString());
309
342
  emulator.stdout.write(data);
310
343
  if (data.toString().includes("java.lang.UnsupportedClassVersionError")) {
@@ -342,16 +375,13 @@ function getDownloadDetails(emulator) {
342
375
  }
343
376
  return details;
344
377
  }
345
- exports.getDownloadDetails = getDownloadDetails;
346
378
  function get(emulator) {
347
379
  return EmulatorDetails[emulator];
348
380
  }
349
- exports.get = get;
350
381
  function getPID(emulator) {
351
382
  const emulatorInstance = get(emulator).instance;
352
383
  return emulatorInstance && emulatorInstance.pid ? emulatorInstance.pid : 0;
353
384
  }
354
- exports.getPID = getPID;
355
385
  async function stop(targetName) {
356
386
  const emulator = get(targetName);
357
387
  return new Promise((resolve, reject) => {
@@ -374,7 +404,6 @@ async function stop(targetName) {
374
404
  }
375
405
  });
376
406
  }
377
- exports.stop = stop;
378
407
  async function downloadIfNecessary(targetName) {
379
408
  const hasEmulator = fs.existsSync(getExecPath(targetName));
380
409
  if (!hasEmulator) {
@@ -382,7 +411,6 @@ async function downloadIfNecessary(targetName) {
382
411
  }
383
412
  return Commands[targetName];
384
413
  }
385
- exports.downloadIfNecessary = downloadIfNecessary;
386
414
  async function start(targetName, args, extraEnv = {}) {
387
415
  const downloadDetails = getDownloadDetails(targetName);
388
416
  const emulator = get(targetName);
@@ -404,11 +432,8 @@ async function start(targetName, args, extraEnv = {}) {
404
432
  logger.log("DEBUG", `Starting ${constants_1.Constants.description(targetName)} with command ${JSON.stringify(command)}`);
405
433
  return _runBinary(emulator, command, extraEnv);
406
434
  }
407
- exports.start = start;
408
435
  function isIncomaptibleArchError(err) {
409
- var _a;
410
436
  return ((0, error_1.hasMessage)(err) &&
411
- /Unknown system error/.test((_a = err.message) !== null && _a !== void 0 ? _a : "") &&
437
+ /Unknown system error/.test(err.message ?? "") &&
412
438
  process.platform === "darwin");
413
439
  }
414
- exports.isIncomaptibleArchError = isIncomaptibleArchError;
@@ -22,7 +22,7 @@ var Verbosity;
22
22
  Verbosity[Verbosity["INFO"] = 1] = "INFO";
23
23
  Verbosity[Verbosity["QUIET"] = 2] = "QUIET";
24
24
  Verbosity[Verbosity["SILENT"] = 3] = "SILENT";
25
- })(Verbosity = exports.Verbosity || (exports.Verbosity = {}));
25
+ })(Verbosity || (exports.Verbosity = Verbosity = {}));
26
26
  class EmulatorLogger {
27
27
  constructor(name, data = {}) {
28
28
  this.name = name;
@@ -71,7 +71,13 @@ class EmulatorLogger {
71
71
  logger_1.logger.debug(`${type}: ${text}`);
72
72
  return;
73
73
  }
74
- const mergedData = Object.assign(Object.assign({}, data), { metadata: Object.assign(Object.assign({}, data.metadata), { message: text }) });
74
+ const mergedData = {
75
+ ...data,
76
+ metadata: {
77
+ ...data.metadata,
78
+ message: text,
79
+ },
80
+ };
75
81
  switch (type) {
76
82
  case "DEBUG":
77
83
  logger_1.logger.debug(text, mergedData);
@@ -111,7 +117,10 @@ class EmulatorLogger {
111
117
  this.handleSystemLog(log);
112
118
  break;
113
119
  case "USER":
114
- this.log("USER", `${clc.blackBright("> ")} ${log.text}`, Object.assign({ user: (0, utils_1.tryParse)(log.text) }, this.data));
120
+ this.log("USER", `${clc.blackBright("> ")} ${log.text}`, {
121
+ user: (0, utils_1.tryParse)(log.text),
122
+ ...this.data,
123
+ });
115
124
  break;
116
125
  case "DEBUG":
117
126
  if (log.data && Object.keys(log.data).length > 0) {
@@ -202,7 +211,13 @@ You can probably fix this by running "npm install ${systemLog.data.name}@latest"
202
211
  logger_1.logger.debug(`[${label}] ${text}`);
203
212
  return;
204
213
  }
205
- const mergedData = Object.assign(Object.assign({}, this.data), { metadata: Object.assign(Object.assign({}, this.data.metadata), { message: text }) });
214
+ const mergedData = {
215
+ ...this.data,
216
+ metadata: {
217
+ ...this.data.metadata,
218
+ message: text,
219
+ },
220
+ };
206
221
  switch (type) {
207
222
  case "DEBUG":
208
223
  logger_1.logger.debug(`[${label}] ${text}`);
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.maybeUsePortForwarding = exports.getCredentialsEnvironment = exports.setEnvVarsForEmulators = void 0;
3
+ exports.setEnvVarsForEmulators = setEnvVarsForEmulators;
4
+ exports.getCredentialsEnvironment = getCredentialsEnvironment;
5
+ exports.maybeUsePortForwarding = maybeUsePortForwarding;
4
6
  const constants_1 = require("./constants");
5
7
  const types_1 = require("./types");
6
8
  const functionsEmulatorShared_1 = require("./functionsEmulatorShared");
@@ -42,7 +44,6 @@ function setEnvVarsForEmulators(env, emulators) {
42
44
  }
43
45
  }
44
46
  }
45
- exports.setEnvVarsForEmulators = setEnvVarsForEmulators;
46
47
  async function getCredentialsEnvironment(account, logger, logLabel, silent = false) {
47
48
  const credentialEnv = {};
48
49
  if (await (0, defaultCredentials_1.hasDefaultCredentials)()) {
@@ -58,19 +59,17 @@ async function getCredentialsEnvironment(account, logger, logLabel, silent = fal
58
59
  }
59
60
  return credentialEnv;
60
61
  }
61
- exports.getCredentialsEnvironment = getCredentialsEnvironment;
62
62
  function maybeUsePortForwarding(i) {
63
- var _a;
64
63
  const portForwardingHost = process.env.WEB_HOST;
65
64
  if (portForwardingHost) {
66
- const info = Object.assign({}, i);
65
+ const info = { ...i };
67
66
  if (info.host.includes(portForwardingHost)) {
68
67
  return info;
69
68
  }
70
69
  const url = `${info.port}-${portForwardingHost}`;
71
70
  info.host = url;
72
- info.listen = (_a = info.listen) === null || _a === void 0 ? void 0 : _a.map((listen) => {
73
- const l = Object.assign({}, listen);
71
+ info.listen = info.listen?.map((listen) => {
72
+ const l = { ...listen };
74
73
  l.address = url;
75
74
  l.port = 443;
76
75
  return l;
@@ -85,4 +84,3 @@ function maybeUsePortForwarding(i) {
85
84
  }
86
85
  return i;
87
86
  }
88
- exports.maybeUsePortForwarding = maybeUsePortForwarding;
@@ -156,10 +156,9 @@ class EventarcEmulator {
156
156
  }
157
157
  matchesAll(event, eventFilters) {
158
158
  return Object.entries(eventFilters).every(([key, value]) => {
159
- var _a, _b;
160
- let attr = (_a = event[key]) !== null && _a !== void 0 ? _a : event.attributes[key];
159
+ let attr = event[key] ?? event.attributes[key];
161
160
  if (typeof attr === "object" && !Array.isArray(attr)) {
162
- attr = (_b = attr.ceTimestamp) !== null && _b !== void 0 ? _b : attr.ceString;
161
+ attr = attr.ceTimestamp ?? attr.ceString;
163
162
  }
164
163
  return attr === value;
165
164
  });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cloudEventFromProtoToJson = void 0;
3
+ exports.cloudEventFromProtoToJson = cloudEventFromProtoToJson;
4
4
  const error_1 = require("../error");
5
5
  const BUILT_IN_ATTRS = ["time", "datacontenttype", "subject"];
6
6
  function cloudEventFromProtoToJson(ce) {
@@ -34,14 +34,11 @@ function cloudEventFromProtoToJson(ce) {
34
34
  }
35
35
  return out;
36
36
  }
37
- exports.cloudEventFromProtoToJson = cloudEventFromProtoToJson;
38
37
  function getOptionalAttribute(ce, attr, type) {
39
- var _a, _b;
40
- return (_b = (_a = ce === null || ce === void 0 ? void 0 : ce["attributes"]) === null || _a === void 0 ? void 0 : _a[attr]) === null || _b === void 0 ? void 0 : _b[type];
38
+ return ce?.["attributes"]?.[attr]?.[type];
41
39
  }
42
40
  function getRequiredAttribute(ce, attr, type) {
43
- var _a, _b;
44
- const val = (_b = (_a = ce === null || ce === void 0 ? void 0 : ce["attributes"]) === null || _a === void 0 ? void 0 : _a[attr]) === null || _b === void 0 ? void 0 : _b[type];
41
+ const val = ce?.["attributes"]?.[attr]?.[type];
45
42
  if (val === undefined) {
46
43
  throw new error_1.FirebaseError("CloudEvent must contain " + attr + " attribute");
47
44
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.replaceConsoleLinks = void 0;
3
+ exports.replaceConsoleLinks = replaceConsoleLinks;
4
4
  const registry_1 = require("../registry");
5
5
  const types_1 = require("../types");
6
6
  function replaceConsoleLinks(postinstall) {
@@ -38,4 +38,3 @@ function replaceConsoleLinks(postinstall) {
38
38
  }
39
39
  return subbedPostinstall;
40
40
  }
41
- exports.replaceConsoleLinks = replaceConsoleLinks;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkForUnemulatedTriggerTypes = exports.getUnemulatedAPIs = void 0;
3
+ exports.getUnemulatedAPIs = getUnemulatedAPIs;
4
+ exports.checkForUnemulatedTriggerTypes = checkForUnemulatedTriggerTypes;
4
5
  const planner = require("../../deploy/extensions/planner");
5
6
  const controller_1 = require("../controller");
6
7
  const constants_1 = require("../constants");
@@ -14,11 +15,10 @@ const EMULATED_APIS = [
14
15
  "identitytoolkit.googleapis.com",
15
16
  ];
16
17
  async function getUnemulatedAPIs(projectId, instances) {
17
- var _a;
18
18
  const unemulatedAPIs = {};
19
19
  for (const i of instances) {
20
20
  const extensionSpec = await planner.getExtensionSpec(i);
21
- for (const api of (_a = extensionSpec.apis) !== null && _a !== void 0 ? _a : []) {
21
+ for (const api of extensionSpec.apis ?? []) {
22
22
  if (!EMULATED_APIS.includes(api.apiName)) {
23
23
  if (unemulatedAPIs[api.apiName]) {
24
24
  unemulatedAPIs[api.apiName].instanceIds.push(i.instanceId);
@@ -37,10 +37,8 @@ async function getUnemulatedAPIs(projectId, instances) {
37
37
  }
38
38
  return Object.values(unemulatedAPIs);
39
39
  }
40
- exports.getUnemulatedAPIs = getUnemulatedAPIs;
41
40
  function checkForUnemulatedTriggerTypes(backend, options) {
42
- var _a;
43
- const triggers = (_a = backend.predefinedTriggers) !== null && _a !== void 0 ? _a : [];
41
+ const triggers = backend.predefinedTriggers ?? [];
44
42
  const unemulatedTriggers = triggers
45
43
  .filter((definition) => {
46
44
  if (definition.httpsTrigger) {
@@ -69,4 +67,3 @@ function checkForUnemulatedTriggerTypes(backend, options) {
69
67
  .map((definition) => constants_1.Constants.getServiceName((0, functionsEmulatorShared_1.getFunctionService)(definition)));
70
68
  return [...new Set(unemulatedTriggers)];
71
69
  }
72
- exports.checkForUnemulatedTriggerTypes = checkForUnemulatedTriggerTypes;
@@ -49,17 +49,16 @@ class ExtensionsEmulator {
49
49
  if (!functionsEmulator) {
50
50
  throw new error_1.FirebaseError("Extensions Emulator is running but Functions emulator is not. This should never happen.");
51
51
  }
52
- return Object.assign(Object.assign({}, functionsEmulator.getInfo()), { name: this.getName() });
52
+ return { ...functionsEmulator.getInfo(), name: this.getName() };
53
53
  }
54
54
  getName() {
55
55
  return types_1.Emulators.EXTENSIONS;
56
56
  }
57
57
  async readManifest() {
58
- var _a;
59
58
  this.want = await planner.want({
60
59
  projectId: this.args.projectId,
61
60
  projectNumber: this.args.projectNumber,
62
- aliases: (_a = this.args.aliases) !== null && _a !== void 0 ? _a : [],
61
+ aliases: this.args.aliases ?? [],
63
62
  projectDir: this.args.projectDir,
64
63
  extensions: this.args.extensions,
65
64
  emulatorMode: true,
@@ -194,16 +193,15 @@ class ExtensionsEmulator {
194
193
  return emulatableBackend;
195
194
  }
196
195
  autoPopulatedParams(instance) {
197
- var _a;
198
196
  const projectId = this.args.projectId;
199
197
  return {
200
- PROJECT_ID: projectId !== null && projectId !== void 0 ? projectId : "",
198
+ PROJECT_ID: projectId ?? "",
201
199
  EXT_INSTANCE_ID: instance.instanceId,
202
- DATABASE_INSTANCE: projectId !== null && projectId !== void 0 ? projectId : "",
200
+ DATABASE_INSTANCE: projectId ?? "",
203
201
  DATABASE_URL: `https://${projectId}.firebaseio.com`,
204
202
  STORAGE_BUCKET: `${projectId}.appspot.com`,
205
203
  ALLOWED_EVENT_TYPES: instance.allowedEventTypes ? instance.allowedEventTypes.join(",") : "",
206
- EVENTARC_CHANNEL: (_a = instance.eventarcChannel) !== null && _a !== void 0 ? _a : "",
204
+ EVENTARC_CHANNEL: instance.eventarcChannel ?? "",
207
205
  EVENTARC_CLOUD_EVENT_SOURCE: `projects/${projectId}/instances/${instance.instanceId}`,
208
206
  };
209
207
  }
@@ -266,7 +264,6 @@ class ExtensionsEmulator {
266
264
  return clc.underline(clc.bold(uiUrl.toString()));
267
265
  }
268
266
  extensionsInfoTable() {
269
- var _a;
270
267
  const filtedBackends = this.filterUnemulatedTriggers(this.backends);
271
268
  const uiRunning = registry_1.EmulatorRegistry.isRunning(types_1.Emulators.UI);
272
269
  const tableHead = ["Extension Instance Name", "Extension Ref"];
@@ -276,7 +273,7 @@ class ExtensionsEmulator {
276
273
  const table = new Table({ head: tableHead, style: { head: ["yellow"] } });
277
274
  for (const b of filtedBackends) {
278
275
  if (b.extensionInstanceId) {
279
- const tableEntry = [b.extensionInstanceId, ((_a = b.extensionVersion) === null || _a === void 0 ? void 0 : _a.ref) || "Local Extension"];
276
+ const tableEntry = [b.extensionInstanceId, b.extensionVersion?.ref || "Local Extension"];
280
277
  if (uiRunning)
281
278
  tableEntry.push(this.extensionDetailsUILink(b));
282
279
  table.push(tableEntry);