@nativescript-community/perms 2.2.21 → 2.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,20 +1,69 @@
1
- [![npm](https://img.shields.io/npm/v/@nativescript-community/perms.svg)](https://www.npmjs.com/package/@nativescript-community/perms)
2
- [![npm](https://img.shields.io/npm/dt/@nativescript-community/perms.svg?label=npm%20downloads)](https://www.npmjs.com/package/@nativescript-community/perms)
3
- [![GitHub forks](https://img.shields.io/github/forks/nativescript-community/nativescript-perms.svg)](https://github.com/nativescript-community/nativescript-perms/network)
4
- [![GitHub stars](https://img.shields.io/github/stars/nativescript-community/nativescript-perms.svg)](https://github.com/nativescript-community/nativescript-perms/stargazers)
5
-
6
- [![NPM](https://nodei.co/npm/@nativescript-community/perms.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@nativescript-community/perms/)
7
-
1
+ <!-- ⚠️ This README has been generated from the file(s) "blueprint.md" ⚠️-->
2
+ <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
8
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
11
+ DO NOT EDIT THIS READEME DIRECTLY! Edit "bluesprint.md" instead.
12
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
13
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
17
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
18
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
19
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
20
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
21
+ <h1 align="center">@nativescript-community/perms</h1>
22
+ <p align="center">
23
+ <a href="https://npmcharts.com/compare/@nativescript-community/perms?minimal=true"><img alt="Downloads per month" src="https://img.shields.io/npm/dm/@nativescript-community/perms.svg" height="20"/></a>
24
+ <a href="https://www.npmjs.com/package/@nativescript-community/perms"><img alt="NPM Version" src="https://img.shields.io/npm/v/@nativescript-community/perms.svg" height="20"/></a>
25
+ </p>
26
+
27
+ <p align="center">
28
+ <b>An unified permissions API for NativeScript on iOS and Android.</b></br>
29
+ <sub><sub>
30
+ </p>
31
+
32
+ <br />
33
+
34
+
35
+ | <img src="https://raw.githubusercontent.com/nativescript-community/gps/master/images/demo-ios.gif" height="500" /> | <img src="https://raw.githubusercontent.com/nativescript-community/gps/master/images/demo-android.gif" height="500" /> |
36
+ | --- | ----------- |
37
+ | iOS Demo | Android Demo |
38
+
39
+
40
+ [](#table-of-contents)
41
+
42
+ ## Table of Contents
43
+
44
+ * [Installation](#installation)
45
+ * [API](#api)
46
+ * [Permissions statuses](#permissions-statuses)
47
+ * [Supported permissions types](#supported-permissions-types)
48
+ * [Methods](#methods)
49
+ * [iOS Notes](#ios-notes)
50
+ * [App Store submission disclaimer](#app-store-submission-disclaimer)
51
+ * [Android Notes](#android-notes)
52
+ * [Troubleshooting](#troubleshooting)
53
+ * [Q: iOS - App crashes as soon as I request permission](#q-ios---app-crashes-as-soon-as-i-request-permission)
54
+ * [Q: iOS - App crashes when I change permission from settings](#q-ios---app-crashes-when-i-change-permission-from-settings)
55
+
56
+
57
+ [](#installation)
58
+
8
59
  ## Installation
60
+ Run the following command from the root of your project:
9
61
 
10
- * `tns plugin add @nativescript-community/perms`
11
-
12
- Be sure to run a new build after adding plugins to avoid any issues.
13
-
14
- ---
15
-
16
- This is a port of [react-native-permissions](https://github.com/yonahforst/react-native-permissions)
62
+ `ns plugin add @nativescript-community/perms`
17
63
 
64
+
65
+ [](#api)
66
+
18
67
  ## API
19
68
 
20
69
  ### Permissions statuses
@@ -175,6 +224,9 @@ android {
175
224
  // ...
176
225
  ```
177
226
 
227
+
228
+ [](#troubleshooting)
229
+
178
230
  ## Troubleshooting
179
231
 
180
232
  #### Q: iOS - App crashes as soon as I request permission
@@ -1,5 +1,5 @@
1
- import { CheckOptions, ObjectPermissions, Permissions as PermissionsType, RequestOptions, Status } from './permissions';
2
- export * from './permissions.common';
1
+ import { CheckOptions, MultiResult, ObjectPermissions, ObjectPermissionsRest, Permissions as PermissionsType, RequestOptions, Status } from '.';
2
+ export * from './index.common';
3
3
  export declare function canOpenSettings(): Promise<boolean>;
4
4
  export declare function openSettings(): Promise<void>;
5
5
  export declare function getTypes(): PermissionsType[];
@@ -7,4 +7,4 @@ export declare function check(permission: PermissionsType | string, options?: Ch
7
7
  export declare function request(permission: PermissionsType | string | ObjectPermissions, options?: RequestOptions): Promise<[Status, boolean] | {
8
8
  [permission: string]: Status;
9
9
  }>;
10
- export declare function checkMultiple(permissions: ObjectPermissions): Promise<{}>;
10
+ export declare function checkMultiple<T extends Partial<ObjectPermissionsRest>>(permissions: T): Promise<MultiResult>;
@@ -1,8 +1,8 @@
1
1
  import { Trace, Utils } from '@nativescript/core';
2
2
  import { AndroidApplication, android as androidApp } from '@nativescript/core/application';
3
3
  import { getBoolean, setBoolean } from '@nativescript/core/application-settings';
4
- import { CLog, CLogTypes } from './permissions.common';
5
- export * from './permissions.common';
4
+ import { CLog, CLogTypes } from './index.common';
5
+ export * from './index.common';
6
6
  let ANDROID_SDK = -1;
7
7
  function getAndroidSDK() {
8
8
  if (ANDROID_SDK === -1) {
@@ -14,17 +14,31 @@ const MARSHMALLOW = 23;
14
14
  const ANDROIDQ = 29;
15
15
  const ANDROIDS = 31;
16
16
  const ANDROID13 = 33;
17
- const NativePermissionsTypes = ['location', 'camera', 'mediaLocation', 'microphone', 'contacts', 'event', 'storage', 'photo', 'callPhone', 'readSms', 'receiveSms', 'bluetoothScan', 'bluetoothConnect', 'bluetooth'];
17
+ const NativePermissionsTypes = [
18
+ 'location',
19
+ 'camera',
20
+ 'mediaLocation',
21
+ 'microphone',
22
+ 'contacts',
23
+ 'event',
24
+ 'storage',
25
+ 'photo',
26
+ 'callPhone',
27
+ 'readSms',
28
+ 'receiveSms',
29
+ 'bluetoothScan',
30
+ 'bluetoothConnect',
31
+ 'bluetooth'
32
+ ];
18
33
  function getNativePermissions(permission, options) {
19
- var _a, _b, _c, _d;
20
34
  if (Trace.isEnabled()) {
21
35
  CLog(CLogTypes.info, 'getNativePermissions', permission, options);
22
36
  }
23
37
  switch (permission) {
24
38
  case 'location': {
25
39
  const result = [];
26
- const coarse = (_a = options === null || options === void 0 ? void 0 : options.coarse) !== null && _a !== void 0 ? _a : true;
27
- const precise = (_b = options === null || options === void 0 ? void 0 : options.precise) !== null && _b !== void 0 ? _b : true;
40
+ const coarse = options?.coarse ?? true;
41
+ const precise = options?.precise ?? true;
28
42
  console.log('coarse', coarse, options);
29
43
  if (coarse !== false) {
30
44
  result.push(android.Manifest.permission.ACCESS_COARSE_LOCATION);
@@ -33,7 +47,7 @@ function getNativePermissions(permission, options) {
33
47
  result.push(android.Manifest.permission.ACCESS_FINE_LOCATION);
34
48
  }
35
49
  if (getAndroidSDK() >= ANDROIDQ) {
36
- const type = typeof options === 'string' ? options : options === null || options === void 0 ? void 0 : options.type;
50
+ const type = typeof options === 'string' ? options : options?.type;
37
51
  if (type === 'always') {
38
52
  result.push(android.Manifest.permission.ACCESS_BACKGROUND_LOCATION);
39
53
  }
@@ -60,14 +74,18 @@ function getNativePermissions(permission, options) {
60
74
  }
61
75
  case 'storage': {
62
76
  const result = [];
63
- const read = (_c = options === null || options === void 0 ? void 0 : options.read) !== null && _c !== void 0 ? _c : true;
64
- const write = (_d = options === null || options === void 0 ? void 0 : options.write) !== null && _d !== void 0 ? _d : true;
77
+ const read = options?.read ?? true;
78
+ const write = options?.write ?? true;
79
+ // const manage = options?.manage?? true;
65
80
  if (read !== false) {
66
81
  result.push(android.Manifest.permission.READ_EXTERNAL_STORAGE);
67
82
  }
68
83
  if (write !== false) {
69
84
  result.push(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
70
85
  }
86
+ // if (manage !== false) {
87
+ // result.push(android.Manifest.permission.MANAGE_EXTERNAL_STORAGE);
88
+ // }
71
89
  return result;
72
90
  }
73
91
  case 'photo': {
@@ -102,6 +120,7 @@ function getNativePermissions(permission, options) {
102
120
  }
103
121
  case 'notification': {
104
122
  if (getAndroidSDK() >= ANDROID13) {
123
+ // @ts-ignore
105
124
  return [android.Manifest.permission.POST_NOTIFICATIONS];
106
125
  }
107
126
  break;
@@ -122,7 +141,42 @@ const GRANT_RESULTS = {
122
141
  };
123
142
  var PermissionsAndroid;
124
143
  (function (PermissionsAndroid) {
144
+ /**
145
+ * A list of specified "dangerous" permissions that require prompting the user
146
+ */
147
+ // export const PERMISSIONS = {
148
+ // READ_CALENDAR: 'android.permission.READ_CALENDAR',
149
+ // WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',
150
+ // CAMERA: 'android.permission.CAMERA',
151
+ // READ_CONTACTS: 'android.permission.READ_CONTACTS',
152
+ // WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',
153
+ // GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS',
154
+ // ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',
155
+ // ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',
156
+ // RECORD_AUDIO: 'android.permission.RECORD_AUDIO',
157
+ // READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',
158
+ // CALL_PHONE: 'android.permission.CALL_PHONE',
159
+ // READ_CALL_LOG: 'android.permission.READ_CALL_LOG',
160
+ // WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',
161
+ // ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',
162
+ // USE_SIP: 'android.permission.USE_SIP',
163
+ // PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',
164
+ // BODY_SENSORS: 'android.permission.BODY_SENSORS',
165
+ // SEND_SMS: 'android.permission.SEND_SMS',
166
+ // RECEIVE_SMS: 'android.permission.RECEIVE_SMS',
167
+ // READ_SMS: 'android.permission.READ_SMS',
168
+ // RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',
169
+ // RECEIVE_MMS: 'android.permission.RECEIVE_MMS',
170
+ // READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',
171
+ // WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE'
172
+ // };
125
173
  PermissionsAndroid.RESULTS = GRANT_RESULTS;
174
+ /**
175
+ * Returns a promise resolving to a boolean value as to whether the specified
176
+ * permissions has been granted
177
+ *
178
+ * See https://facebook.github.io/react-native/docs/permissionsandroid.html#check
179
+ */
126
180
  async function check(permission) {
127
181
  const context = Utils.android.getApplicationContext();
128
182
  let result = true;
@@ -131,23 +185,45 @@ var PermissionsAndroid;
131
185
  permission = [permission];
132
186
  }
133
187
  if (getAndroidSDK() < MARSHMALLOW) {
134
- permission.forEach(p => result = result && context.checkPermission(p, android.os.Process.myPid(), android.os.Process.myUid()) === granted);
188
+ permission.forEach((p) => (result = result && context.checkPermission(p, android.os.Process.myPid(), android.os.Process.myUid()) === granted));
135
189
  }
136
190
  else {
137
- permission.forEach(p => result = result && context.checkSelfPermission(p) === granted);
191
+ permission.forEach((p) => (result = result && context.checkSelfPermission(p) === granted));
138
192
  }
139
193
  return result;
140
194
  }
141
195
  PermissionsAndroid.check = check;
196
+ /**
197
+ * Prompts the user to enable a permission and returns a promise resolving to a
198
+ * string value indicating whether the user allowed or denied the request
199
+ *
200
+ * See https://facebook.github.io/react-native/docs/permissionsandroid.html#request
201
+ */
142
202
  async function request(permission) {
203
+ // if (rationale) {
204
+ // const shouldShowRationale = await shouldShowRequestPermissionRationale(permission);
205
+ // if (shouldShowRationale) {
206
+ // return new Promise((resolve, reject) => {
207
+ // NativeModules.DialogManagerAndroid.showAlert(rationale, () => reject(new Error('Error showing rationale')), () => resolve(requestPermission(permission)));
208
+ // });
209
+ // }
210
+ // }
143
211
  return (await requestMultiplePermissions([permission]))[permission];
144
212
  }
145
213
  PermissionsAndroid.request = request;
214
+ /**
215
+ * Prompts the user to enable multiple permissions in the same dialog and
216
+ * returns an object with the permissions as keys and strings as values
217
+ * indicating whether the user allowed or denied the request
218
+ *
219
+ * See https://facebook.github.io/react-native/docs/permissionsandroid.html#requestmultiple
220
+ */
146
221
  function requestMultiple(permissions) {
147
222
  return requestMultiplePermissions(permissions);
148
223
  }
149
224
  PermissionsAndroid.requestMultiple = requestMultiple;
150
225
  })(PermissionsAndroid || (PermissionsAndroid = {}));
226
+ // PermissionsAndroid = new PermissionsAndroid();
151
227
  let mRequestCode = 0;
152
228
  async function requestMultiplePermissions(permissions) {
153
229
  const grantedPermissions = {};
@@ -161,9 +237,7 @@ async function requestMultiplePermissions(permissions) {
161
237
  const perm = permissions[i];
162
238
  if (getAndroidSDK() < MARSHMALLOW) {
163
239
  grantedPermissions[perm] =
164
- context.checkPermission(perm, android.os.Process.myPid(), android.os.Process.myUid()) === android.content.pm.PackageManager.PERMISSION_GRANTED
165
- ? 'authorized'
166
- : GRANT_RESULTS.DENIED;
240
+ context.checkPermission(perm, android.os.Process.myPid(), android.os.Process.myUid()) === android.content.pm.PackageManager.PERMISSION_GRANTED ? 'authorized' : GRANT_RESULTS.DENIED;
167
241
  checkedPermissionsCount++;
168
242
  }
169
243
  else if (context.checkSelfPermission(perm) === android.content.pm.PackageManager.PERMISSION_GRANTED) {
@@ -175,7 +249,7 @@ async function requestMultiplePermissions(permissions) {
175
249
  }
176
250
  }
177
251
  if (permissions.length === checkedPermissionsCount) {
178
- return (grantedPermissions);
252
+ return grantedPermissions;
179
253
  }
180
254
  const activity = androidApp.foregroundActivity || androidApp.startActivity;
181
255
  return new Promise((resolve, reject) => {
@@ -266,16 +340,16 @@ export async function check(permission, options) {
266
340
  const type = typeof options === 'string' ? options : options && options.type;
267
341
  if (type === 'always') {
268
342
  const backAuthorized = await PermissionsAndroid.check(android.Manifest.permission.ACCESS_BACKGROUND_LOCATION);
269
- return ([GRANT_RESULTS.GRANTED, backAuthorized]);
343
+ return [GRANT_RESULTS.GRANTED, backAuthorized];
270
344
  }
271
345
  }
272
- return ([GRANT_RESULTS.GRANTED, true]);
346
+ return [GRANT_RESULTS.GRANTED, true];
273
347
  }
274
- return getDidAskOnce(permission).then(didAsk => {
348
+ return getDidAskOnce(permission).then((didAsk) => {
275
349
  if (didAsk) {
276
- return shouldShowRequestPermissionRationale(perms).then(shouldShow => [shouldShow ? GRANT_RESULTS.DENIED : 'restricted', true]);
350
+ return shouldShowRequestPermissionRationale(perms).then((shouldShow) => [shouldShow ? GRANT_RESULTS.DENIED : 'restricted', true]);
277
351
  }
278
- return ([GRANT_RESULTS.UNDETERMINED, true]);
352
+ return [GRANT_RESULTS.UNDETERMINED, true];
279
353
  });
280
354
  }
281
355
  export function request(permission, options) {
@@ -285,22 +359,36 @@ export function request(permission, options) {
285
359
  let types = [];
286
360
  let permissions = [];
287
361
  if (typeof permission === 'object') {
362
+ // const keys = as IOSPermissionTypes[];
288
363
  permissions = Object.keys(permission);
289
- permissions.forEach(s => {
364
+ permissions.forEach((s) => {
365
+ // if (s.startsWith('android.permission.')) {
366
+ // types.push(s);
367
+ // } else {
290
368
  types.push(...getNativePermissions(s, permission[s]));
369
+ // }
291
370
  });
292
371
  }
293
372
  else {
294
373
  permissions = [permission];
374
+ // if (permission.startsWith('android.permission.')) {
375
+ // types.push(permission);
376
+ // } else {
295
377
  types = getNativePermissions(permission, options);
378
+ // }
296
379
  }
297
380
  if (types.length === 0) {
381
+ // if (Trace.isEnabled()) {
382
+ // CLog(CLogTypes.warning, permission, 'is not a valid permission type on Android');
383
+ // }
298
384
  return Promise.resolve([GRANT_RESULTS.GRANTED, true]);
299
385
  }
300
386
  if (types.length > 1) {
301
387
  return requestMultiplePermissions(types);
302
388
  }
303
- return PermissionsAndroid.request(types[0]).then(result => {
389
+ return PermissionsAndroid.request(types[0]).then((result) => {
390
+ // PermissionsAndroid.request() to native module resolves to boolean
391
+ // rather than string if running on OS version prior to Android M
304
392
  if (typeof result === 'boolean') {
305
393
  return [result ? GRANT_RESULTS.GRANTED : GRANT_RESULTS.DENIED, true];
306
394
  }
@@ -314,9 +402,9 @@ export function checkMultiple(permissions) {
314
402
  if (Trace.isEnabled()) {
315
403
  CLog(CLogTypes.info, 'checkMultiple', permissions);
316
404
  }
317
- return Promise.all(Object.keys(permissions).map(permission => check(permission, permissions[permission]).then(r => [permission, r]))).then(result => result.reduce((acc, value, index) => {
318
- acc[value[0]] = value[1];
405
+ return Promise.all(Object.keys(permissions).map((permission) => check(permission, permissions[permission]).then((r) => [permission, r]))).then((result) => result.reduce((acc, value, index) => {
406
+ acc[value[0]] = value[1][0];
319
407
  return acc;
320
408
  }, {}));
321
409
  }
322
- //# sourceMappingURL=permissions.android.js.map
410
+ //# sourceMappingURL=index.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"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"}
File without changes
@@ -8,6 +8,6 @@ export var CLogTypes;
8
8
  CLogTypes[CLogTypes["error"] = Trace.messageType.error] = "error";
9
9
  })(CLogTypes || (CLogTypes = {}));
10
10
  export const CLog = (type, ...args) => {
11
- Trace.write(args.map(a => (a && typeof a === 'object' ? JSON.stringify(a) : a)).join(' '), PermsTraceCategory, type);
11
+ Trace.write(args.map((a) => (a && typeof a === 'object' ? JSON.stringify(a) : a)).join(' '), PermsTraceCategory, type);
12
12
  };
13
- //# sourceMappingURL=permissions.common.js.map
13
+ //# sourceMappingURL=index.common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.common.js","sourceRoot":"../src/","sources":["index.common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAEtD,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,6BAAM,KAAK,CAAC,WAAW,CAAC,GAAG,SAAA,CAAA;IAC3B,8BAAO,KAAK,CAAC,WAAW,CAAC,IAAI,UAAA,CAAA;IAC7B,iCAAU,KAAK,CAAC,WAAW,CAAC,IAAI,aAAA,CAAA;IAChC,+BAAQ,KAAK,CAAC,WAAW,CAAC,KAAK,WAAA,CAAA;AACnC,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,GAAG,IAAI,EAAE,EAAE;IAC7C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;AAC3H,CAAC,CAAC"}
@@ -7,7 +7,7 @@ export type AndroidPermissions<T = Exclude<keyof typeof android.Manifest.permiss
7
7
  [K in keyof T]: T[K] extends string ? T : never;
8
8
  };
9
9
 
10
- export type AndroidPermissionsString = `android.permission.${AndroidPermissions}`/* | `android.Manifest.permission.${AndroidPermissions}` */;
10
+ export type AndroidPermissionsString = `android.permission.${AndroidPermissions}` /* | `android.Manifest.permission.${AndroidPermissions}` */;
11
11
 
12
12
  export type Permissions =
13
13
  | 'location'
@@ -46,15 +46,15 @@ export interface StorageOptions {
46
46
  export type PermissionOptions = Record<string, any>;
47
47
 
48
48
  export interface ObjectPermissions {
49
- 'location': LocationOptions;
50
- 'storage': StorageOptions;
49
+ location: LocationOptions;
50
+ storage: StorageOptions;
51
51
  }
52
52
 
53
53
  export type ObjectPermissionsRest = {
54
54
  [key in Permissions]: PermissionOptions;
55
55
  };
56
56
 
57
- export type CheckOptions <T extends Permissions = Permissions>= T extends keyof ObjectPermissions ? ObjectPermissions[T] : any;
57
+ export type CheckOptions<T extends Permissions = Permissions> = T extends keyof ObjectPermissions ? ObjectPermissions[T] : any;
58
58
  export function check<T extends Permissions>(permission: T, options?: CheckOptions<T>): Promise<Result>;
59
59
  export function check<T extends string>(permission: T): Promise<Result>;
60
60
 
@@ -65,11 +65,13 @@ export function openSettings(): Promise<boolean>;
65
65
  export function getTypes(): Permissions[];
66
66
 
67
67
  export type Result = [Status, boolean];
68
- export interface MultiResult { [k: Permissions | string]: Status }
68
+ export interface MultiResult {
69
+ [k: Permissions | string]: Status;
70
+ }
69
71
 
70
- export type RequestOptions <T extends Permissions = Permissions>= T extends keyof ObjectPermissions ? ObjectPermissions[T] : any;
72
+ export type RequestOptions<T extends Permissions = Permissions> = T extends keyof ObjectPermissions ? ObjectPermissions[T] : any;
71
73
  export function request<T extends Permissions>(permission: T, options?: RequestOptions<T>): Promise<Result>;
72
74
  export function request<T extends Partial<ObjectPermissions | ObjectPermissionsRest>>(permission: T): Promise<MultiResult>;
73
75
  export function request<T extends string>(permission: T): Promise<Result>;
74
76
 
75
- export function checkMultiple<T extends Partial<ObjectPermissions | ObjectPermissionsRest>>(permissions: T): Promise<MultiResult>;
77
+ export function checkMultiple<T extends Partial<ObjectPermissionsRest>>(permissions: T): Promise<MultiResult>;
@@ -1,5 +1,5 @@
1
- import { CheckOptions, Permissions as PermissionsType, RequestOptions } from './permissions';
2
- export * from './permissions.common';
1
+ import { CheckOptions, PermissionOptions, RequestOptions } from '.';
2
+ export * from './index.common';
3
3
  export declare namespace PermissionsIOS {
4
4
  enum Status {
5
5
  Undetermined = "undetermined",
@@ -29,6 +29,9 @@ export declare namespace PermissionsIOS {
29
29
  function requestPermission(type: any, json: any): Promise<[Status, boolean]>;
30
30
  }
31
31
  declare type IOSPermissionTypes = `${PermissionsIOS.NSType}`;
32
+ declare type ObjectIOSPermissionsRest = {
33
+ [key in IOSPermissionTypes]: PermissionOptions;
34
+ };
32
35
  export declare function canOpenSettings(): Promise<boolean>;
33
36
  export declare function openSettings(): Promise<unknown>;
34
37
  export declare function getTypes(): ("location" | "camera" | "microphone" | "photo" | "contacts" | "event" | "reminder" | "bluetooth" | "notification" | "backgroundRefresh" | "speechRecognition" | "mediaLibrary" | "motion")[];
@@ -39,4 +42,4 @@ interface MultipleResult {
39
42
  declare type Result<T> = T extends any[] ? MultipleResult : SingleResult;
40
43
  export declare function check(permission: IOSPermissionTypes, options?: CheckOptions): Promise<SingleResult>;
41
44
  export declare function request<T extends IOSPermissionTypes | Record<IOSPermissionTypes, any>>(permission: T, options?: RequestOptions): Promise<Result<T>>;
42
- export declare function checkMultiple(permissions: PermissionsType[]): Promise<any>;
45
+ export declare function checkMultiple<T extends Partial<ObjectIOSPermissionsRest>>(permissions: T): Promise<MultipleResult>;