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,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.assertHas = assertHas;
|
|
4
|
+
exports.assertHasOneOf = assertHasOneOf;
|
|
5
|
+
exports.assertEnum = assertEnum;
|
|
6
|
+
exports.assertType = assertType;
|
|
4
7
|
const clc = require("colorette");
|
|
5
8
|
const error_1 = require("../error");
|
|
6
9
|
function assertHas(obj, prop) {
|
|
@@ -9,7 +12,6 @@ function assertHas(obj, prop) {
|
|
|
9
12
|
throw new error_1.FirebaseError(`Must contain "${prop}": ${objString}`);
|
|
10
13
|
}
|
|
11
14
|
}
|
|
12
|
-
exports.assertHas = assertHas;
|
|
13
15
|
function assertHasOneOf(obj, props) {
|
|
14
16
|
const objString = clc.cyan(JSON.stringify(obj));
|
|
15
17
|
let count = 0;
|
|
@@ -22,17 +24,14 @@ function assertHasOneOf(obj, props) {
|
|
|
22
24
|
throw new error_1.FirebaseError(`Must contain exactly one of "${props.join(",")}": ${objString}`);
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
|
-
exports.assertHasOneOf = assertHasOneOf;
|
|
26
27
|
function assertEnum(obj, prop, valid) {
|
|
27
28
|
const objString = clc.cyan(JSON.stringify(obj));
|
|
28
29
|
if (valid.indexOf(obj[prop]) < 0) {
|
|
29
30
|
throw new error_1.FirebaseError(`Field "${prop}" must be one of ${valid.join(", ")}: ${objString}`);
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
exports.assertEnum = assertEnum;
|
|
33
33
|
function assertType(prop, propValue, type) {
|
|
34
34
|
if (typeof propValue !== type) {
|
|
35
35
|
throw new error_1.FirebaseError(`Property "${prop}" must be of type ${type}`);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
exports.assertType = assertType;
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports
|
|
3
|
+
exports.supportedRange = exports.docsUrl = exports.type = exports.support = exports.name = void 0;
|
|
4
|
+
exports.discover = discover;
|
|
5
|
+
exports.init = init;
|
|
6
|
+
exports.build = build;
|
|
7
|
+
exports.getDevModeHandle = getDevModeHandle;
|
|
8
|
+
exports.ɵcodegenPublicDirectory = ɵcodegenPublicDirectory;
|
|
9
|
+
exports.getValidBuildTargets = getValidBuildTargets;
|
|
10
|
+
exports.shouldUseDevModeHandle = shouldUseDevModeHandle;
|
|
11
|
+
exports.ɵcodegenFunctionsDirectory = ɵcodegenFunctionsDirectory;
|
|
4
12
|
const path_1 = require("path");
|
|
5
13
|
const child_process_1 = require("child_process");
|
|
6
14
|
const cross_spawn_1 = require("cross-spawn");
|
|
@@ -24,7 +32,6 @@ async function discover(dir) {
|
|
|
24
32
|
const version = (0, utils_2.getAngularVersion)(dir);
|
|
25
33
|
return { mayWantBackend: true, version };
|
|
26
34
|
}
|
|
27
|
-
exports.discover = discover;
|
|
28
35
|
function init(setup, config) {
|
|
29
36
|
(0, child_process_1.execSync)(`npx --yes -p @angular/cli@"${exports.supportedRange}" ng new ${setup.projectId} --directory ${setup.featureInfo.hosting.source} --skip-git`, {
|
|
30
37
|
stdio: "inherit",
|
|
@@ -32,7 +39,6 @@ function init(setup, config) {
|
|
|
32
39
|
});
|
|
33
40
|
return Promise.resolve();
|
|
34
41
|
}
|
|
35
|
-
exports.init = init;
|
|
36
42
|
async function build(dir, configuration) {
|
|
37
43
|
const { targets, serveOptimizedImages, locales, baseHref: baseUrl, ssr, } = await (0, utils_2.getBuildConfig)(dir, configuration);
|
|
38
44
|
await (0, utils_1.warnIfCustomBuildScript)(dir, exports.name, DEFAULT_BUILD_SCRIPT);
|
|
@@ -57,7 +63,6 @@ async function build(dir, configuration) {
|
|
|
57
63
|
const i18n = !!locales;
|
|
58
64
|
return { wantsBackend, i18n, rewrites, baseUrl };
|
|
59
65
|
}
|
|
60
|
-
exports.build = build;
|
|
61
66
|
async function getDevModeHandle(dir, configuration) {
|
|
62
67
|
const { targetStringFromTarget } = await (0, utils_1.relativeRequire)(dir, "@angular-devkit/architect");
|
|
63
68
|
const { serveTarget } = await (0, utils_2.getContext)(dir, configuration);
|
|
@@ -81,7 +86,6 @@ async function getDevModeHandle(dir, configuration) {
|
|
|
81
86
|
});
|
|
82
87
|
return (0, utils_1.simpleProxy)(await host);
|
|
83
88
|
}
|
|
84
|
-
exports.getDevModeHandle = getDevModeHandle;
|
|
85
89
|
async function ɵcodegenPublicDirectory(sourceDir, destDir, configuration) {
|
|
86
90
|
const { outputPath, baseHref, defaultLocale, locales } = await (0, utils_2.getBrowserConfig)(sourceDir, configuration);
|
|
87
91
|
await (0, promises_1.mkdir)((0, path_1.join)(destDir, baseHref), { recursive: true });
|
|
@@ -100,7 +104,6 @@ async function ɵcodegenPublicDirectory(sourceDir, destDir, configuration) {
|
|
|
100
104
|
await (0, fs_extra_1.copy)((0, path_1.join)(sourceDir, outputPath), (0, path_1.join)(destDir, baseHref));
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
|
-
exports.ɵcodegenPublicDirectory = ɵcodegenPublicDirectory;
|
|
104
107
|
async function getValidBuildTargets(purpose, dir) {
|
|
105
108
|
const validTargetNames = new Set(["development", "production"]);
|
|
106
109
|
try {
|
|
@@ -117,17 +120,14 @@ async function getValidBuildTargets(purpose, dir) {
|
|
|
117
120
|
const allTargets = await (0, utils_2.getAllTargets)(purpose, dir);
|
|
118
121
|
return [...validTargetNames, ...allTargets];
|
|
119
122
|
}
|
|
120
|
-
exports.getValidBuildTargets = getValidBuildTargets;
|
|
121
123
|
async function shouldUseDevModeHandle(targetOrConfiguration, dir) {
|
|
122
124
|
const { serveTarget } = await (0, utils_2.getContext)(dir, targetOrConfiguration);
|
|
123
125
|
if (!serveTarget)
|
|
124
126
|
return false;
|
|
125
127
|
return serveTarget.configuration !== "production";
|
|
126
128
|
}
|
|
127
|
-
exports.shouldUseDevModeHandle = shouldUseDevModeHandle;
|
|
128
129
|
async function ɵcodegenFunctionsDirectory(sourceDir, destDir, configuration) {
|
|
129
130
|
var _a;
|
|
130
|
-
var _b;
|
|
131
131
|
const { packageJson, serverOutputPath, browserOutputPath, defaultLocale, serverLocales, browserLocales, bundleDependencies, externalDependencies, baseHref, serveOptimizedImages, serverEntry, } = await (0, utils_2.getServerConfig)(sourceDir, configuration);
|
|
132
132
|
const dotEnv = { __NG_BROWSER_OUTPUT_PATH__: browserOutputPath };
|
|
133
133
|
let rewriteSource = undefined;
|
|
@@ -140,7 +140,7 @@ async function ɵcodegenFunctionsDirectory(sourceDir, destDir, configuration) {
|
|
|
140
140
|
if (bundleDependencies) {
|
|
141
141
|
const dependencies = {};
|
|
142
142
|
for (const externalDependency of externalDependencies) {
|
|
143
|
-
const packageVersion = (
|
|
143
|
+
const packageVersion = (0, utils_1.findDependency)(externalDependency)?.version;
|
|
144
144
|
if (packageVersion) {
|
|
145
145
|
dependencies[externalDependency] = packageVersion;
|
|
146
146
|
}
|
|
@@ -154,11 +154,11 @@ async function ɵcodegenFunctionsDirectory(sourceDir, destDir, configuration) {
|
|
|
154
154
|
packageJson.dependencies = {};
|
|
155
155
|
}
|
|
156
156
|
if (serveOptimizedImages) {
|
|
157
|
-
(
|
|
157
|
+
(_a = packageJson.dependencies)["sharp"] || (_a["sharp"] = constants_1.SHARP_VERSION);
|
|
158
158
|
}
|
|
159
159
|
let bootstrapScript;
|
|
160
160
|
if (browserLocales) {
|
|
161
|
-
const locales = serverLocales
|
|
161
|
+
const locales = serverLocales?.filter((it) => browserLocales.includes(it));
|
|
162
162
|
bootstrapScript = `const localizedApps = new Map();
|
|
163
163
|
const ffi18n = import("firebase-frameworks/i18n");
|
|
164
164
|
exports.handle = function(req,res) {
|
|
@@ -169,7 +169,7 @@ exports.handle = function(req,res) {
|
|
|
169
169
|
if (localizedApps.has(locale)) {
|
|
170
170
|
localizedApps.get(locale)(req,res);
|
|
171
171
|
} else {
|
|
172
|
-
${
|
|
172
|
+
${serverEntry?.endsWith(".mjs")
|
|
173
173
|
? `import(\`./${serverOutputPath}/\${locale}/${serverEntry}\`)`
|
|
174
174
|
: `Promise.resolve(require(\`./${serverOutputPath}/\${locale}/${serverEntry}\`))`}.then(server => {
|
|
175
175
|
const app = server.app(locale);
|
|
@@ -188,7 +188,7 @@ exports.handle = function(req,res) {
|
|
|
188
188
|
const socket = 'express.sock';
|
|
189
189
|
process.env.PORT = socket;
|
|
190
190
|
|
|
191
|
-
${
|
|
191
|
+
${serverEntry?.endsWith(".mjs")
|
|
192
192
|
? `import(\`./${serverOutputPath}/${serverEntry}\`)`
|
|
193
193
|
: `Promise.resolve(require('./${serverOutputPath}/${serverEntry}'))`}.then(({ default: defHandler, reqHandler, app }) => {
|
|
194
194
|
const handler = app?.() ?? reqHandler ?? defHandler;
|
|
@@ -209,4 +209,3 @@ exports.handle = (req,res) => app.then(it => it(req,res));\n`;
|
|
|
209
209
|
}
|
|
210
210
|
return { bootstrapScript, packageJson, dotEnv, rewriteSource };
|
|
211
211
|
}
|
|
212
|
-
exports.ɵcodegenFunctionsDirectory = ɵcodegenFunctionsDirectory;
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.BuilderType = void 0;
|
|
4
|
+
exports.getAllTargets = getAllTargets;
|
|
5
|
+
exports.getContext = getContext;
|
|
6
|
+
exports.getBrowserConfig = getBrowserConfig;
|
|
7
|
+
exports.getServerConfig = getServerConfig;
|
|
8
|
+
exports.getBuildConfig = getBuildConfig;
|
|
9
|
+
exports.getAngularVersion = getAngularVersion;
|
|
10
|
+
exports.tryToGetOptionsForTarget = tryToGetOptionsForTarget;
|
|
11
|
+
exports.getBuilderType = getBuilderType;
|
|
4
12
|
const utils_1 = require("../utils");
|
|
5
13
|
const error_1 = require("../../error");
|
|
6
14
|
const path_1 = require("path");
|
|
@@ -8,7 +16,6 @@ const assert_1 = require("assert");
|
|
|
8
16
|
const utils_2 = require("../../utils");
|
|
9
17
|
const semver_1 = require("semver");
|
|
10
18
|
async function localesForTarget(dir, architectHost, target, workspaceProject) {
|
|
11
|
-
var _a;
|
|
12
19
|
const { targetStringFromTarget } = await (0, utils_1.relativeRequire)(dir, "@angular-devkit/architect");
|
|
13
20
|
const targetOptions = await architectHost.getOptionsForTarget(target);
|
|
14
21
|
if (!targetOptions) {
|
|
@@ -18,7 +25,7 @@ async function localesForTarget(dir, architectHost, target, workspaceProject) {
|
|
|
18
25
|
let locales = undefined;
|
|
19
26
|
let defaultLocale = undefined;
|
|
20
27
|
if (targetOptions.localize) {
|
|
21
|
-
const i18n =
|
|
28
|
+
const i18n = workspaceProject.extensions?.i18n;
|
|
22
29
|
if (!i18n)
|
|
23
30
|
throw new error_1.FirebaseError(`No i18n config on project.`);
|
|
24
31
|
if (typeof i18n.sourceLocale === "string") {
|
|
@@ -64,7 +71,7 @@ var BuilderType;
|
|
|
64
71
|
BuilderType["BROWSER_ESBUILD"] = "browser-esbuild";
|
|
65
72
|
BuilderType["APPLICATION"] = "application";
|
|
66
73
|
BuilderType["PRERENDER"] = "prerender";
|
|
67
|
-
})(BuilderType
|
|
74
|
+
})(BuilderType || (exports.BuilderType = BuilderType = {}));
|
|
68
75
|
const DEV_SERVER_TARGETS = [BuilderType.DEV_SERVER, BuilderType.SSR_DEV_SERVER];
|
|
69
76
|
function getValidBuilderTypes(purpose) {
|
|
70
77
|
return [
|
|
@@ -106,7 +113,6 @@ async function getAllTargets(purpose, dir) {
|
|
|
106
113
|
});
|
|
107
114
|
return targets;
|
|
108
115
|
}
|
|
109
|
-
exports.getAllTargets = getAllTargets;
|
|
110
116
|
async function getContext(dir, targetOrConfiguration) {
|
|
111
117
|
const [{ NodeJsAsyncHost }, { workspaces }, { WorkspaceNodeModulesArchitectHost }, { Architect, targetFromTargetString, targetStringFromTarget }, { parse },] = await Promise.all([
|
|
112
118
|
(0, utils_1.relativeRequire)(dir, "@angular-devkit/core/node"),
|
|
@@ -196,7 +202,7 @@ async function getContext(dir, targetOrConfiguration) {
|
|
|
196
202
|
if (deployTarget) {
|
|
197
203
|
const options = await architectHost
|
|
198
204
|
.getOptionsForTarget(deployTarget)
|
|
199
|
-
.catch(() =>
|
|
205
|
+
.catch(() => workspaceProject.targets.get(deployTarget.target)?.options);
|
|
200
206
|
if (!options)
|
|
201
207
|
throw new error_1.FirebaseError("Unable to get options for ng-deploy.");
|
|
202
208
|
if (options.buildTarget) {
|
|
@@ -227,10 +233,10 @@ async function getContext(dir, targetOrConfiguration) {
|
|
|
227
233
|
if (!browserTarget) {
|
|
228
234
|
throw new error_1.FirebaseError("ng-deploy with prerenderTarget requires a browserTarget");
|
|
229
235
|
}
|
|
230
|
-
if (targetStringFromTarget(browserTarget) !==
|
|
236
|
+
if (targetStringFromTarget(browserTarget) !== prerenderOptions?.browserTarget) {
|
|
231
237
|
throw new error_1.FirebaseError("ng-deploy's browserTarget and prerender's browserTarget do not match. Please check your angular.json");
|
|
232
238
|
}
|
|
233
|
-
if (serverTarget && targetStringFromTarget(serverTarget) !==
|
|
239
|
+
if (serverTarget && targetStringFromTarget(serverTarget) !== prerenderOptions?.serverTarget) {
|
|
234
240
|
throw new error_1.FirebaseError("ng-deploy's serverTarget and prerender's serverTarget do not match. Please check your angular.json");
|
|
235
241
|
}
|
|
236
242
|
if (!serverTarget) {
|
|
@@ -250,9 +256,9 @@ async function getContext(dir, targetOrConfiguration) {
|
|
|
250
256
|
configuration: configuration || defaultConfiguration,
|
|
251
257
|
};
|
|
252
258
|
const options = await architectHost.getOptionsForTarget(prerenderTarget);
|
|
253
|
-
(0, utils_2.assertIsString)(options
|
|
259
|
+
(0, utils_2.assertIsString)(options?.browserTarget);
|
|
254
260
|
browserTarget = targetFromTargetString(options.browserTarget);
|
|
255
|
-
(0, utils_2.assertIsString)(options
|
|
261
|
+
(0, utils_2.assertIsString)(options?.serverTarget);
|
|
256
262
|
serverTarget = targetFromTargetString(options.serverTarget);
|
|
257
263
|
}
|
|
258
264
|
if (!buildTarget && !browserTarget && workspaceProject.targets.has("build")) {
|
|
@@ -353,7 +359,7 @@ async function getContext(dir, targetOrConfiguration) {
|
|
|
353
359
|
const baseHref = browserTargetOptions.baseHref || "/";
|
|
354
360
|
(0, utils_2.assertIsString)(baseHref);
|
|
355
361
|
const buildTargetOptions = buildTarget && (await tryToGetOptionsForTarget(architectHost, buildTarget));
|
|
356
|
-
const ssr = buildTarget ? !!
|
|
362
|
+
const ssr = buildTarget ? !!buildTargetOptions?.ssr : !!serverTarget;
|
|
357
363
|
return {
|
|
358
364
|
architect,
|
|
359
365
|
architectHost,
|
|
@@ -369,7 +375,6 @@ async function getContext(dir, targetOrConfiguration) {
|
|
|
369
375
|
ssr,
|
|
370
376
|
};
|
|
371
377
|
}
|
|
372
|
-
exports.getContext = getContext;
|
|
373
378
|
async function getBrowserConfig(sourceDir, configuration) {
|
|
374
379
|
const { architectHost, browserTarget, buildTarget, baseHref, workspaceProject } = await getContext(sourceDir, configuration);
|
|
375
380
|
const buildOrBrowserTarget = buildTarget || browserTarget;
|
|
@@ -381,22 +386,20 @@ async function getBrowserConfig(sourceDir, configuration) {
|
|
|
381
386
|
architectHost.getOptionsForTarget(buildOrBrowserTarget),
|
|
382
387
|
architectHost.getBuilderNameForTarget(buildOrBrowserTarget),
|
|
383
388
|
]);
|
|
384
|
-
const buildOutputPath = typeof
|
|
389
|
+
const buildOutputPath = typeof targetOptions?.outputPath === "string"
|
|
385
390
|
? targetOptions.outputPath
|
|
386
391
|
: (0, path_1.join)("dist", buildOrBrowserTarget.project);
|
|
387
392
|
const outputPath = (0, path_1.join)(buildOutputPath, buildTarget && getBuilderType(builderName) === BuilderType.APPLICATION ? "browser" : "");
|
|
388
393
|
return { locales, baseHref, outputPath, defaultLocale };
|
|
389
394
|
}
|
|
390
|
-
exports.getBrowserConfig = getBrowserConfig;
|
|
391
395
|
async function getServerConfig(sourceDir, configuration) {
|
|
392
|
-
var _a;
|
|
393
396
|
const { architectHost, host, buildTarget, serverTarget, browserTarget, baseHref, workspaceProject, serveOptimizedImages, ssr, } = await getContext(sourceDir, configuration);
|
|
394
397
|
const buildOrBrowserTarget = buildTarget || browserTarget;
|
|
395
398
|
if (!buildOrBrowserTarget) {
|
|
396
399
|
throw new assert_1.AssertionError({ message: "expected build or browser target to be defined" });
|
|
397
400
|
}
|
|
398
401
|
const browserTargetOptions = await architectHost.getOptionsForTarget(buildOrBrowserTarget);
|
|
399
|
-
const buildOutputPath = typeof
|
|
402
|
+
const buildOutputPath = typeof browserTargetOptions?.outputPath === "string"
|
|
400
403
|
? browserTargetOptions.outputPath
|
|
401
404
|
: (0, path_1.join)("dist", buildOrBrowserTarget.project);
|
|
402
405
|
const browserOutputPath = (0, path_1.join)(buildOutputPath, buildTarget ? "browser" : "")
|
|
@@ -428,7 +431,7 @@ async function getServerConfig(sourceDir, configuration) {
|
|
|
428
431
|
message: `expected "JsonObject" but got "${typeof serverTargetOptions}"`,
|
|
429
432
|
});
|
|
430
433
|
}
|
|
431
|
-
const serverTargetOutputPath = typeof
|
|
434
|
+
const serverTargetOutputPath = typeof serverTargetOptions?.outputPath === "string"
|
|
432
435
|
? serverTargetOptions.outputPath
|
|
433
436
|
: (0, path_1.join)("dist", buildOrServerTarget.project);
|
|
434
437
|
const serverOutputPath = (0, path_1.join)(serverTargetOutputPath, buildTarget ? "server" : "")
|
|
@@ -439,7 +442,7 @@ async function getServerConfig(sourceDir, configuration) {
|
|
|
439
442
|
}
|
|
440
443
|
const serverEntry = buildTarget ? "server.mjs" : serverTarget && "main.js";
|
|
441
444
|
const externalDependencies = serverTargetOptions.externalDependencies || [];
|
|
442
|
-
const bundleDependencies =
|
|
445
|
+
const bundleDependencies = serverTargetOptions.bundleDependencies ?? true;
|
|
443
446
|
const { locales: browserLocales } = await localesForTarget(sourceDir, architectHost, buildOrBrowserTarget, workspaceProject);
|
|
444
447
|
return {
|
|
445
448
|
packageJson,
|
|
@@ -455,7 +458,6 @@ async function getServerConfig(sourceDir, configuration) {
|
|
|
455
458
|
serverEntry,
|
|
456
459
|
};
|
|
457
460
|
}
|
|
458
|
-
exports.getServerConfig = getServerConfig;
|
|
459
461
|
async function getBuildConfig(sourceDir, configuration) {
|
|
460
462
|
const { targetStringFromTarget } = await (0, utils_1.relativeRequire)(sourceDir, "@angular-devkit/architect");
|
|
461
463
|
const { buildTarget, browserTarget, baseHref, prerenderTarget, serverTarget, architectHost, workspaceProject, serveOptimizedImages, ssr, } = await getContext(sourceDir, configuration);
|
|
@@ -477,7 +479,6 @@ async function getBuildConfig(sourceDir, configuration) {
|
|
|
477
479
|
ssr,
|
|
478
480
|
};
|
|
479
481
|
}
|
|
480
|
-
exports.getBuildConfig = getBuildConfig;
|
|
481
482
|
function getAngularVersion(cwd) {
|
|
482
483
|
const dependency = (0, utils_1.findDependency)("@angular/core", { cwd, depth: 0, omitDev: false });
|
|
483
484
|
if (!dependency)
|
|
@@ -487,11 +488,9 @@ function getAngularVersion(cwd) {
|
|
|
487
488
|
return dependency.version;
|
|
488
489
|
return angularVersionSemver.toString();
|
|
489
490
|
}
|
|
490
|
-
exports.getAngularVersion = getAngularVersion;
|
|
491
491
|
async function tryToGetOptionsForTarget(architectHost, target) {
|
|
492
492
|
return await architectHost.getOptionsForTarget(target).catch(throwCannotDetermineTarget);
|
|
493
493
|
}
|
|
494
|
-
exports.tryToGetOptionsForTarget = tryToGetOptionsForTarget;
|
|
495
494
|
function throwCannotDetermineTarget(error) {
|
|
496
495
|
throw new error_1.FirebaseError(`Unable to determine the application to deploy, specify a target via the FIREBASE_FRAMEWORKS_BUILD_TARGET environment variable.`, { original: error });
|
|
497
496
|
}
|
|
@@ -503,4 +502,3 @@ function getBuilderType(builder) {
|
|
|
503
502
|
}
|
|
504
503
|
return builderType;
|
|
505
504
|
}
|
|
506
|
-
exports.getBuilderType = getBuilderType;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.supportedRange = exports.type = exports.support = exports.name = void 0;
|
|
4
|
+
exports.discover = discover;
|
|
5
|
+
exports.build = build;
|
|
6
|
+
exports.ɵcodegenPublicDirectory = ɵcodegenPublicDirectory;
|
|
7
|
+
exports.ɵcodegenFunctionsDirectory = ɵcodegenFunctionsDirectory;
|
|
8
|
+
exports.getDevModeHandle = getDevModeHandle;
|
|
4
9
|
const cross_spawn_1 = require("cross-spawn");
|
|
5
10
|
const fs_extra_1 = require("fs-extra");
|
|
6
11
|
const path_1 = require("path");
|
|
@@ -23,14 +28,13 @@ async function discover(dir) {
|
|
|
23
28
|
version,
|
|
24
29
|
};
|
|
25
30
|
}
|
|
26
|
-
exports.discover = discover;
|
|
27
31
|
const DEFAULT_BUILD_SCRIPT = ["astro build"];
|
|
28
32
|
async function build(cwd) {
|
|
29
33
|
const cli = (0, utils_1.getNodeModuleBin)("astro", cwd);
|
|
30
34
|
await (0, utils_1.warnIfCustomBuildScript)(cwd, exports.name, DEFAULT_BUILD_SCRIPT);
|
|
31
35
|
const { output, adapter } = await (0, utils_2.getConfig)(cwd);
|
|
32
36
|
const wantsBackend = output !== "static";
|
|
33
|
-
if (wantsBackend &&
|
|
37
|
+
if (wantsBackend && adapter?.name !== "@astrojs/node") {
|
|
34
38
|
throw new error_1.FirebaseError("Deploying an Astro application with SSR on Firebase Hosting requires the @astrojs/node adapter in middleware mode. https://docs.astro.build/en/guides/integrations-guide/node/");
|
|
35
39
|
}
|
|
36
40
|
const build = (0, cross_spawn_1.sync)(cli, ["build"], { cwd, stdio: "inherit" });
|
|
@@ -38,13 +42,11 @@ async function build(cwd) {
|
|
|
38
42
|
throw new error_1.FirebaseError("Unable to build your Astro app");
|
|
39
43
|
return { wantsBackend };
|
|
40
44
|
}
|
|
41
|
-
exports.build = build;
|
|
42
45
|
async function ɵcodegenPublicDirectory(root, dest) {
|
|
43
46
|
const { outDir, output } = await (0, utils_2.getConfig)(root);
|
|
44
47
|
const assetPath = (0, path_1.join)(root, outDir, output !== "static" ? "client" : "");
|
|
45
48
|
await (0, fs_extra_1.copy)(assetPath, dest);
|
|
46
49
|
}
|
|
47
|
-
exports.ɵcodegenPublicDirectory = ɵcodegenPublicDirectory;
|
|
48
50
|
async function ɵcodegenFunctionsDirectory(sourceDir, destDir) {
|
|
49
51
|
const { outDir } = await (0, utils_2.getConfig)(sourceDir);
|
|
50
52
|
const packageJson = await (0, utils_1.readJSON)((0, path_1.join)(sourceDir, "package.json"));
|
|
@@ -54,7 +56,6 @@ async function ɵcodegenFunctionsDirectory(sourceDir, destDir) {
|
|
|
54
56
|
bootstrapScript: (0, utils_2.getBootstrapScript)(),
|
|
55
57
|
};
|
|
56
58
|
}
|
|
57
|
-
exports.ɵcodegenFunctionsDirectory = ɵcodegenFunctionsDirectory;
|
|
58
59
|
async function getDevModeHandle(cwd) {
|
|
59
60
|
const host = new Promise((resolve, reject) => {
|
|
60
61
|
const cli = (0, utils_1.getNodeModuleBin)("astro", cwd);
|
|
@@ -72,4 +73,3 @@ async function getDevModeHandle(cwd) {
|
|
|
72
73
|
});
|
|
73
74
|
return (0, utils_1.simpleProxy)(await host);
|
|
74
75
|
}
|
|
75
|
-
exports.getDevModeHandle = getDevModeHandle;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getBootstrapScript = getBootstrapScript;
|
|
4
|
+
exports.getConfig = getConfig;
|
|
5
|
+
exports.getAstroVersion = getAstroVersion;
|
|
4
6
|
const path_1 = require("path");
|
|
5
7
|
const utils_1 = require("../utils");
|
|
6
8
|
const semver_1 = require("semver");
|
|
@@ -9,7 +11,6 @@ const { dynamicImport } = require(true && "../../dynamicImport");
|
|
|
9
11
|
function getBootstrapScript() {
|
|
10
12
|
return `const entry = import('./entry.mjs');\nexport const handle = async (req, res) => (await entry).handler(req, res)`;
|
|
11
13
|
}
|
|
12
|
-
exports.getBootstrapScript = getBootstrapScript;
|
|
13
14
|
async function getConfig(cwd) {
|
|
14
15
|
const astroDirectory = (0, path_1.dirname)(require.resolve("astro/package.json", { paths: [cwd] }));
|
|
15
16
|
const version = getAstroVersion(cwd);
|
|
@@ -33,9 +34,6 @@ async function getConfig(cwd) {
|
|
|
33
34
|
adapter: config.adapter,
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
|
-
exports.getConfig = getConfig;
|
|
37
37
|
function getAstroVersion(cwd) {
|
|
38
|
-
|
|
39
|
-
return (_a = (0, utils_1.findDependency)("astro", { cwd, depth: 0, omitDev: false })) === null || _a === void 0 ? void 0 : _a.version;
|
|
38
|
+
return (0, utils_1.findDependency)("astro", { cwd, depth: 0, omitDev: false })?.version;
|
|
40
39
|
}
|
|
41
|
-
exports.getAstroVersion = getAstroVersion;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.LocalFileSystem = void 0;
|
|
4
|
+
exports.readOrNull = readOrNull;
|
|
4
5
|
const fs_extra_1 = require("fs-extra");
|
|
5
6
|
const path = require("path");
|
|
6
7
|
const error_1 = require("../../../error");
|
|
@@ -42,11 +43,10 @@ async function readOrNull(fs, path) {
|
|
|
42
43
|
return fs.read(path);
|
|
43
44
|
}
|
|
44
45
|
catch (err) {
|
|
45
|
-
if (err && typeof err === "object" &&
|
|
46
|
+
if (err && typeof err === "object" && err?.code === "ENOENT") {
|
|
46
47
|
logger_1.logger.debug("ENOENT error occured while reading file.");
|
|
47
48
|
return null;
|
|
48
49
|
}
|
|
49
50
|
throw new Error(`Unknown error occured while reading file: ${err}`);
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
|
-
exports.readOrNull = readOrNull;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.filterFrameworksWithDependencies = filterFrameworksWithDependencies;
|
|
4
|
+
exports.filterFrameworksWithFiles = filterFrameworksWithFiles;
|
|
5
|
+
exports.removeEmbededFrameworks = removeEmbededFrameworks;
|
|
6
|
+
exports.frameworkMatcher = frameworkMatcher;
|
|
4
7
|
const error_1 = require("../../../error");
|
|
5
8
|
const logger_1 = require("../../../logger");
|
|
6
9
|
function filterFrameworksWithDependencies(allFrameworkSpecs, dependencies) {
|
|
@@ -10,7 +13,6 @@ function filterFrameworksWithDependencies(allFrameworkSpecs, dependencies) {
|
|
|
10
13
|
});
|
|
11
14
|
});
|
|
12
15
|
}
|
|
13
|
-
exports.filterFrameworksWithDependencies = filterFrameworksWithDependencies;
|
|
14
16
|
async function filterFrameworksWithFiles(allFrameworkSpecs, fs) {
|
|
15
17
|
try {
|
|
16
18
|
const filteredFrameworks = [];
|
|
@@ -40,7 +42,6 @@ async function filterFrameworksWithFiles(allFrameworkSpecs, fs) {
|
|
|
40
42
|
throw error;
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
|
-
exports.filterFrameworksWithFiles = filterFrameworksWithFiles;
|
|
44
45
|
function removeEmbededFrameworks(allFrameworkSpecs) {
|
|
45
46
|
const embededFrameworkSet = new Set();
|
|
46
47
|
for (const framework of allFrameworkSpecs) {
|
|
@@ -53,7 +54,6 @@ function removeEmbededFrameworks(allFrameworkSpecs) {
|
|
|
53
54
|
}
|
|
54
55
|
return allFrameworkSpecs.filter((item) => !embededFrameworkSet.has(item.id));
|
|
55
56
|
}
|
|
56
|
-
exports.removeEmbededFrameworks = removeEmbededFrameworks;
|
|
57
57
|
async function frameworkMatcher(runtime, fs, frameworks, dependencies) {
|
|
58
58
|
try {
|
|
59
59
|
const filterRuntimeFramework = frameworks.filter((framework) => framework.runtime === runtime);
|
|
@@ -73,4 +73,3 @@ async function frameworkMatcher(runtime, fs, frameworks, dependencies) {
|
|
|
73
73
|
throw new error_1.FirebaseError(`Failed to match the correct framework: ${error}`);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
exports.frameworkMatcher = frameworkMatcher;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.discover =
|
|
3
|
+
exports.discover = discover;
|
|
4
4
|
const node_1 = require("./runtime/node");
|
|
5
5
|
const error_1 = require("../../../error");
|
|
6
6
|
const supportedRuntimes = [new node_1.NodejsRuntime()];
|
|
@@ -29,4 +29,3 @@ async function discover(fs, allFrameworkSpecs) {
|
|
|
29
29
|
throw new error_1.FirebaseError(`Failed to identify required specifications to execute the application: ${error}`);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
exports.discover = discover;
|
|
@@ -44,7 +44,7 @@ class NodejsRuntime {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
getDependencies(packageJSON) {
|
|
47
|
-
return
|
|
47
|
+
return { ...packageJSON.dependencies, ...packageJSON.devDependencies };
|
|
48
48
|
}
|
|
49
49
|
packageManagerInstallCommand(packageManager) {
|
|
50
50
|
const packages = [];
|
|
@@ -80,40 +80,37 @@ class NodejsRuntime {
|
|
|
80
80
|
return command;
|
|
81
81
|
}
|
|
82
82
|
getBuildCommand(packageManager, scripts, matchedFramework) {
|
|
83
|
-
var _a;
|
|
84
83
|
let buildCommand = { cmd: "" };
|
|
85
|
-
if (scripts
|
|
84
|
+
if (scripts?.build) {
|
|
86
85
|
buildCommand.cmd = this.executeScript(packageManager, "build");
|
|
87
86
|
}
|
|
88
|
-
else if (matchedFramework &&
|
|
87
|
+
else if (matchedFramework && matchedFramework.commands?.build) {
|
|
89
88
|
buildCommand = matchedFramework.commands.build;
|
|
90
89
|
buildCommand = this.executeFrameworkCommand(packageManager, buildCommand);
|
|
91
90
|
}
|
|
92
91
|
return buildCommand.cmd === "" ? undefined : buildCommand;
|
|
93
92
|
}
|
|
94
93
|
getDevCommand(packageManager, scripts, matchedFramework) {
|
|
95
|
-
var _a;
|
|
96
94
|
let devCommand = { cmd: "", env: { NODE_ENV: "dev" } };
|
|
97
|
-
if (scripts
|
|
95
|
+
if (scripts?.dev) {
|
|
98
96
|
devCommand.cmd = this.executeScript(packageManager, "dev");
|
|
99
97
|
}
|
|
100
|
-
else if (matchedFramework &&
|
|
98
|
+
else if (matchedFramework && matchedFramework.commands?.dev) {
|
|
101
99
|
devCommand = matchedFramework.commands.dev;
|
|
102
100
|
devCommand = this.executeFrameworkCommand(packageManager, devCommand);
|
|
103
101
|
}
|
|
104
102
|
return devCommand.cmd === "" ? undefined : devCommand;
|
|
105
103
|
}
|
|
106
104
|
async getRunCommand(packageManager, scripts, matchedFramework, fs) {
|
|
107
|
-
var _a;
|
|
108
105
|
let runCommand = { cmd: "", env: { NODE_ENV: "production" } };
|
|
109
|
-
if (scripts
|
|
106
|
+
if (scripts?.start) {
|
|
110
107
|
runCommand.cmd = this.executeScript(packageManager, "start");
|
|
111
108
|
}
|
|
112
|
-
else if (matchedFramework &&
|
|
109
|
+
else if (matchedFramework && matchedFramework.commands?.run) {
|
|
113
110
|
runCommand = matchedFramework.commands.run;
|
|
114
111
|
runCommand = this.executeFrameworkCommand(packageManager, runCommand);
|
|
115
112
|
}
|
|
116
|
-
else if (scripts
|
|
113
|
+
else if (scripts?.main) {
|
|
117
114
|
runCommand.cmd = `node ${scripts.main}`;
|
|
118
115
|
}
|
|
119
116
|
else if (await fs.exists("index.js")) {
|
|
@@ -100,7 +100,7 @@ class DockerDriver {
|
|
|
100
100
|
console.log(`executing docker build: ${args.join(" ")} ${contextDir}`);
|
|
101
101
|
console.log(this.dockerfileBuilder.toString());
|
|
102
102
|
return spawn.sync("docker", ["buildx", "build", ...args, "-f", "-", contextDir], {
|
|
103
|
-
env:
|
|
103
|
+
env: { ...process.env, ...this.spec.environmentVariables },
|
|
104
104
|
input: this.dockerfileBuilder.toString(),
|
|
105
105
|
stdio: ["pipe", "inherit", "inherit"],
|
|
106
106
|
});
|
|
@@ -142,8 +142,7 @@ class DockerDriver {
|
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
build() {
|
|
145
|
-
|
|
146
|
-
if ((_a = this.spec.detectedCommands) === null || _a === void 0 ? void 0 : _a.build) {
|
|
145
|
+
if (this.spec.detectedCommands?.build) {
|
|
147
146
|
this.dockerfileBuilder
|
|
148
147
|
.fromLastStage(DOCKER_STAGE_BUILD)
|
|
149
148
|
.copyForFirebase(".", ".")
|
|
@@ -152,8 +151,7 @@ class DockerDriver {
|
|
|
152
151
|
}
|
|
153
152
|
}
|
|
154
153
|
export(bundle) {
|
|
155
|
-
|
|
156
|
-
const startCmd = (_a = bundle.server) === null || _a === void 0 ? void 0 : _a.start.cmd;
|
|
154
|
+
const startCmd = bundle.server?.start.cmd;
|
|
157
155
|
if (startCmd) {
|
|
158
156
|
const exportStage = "exporter";
|
|
159
157
|
this.dockerfileBuilder
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.BUNDLE_PATH = void 0;
|
|
4
|
+
exports.genHookScript = genHookScript;
|
|
4
5
|
exports.BUNDLE_PATH = "/home/firebase/app/.firebase/.output/bundle.json";
|
|
5
6
|
function genHookScript(bundle, hook) {
|
|
6
7
|
let hookSrc = hook.toString().trimLeft();
|
|
@@ -19,4 +20,3 @@ const bundle = (${hookSrc})(${JSON.stringify(bundle)});
|
|
|
19
20
|
fs.writeFileSync("${exports.BUNDLE_PATH}", JSON.stringify(bundle));
|
|
20
21
|
`;
|
|
21
22
|
}
|
|
22
|
-
exports.genHookScript = genHookScript;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SUPPORTED_MODES = void 0;
|
|
4
|
+
exports.getDriver = getDriver;
|
|
4
5
|
const local_1 = require("./local");
|
|
5
6
|
const docker_1 = require("./docker");
|
|
6
7
|
exports.SUPPORTED_MODES = ["local", "docker"];
|
|
@@ -13,4 +14,3 @@ function getDriver(mode, app) {
|
|
|
13
14
|
}
|
|
14
15
|
throw new Error(`Unsupported mode ${mode}`);
|
|
15
16
|
}
|
|
16
|
-
exports.getDriver = getDriver;
|
|
@@ -10,7 +10,7 @@ class LocalDriver {
|
|
|
10
10
|
}
|
|
11
11
|
execCmd(cmd, args) {
|
|
12
12
|
const ret = spawn.sync(cmd, args, {
|
|
13
|
-
env:
|
|
13
|
+
env: { ...process.env, ...this.spec.environmentVariables },
|
|
14
14
|
stdio: ["pipe", "inherit", "inherit"],
|
|
15
15
|
});
|
|
16
16
|
if (ret.error) {
|
|
@@ -28,8 +28,7 @@ class LocalDriver {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
build() {
|
|
31
|
-
|
|
32
|
-
if ((_a = this.spec.detectedCommands) === null || _a === void 0 ? void 0 : _a.build) {
|
|
31
|
+
if (this.spec.detectedCommands?.build) {
|
|
33
32
|
const [cmd, ...args] = this.spec.detectedCommands.build.cmd.split(" ");
|
|
34
33
|
this.execCmd(cmd, args);
|
|
35
34
|
}
|