File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/native-run/dist/android/utils/sdk/api.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.findPackageBySchemaPath = exports.findPackageBySchema = exports.findUnsatisfiedPackages = exports.getAPILevels = void 0;
const Debug = require("debug");
const modulePrefix = 'native-run:android:utils:sdk:api';
async function getAPILevels(packages) {
const debug = Debug(`${modulePrefix}:${getAPILevels.name}`);
const levels = [
...new Set(packages.map((pkg) => pkg.apiLevel).filter((apiLevel) => typeof apiLevel !== 'undefined')),
].sort((a, b) => (a <= b ? 1 : -1));
const apis = levels.map((apiLevel) => ({
apiLevel,
packages: packages.filter((pkg) => pkg.apiLevel === apiLevel),
}));
debug('Discovered installed API Levels: %O', apis.map((api) => ({ ...api, packages: api.packages.map((pkg) => pkg.path) })));
return apis;
}
exports.getAPILevels = getAPILevels;
function findUnsatisfiedPackages(packages, schemas) {
return schemas.filter((pkg) => !findPackageBySchema(packages, pkg));
}
exports.findUnsatisfiedPackages = findUnsatisfiedPackages;
function findPackageBySchema(packages, pkg) {
const apiPkg = findPackageBySchemaPath(packages, pkg.path);
if (apiPkg) {
if (typeof pkg.version === 'string') {
if (pkg.version === apiPkg.version) {
return apiPkg;
}
}
else {
if (apiPkg.version.match(pkg.version)) {
return apiPkg;
}
}
}
}
exports.findPackageBySchema = findPackageBySchema;
function findPackageBySchemaPath(packages, path) {
return packages.find((pkg) => {
if (typeof path !== 'string') {
return !!pkg.path.match(path);
}
return path === pkg.path;
});
}
exports.findPackageBySchemaPath = findPackageBySchemaPath;