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.
- package/lib/accountExporter.js +3 -5
- package/lib/accountImporter.js +4 -5
- package/lib/api.js +3 -3
- package/lib/apiv2.js +9 -13
- package/lib/appUtils.js +33 -36
- package/lib/appdistribution/client.js +4 -8
- package/lib/appdistribution/distribution.js +4 -4
- package/lib/appdistribution/options-parser-util.js +8 -9
- package/lib/appdistribution/types.js +2 -2
- package/lib/appdistribution/yaml_helper.js +33 -17
- package/lib/apphosting/app.js +8 -13
- package/lib/apphosting/backend.js +34 -24
- package/lib/apphosting/config.js +14 -14
- package/lib/apphosting/githubConnections.js +38 -35
- package/lib/apphosting/localbuilds.js +4 -6
- package/lib/apphosting/repo.js +24 -20
- package/lib/apphosting/rollout.js +12 -5
- package/lib/apphosting/secrets/dialogs.js +9 -9
- package/lib/apphosting/secrets/index.js +9 -11
- package/lib/apphosting/utils.js +2 -3
- package/lib/apphosting/yaml.js +12 -11
- package/lib/apptesting/ensureProjectConfigured.js +1 -2
- package/lib/apptesting/invokeTests.js +2 -3
- package/lib/apptesting/parseTestFiles.js +5 -6
- package/lib/apptesting/types.js +2 -2
- package/lib/archiveDirectory.js +1 -2
- package/lib/auth.js +36 -40
- package/lib/bin/cli.js +2 -3
- package/lib/bin/mcp.js +47 -10
- package/lib/checkMinRequiredVersion.js +1 -2
- package/lib/checkValidTargetFilters.js +1 -2
- package/lib/command.js +6 -9
- package/lib/commands/appdistribution-testers-list.js +2 -3
- package/lib/commands/apphosting-backends-list.js +4 -6
- package/lib/commands/apphosting-builds-create.js +2 -3
- package/lib/commands/apphosting-builds-get.js +1 -2
- package/lib/commands/apphosting-rollouts-list.js +1 -2
- package/lib/commands/apps-init.js +1 -1
- package/lib/commands/{apptesting-execute.js → apptesting-wata.js} +3 -4
- package/lib/commands/crashlytics-symbols-upload.js +2 -2
- package/lib/commands/dataconnect-execute.js +4 -4
- package/lib/commands/dataconnect-sdk-generate.js +5 -6
- package/lib/commands/dataconnect-services-list.js +7 -8
- package/lib/commands/dataconnect-sql-diff.js +1 -2
- package/lib/commands/dataconnect-sql-migrate.js +4 -3
- package/lib/commands/dataconnect-sql-setup.js +2 -2
- package/lib/commands/dataconnect-sql-shell.js +5 -1
- package/lib/commands/emulators-start.js +1 -2
- package/lib/commands/ext-configure.js +6 -4
- package/lib/commands/ext-dev-list.js +2 -3
- package/lib/commands/ext-dev-upload.js +2 -2
- package/lib/commands/ext-export.js +1 -1
- package/lib/commands/ext-info.js +2 -3
- package/lib/commands/ext-install.js +5 -7
- package/lib/commands/firestore-backups-list.js +1 -2
- package/lib/commands/firestore-backups-schedules-list.js +1 -2
- package/lib/commands/firestore-indexes-list.js +1 -2
- package/lib/commands/firestore-utils.js +1 -2
- package/lib/commands/functions-artifacts-setpolicy.js +1 -2
- package/lib/commands/functions-config-export.js +2 -3
- package/lib/commands/hosting-channel-deploy.js +2 -2
- package/lib/commands/hosting-clone.js +2 -3
- package/lib/commands/hosting-sites-create.js +1 -1
- package/lib/commands/index.js +2 -3
- package/lib/commands/init.js +4 -5
- package/lib/commands/internaltesting-functions-discover.js +1 -1
- package/lib/commands/login.js +4 -5
- package/lib/commands/logout.js +3 -3
- package/lib/commands/projects-create.js +1 -1
- package/lib/commands/remoteconfig-experiments-list.js +2 -3
- package/lib/commands/remoteconfig-get.js +1 -1
- package/lib/commands/remoteconfig-rollback.js +1 -2
- package/lib/commands/remoteconfig-rollouts-list.js +2 -3
- package/lib/commands/remoteconfig-versions-list.js +3 -4
- package/lib/commands/use.js +3 -3
- package/lib/config.js +4 -5
- package/lib/crashlytics/buildToolsJarHelper.js +3 -5
- package/lib/crashlytics/events.js +4 -7
- package/lib/crashlytics/filters.js +10 -12
- package/lib/crashlytics/issues.js +2 -3
- package/lib/crashlytics/notes.js +3 -4
- package/lib/crashlytics/reports.js +21 -15
- package/lib/crashlytics/types.js +7 -7
- package/lib/crashlytics/utils.js +4 -4
- package/lib/database/api.js +2 -3
- package/lib/database/import.js +4 -4
- package/lib/database/metadata.js +5 -6
- package/lib/database/rulesConfig.js +2 -3
- package/lib/dataconnect/build.js +10 -13
- package/lib/dataconnect/checkIam.js +1 -2
- package/lib/dataconnect/client.js +15 -18
- package/lib/dataconnect/dataplaneClient.js +6 -6
- package/lib/dataconnect/ensureApis.js +2 -3
- package/lib/dataconnect/errors.js +8 -11
- package/lib/dataconnect/filters.js +2 -3
- package/lib/dataconnect/freeTrial.js +3 -4
- package/lib/dataconnect/graphqlError.js +5 -8
- package/lib/dataconnect/load.js +10 -11
- package/lib/dataconnect/names.js +14 -18
- package/lib/dataconnect/prompts.js +1 -2
- package/lib/dataconnect/provisionCloudSql.js +13 -17
- package/lib/dataconnect/schemaMigration.js +60 -27
- package/lib/dataconnect/types.js +10 -12
- package/lib/dataconnect/webhook.js +3 -3
- package/lib/defaultCredentials.js +3 -4
- package/lib/deploy/apphosting/deploy.js +2 -3
- package/lib/deploy/apphosting/prepare.js +3 -5
- package/lib/deploy/apphosting/release.js +1 -1
- package/lib/deploy/apphosting/util.js +1 -2
- package/lib/deploy/database/deploy.js +1 -2
- package/lib/deploy/database/prepare.js +1 -2
- package/lib/deploy/database/release.js +1 -2
- package/lib/deploy/dataconnect/context.js +15 -4
- package/lib/deploy/dataconnect/deploy.js +5 -6
- package/lib/deploy/dataconnect/prepare.js +7 -9
- package/lib/deploy/dataconnect/release.js +7 -10
- package/lib/deploy/extensions/deploy.js +7 -9
- package/lib/deploy/extensions/deploymentSummary.js +6 -7
- package/lib/deploy/extensions/planner.js +15 -18
- package/lib/deploy/extensions/prepare.js +9 -11
- package/lib/deploy/extensions/release.js +10 -12
- package/lib/deploy/extensions/secrets.js +8 -11
- package/lib/deploy/extensions/tasks.js +6 -8
- package/lib/deploy/extensions/v2FunctionHelper.js +2 -3
- package/lib/deploy/extensions/validate.js +1 -2
- package/lib/deploy/firestore/deploy.js +3 -5
- package/lib/deploy/firestore/prepare.js +2 -3
- package/lib/deploy/firestore/release.js +3 -4
- package/lib/deploy/functions/backend.js +52 -42
- package/lib/deploy/functions/build.js +41 -15
- package/lib/deploy/functions/cache/applyHash.js +3 -5
- package/lib/deploy/functions/cache/hash.js +4 -5
- package/lib/deploy/functions/cel.js +3 -3
- package/lib/deploy/functions/checkIam.js +8 -8
- package/lib/deploy/functions/containerCleaner.js +10 -6
- package/lib/deploy/functions/deploy.js +6 -8
- package/lib/deploy/functions/ensure.js +6 -9
- package/lib/deploy/functions/functionsDeployHelper.js +10 -11
- package/lib/deploy/functions/params.js +10 -10
- package/lib/deploy/functions/prepare.js +41 -36
- package/lib/deploy/functions/prepareFunctionsUpload.js +24 -10
- package/lib/deploy/functions/pricing.js +3 -3
- package/lib/deploy/functions/prompts.js +7 -10
- package/lib/deploy/functions/release/executor.js +5 -6
- package/lib/deploy/functions/release/fabricator.js +76 -29
- package/lib/deploy/functions/release/index.js +23 -14
- package/lib/deploy/functions/release/planner.js +15 -14
- package/lib/deploy/functions/release/reporter.js +20 -20
- package/lib/deploy/functions/release/sourceTokenScraper.js +4 -5
- package/lib/deploy/functions/remoteSource.js +3 -4
- package/lib/deploy/functions/runtimes/discovery/index.js +9 -12
- package/lib/deploy/functions/runtimes/discovery/parsing.js +2 -3
- package/lib/deploy/functions/runtimes/discovery/v1alpha1.js +29 -10
- package/lib/deploy/functions/runtimes/index.js +1 -2
- package/lib/deploy/functions/runtimes/node/index.js +18 -9
- package/lib/deploy/functions/runtimes/node/parseRuntimeAndValidateSDK.js +2 -2
- package/lib/deploy/functions/runtimes/node/validate.js +1 -2
- package/lib/deploy/functions/runtimes/node/versioning.js +6 -7
- package/lib/deploy/functions/runtimes/python/index.js +12 -12
- package/lib/deploy/functions/runtimes/supported/index.js +5 -6
- package/lib/deploy/functions/services/auth.js +49 -36
- package/lib/deploy/functions/services/database.js +1 -2
- package/lib/deploy/functions/services/dataconnect.js +16 -2
- package/lib/deploy/functions/services/firebaseAlerts.js +1 -2
- package/lib/deploy/functions/services/firestore.js +3 -5
- package/lib/deploy/functions/services/index.js +2 -2
- package/lib/deploy/functions/services/remoteConfig.js +1 -2
- package/lib/deploy/functions/services/storage.js +3 -5
- package/lib/deploy/functions/services/testLab.js +1 -2
- package/lib/deploy/functions/triggerRegionHelper.js +1 -2
- package/lib/deploy/functions/validate.js +12 -11
- package/lib/deploy/hosting/convertConfig.js +38 -22
- package/lib/deploy/hosting/deploy.js +4 -7
- package/lib/deploy/hosting/hashcache.js +2 -3
- package/lib/deploy/hosting/prepare.js +14 -14
- package/lib/deploy/hosting/release.js +1 -2
- package/lib/deploy/index.js +7 -8
- package/lib/deploy/lifecycleHooks.js +3 -5
- package/lib/deploy/remoteconfig/deploy.js +1 -1
- package/lib/deploy/remoteconfig/functions.js +5 -6
- package/lib/deploy/remoteconfig/prepare.js +2 -3
- package/lib/deploy/remoteconfig/release.js +2 -2
- package/lib/deploy/storage/deploy.js +1 -1
- package/lib/deploy/storage/prepare.js +1 -1
- package/lib/deploy/storage/release.js +1 -1
- package/lib/deploymentTool.js +5 -6
- package/lib/detectProjectRoot.js +1 -2
- package/lib/downloadUtils.js +2 -3
- package/lib/emulator/adminSdkConfig.js +2 -3
- package/lib/emulator/apphosting/config.js +1 -2
- package/lib/emulator/apphosting/developmentServer.js +3 -3
- package/lib/emulator/apphosting/serve.js +20 -14
- package/lib/emulator/auth/cloudFunctions.js +2 -3
- package/lib/emulator/auth/errors.js +2 -2
- package/lib/emulator/auth/handlers.js +3 -4
- package/lib/emulator/auth/index.js +6 -6
- package/lib/emulator/auth/operations.js +171 -129
- package/lib/emulator/auth/server.js +30 -22
- package/lib/emulator/auth/state.js +26 -36
- package/lib/emulator/auth/utils.js +12 -13
- package/lib/emulator/commandUtils.js +20 -20
- package/lib/emulator/controller.js +32 -29
- package/lib/emulator/databaseEmulator.js +1 -2
- package/lib/emulator/dataconnect/pgliteServer.js +48 -104
- package/lib/emulator/dataconnectEmulator.js +6 -9
- package/lib/emulator/download.js +2 -3
- package/lib/emulator/downloadableEmulatorInfo.json +31 -31
- package/lib/emulator/downloadableEmulators.js +49 -24
- package/lib/emulator/emulatorLogger.js +19 -4
- package/lib/emulator/env.js +6 -8
- package/lib/emulator/eventarcEmulator.js +2 -3
- package/lib/emulator/eventarcEmulatorUtils.js +3 -6
- package/lib/emulator/extensions/postinstall.js +1 -2
- package/lib/emulator/extensions/validation.js +4 -7
- package/lib/emulator/extensionsEmulator.js +6 -9
- package/lib/emulator/functionsEmulator.js +89 -46
- package/lib/emulator/functionsEmulatorRuntime.js +1 -1
- package/lib/emulator/functionsEmulatorShared.js +30 -30
- package/lib/emulator/functionsEmulatorShell.js +4 -6
- package/lib/emulator/functionsEmulatorUtils.js +8 -9
- package/lib/emulator/functionsRuntimeWorker.js +18 -9
- package/lib/emulator/hub.js +41 -34
- package/lib/emulator/hubClient.js +1 -1
- package/lib/emulator/initEmulators.js +2 -3
- package/lib/emulator/loggingEmulator.js +2 -2
- package/lib/emulator/portUtils.js +4 -5
- package/lib/emulator/registry.js +10 -4
- package/lib/emulator/shared/request.js +1 -2
- package/lib/emulator/storage/apis/firebase.js +16 -20
- package/lib/emulator/storage/apis/gcloud.js +6 -9
- package/lib/emulator/storage/apis/shared.js +1 -2
- package/lib/emulator/storage/crc.js +2 -3
- package/lib/emulator/storage/files.js +18 -41
- package/lib/emulator/storage/metadata.js +10 -4
- package/lib/emulator/storage/multipart.js +1 -2
- package/lib/emulator/storage/rfc.js +1 -2
- package/lib/emulator/storage/rules/config.js +1 -2
- package/lib/emulator/storage/rules/manager.js +3 -5
- package/lib/emulator/storage/rules/runtime.js +15 -13
- package/lib/emulator/storage/rules/types.js +2 -2
- package/lib/emulator/storage/rules/utils.js +5 -6
- package/lib/emulator/storage/server.js +1 -2
- package/lib/emulator/storage/upload.js +3 -4
- package/lib/emulator/taskQueue.js +11 -4
- package/lib/emulator/tasksEmulator.js +11 -12
- package/lib/emulator/types.js +6 -6
- package/lib/emulator/ui.js +6 -1
- package/lib/ensureApiEnabled.js +7 -9
- package/lib/env.js +2 -3
- package/lib/error.js +11 -13
- package/lib/errorOut.js +1 -2
- package/lib/experiments.js +15 -18
- package/lib/extensions/askUserForEventsConfig.js +12 -13
- package/lib/extensions/askUserForParam.js +11 -12
- package/lib/extensions/change-log.js +4 -5
- package/lib/extensions/checkProjectBilling.js +1 -2
- package/lib/extensions/diagnose.js +1 -2
- package/lib/extensions/displayExtensionInfo.js +25 -32
- package/lib/extensions/emulator/optionsHelper.js +6 -8
- package/lib/extensions/emulator/specHelper.js +15 -16
- package/lib/extensions/emulator/triggerHelper.js +3 -5
- package/lib/extensions/etags.js +2 -3
- package/lib/extensions/export.js +7 -9
- package/lib/extensions/extensionsApi.js +23 -29
- package/lib/extensions/extensionsHelper.js +52 -80
- package/lib/extensions/listExtensions.js +3 -5
- package/lib/extensions/localHelper.js +5 -5
- package/lib/extensions/manifest.js +15 -16
- package/lib/extensions/metricsUtils.js +3 -4
- package/lib/extensions/paramHelper.js +21 -18
- package/lib/extensions/provisioningHelper.js +17 -21
- package/lib/extensions/publishHelpers.js +1 -2
- package/lib/extensions/publisherApi.js +11 -13
- package/lib/extensions/refs.js +6 -7
- package/lib/extensions/runtimes/common.js +18 -19
- package/lib/extensions/runtimes/node.js +5 -6
- package/lib/extensions/secretsUtils.js +8 -8
- package/lib/extensions/tos.js +7 -8
- package/lib/extensions/types.js +3 -3
- package/lib/extensions/updateHelper.js +6 -7
- package/lib/extensions/utils.js +6 -8
- package/lib/extensions/versionHelper.js +1 -2
- package/lib/extensions/warnings.js +6 -8
- package/lib/fetchMOTD.js +1 -2
- package/lib/fetchWebSetup.js +3 -4
- package/lib/filterTargets.js +1 -2
- package/lib/firebaseConfigValidate.js +2 -3
- package/lib/firestore/api-sort.js +8 -9
- package/lib/firestore/api-types.js +15 -15
- package/lib/firestore/api.js +15 -13
- package/lib/firestore/backupUtils.js +3 -3
- package/lib/firestore/checkDatabaseType.js +1 -2
- package/lib/firestore/delete.js +1 -2
- package/lib/firestore/encodeFirestoreValue.js +1 -2
- package/lib/firestore/fsConfig.js +1 -2
- package/lib/firestore/options.js +1 -1
- package/lib/firestore/util.js +5 -6
- package/lib/firestore/validator.js +4 -5
- package/lib/frameworks/angular/index.js +14 -15
- package/lib/frameworks/angular/utils.js +21 -23
- package/lib/frameworks/astro/index.js +7 -7
- package/lib/frameworks/astro/utils.js +4 -6
- package/lib/frameworks/compose/discover/filesystem.js +3 -3
- package/lib/frameworks/compose/discover/frameworkMatcher.js +4 -5
- package/lib/frameworks/compose/discover/index.js +1 -2
- package/lib/frameworks/compose/discover/runtime/node.js +8 -11
- package/lib/frameworks/compose/driver/docker.js +3 -5
- package/lib/frameworks/compose/driver/hooks.js +2 -2
- package/lib/frameworks/compose/driver/index.js +2 -2
- package/lib/frameworks/compose/driver/local.js +2 -3
- package/lib/frameworks/compose/index.js +5 -7
- package/lib/frameworks/constants.js +3 -3
- package/lib/frameworks/express/index.js +7 -8
- package/lib/frameworks/flutter/index.js +6 -7
- package/lib/frameworks/flutter/utils.js +4 -5
- package/lib/frameworks/index.js +21 -22
- package/lib/frameworks/next/constants.js +5 -2
- package/lib/frameworks/next/index.js +34 -32
- package/lib/frameworks/next/utils.js +40 -39
- package/lib/frameworks/nuxt/index.js +9 -9
- package/lib/frameworks/nuxt/utils.js +4 -6
- package/lib/frameworks/nuxt2/index.js +7 -7
- package/lib/frameworks/sveltekit/index.js +6 -8
- package/lib/frameworks/utils.js +26 -24
- package/lib/frameworks/vite/index.js +8 -9
- package/lib/fsAsync.js +1 -2
- package/lib/fsutils.js +5 -6
- package/lib/functional.js +11 -11
- package/lib/functions/artifacts.js +25 -22
- package/lib/functions/ensureTargeted.js +1 -2
- package/lib/functions/env.js +13 -14
- package/lib/functions/functionslog.js +2 -3
- package/lib/functions/projectConfig.js +29 -33
- package/lib/functions/python.js +10 -4
- package/lib/functions/secrets.js +32 -18
- package/lib/functionsConfig.js +14 -14
- package/lib/functionsConfigClone.js +1 -2
- package/lib/functionsShellCommandAction.js +2 -3
- package/lib/gcp/apphosting.js +43 -28
- package/lib/gcp/apptesting.js +2 -2
- package/lib/gcp/artifactregistry.js +5 -5
- package/lib/gcp/auth.js +11 -13
- package/lib/gcp/cloudbilling.js +4 -5
- package/lib/gcp/cloudbuild.js +10 -11
- package/lib/gcp/cloudfunctions.js +61 -45
- package/lib/gcp/cloudfunctionsv2.js +81 -43
- package/lib/gcp/cloudlogging.js +2 -4
- package/lib/gcp/cloudmonitoring.js +7 -7
- package/lib/gcp/cloudscheduler.js +12 -14
- package/lib/gcp/cloudsql/cloudsqladmin.js +19 -21
- package/lib/gcp/cloudsql/connect.js +14 -9
- package/lib/gcp/cloudsql/fbToolsAuthClient.js +5 -3
- package/lib/gcp/cloudsql/interactive.js +2 -3
- package/lib/gcp/cloudsql/permissions.js +8 -8
- package/lib/gcp/cloudsql/permissionsSetup.js +9 -9
- package/lib/gcp/cloudtasks.js +19 -18
- package/lib/gcp/computeEngine.js +1 -2
- package/lib/gcp/devConnect.js +32 -29
- package/lib/gcp/docker.js +2 -4
- package/lib/gcp/eventarc.js +5 -5
- package/lib/gcp/firedata.js +4 -4
- package/lib/gcp/firestore.js +16 -16
- package/lib/gcp/iam.js +11 -12
- package/lib/gcp/identityPlatform.js +4 -5
- package/lib/gcp/k8s.js +1 -2
- package/lib/gcp/location.js +2 -2
- package/lib/gcp/proto.js +10 -11
- package/lib/gcp/pubsub.js +4 -5
- package/lib/gcp/resourceManager.js +5 -5
- package/lib/gcp/rules.js +13 -14
- package/lib/gcp/run.js +24 -31
- package/lib/gcp/runv2.js +39 -27
- package/lib/gcp/secretManager.js +60 -39
- package/lib/gcp/serviceusage.js +8 -4
- package/lib/gcp/storage.js +22 -20
- package/lib/gemini/fdcExperience.js +5 -5
- package/lib/getDefaultDatabaseInstance.js +2 -4
- package/lib/getDefaultHostingSite.js +3 -4
- package/lib/getProjectNumber.js +1 -2
- package/lib/hosting/api.js +32 -36
- package/lib/hosting/cloudRunProxy.js +2 -3
- package/lib/hosting/config.js +17 -17
- package/lib/hosting/expireUtils.js +3 -3
- package/lib/hosting/functionsProxy.js +1 -2
- package/lib/hosting/implicitInit.js +1 -2
- package/lib/hosting/initMiddleware.js +1 -2
- package/lib/hosting/interactive.js +1 -2
- package/lib/hosting/proxy.js +3 -5
- package/lib/hosting/runTags.js +8 -11
- package/lib/init/features/account.js +1 -2
- package/lib/init/features/ailogic/index.js +3 -5
- package/lib/init/features/ailogic/utils.js +6 -8
- package/lib/init/features/aitools/claude.js +1 -2
- package/lib/init/features/aitools/cursor.js +1 -2
- package/lib/init/features/aitools/gemini.js +1 -1
- package/lib/init/features/aitools/promptUpdater.js +10 -12
- package/lib/init/features/aitools.js +1 -2
- package/lib/init/features/apphosting.js +3 -4
- package/lib/init/features/apptesting/index.js +9 -9
- package/lib/init/features/database.js +4 -5
- package/lib/init/features/dataconnect/create_app.js +3 -4
- package/lib/init/features/dataconnect/index.js +25 -22
- package/lib/init/features/dataconnect/resolver.js +6 -10
- package/lib/init/features/dataconnect/sdk.js +31 -24
- package/lib/init/features/emulators.js +7 -6
- package/lib/init/features/extensions/index.js +3 -5
- package/lib/init/features/firestore/index.js +7 -9
- package/lib/init/features/firestore/indexes.js +2 -2
- package/lib/init/features/firestore/rules.js +3 -3
- package/lib/init/features/functions/index.js +3 -5
- package/lib/init/features/functions/javascript.js +1 -2
- package/lib/init/features/functions/npm-dependencies.js +1 -2
- package/lib/init/features/functions/python.js +1 -2
- package/lib/init/features/functions/typescript.js +1 -2
- package/lib/init/features/genkit/index.js +44 -18
- package/lib/init/features/hosting/github.js +6 -8
- package/lib/init/features/hosting/index.js +10 -13
- package/lib/init/features/project.js +4 -7
- package/lib/init/features/remoteconfig.js +1 -2
- package/lib/init/features/storage.js +3 -5
- package/lib/init/index.js +4 -7
- package/lib/init/spawn.js +7 -9
- package/lib/listFiles.js +1 -2
- package/lib/loadCJSON.js +1 -2
- package/lib/localFunction.js +14 -15
- package/lib/logError.js +1 -2
- package/lib/logger.js +7 -7
- package/lib/management/apps.js +22 -22
- package/lib/management/database.js +11 -12
- package/lib/management/projects.js +57 -56
- package/lib/management/provisioning/errorHandler.js +3 -5
- package/lib/management/provisioning/provision.js +15 -9
- package/lib/management/studio.js +2 -3
- package/lib/mcp/errors.js +4 -4
- package/lib/mcp/index.js +47 -45
- package/lib/mcp/prompt.js +1 -2
- package/lib/mcp/prompts/core/consult.js +2 -3
- package/lib/mcp/prompts/crashlytics/connect.js +15 -122
- package/lib/mcp/prompts/dataconnect/schema.js +3 -3
- package/lib/mcp/prompts/index.js +8 -10
- package/lib/mcp/resource.js +3 -15
- package/lib/mcp/resources/guides/app_id.js +39 -0
- package/lib/mcp/resources/guides/crashlytics_connect.js +51 -0
- package/lib/mcp/resources/guides/crashlytics_investigations.js +51 -0
- package/lib/mcp/resources/guides/crashlytics_issues.js +42 -0
- package/lib/mcp/resources/guides/crashlytics_reports.js +112 -0
- package/lib/mcp/resources/index.js +11 -3
- package/lib/mcp/tool.js +3 -15
- package/lib/mcp/tools/apphosting/fetch_logs.js +3 -4
- package/lib/mcp/tools/apphosting/list_backends.js +1 -1
- package/lib/mcp/tools/auth/get_users.js +5 -16
- package/lib/mcp/tools/core/create_android_sha.js +4 -1
- package/lib/mcp/tools/core/get_environment.js +7 -4
- package/lib/mcp/tools/core/get_sdk_config.js +4 -5
- package/lib/mcp/tools/core/get_security_rules.js +1 -2
- package/lib/mcp/tools/core/init.js +2 -2
- package/lib/mcp/tools/core/logout.js +1 -1
- package/lib/mcp/tools/core/read_resources.js +2 -2
- package/lib/mcp/tools/core/validate_security_rules.js +1 -2
- package/lib/mcp/tools/crashlytics/events.js +43 -19
- package/lib/mcp/tools/crashlytics/index.js +1 -6
- package/lib/mcp/tools/crashlytics/issues.js +33 -12
- package/lib/mcp/tools/crashlytics/reports.js +66 -117
- package/lib/mcp/tools/dataconnect/list_services.js +2 -3
- package/lib/mcp/tools/firestore/converter.js +3 -5
- package/lib/mcp/tools/firestore/delete_document.js +1 -1
- package/lib/mcp/tools/functions/get_logs.js +14 -12
- package/lib/mcp/tools/functions/list_functions.js +1 -1
- package/lib/mcp/tools/index.js +67 -50
- package/lib/mcp/util/apptesting/availability.js +1 -2
- package/lib/mcp/util/availability.js +1 -2
- package/lib/mcp/util/crashlytics/availability.js +1 -2
- package/lib/mcp/util/dataconnect/compile.js +7 -6
- package/lib/mcp/util/dataconnect/converter.js +7 -10
- package/lib/mcp/util/dataconnect/emulator.js +1 -2
- package/lib/mcp/util.js +9 -11
- package/lib/messaging/sendMessage.js +1 -2
- package/lib/metaprogramming.js +1 -2
- package/lib/operation-poller.js +2 -2
- package/lib/profileReport.js +6 -6
- package/lib/profiler.js +1 -2
- package/lib/projectPath.js +1 -2
- package/lib/projectUtils.js +5 -6
- package/lib/prompt.js +22 -13
- package/lib/rc.js +5 -7
- package/lib/remoteconfig/deleteExperiment.js +1 -2
- package/lib/remoteconfig/deleteRollout.js +1 -2
- package/lib/remoteconfig/get.js +2 -3
- package/lib/remoteconfig/getExperiment.js +2 -2
- package/lib/remoteconfig/getRollout.js +2 -2
- package/lib/remoteconfig/interfaces.js +1 -1
- package/lib/remoteconfig/listExperiments.js +2 -2
- package/lib/remoteconfig/listRollouts.js +2 -2
- package/lib/remoteconfig/publish.js +1 -2
- package/lib/remoteconfig/rollback.js +1 -2
- package/lib/remoteconfig/versionslist.js +1 -2
- package/lib/requireAuth.js +4 -6
- package/lib/requireConfig.js +5 -8
- package/lib/requireDatabaseInstance.js +2 -2
- package/lib/requireHostingSite.js +1 -2
- package/lib/requireInteractive.js +1 -1
- package/lib/requirePermissions.js +1 -2
- package/lib/requireTosAcceptance.js +1 -2
- package/lib/responseToError.js +1 -2
- package/lib/rtdb.js +2 -3
- package/lib/rulesDeploy.js +3 -4
- package/lib/serve/functions.js +9 -1
- package/lib/serve/hosting.js +4 -5
- package/lib/serve/index.js +1 -2
- package/lib/shortenUrl.js +1 -2
- package/lib/templates.js +3 -4
- package/lib/throttler/throttler.js +3 -3
- package/lib/timeout.js +2 -3
- package/lib/track.js +23 -14
- package/lib/tsconfig.publish.tsbuildinfo +1 -0
- package/lib/unzip.js +2 -3
- package/lib/utils.js +62 -63
- package/lib/vsCodeUtils.js +2 -3
- package/package.json +6 -6
- package/templates/extensions/typescript/index.ts +1 -1
- package/templates/extensions/typescript/package.lint.json +1 -1
- package/templates/extensions/typescript/package.nolint.json +1 -1
- 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
|
-
|
|
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
|
-
|
|
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.
|
|
4
|
-
exports.
|
|
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
|
|
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;
|
package/lib/vsCodeUtils.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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.
|
|
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": "^
|
|
72
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
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.
|
|
98
|
+
"glob": "^10.5.0",
|
|
99
99
|
"google-auth-library": "^9.11.0",
|
|
100
100
|
"ignore": "^7.0.4",
|
|
101
|
-
"js-yaml": "^3.14.
|
|
102
|
-
"jsonwebtoken": "^9.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) => {
|