1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.clearCredentials = exports.getCredentialPathAsync = void 0;
- const fs = require("fs");
- const path = require("path");
- const api_1 = require("./api");
- const logger_1 = require("./logger");
- async function getCredentialPathAsync(account) {
- const filePath = credFilePath(account.user);
- if (!filePath) {
- logger_1.logger.debug("defaultcredentials: could not create path to default credentials file.");
- return undefined;
- }
- const cred = getCredential(account.tokens);
- if (!cred) {
- logger_1.logger.debug("defaultcredentials: no credential available.");
- return undefined;
- }
- logger_1.logger.debug(`defaultcredentials: writing to file ${filePath}`);
- return new Promise((res, rej) => {
- fs.writeFile(filePath, JSON.stringify(cred, undefined, 2), "utf8", (err) => {
- if (err) {
- rej(err);
- }
- else {
- res(filePath);
- }
- });
- });
- }
- exports.getCredentialPathAsync = getCredentialPathAsync;
- function clearCredentials(account) {
- const filePath = credFilePath(account.user);
- if (!filePath) {
- return;
- }
- if (!fs.existsSync(filePath)) {
- return;
- }
- fs.unlinkSync(filePath);
- }
- exports.clearCredentials = clearCredentials;
- function getCredential(tokens) {
- if (tokens.refresh_token) {
- return {
- client_id: api_1.clientId,
- client_secret: api_1.clientSecret,
- refresh_token: tokens.refresh_token,
- type: "authorized_user",
- };
- }
- }
- function credFilePath(user) {
- let configDir = undefined;
- if (process.platform.startsWith("win")) {
- configDir = process.env["APPDATA"];
- }
- else {
- const home = process.env["HOME"];
- if (home) {
- configDir = path.join(home, ".config");
- }
- }
- if (!configDir) {
- return undefined;
- }
- if (!fs.existsSync(configDir)) {
- fs.mkdirSync(configDir);
- }
- const fbtConfigDir = path.join(configDir, "firebase");
- if (!fs.existsSync(fbtConfigDir)) {
- fs.mkdirSync(fbtConfigDir);
- }
- return path.join(fbtConfigDir, `${userEmailSlug(user)}_application_default_credentials.json`);
- }
- function userEmailSlug(user) {
- const email = user.email || "unknown_user";
- const slug = email.replace("@", "_").replace(".", "_");
- return slug;
- }
|