forked from dienianindya/gsi_ess_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.
41 lines
1.6 KiB
41 lines
1.6 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getTrustedPublishers = exports.getExtensionRegistry = void 0;
|
|
const logger_1 = require("../logger");
|
|
const apiv2_1 = require("../apiv2");
|
|
const api_1 = require("../api");
|
|
const EXTENSIONS_REGISTRY_ENDPOINT = "/extensions.json";
|
|
async function getExtensionRegistry(onlyFeatured = false) {
|
|
var _a;
|
|
const client = new apiv2_1.Client({ urlPrefix: api_1.firebaseExtensionsRegistryOrigin });
|
|
const res = await client.get(EXTENSIONS_REGISTRY_ENDPOINT);
|
|
const extensions = res.body.mods || {};
|
|
if (onlyFeatured) {
|
|
const featuredList = new Set(((_a = res.body.featured) === null || _a === void 0 ? void 0 : _a.discover) || []);
|
|
const filteredExtensions = {};
|
|
for (const [name, extension] of Object.entries(extensions)) {
|
|
if (featuredList.has(name)) {
|
|
filteredExtensions[name] = extension;
|
|
}
|
|
}
|
|
return filteredExtensions;
|
|
}
|
|
return extensions;
|
|
}
|
|
exports.getExtensionRegistry = getExtensionRegistry;
|
|
async function getTrustedPublishers() {
|
|
let registry;
|
|
try {
|
|
registry = await getExtensionRegistry();
|
|
}
|
|
catch (err) {
|
|
logger_1.logger.debug("Couldn't get extensions registry, assuming no trusted publishers except Firebase.");
|
|
return ["firebase"];
|
|
}
|
|
const publisherIds = new Set();
|
|
for (const entry in registry) {
|
|
publisherIds.add(registry[entry].publisher);
|
|
}
|
|
return Array.from(publisherIds);
|
|
}
|
|
exports.getTrustedPublishers = getTrustedPublishers;
|