Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@expo/config-plugins

Package Overview
Dependencies
Maintainers
24
Versions
167
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@expo/config-plugins - npm Package Compare versions

Comparing version 4.0.12 to 4.0.13

2

build/android/Manifest.d.ts

@@ -8,2 +8,3 @@ export declare type StringBoolean = 'true' | 'false';

'android:name': string | 'android.intent.action.VIEW';
'tools:node'?: string | 'remove';
};

@@ -103,2 +104,3 @@ declare type ManifestAction = {

'xmlns:android': string;
'xmlns:tools'?: string;
package?: string;

@@ -105,0 +107,0 @@ [key: string]: string | undefined;

@@ -5,2 +5,4 @@ import { ExpoConfig } from '@expo/config-types';

export declare const withPermissions: ConfigPlugin<string[] | void>;
export declare const withBlockedPermissions: ConfigPlugin<string[]>;
export declare function addBlockedPermissions(androidManifest: AndroidManifest, permissions: string[]): AndroidManifest;
export declare function getAndroidPermissions(config: Pick<ExpoConfig, 'android'>): string[];

@@ -7,0 +9,0 @@ export declare function setAndroidPermissions(config: Pick<ExpoConfig, 'android'>, androidManifest: AndroidManifest): AndroidManifest;

@@ -6,2 +6,3 @@ "use strict";

});
exports.addBlockedPermissions = addBlockedPermissions;
exports.addPermission = addPermission;

@@ -17,4 +18,14 @@ exports.addPermissionToManifest = addPermissionToManifest;

exports.setAndroidPermissions = setAndroidPermissions;
exports.withPermissions = void 0;
exports.withPermissions = exports.withBlockedPermissions = void 0;
function _assert() {
const data = _interopRequireDefault(require("assert"));
_assert = function () {
return data;
};
return data;
}
function _androidPlugins() {

@@ -30,2 +41,4 @@ const data = require("../plugins/android-plugins");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const USES_PERMISSION = 'uses-permission';

@@ -50,2 +63,74 @@

const withBlockedPermissions = (config, permissions) => {
var _config$android;
(0, _assert().default)(Array.isArray(permissions), 'permissions prop must be an array');
if (config !== null && config !== void 0 && (_config$android = config.android) !== null && _config$android !== void 0 && _config$android.permissions && Array.isArray(config.android.permissions)) {
// Remove any static config permissions
config.android.permissions = config.android.permissions.filter(permission => !permissions.includes(permission));
}
return (0, _androidPlugins().withAndroidManifest)(config, async config => {
config.modResults = ensureToolsAvailable(config.modResults);
config.modResults = addBlockedPermissions(config.modResults, permissions);
return config;
});
};
/**
* Ensure the `tools:*` namespace is available in the manifest.
*
* @param manifest AndroidManifest.xml
* @returns manifest with the `tools:*` namespace available
*/
exports.withBlockedPermissions = withBlockedPermissions;
function ensureToolsAvailable(manifest) {
var _manifest$manifest, _manifest$manifest$$;
if (manifest !== null && manifest !== void 0 && (_manifest$manifest = manifest.manifest) !== null && _manifest$manifest !== void 0 && (_manifest$manifest$$ = _manifest$manifest.$) !== null && _manifest$manifest$$ !== void 0 && _manifest$manifest$$['xmlns:tools']) {
return manifest;
}
manifest.manifest.$['xmlns:tools'] = 'http://schemas.android.com/tools';
return manifest;
}
function addBlockedPermissions(androidManifest, permissions) {
if (!Array.isArray(androidManifest.manifest['uses-permission'])) {
androidManifest.manifest['uses-permission'] = [];
}
for (const permission of permissions) {
androidManifest.manifest['uses-permission'] = ensureBlockedPermission(androidManifest.manifest['uses-permission'], permission);
}
return androidManifest;
}
/**
* Filter any existing permissions matching the provided permission name, then add a
* restricted permission to overwrite any extra permissions that may be added in a
* third-party package's AndroidManifest.xml.
*
* @param manifestPermissions manifest `uses-permissions` array.
* @param permission `android:name` of the permission to restrict
* @returns
*/
function ensureBlockedPermission(manifestPermissions, permission) {
// Remove permission if it currently exists
manifestPermissions = manifestPermissions.filter(e => e.$['android:name'] !== permission); // Add a permission with tools:node to overwrite any existing permission and ensure it's removed upon building.
manifestPermissions.push({
$: {
'android:name': permission,
'tools:node': 'remove'
}
});
return manifestPermissions;
}
function prefixAndroidPermissionsIfNecessary(permissions) {

@@ -62,5 +147,5 @@ return permissions.map(permission => {

function getAndroidPermissions(config) {
var _config$android$permi, _config$android;
var _config$android$permi, _config$android2;
return (_config$android$permi = (_config$android = config.android) === null || _config$android === void 0 ? void 0 : _config$android.permissions) !== null && _config$android$permi !== void 0 ? _config$android$permi : [];
return (_config$android$permi = (_config$android2 = config.android) === null || _config$android2 === void 0 ? void 0 : _config$android2.permissions) !== null && _config$android$permi !== void 0 ? _config$android$permi : [];
}

@@ -67,0 +152,0 @@

4

build/ios/Maps.js

@@ -79,6 +79,6 @@ "use strict";

const debug = require('debug')('expo:config-plugins:ios:maps'); // Match against `UMModuleRegistryAdapter` (unimodules), and React Native without unimodules (Expo Modules).
const debug = require('debug')('expo:config-plugins:ios:maps'); // Match against `UMModuleRegistryAdapter` (unimodules), and React Native without unimodules (Expo Modules), and SDK +44 React AppDelegate subscriber.
const MATCH_INIT = /(?:(self\.|_)(\w+)\s?=\s?\[\[UMModuleRegistryAdapter alloc\])|(?:RCTBridge\s?\*\s?(\w+)\s?=\s?\[\[RCTBridge alloc\])/g;
const MATCH_INIT = /(?:(self\.|_)(\w+)\s?=\s?\[\[UMModuleRegistryAdapter alloc\])|(?:RCTBridge\s?\*\s?(\w+)\s?=\s?\[\[RCTBridge alloc\])|(\[self\.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions\])/g;
exports.MATCH_INIT = MATCH_INIT;

@@ -85,0 +85,0 @@ const withGoogleMapsKey = (0, _iosPlugins().createInfoPlistPlugin)(setGoogleMapsApiKey, 'withGoogleMapsKey');

{
"name": "@expo/config-plugins",
"version": "4.0.12",
"version": "4.0.13",
"description": "A library for Expo config plugins",

@@ -5,0 +5,0 @@ "main": "build/index.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc