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.
- 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 +19 -21
- 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 +1 -2
- 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 +7 -7
- 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 +18 -20
- 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 +16 -23
- 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 +3 -3
- 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 +17 -9
- 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
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
336
|
+
emulator.instance.stdout?.on("data", (data) => {
|
|
304
337
|
logger.log("DEBUG", data.toString());
|
|
305
338
|
emulator.stdout.write(data);
|
|
306
339
|
});
|
|
307
|
-
|
|
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(
|
|
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
|
|
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 =
|
|
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}`,
|
|
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 =
|
|
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}`);
|
package/lib/emulator/env.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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 =
|
|
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 =
|
|
73
|
-
const l =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
|
198
|
+
PROJECT_ID: projectId ?? "",
|
|
201
199
|
EXT_INSTANCE_ID: instance.instanceId,
|
|
202
|
-
DATABASE_INSTANCE: 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:
|
|
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,
|
|
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);
|