"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllNativeModules = getAllNativeModules; exports.getAllForPlatform = getAllForPlatform; exports.getAllNativeForExpoClientOnPlatform = getAllNativeForExpoClientOnPlatform; exports.getVersionableModulesForPlatform = getVersionableModulesForPlatform; exports.getDetachableModules = getDetachableModules; exports.getPublishableModules = getPublishableModules; exports.doesVersionSatisfy = doesVersionSatisfy; function _semver() { const data = _interopRequireDefault(require("semver")); _semver = function () { return data; }; return data; } function _config() { const data = require("./config"); _config = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const HIGHEST_KNOWN_VERSION = '10000.0.0'; function getAllNativeModules() { return [..._config().expoSdkUniversalModulesConfigs, ..._config().vendoredNativeModules].filter(moduleConfig => moduleConfig.isNativeModule); } function getAllForPlatform(platform, sdkVersion) { return _config().expoSdkUniversalModulesConfigs.filter(moduleConfig => doesVersionSatisfy(sdkVersion, moduleConfig.sdkVersions)).map(moduleConfig => ({ ...moduleConfig, ...moduleConfig.config[platform] })); } function getAllNativeForExpoClientOnPlatform(platform, sdkVersion) { return getAllForPlatform(platform, sdkVersion).filter(moduleConfig => moduleConfig.includeInExpoClient && moduleConfig.isNativeModule); } function getVersionableModulesForPlatform(platform, sdkVersion) { return getAllNativeForExpoClientOnPlatform(platform, sdkVersion).filter(moduleConfig => { return moduleConfig.versionable; }); } function getDetachableModules(platform, sdkVersion) { return getAllForPlatform(platform, sdkVersion).filter(moduleConfig => moduleConfig.isNativeModule && moduleConfig.detachable); } function getPublishableModules(sdkVersion) { return _config().expoSdkUniversalModulesConfigs.filter(moduleConfig => !!moduleConfig.libName && doesVersionSatisfy(sdkVersion, moduleConfig.sdkVersions)); } function doesVersionSatisfy(version, versionRequirement) { if (version === 'UNVERSIONED') { return _semver().default.satisfies(HIGHEST_KNOWN_VERSION, versionRequirement); } return _semver().default.satisfies(version, versionRequirement); } //# sourceMappingURL=../__sourcemaps__/modules/Modules.js.map