GSI - Employe Self Service Mobile
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.
 
 
 
 
 

132 lines
5.0 KiB

#!/usr/bin/env node
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const semver = require("semver");
const pkg = require("../../package.json");
const nodeVersion = process.version;
if (!semver.satisfies(nodeVersion, pkg.engines.node)) {
console.error(`Firebase CLI v${pkg.version} is incompatible with Node.js ${nodeVersion} Please upgrade Node.js to version ${pkg.engines.node}`);
process.exit(1);
}
const updateNotifierPkg = require("update-notifier-cjs");
const clc = require("colorette");
const TerminalRenderer = require("marked-terminal");
const updateNotifier = updateNotifierPkg({ pkg });
const marked_1 = require("marked");
marked_1.marked.setOptions({
renderer: new TerminalRenderer(),
});
const node_path_1 = require("node:path");
const triple_beam_1 = require("triple-beam");
const stripAnsi = require("strip-ansi");
const fs = require("node:fs");
const configstore_1 = require("../configstore");
const errorOut_1 = require("../errorOut");
const handlePreviewToggles_1 = require("../handlePreviewToggles");
const logger_1 = require("../logger");
const client = require("..");
const fsutils = require("../fsutils");
const utils = require("../utils");
const winston = require("winston");
let args = process.argv.slice(2);
let cmd;
function findAvailableLogFile() {
const candidates = ["firebase-debug.log"];
for (let i = 1; i < 10; i++) {
candidates.push(`firebase-debug.${i}.log`);
}
for (const c of candidates) {
const logFilename = (0, node_path_1.join)(process.cwd(), c);
try {
const fd = fs.openSync(logFilename, "r+");
fs.closeSync(fd);
return logFilename;
}
catch (e) {
if (e.code === "ENOENT") {
return logFilename;
}
}
}
throw new Error("Unable to obtain permissions for firebase-debug.log");
}
const logFilename = findAvailableLogFile();
if (!process.env.DEBUG && args.includes("--debug")) {
process.env.DEBUG = "true";
}
process.env.IS_FIREBASE_CLI = "true";
logger_1.logger.add(new winston.transports.File({
level: "debug",
filename: logFilename,
format: winston.format.printf((info) => {
const segments = [info.message, ...(info[triple_beam_1.SPLAT] || [])].map(utils.tryStringify);
return `[${info.level}] ${stripAnsi(segments.join(" "))}`;
}),
}));
logger_1.logger.debug("-".repeat(70));
logger_1.logger.debug("Command: ", process.argv.join(" "));
logger_1.logger.debug("CLI Version: ", pkg.version);
logger_1.logger.debug("Platform: ", process.platform);
logger_1.logger.debug("Node Version: ", process.version);
logger_1.logger.debug("Time: ", new Date().toString());
if (utils.envOverrides.length) {
logger_1.logger.debug("Env Overrides:", utils.envOverrides.join(", "));
}
logger_1.logger.debug("-".repeat(70));
logger_1.logger.debug();
const experiments_1 = require("../experiments");
const fetchMOTD_1 = require("../fetchMOTD");
(0, experiments_1.enableExperimentsFromCliEnvVariable)();
(0, fetchMOTD_1.fetchMOTD)();
process.on("exit", (code) => {
code = process.exitCode || code;
if (!process.env.DEBUG && code < 2 && fsutils.fileExistsSync(logFilename)) {
fs.unlinkSync(logFilename);
}
if (code > 0 && process.stdout.isTTY) {
const lastError = configstore_1.configstore.get("lastError") || 0;
const timestamp = Date.now();
if (lastError > timestamp - 120000) {
let help;
if (code === 1 && cmd) {
help = "Having trouble? Try " + clc.bold("firebase [command] --help");
}
else {
help = "Having trouble? Try again or contact support with contents of firebase-debug.log";
}
if (cmd) {
console.log();
console.log(help);
}
}
configstore_1.configstore.set("lastError", timestamp);
}
else {
configstore_1.configstore.delete("lastError");
}
try {
const updateMessage = `Update available ${clc.gray("{currentVersion}")}${clc.green("{latestVersion}")}\n` +
`To update to the latest version using npm, run\n${clc.cyan("npm install -g firebase-tools")}\n` +
`For other CLI management options, visit the ${(0, marked_1.marked)("[CLI documentation](https://firebase.google.com/docs/cli#update-cli)")}`;
updateNotifier.notify({ defer: false, isGlobal: true, message: updateMessage });
}
catch (err) {
logger_1.logger.debug("Error when notifying about new CLI updates:");
if (err instanceof Error) {
logger_1.logger.debug(err);
}
else {
logger_1.logger.debug(`${err}`);
}
}
});
process.on("uncaughtException", (err) => {
(0, errorOut_1.errorOut)(err);
});
if (!(0, handlePreviewToggles_1.handlePreviewToggles)(args)) {
cmd = client.cli.parse(process.argv);
args = args.filter((arg) => !arg.includes("-"));
if (!args.length) {
client.cli.help();
}
}