firebase-tools
Version:
Command-Line Interface for Firebase
95 lines (94 loc) • 3.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.client = void 0;
exports.createDebugToken = createDebugToken;
exports.listDebugTokens = listDebugTokens;
exports.deleteDebugToken = deleteDebugToken;
exports.listServices = listServices;
exports.getService = getService;
exports.updateService = updateService;
exports.getProviderConfig = getProviderConfig;
exports.updateProviderConfig = updateProviderConfig;
exports.batchGetProviderConfigs = batchGetProviderConfigs;
const api_1 = require("../api");
const apiv2_1 = require("../apiv2");
const providers_1 = require("./providers");
const API_VERSION = "v1";
exports.client = new apiv2_1.Client({
urlPrefix: (0, api_1.appCheckOrigin)(),
auth: true,
apiVersion: API_VERSION,
});
async function createDebugToken(projectNumber, appId, displayName, token) {
const parent = `projects/${projectNumber}/apps/${appId}`;
const res = await exports.client.post(`${parent}/debugTokens`, {
displayName,
token,
});
return res.body;
}
async function listDebugTokens(projectNumber, appId) {
const parent = `projects/${projectNumber}/apps/${appId}`;
const debugTokens = [];
let pageToken = "";
do {
const queryParams = {};
if (pageToken) {
queryParams.pageToken = pageToken;
}
const res = await exports.client.get(`${parent}/debugTokens`, { queryParams });
if (res.body?.debugTokens) {
debugTokens.push(...res.body.debugTokens);
}
pageToken = res.body?.nextPageToken || "";
} while (pageToken);
return debugTokens;
}
async function deleteDebugToken(name) {
await exports.client.delete(name);
}
async function listServices(projectNumber) {
const services = [];
let pageToken = "";
do {
const queryParams = {};
if (pageToken) {
queryParams.pageToken = pageToken;
}
const res = await exports.client.get(`projects/${projectNumber}/services`, {
queryParams,
});
if (res.body?.services) {
services.push(...res.body.services);
}
pageToken = res.body?.nextPageToken || "";
} while (pageToken);
return services;
}
async function getService(projectNumber, serviceId) {
const res = await exports.client.get(`projects/${projectNumber}/services/${serviceId}`);
return res.body;
}
async function updateService(projectNumber, serviceId, update) {
const updateMask = ["enforcementMode"];
if (update.replayProtection) {
updateMask.push("replayProtection");
}
const res = await exports.client.patch(`projects/${projectNumber}/services/${serviceId}`, update, { queryParams: { updateMask: updateMask.join(",") } });
return res.body;
}
async function getProviderConfig(projectNumber, appId, provider) {
const { configResource } = providers_1.PROVIDER_META[provider];
const res = await exports.client.get(`projects/${projectNumber}/apps/${appId}/${configResource}`);
return res.body;
}
async function updateProviderConfig(projectNumber, appId, provider, update, updateMask) {
const { configResource } = providers_1.PROVIDER_META[provider];
const res = await exports.client.patch(`projects/${projectNumber}/apps/${appId}/${configResource}`, update, { queryParams: { updateMask: updateMask.join(",") } });
return res.body;
}
async function batchGetProviderConfigs(projectNumber, provider) {
const { configResource } = providers_1.PROVIDER_META[provider];
const res = await exports.client.get(`projects/${projectNumber}/apps/-/${configResource}:batchGet`);
return res.body?.configs ?? [];
}