You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.9 KiB
64 lines
2.9 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.displayExportInfo = exports.setSecretParamsToLatest = exports.parameterizeProject = void 0;
|
|
const planner_1 = require("../deploy/extensions/planner");
|
|
const deploymentSummary_1 = require("../deploy/extensions/deploymentSummary");
|
|
const logger_1 = require("../logger");
|
|
const secretManager_1 = require("../gcp/secretManager");
|
|
const secretsUtils_1 = require("./secretsUtils");
|
|
function parameterizeProject(projectId, projectNumber, spec) {
|
|
const newParams = {};
|
|
for (const [key, val] of Object.entries(spec.params)) {
|
|
const p1 = val.replace(projectId, "${param:PROJECT_ID}");
|
|
const p2 = p1.replace(projectNumber, "${param:PROJECT_NUMBER}");
|
|
newParams[key] = p2;
|
|
}
|
|
const newSpec = Object.assign({}, spec);
|
|
newSpec.params = newParams;
|
|
return newSpec;
|
|
}
|
|
exports.parameterizeProject = parameterizeProject;
|
|
async function setSecretParamsToLatest(spec) {
|
|
const newParams = Object.assign({}, spec.params);
|
|
const extensionVersion = await (0, planner_1.getExtensionVersion)(spec);
|
|
const activeSecrets = (0, secretsUtils_1.getActiveSecrets)(extensionVersion.spec, newParams);
|
|
for (const [key, val] of Object.entries(newParams)) {
|
|
if (activeSecrets.includes(val)) {
|
|
const parsed = (0, secretManager_1.parseSecretVersionResourceName)(val);
|
|
parsed.versionId = "latest";
|
|
newParams[key] = (0, secretManager_1.toSecretVersionResourceName)(parsed);
|
|
}
|
|
}
|
|
return Object.assign(Object.assign({}, spec), { params: newParams });
|
|
}
|
|
exports.setSecretParamsToLatest = setSecretParamsToLatest;
|
|
function displayExportInfo(withRef, withoutRef) {
|
|
logger_1.logger.info("The following Extension instances will be saved locally:");
|
|
logger_1.logger.info("");
|
|
displaySpecs(withRef);
|
|
if (withoutRef.length) {
|
|
logger_1.logger.info(`Your project also has the following instances installed from local sources. These will not be saved to firebase.json:`);
|
|
for (const spec of withoutRef) {
|
|
logger_1.logger.info(spec.instanceId);
|
|
}
|
|
}
|
|
}
|
|
exports.displayExportInfo = displayExportInfo;
|
|
function displaySpecs(specs) {
|
|
var _a;
|
|
for (let i = 0; i < specs.length; i++) {
|
|
const spec = specs[i];
|
|
logger_1.logger.info(`${i + 1}. ${(0, deploymentSummary_1.humanReadable)(spec)}`);
|
|
logger_1.logger.info(`Configuration will be written to 'extensions/${spec.instanceId}.env'`);
|
|
for (const p of Object.entries(spec.params)) {
|
|
logger_1.logger.info(`\t${p[0]}=${p[1]}`);
|
|
}
|
|
if ((_a = spec.allowedEventTypes) === null || _a === void 0 ? void 0 : _a.length) {
|
|
logger_1.logger.info(`\tALLOWED_EVENTS=${spec.allowedEventTypes}`);
|
|
}
|
|
if (spec.eventarcChannel) {
|
|
logger_1.logger.info(`\tEVENTARC_CHANNEL=${spec.eventarcChannel}`);
|
|
}
|
|
logger_1.logger.info("");
|
|
}
|
|
}
|