New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@nativescript-community/perms

Package Overview
Dependencies
Maintainers
0
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nativescript-community/perms - npm Package Compare versions

Comparing version 2.3.6 to 3.0.0

7

index.android.d.ts

@@ -1,2 +0,3 @@

import { CheckOptions, MultiResult, ObjectPermissions, ObjectPermissionsRest, Permissions as PermissionsType, RequestOptions, Status } from '.';
import { CheckOptions, MultiResult, ObjectPermissions, ObjectPermissionsRest, Permissions as PermissionsType, RequestOptions } from '.';
import { Status } from './index.common';
export * from './index.common';

@@ -7,6 +8,6 @@ export declare function canOpenSettings(): Promise<boolean>;

export declare function getTypes(): PermissionsType[];
export declare function check(permission: PermissionsType | string, options?: CheckOptions): Promise<[Status, boolean]>;
export declare function request(permission: PermissionsType | string | ObjectPermissions, options?: RequestOptions): Promise<[Status, boolean] | {
export declare function check(permission: PermissionsType | string, options?: CheckOptions): Promise<Status>;
export declare function request(permission: PermissionsType | string | ObjectPermissions, options?: RequestOptions): Promise<Status | {
[permission: string]: Status;
}>;
export declare function checkMultiple<T extends Partial<ObjectPermissionsRest>>(permissions: T): Promise<MultiResult>;

@@ -1,14 +0,6 @@

import { Trace, Utils } from '@nativescript/core';
import { AndroidApplication, Application, android as androidApp } from '@nativescript/core/application';
import { Application, Trace, Utils } from '@nativescript/core';
import { getBoolean, setBoolean } from '@nativescript/core/application-settings';
import { CLog, CLogTypes } from './index.common';
import { SDK_VERSION } from '@nativescript/core/utils';
import { CLog, CLogTypes, Status } from './index.common';
export * from './index.common';
let ANDROID_SDK = -1;
function getAndroidSDK() {
if (ANDROID_SDK === -1) {
ANDROID_SDK = android.os.Build.VERSION.SDK_INT;
}
return ANDROID_SDK;
}
const MARSHMALLOW = 23;

@@ -43,15 +35,11 @@ const ANDROIDQ = 29;

const result = [];
const coarse = options?.coarse ?? true;
const precise = options?.precise ?? true;
if (coarse !== false) {
const theOptions = options;
if ((theOptions?.coarse ?? true) !== false) {
result.push('android.permission.ACCESS_COARSE_LOCATION');
}
if (precise !== false) {
if ((theOptions?.precise ?? true) !== false) {
result.push('android.permission.ACCESS_FINE_LOCATION');
}
if (getAndroidSDK() >= ANDROIDQ) {
const type = typeof options === 'string' ? options : options?.type;
if (type === 'always') {
result.push('android.permission.ACCESS_BACKGROUND_LOCATION');
}
if (SDK_VERSION >= ANDROIDQ && (theOptions?.background ?? false) === true) {
result.push('android.permission.ACCESS_BACKGROUND_LOCATION');
}

@@ -64,3 +52,3 @@ return result;

case 'mediaLocation': {
if (getAndroidSDK() >= ANDROIDQ) {
if (SDK_VERSION >= ANDROIDQ) {
return ['android.permission.ACCESS_MEDIA_LOCATION'];

@@ -81,9 +69,8 @@ }

const result = [];
const read = options?.read ?? true;
const write = options?.write ?? true;
const theOptions = options;
// const manage = options?.manage?? true;
if (read !== false) {
if ((theOptions?.read ?? true) !== false) {
result.push('android.permission.READ_EXTERNAL_STORAGE');
}
if (write !== false) {
if ((theOptions?.write ?? true) !== false) {
result.push('android.permission.WRITE_EXTERNAL_STORAGE');

@@ -97,3 +84,3 @@ }

case 'photo': {
if (getAndroidSDK() >= ANDROID13) {
if (SDK_VERSION >= ANDROID13) {
return ['android.permission.READ_MEDIA_IMAGES'];

@@ -104,3 +91,3 @@ }

case 'video': {
if (getAndroidSDK() >= ANDROID13) {
if (SDK_VERSION >= ANDROID13) {
return ['android.permission.READ_MEDIA_VIDEO'];

@@ -111,3 +98,3 @@ }

case 'audio': {
if (getAndroidSDK() >= ANDROID13) {
if (SDK_VERSION >= ANDROID13) {
return ['android.permission.READ_MEDIA_AUDIO'];

@@ -127,3 +114,3 @@ }

case 'bluetoothScan': {
if (getAndroidSDK() >= ANDROIDS) {
if (SDK_VERSION >= ANDROIDS) {
return ['android.permission.BLUETOOTH_SCAN'];

@@ -134,3 +121,3 @@ }

case 'bluetoothConnect': {
if (getAndroidSDK() >= ANDROIDS) {
if (SDK_VERSION >= ANDROIDS) {
return ['android.permission.BLUETOOTH_CONNECT'];

@@ -141,3 +128,3 @@ }

case 'bluetooth': {
if (getAndroidSDK() >= ANDROIDS) {
if (SDK_VERSION >= ANDROIDS) {
return ['android.permission.BLUETOOTH_ADVERTISE'];

@@ -148,3 +135,3 @@ }

case 'notification': {
if (getAndroidSDK() >= ANDROID13) {
if (SDK_VERSION >= ANDROID13) {
// @ts-ignore

@@ -163,8 +150,2 @@ return ['android.permission.POST_NOTIFICATIONS'];

const getDidAskOnce = (permission) => Promise.resolve(!!getBoolean(STORAGE_KEY + permission));
const GRANT_RESULTS = {
UNDETERMINED: 'undetermined',
GRANTED: 'authorized',
DENIED: 'denied',
NEVER_ASK_AGAIN: 'never_ask_again'
};
var PermissionsAndroid;

@@ -201,3 +182,2 @@ (function (PermissionsAndroid) {

// };
PermissionsAndroid.RESULTS = GRANT_RESULTS;
/**

@@ -216,3 +196,3 @@ * Returns a promise resolving to a boolean value as to whether the specified

}
if (getAndroidSDK() < MARSHMALLOW) {
if (SDK_VERSION < MARSHMALLOW) {
permission.forEach((p) => (result = result && context.checkPermission(p, android.os.Process.myPid(), android.os.Process.myUid()) === granted));

@@ -268,9 +248,9 @@ }

const perm = permissions[i];
if (getAndroidSDK() < MARSHMALLOW) {
if (SDK_VERSION < MARSHMALLOW) {
grantedPermissions[perm] =
context.checkPermission(perm, android.os.Process.myPid(), android.os.Process.myUid()) === android.content.pm.PackageManager.PERMISSION_GRANTED ? 'authorized' : GRANT_RESULTS.DENIED;
context.checkPermission(perm, android.os.Process.myPid(), android.os.Process.myUid()) === android.content.pm.PackageManager.PERMISSION_GRANTED ? Status.Authorized : Status.Denied;
checkedPermissionsCount++;
}
else if (context.checkSelfPermission(perm) === android.content.pm.PackageManager.PERMISSION_GRANTED) {
grantedPermissions[perm] = GRANT_RESULTS.GRANTED;
grantedPermissions[perm] = Status.Authorized;
checkedPermissionsCount++;

@@ -285,3 +265,3 @@ }

}
const activity = androidApp.foregroundActivity || androidApp.startActivity;
const activity = Application.android.foregroundActivity || Application.android.startActivity;
return new Promise((resolve, reject) => {

@@ -296,3 +276,3 @@ try {

if (args.requestCode === requestCode) {
androidApp.off(AndroidApplication.activityRequestPermissionsEvent, onActivityResult);
Application.android.off(Application.android.activityRequestPermissionsEvent, onActivityResult);
const results = args.grantResults;

@@ -305,10 +285,10 @@ if (Trace.isEnabled()) {

if (results.length > j && results[j] === android.content.pm.PackageManager.PERMISSION_GRANTED) {
grantedPermissions[permission] = GRANT_RESULTS.GRANTED;
grantedPermissions[permission] = Status.Authorized;
}
else {
if (activity.shouldShowRequestPermissionRationale(permission)) {
grantedPermissions[permission] = GRANT_RESULTS.DENIED;
grantedPermissions[permission] = Status.Denied;
}
else {
grantedPermissions[permission] = GRANT_RESULTS.NEVER_ASK_AGAIN;
grantedPermissions[permission] = Status.NeverAskAgain;
}

@@ -320,3 +300,3 @@ }

};
androidApp.on(AndroidApplication.activityRequestPermissionsEvent, onActivityResult);
Application.android.on(Application.android.activityRequestPermissionsEvent, onActivityResult);
}

@@ -329,6 +309,6 @@ catch (e) {

function shouldShowRequestPermissionRationale(permission) {
if (getAndroidSDK() < MARSHMALLOW) {
if (SDK_VERSION < MARSHMALLOW) {
return Promise.resolve(false);
}
const activity = androidApp.foregroundActivity || androidApp.startActivity;
const activity = Application.android.foregroundActivity || Application.android.startActivity;
try {

@@ -349,11 +329,11 @@ if (Array.isArray(permission)) {

export function openSettings() {
const activity = androidApp.foregroundActivity || androidApp.startActivity;
const activity = Application.android.foregroundActivity || Application.android.startActivity;
return new Promise((resolve, reject) => {
const onActivityResultHandler = (data) => {
if (data.requestCode === 5140) {
androidApp.off(AndroidApplication.activityResultEvent, onActivityResultHandler);
Application.android.off(Application.android.activityResultEvent, onActivityResultHandler);
resolve();
}
};
androidApp.on(AndroidApplication.activityResultEvent, onActivityResultHandler);
Application.android.on(Application.android.activityResultEvent, onActivityResultHandler);
const intent = new android.content.Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

@@ -395,23 +375,23 @@ intent.setData(android.net.Uri.parse('package:' + activity.getPackageName()));

if (Trace.isEnabled()) {
CLog(CLogTypes.info, 'check', permission, options, getAndroidSDK(), perms);
CLog(CLogTypes.info, 'check', permission, options, SDK_VERSION, perms);
}
if (!perms || perms.length === 0) {
return [GRANT_RESULTS.GRANTED, true];
return Status.Authorized;
}
const isAuthorized = await PermissionsAndroid.check(perms);
if (isAuthorized) {
if (getAndroidSDK() >= ANDROIDQ && permission === 'location') {
if (SDK_VERSION >= ANDROIDQ && permission === 'location') {
const type = typeof options === 'string' ? options : options && options.type;
if (type === 'always') {
const backAuthorized = await PermissionsAndroid.check('android.permission.ACCESS_BACKGROUND_LOCATION');
return [GRANT_RESULTS.GRANTED, backAuthorized];
return backAuthorized ? Status.Authorized : Status.Denied;
}
}
return [GRANT_RESULTS.GRANTED, true];
return Status.Authorized;
}
return getDidAskOnce(permission).then((didAsk) => {
if (didAsk) {
return shouldShowRequestPermissionRationale(perms).then((shouldShow) => [shouldShow ? GRANT_RESULTS.DENIED : 'restricted', true]);
return shouldShowRequestPermissionRationale(perms).then((shouldShow) => (shouldShow ? Status.Denied : Status.Restricted));
}
return [GRANT_RESULTS.UNDETERMINED, true];
return Status.Undetermined;
});

@@ -448,3 +428,3 @@ }

// }
return Promise.resolve([GRANT_RESULTS.GRANTED, true]);
return Promise.resolve(Status.Authorized);
}

@@ -458,8 +438,8 @@ if (types.length > 1) {

if (typeof result === 'boolean') {
return [result ? GRANT_RESULTS.GRANTED : GRANT_RESULTS.DENIED, true];
return result ? Status.Authorized : Status.Denied;
}
if (permissions.length > 1) {
return Promise.all(permissions.map(setDidAskOnce)).then(() => [result, true]);
return Promise.all(permissions.map(setDidAskOnce)).then(() => result);
}
return setDidAskOnce(permissions[0]).then(() => [result, true]);
return setDidAskOnce(permissions[0]).then(() => result);
});

@@ -472,3 +452,3 @@ }

return Promise.all(Object.keys(permissions).map((permission) => check(permission, permissions[permission]).then((r) => [permission, r]))).then((result) => result.reduce((acc, value, index) => {
acc[value[0]] = value[1][0];
acc[value[0]] = value[1];
return acc;

@@ -475,0 +455,0 @@ }, {}));

@@ -1,3 +0,11 @@

import type { MultiResult, Result } from '.';
import type { MultiResult } from '.';
export declare const PermsTraceCategory = "NativescriptPerms";
export declare enum Status {
Undetermined = "undetermined",
Denied = "denied",
Authorized = "authorized",
Limited = "limited",
Restricted = "restricted",
NeverAskAgain = "never_ask_again"
}
export declare enum CLogTypes {

@@ -10,2 +18,2 @@ log = 0,

export declare const CLog: (type: CLogTypes, ...args: any[]) => void;
export declare function isPermResultAuthorized(r: MultiResult | Result): boolean;
export declare function isPermResultAuthorized(r: MultiResult | Status): boolean | Status;
import { Trace } from '@nativescript/core';
export const PermsTraceCategory = 'NativescriptPerms';
export var Status;
(function (Status) {
Status["Undetermined"] = "undetermined";
Status["Denied"] = "denied";
Status["Authorized"] = "authorized";
Status["Limited"] = "limited";
Status["Restricted"] = "restricted";
Status["NeverAskAgain"] = "never_ask_again";
})(Status || (Status = {}));
export var CLogTypes;

@@ -14,10 +23,8 @@ (function (CLogTypes) {

export function isPermResultAuthorized(r) {
if (Array.isArray(r)) {
return r[0] === 'authorized';
}
else {
const unauthorized = Object.keys(r).some((s) => r[s] !== 'authorized');
if (typeof r === 'object') {
const unauthorized = Object.keys(r).some((s) => r[s] !== Status.Authorized);
return !unauthorized;
}
return r;
}
//# sourceMappingURL=index.common.js.map
/* eslint-disable @typescript-eslint/unified-signatures */
/* eslint-disable no-redeclare */
export type Status = 'authorized' | 'denied' | 'limited' | 'restricted' | 'undetermined' | 'never_ask_again';
export type IStatus = 'authorized' | 'denied' | 'limited' | 'restricted' | 'undetermined' | 'never_ask_again';

@@ -39,5 +39,5 @@ export * from './index.common';

export interface LocationOptions {
type: string;
coarse?: boolean;
precise?: boolean;
background?: boolean;
}

@@ -72,12 +72,12 @@ export interface StorageOptions {

export type Result = [Status, boolean];
export interface MultiResult {
[k: Permissions | string]: Status;
}
export type Result<T> = T extends any[] ? MultipleResult : Status;
export type RequestOptions<T extends Permissions = Permissions> = T extends keyof ObjectPermissions ? ObjectPermissions[T] : any;
export function request<T extends Permissions>(permission: T, options?: RequestOptions<T>): Promise<Result>;
export function request<T extends Permissions>(permission: T, options?: RequestOptions<T>): Promise<Status>;
export function request<T extends Partial<ObjectPermissions | ObjectPermissionsRest>>(permission: T): Promise<MultiResult>;
export function request<T extends string>(permission: T): Promise<Result>;
export function request<T extends string>(permission: T): Promise<Status>;
export function checkMultiple<T extends Partial<ObjectPermissionsRest>>(permissions: T): Promise<MultiResult>;

@@ -1,11 +0,5 @@

import { CheckOptions, PermissionOptions, RequestOptions } from '.';
import { CheckOptions, MultiResult, PermissionOptions, RequestOptions, Result } from '.';
import { Status } from './index.common';
export * from './index.common';
export declare namespace PermissionsIOS {
enum Status {
Undetermined = "undetermined",
Denied = "denied",
Authorized = "authorized",
Limited = "limited",
Restricted = "restricted"
}
enum NSType {

@@ -28,4 +22,4 @@ Location = "location",

function canOpenSettings(): Promise<boolean>;
function getPermissionStatus(type: any, json: any): Promise<[Status, boolean]>;
function requestPermission(type: any, json: any): Promise<[Status, boolean]>;
function getPermissionStatus(type: any, json: any): Promise<Status>;
function requestPermission(perm: any, options: any): Promise<Status>;
}

@@ -40,9 +34,4 @@ type IOSPermissionTypes = `${PermissionsIOS.NSType}`;

export declare function getTypes(): ("location" | "camera" | "microphone" | "photo" | "contacts" | "event" | "reminder" | "bluetooth" | "notification" | "backgroundRefresh" | "speechRecognition" | "mediaLibrary" | "motion")[];
type SingleResult = [PermissionsIOS.Status, boolean];
interface MultipleResult {
[k: string]: PermissionsIOS.Status;
}
type Result<T> = T extends any[] ? MultipleResult : SingleResult;
export declare function check(permission: IOSPermissionTypes, options?: CheckOptions): Promise<SingleResult>;
export declare function check(permission: IOSPermissionTypes, options?: CheckOptions): Promise<Status>;
export declare function request<T extends IOSPermissionTypes | Record<IOSPermissionTypes, any>>(permission: T, options?: RequestOptions): Promise<Result<T>>;
export declare function checkMultiple<T extends Partial<ObjectIOSPermissionsRest>>(permissions: T): Promise<MultipleResult>;
export declare function checkMultiple<T extends Partial<ObjectIOSPermissionsRest>>(permissions: T): Promise<MultiResult>;
import { Application, Device, Trace, Utils } from '@nativescript/core';
import { CLog, CLogTypes } from './index.common';
import { CLog, CLogTypes, Status } from './index.common';
export * from './index.common';
export var PermissionsIOS;
(function (PermissionsIOS) {
let Status;
(function (Status) {
Status["Undetermined"] = "undetermined";
Status["Denied"] = "denied";
Status["Authorized"] = "authorized";
Status["Limited"] = "limited";
Status["Restricted"] = "restricted";
})(Status = PermissionsIOS.Status || (PermissionsIOS.Status = {}));
let NSPLocation;

@@ -18,10 +10,12 @@ (function (NSPLocation) {

function getStatusFromCLAuthorizationStatus(lStatus, type) {
let always = false;
switch (lStatus) {
case 3 /* CLAuthorizationStatus.kCLAuthorizationStatusAuthorizedAlways */:
always = true;
status = Status.Authorized;
break;
case 4 /* CLAuthorizationStatus.kCLAuthorizationStatusAuthorizedWhenInUse */:
// if (type === 'always') {
// status = Status.Denied;
// } else {
status = Status.Authorized;
// }
break;

@@ -38,11 +32,16 @@ case 2 /* CLAuthorizationStatus.kCLAuthorizationStatusDenied */:

if (Trace.isEnabled()) {
CLog(CLogTypes.info, 'NSPLocation getStatusFromCLAuthorizationStatus', lStatus, type, status, always);
CLog(CLogTypes.info, 'NSPLocation getStatusFromCLAuthorizationStatus', lStatus, type, status);
}
return [status, always];
return status;
}
function getStatusForType(type) {
const status2 = CLLocationManager.authorizationStatus();
return getStatusFromCLAuthorizationStatus(status2, type);
const status = CLLocationManager.authorizationStatus();
return getStatusFromCLAuthorizationStatus(status, type);
}
NSPLocation.getStatusForType = getStatusForType;
function getStatus(options) {
const type = getTypeFromOptions(options);
return getStatusForType(type);
}
NSPLocation.getStatus = getStatus;
let locationManager;

@@ -88,3 +87,7 @@ let locationManagerDelegate;

}(NSObject));
async function request(type) {
function getTypeFromOptions(options) {
return options?.background === true ? 'always' : 'whenInUse';
}
async function request(options) {
const type = getTypeFromOptions(options);
const status = getStatusForType(type);

@@ -94,3 +97,3 @@ if (Trace.isEnabled()) {

}
if (status[0] === Status.Undetermined || status[0] === Status.Denied || (type === 'always' && !status[1])) {
if (status === Status.Undetermined || status === Status.Denied) {
return new Promise((resolve, reject) => {

@@ -104,2 +107,5 @@ if (!locationManager) {

}
if (Trace.isEnabled()) {
CLog(CLogTypes.info, 'NSPLocation requesting location', locationManager, locationManagerDelegate);
}
function cleanup() {

@@ -169,3 +175,3 @@ if (locationManagerDelegate) {

}
return [status, true];
return status;
}

@@ -210,3 +216,3 @@ NSPBluetooth.getStatus = getStatus;

const status = getStatus();
if (status[0] === Status.Undetermined || status[0] === Status.Denied) {
if (status === Status.Undetermined || status === Status.Denied) {
return new Promise((resolve, reject) => {

@@ -272,3 +278,3 @@ if (!peripheralManager) {

}
return [status, true];
return status;
}

@@ -301,3 +307,3 @@ NSPAudioVideo.getStatus = getStatus;

}
return [status, true];
return status;
}

@@ -339,3 +345,3 @@ NSPSpeechRecognition.getStatus = getStatus;

}
return [status, true];
return status;
}

@@ -368,3 +374,3 @@ NSPPhoto.getStatus = getStatus;

}
return [status, true];
return status;
}

@@ -374,3 +380,3 @@ NSPMotion.getStatus = getStatus;

const status = getStatus();
if (status[0] === Status.Undetermined || status[0] === Status.Denied) {
if (status === Status.Undetermined || status === Status.Denied) {
await new Promise((resolve, reject) => {

@@ -422,3 +428,3 @@ let activityManager = CMMotionActivityManager.new();

}
return [status, true];
return status;
}

@@ -454,3 +460,3 @@ NSPMediaLibrary.getStatus = getStatus;

}
return [status, true];
return status;
}

@@ -460,3 +466,3 @@ NSPNotification.getStatus = getStatus;

const status = await getStatus();
if (status[0] === Status.Undetermined || status[0] === Status.Denied) {
if (status === Status.Undetermined || status === Status.Denied) {
await new Promise((resolve, reject) => {

@@ -512,3 +518,3 @@ Utils.dispatchToMainThread(() => {

}
return [status, true];
return status;
}

@@ -542,3 +548,3 @@ NSPContacts.getStatus = getStatus;

}
return [status, true];
return status;
}

@@ -549,3 +555,3 @@ NSPBackgroundRefresh.getStatus = getStatus;

const contactStore = CNContactStore.new();
contactStore.requestAccessForEntityTypeCompletionHandler(0 /* CNEntityType.Contacts */, () => resolve(getStatus()[0]));
contactStore.requestAccessForEntityTypeCompletionHandler(0 /* CNEntityType.Contacts */, () => resolve(getStatus()));
});

@@ -581,3 +587,3 @@ }

}
return [status, true];
return status;
}

@@ -654,4 +660,3 @@ NSPEvent.getStatus = getStatus;

case NSType.Location: {
// NSString *locationPermissionType = [RCTConvert NSString:json];
status = NSPLocation.getStatusForType(json);
status = NSPLocation.getStatus(json);
break;

@@ -701,9 +706,9 @@ }

PermissionsIOS.getPermissionStatus = getPermissionStatus;
function requestPermission(type, json) {
function requestPermission(perm, options) {
if (Trace.isEnabled()) {
CLog(CLogTypes.info, 'requestPermission', type, json);
CLog(CLogTypes.info, 'requestPermission', perm, options);
}
switch (type) {
switch (perm) {
case NSType.Location:
return NSPLocation.request(json);
return NSPLocation.request(options);
case NSType.Camera:

@@ -725,3 +730,3 @@ return NSPAudioVideo.request('video');

let types;
const typeStrings = json;
const typeStrings = options;
const osVersion = parseFloat(Device.osVersion);

@@ -786,3 +791,2 @@ if (osVersion >= 10) {

const DEFAULTS = {
location: 'whenInUse',
notification: ['alert', 'badge', 'sound']

@@ -811,12 +815,6 @@ };

}
return [PermissionsIOS.Status.Authorized, true];
return Status.Authorized;
}
let type;
if (typeof options === 'string') {
type = options;
}
else if (options && options.type) {
type = options.type;
}
return PermissionsIOS.getPermissionStatus(permission, type || DEFAULTS[permission]);
return PermissionsIOS.getPermissionStatus(permission, options || DEFAULTS[permission]);
}

@@ -833,5 +831,4 @@ export async function request(permission, options) {

const res = await request(perm, permission[perm]);
grantedPermissions[perm] = res[0];
grantedPermissions[perm] = res;
}
//@ts-ignore
return grantedPermissions;

@@ -843,18 +840,8 @@ }

}
//@ts-ignore
return [PermissionsIOS.Status.Authorized, true];
return Status.Authorized;
}
//@ts-ignore
if (permission === 'backgroundRefresh') {
throw new Error('@nativescript-community/perms: You cannot request backgroundRefresh');
}
let type;
if (typeof options === 'string') {
type = options;
}
else if (options && options.type) {
type = options.type;
}
//@ts-ignore
return PermissionsIOS.requestPermission(permission, type || DEFAULTS[permission]);
return PermissionsIOS.requestPermission(permission, options || DEFAULTS[permission]);
}

@@ -866,3 +853,3 @@ export function checkMultiple(permissions) {

return Promise.all(Object.keys(permissions).map((permission) => check(permission, permissions[permission]).then((r) => [permission, r]))).then((result) => result.reduce((acc, value, index) => {
acc[value[0]] = value[1][0];
acc[value[0]] = value[1];
return acc;

@@ -869,0 +856,0 @@ }, {}));

{
"name": "@nativescript-community/perms",
"version": "2.3.6",
"version": "3.0.0",
"description": "An unified permissions API for NativeScript on iOS and Android.",

@@ -42,3 +42,3 @@ "main": "./index",

"readmeFilename": "README.md",
"gitHead": "c1ea28edd02254af7266f4bb06c379c22ec620c9"
"gitHead": "5700528964322dd8cacf51ced831272788261414"
}

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