react-native-permission-handler 0.3.0 → 0.3.1
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 +63 -15
- package/dist/chunk-FJ23EV7L.mjs +127 -0
- package/dist/chunk-FJ23EV7L.mjs.map +1 -0
- package/dist/engines/expo.d.mts +23 -10
- package/dist/engines/expo.d.ts +23 -10
- package/dist/engines/expo.js +17 -8
- package/dist/engines/expo.js.map +1 -1
- package/dist/engines/expo.mjs +17 -8
- package/dist/engines/expo.mjs.map +1 -1
- package/dist/engines/rnp.d.mts +45 -2
- package/dist/engines/rnp.d.ts +45 -2
- package/dist/engines/rnp.js +47 -1
- package/dist/engines/rnp.js.map +1 -1
- package/dist/engines/rnp.mjs +1 -1
- package/dist/index.js +47 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/src/engines/expo.test.ts +76 -0
- package/src/engines/expo.ts +44 -15
- package/src/engines/rnp.test.ts +41 -11
- package/src/engines/rnp.ts +50 -2
- package/dist/chunk-EU3KPRTI.mjs +0 -81
- package/dist/chunk-EU3KPRTI.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -61,14 +61,25 @@ npm install expo-camera expo-notifications # whichever modules you need
|
|
|
61
61
|
import { setDefaultEngine } from "react-native-permission-handler";
|
|
62
62
|
import { createExpoEngine } from "react-native-permission-handler/expo";
|
|
63
63
|
import * as Camera from "expo-camera";
|
|
64
|
+
import * as Location from "expo-location";
|
|
64
65
|
import * as Notifications from "expo-notifications";
|
|
65
66
|
|
|
66
67
|
// Set once at app startup
|
|
67
68
|
setDefaultEngine(
|
|
68
69
|
createExpoEngine({
|
|
69
70
|
permissions: {
|
|
70
|
-
|
|
71
|
+
// Modules with standard getPermissionsAsync/requestPermissionsAsync work directly
|
|
71
72
|
notifications: Notifications,
|
|
73
|
+
|
|
74
|
+
// Modules with non-standard names use { get, request }
|
|
75
|
+
camera: {
|
|
76
|
+
get: () => Camera.getCameraPermissionsAsync(),
|
|
77
|
+
request: () => Camera.requestCameraPermissionsAsync(),
|
|
78
|
+
},
|
|
79
|
+
locationForeground: {
|
|
80
|
+
get: () => Location.getForegroundPermissionsAsync(),
|
|
81
|
+
request: () => Location.requestForegroundPermissionsAsync(),
|
|
82
|
+
},
|
|
72
83
|
},
|
|
73
84
|
})
|
|
74
85
|
);
|
|
@@ -470,48 +481,85 @@ You don't need to call this explicitly if `react-native-permissions` is installe
|
|
|
470
481
|
|
|
471
482
|
---
|
|
472
483
|
|
|
473
|
-
### `Permissions`
|
|
484
|
+
### `Permissions`
|
|
474
485
|
|
|
475
|
-
The RNP entry point
|
|
486
|
+
The RNP entry point exports permission constants. Cross-platform permissions resolve to the correct platform string at runtime via `Platform.select`:
|
|
476
487
|
|
|
477
488
|
```typescript
|
|
478
489
|
import { Permissions } from "react-native-permission-handler/rnp";
|
|
479
490
|
|
|
480
|
-
|
|
481
|
-
Permissions.
|
|
482
|
-
Permissions.
|
|
483
|
-
Permissions.
|
|
491
|
+
// Cross-platform (resolve per platform)
|
|
492
|
+
Permissions.CAMERA // ios: "ios.permission.CAMERA", android: "android.permission.CAMERA"
|
|
493
|
+
Permissions.MICROPHONE // ios: "ios.permission.MICROPHONE", android: "android.permission.RECORD_AUDIO"
|
|
494
|
+
Permissions.CONTACTS
|
|
495
|
+
Permissions.CALENDARS
|
|
496
|
+
Permissions.CALENDARS_WRITE_ONLY
|
|
484
497
|
Permissions.LOCATION_WHEN_IN_USE
|
|
485
498
|
Permissions.LOCATION_ALWAYS
|
|
486
499
|
Permissions.PHOTO_LIBRARY
|
|
487
500
|
Permissions.PHOTO_LIBRARY_ADD_ONLY
|
|
501
|
+
Permissions.MEDIA_LIBRARY
|
|
488
502
|
Permissions.BLUETOOTH
|
|
489
|
-
Permissions.
|
|
503
|
+
Permissions.SPEECH_RECOGNITION
|
|
504
|
+
Permissions.MOTION
|
|
505
|
+
Permissions.NOTIFICATIONS // "notifications" (routed to notification-specific APIs)
|
|
506
|
+
|
|
507
|
+
// iOS-only
|
|
508
|
+
Permissions.IOS.APP_TRACKING_TRANSPARENCY
|
|
509
|
+
Permissions.IOS.FACE_ID
|
|
510
|
+
Permissions.IOS.REMINDERS
|
|
511
|
+
Permissions.IOS.SIRI
|
|
512
|
+
Permissions.IOS.STOREKIT
|
|
513
|
+
|
|
514
|
+
// Android-only
|
|
515
|
+
Permissions.ANDROID.BODY_SENSORS
|
|
516
|
+
Permissions.ANDROID.CALL_PHONE
|
|
517
|
+
Permissions.ANDROID.READ_SMS
|
|
518
|
+
Permissions.ANDROID.BLUETOOTH_SCAN
|
|
519
|
+
Permissions.ANDROID.BLUETOOTH_ADVERTISE
|
|
520
|
+
// ... and 26 more (full list in source)
|
|
490
521
|
```
|
|
491
522
|
|
|
492
|
-
For platform-specific permissions not in this map, pass the raw string directly (e.g., `"ios.permission.FACE_ID"`).
|
|
493
|
-
|
|
494
523
|
---
|
|
495
524
|
|
|
496
525
|
### `createExpoEngine(config)`
|
|
497
526
|
|
|
498
|
-
Create an engine adapter for Expo permission modules.
|
|
527
|
+
Create an engine adapter for Expo permission modules. Each permission entry can be either:
|
|
528
|
+
- A module with standard `getPermissionsAsync`/`requestPermissionsAsync` methods
|
|
529
|
+
- An explicit `{ get, request }` pair for modules with non-standard method names
|
|
499
530
|
|
|
500
531
|
```typescript
|
|
501
532
|
import { createExpoEngine } from "react-native-permission-handler/expo";
|
|
502
533
|
import * as Camera from "expo-camera";
|
|
503
534
|
import * as Location from "expo-location";
|
|
504
535
|
import * as Notifications from "expo-notifications";
|
|
536
|
+
import * as Contacts from "expo-contacts";
|
|
505
537
|
|
|
506
538
|
const engine = createExpoEngine({
|
|
507
539
|
permissions: {
|
|
508
|
-
|
|
509
|
-
location: Location,
|
|
540
|
+
// Standard modules — pass directly
|
|
510
541
|
notifications: Notifications,
|
|
542
|
+
contacts: Contacts,
|
|
543
|
+
|
|
544
|
+
// Non-standard method names — use { get, request }
|
|
545
|
+
camera: {
|
|
546
|
+
get: () => Camera.getCameraPermissionsAsync(),
|
|
547
|
+
request: () => Camera.requestCameraPermissionsAsync(),
|
|
548
|
+
},
|
|
549
|
+
microphone: {
|
|
550
|
+
get: () => Camera.getMicrophonePermissionsAsync(),
|
|
551
|
+
request: () => Camera.requestMicrophonePermissionsAsync(),
|
|
552
|
+
},
|
|
553
|
+
locationForeground: {
|
|
554
|
+
get: () => Location.getForegroundPermissionsAsync(),
|
|
555
|
+
request: () => Location.requestForegroundPermissionsAsync(),
|
|
556
|
+
},
|
|
557
|
+
locationBackground: {
|
|
558
|
+
get: () => Location.getBackgroundPermissionsAsync(),
|
|
559
|
+
request: () => Location.requestBackgroundPermissionsAsync(),
|
|
560
|
+
},
|
|
511
561
|
},
|
|
512
562
|
});
|
|
513
|
-
|
|
514
|
-
setDefaultEngine(engine);
|
|
515
563
|
```
|
|
516
564
|
|
|
517
565
|
The adapter maps Expo's `{ status, canAskAgain }` response to the library's `PermissionStatus`:
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__esm,
|
|
3
|
+
__export
|
|
4
|
+
} from "./chunk-NFEGQTCC.mjs";
|
|
5
|
+
|
|
6
|
+
// src/engines/rnp.ts
|
|
7
|
+
var rnp_exports = {};
|
|
8
|
+
__export(rnp_exports, {
|
|
9
|
+
Permissions: () => Permissions,
|
|
10
|
+
createRNPEngine: () => createRNPEngine
|
|
11
|
+
});
|
|
12
|
+
import { Platform } from "react-native";
|
|
13
|
+
import {
|
|
14
|
+
check,
|
|
15
|
+
checkNotifications,
|
|
16
|
+
openSettings,
|
|
17
|
+
request,
|
|
18
|
+
requestNotifications
|
|
19
|
+
} from "react-native-permissions";
|
|
20
|
+
function p(ios, android) {
|
|
21
|
+
return Platform.select({ ios, android, default: ios }) ?? ios;
|
|
22
|
+
}
|
|
23
|
+
function createRNPEngine() {
|
|
24
|
+
return {
|
|
25
|
+
async check(permission) {
|
|
26
|
+
if (permission === "notifications") {
|
|
27
|
+
const result = await checkNotifications();
|
|
28
|
+
return result.status;
|
|
29
|
+
}
|
|
30
|
+
return await check(permission);
|
|
31
|
+
},
|
|
32
|
+
async request(permission) {
|
|
33
|
+
if (permission === "notifications") {
|
|
34
|
+
const result = await requestNotifications(["alert", "badge", "sound"]);
|
|
35
|
+
return result.status;
|
|
36
|
+
}
|
|
37
|
+
return await request(permission);
|
|
38
|
+
},
|
|
39
|
+
async openSettings() {
|
|
40
|
+
await openSettings();
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
var Permissions;
|
|
45
|
+
var init_rnp = __esm({
|
|
46
|
+
"src/engines/rnp.ts"() {
|
|
47
|
+
Permissions = {
|
|
48
|
+
// Cross-platform
|
|
49
|
+
CAMERA: p("ios.permission.CAMERA", "android.permission.CAMERA"),
|
|
50
|
+
MICROPHONE: p("ios.permission.MICROPHONE", "android.permission.RECORD_AUDIO"),
|
|
51
|
+
CONTACTS: p("ios.permission.CONTACTS", "android.permission.READ_CONTACTS"),
|
|
52
|
+
CALENDARS: p("ios.permission.CALENDARS", "android.permission.READ_CALENDAR"),
|
|
53
|
+
CALENDARS_WRITE_ONLY: p(
|
|
54
|
+
"ios.permission.CALENDARS_WRITE_ONLY",
|
|
55
|
+
"android.permission.WRITE_CALENDAR"
|
|
56
|
+
),
|
|
57
|
+
LOCATION_WHEN_IN_USE: p(
|
|
58
|
+
"ios.permission.LOCATION_WHEN_IN_USE",
|
|
59
|
+
"android.permission.ACCESS_FINE_LOCATION"
|
|
60
|
+
),
|
|
61
|
+
LOCATION_ALWAYS: p(
|
|
62
|
+
"ios.permission.LOCATION_ALWAYS",
|
|
63
|
+
"android.permission.ACCESS_BACKGROUND_LOCATION"
|
|
64
|
+
),
|
|
65
|
+
PHOTO_LIBRARY: p("ios.permission.PHOTO_LIBRARY", "android.permission.READ_MEDIA_IMAGES"),
|
|
66
|
+
PHOTO_LIBRARY_ADD_ONLY: p(
|
|
67
|
+
"ios.permission.PHOTO_LIBRARY_ADD_ONLY",
|
|
68
|
+
"android.permission.WRITE_EXTERNAL_STORAGE"
|
|
69
|
+
),
|
|
70
|
+
MEDIA_LIBRARY: p("ios.permission.MEDIA_LIBRARY", "android.permission.READ_MEDIA_AUDIO"),
|
|
71
|
+
BLUETOOTH: p("ios.permission.BLUETOOTH", "android.permission.BLUETOOTH_CONNECT"),
|
|
72
|
+
SPEECH_RECOGNITION: p("ios.permission.SPEECH_RECOGNITION", "android.permission.RECORD_AUDIO"),
|
|
73
|
+
MOTION: p("ios.permission.MOTION", "android.permission.ACTIVITY_RECOGNITION"),
|
|
74
|
+
NOTIFICATIONS: "notifications",
|
|
75
|
+
// iOS-only
|
|
76
|
+
IOS: {
|
|
77
|
+
APP_TRACKING_TRANSPARENCY: "ios.permission.APP_TRACKING_TRANSPARENCY",
|
|
78
|
+
FACE_ID: "ios.permission.FACE_ID",
|
|
79
|
+
REMINDERS: "ios.permission.REMINDERS",
|
|
80
|
+
SIRI: "ios.permission.SIRI",
|
|
81
|
+
STOREKIT: "ios.permission.STOREKIT"
|
|
82
|
+
},
|
|
83
|
+
// Android-only
|
|
84
|
+
ANDROID: {
|
|
85
|
+
ACCEPT_HANDOVER: "android.permission.ACCEPT_HANDOVER",
|
|
86
|
+
ACCESS_COARSE_LOCATION: "android.permission.ACCESS_COARSE_LOCATION",
|
|
87
|
+
ACCESS_MEDIA_LOCATION: "android.permission.ACCESS_MEDIA_LOCATION",
|
|
88
|
+
ADD_VOICEMAIL: "com.android.voicemail.permission.ADD_VOICEMAIL",
|
|
89
|
+
ANSWER_PHONE_CALLS: "android.permission.ANSWER_PHONE_CALLS",
|
|
90
|
+
BLUETOOTH_ADVERTISE: "android.permission.BLUETOOTH_ADVERTISE",
|
|
91
|
+
BLUETOOTH_SCAN: "android.permission.BLUETOOTH_SCAN",
|
|
92
|
+
BODY_SENSORS: "android.permission.BODY_SENSORS",
|
|
93
|
+
BODY_SENSORS_BACKGROUND: "android.permission.BODY_SENSORS_BACKGROUND",
|
|
94
|
+
CALL_PHONE: "android.permission.CALL_PHONE",
|
|
95
|
+
GET_ACCOUNTS: "android.permission.GET_ACCOUNTS",
|
|
96
|
+
NEARBY_WIFI_DEVICES: "android.permission.NEARBY_WIFI_DEVICES",
|
|
97
|
+
PROCESS_OUTGOING_CALLS: "android.permission.PROCESS_OUTGOING_CALLS",
|
|
98
|
+
READ_CALL_LOG: "android.permission.READ_CALL_LOG",
|
|
99
|
+
READ_EXTERNAL_STORAGE: "android.permission.READ_EXTERNAL_STORAGE",
|
|
100
|
+
READ_MEDIA_AUDIO: "android.permission.READ_MEDIA_AUDIO",
|
|
101
|
+
READ_MEDIA_IMAGES: "android.permission.READ_MEDIA_IMAGES",
|
|
102
|
+
READ_MEDIA_VIDEO: "android.permission.READ_MEDIA_VIDEO",
|
|
103
|
+
READ_MEDIA_VISUAL_USER_SELECTED: "android.permission.READ_MEDIA_VISUAL_USER_SELECTED",
|
|
104
|
+
READ_PHONE_NUMBERS: "android.permission.READ_PHONE_NUMBERS",
|
|
105
|
+
READ_PHONE_STATE: "android.permission.READ_PHONE_STATE",
|
|
106
|
+
READ_SMS: "android.permission.READ_SMS",
|
|
107
|
+
RECEIVE_MMS: "android.permission.RECEIVE_MMS",
|
|
108
|
+
RECEIVE_SMS: "android.permission.RECEIVE_SMS",
|
|
109
|
+
RECEIVE_WAP_PUSH: "android.permission.RECEIVE_WAP_PUSH",
|
|
110
|
+
SEND_SMS: "android.permission.SEND_SMS",
|
|
111
|
+
USE_SIP: "android.permission.USE_SIP",
|
|
112
|
+
UWB_RANGING: "android.permission.UWB_RANGING",
|
|
113
|
+
WRITE_CALL_LOG: "android.permission.WRITE_CALL_LOG",
|
|
114
|
+
WRITE_CONTACTS: "android.permission.WRITE_CONTACTS",
|
|
115
|
+
WRITE_EXTERNAL_STORAGE: "android.permission.WRITE_EXTERNAL_STORAGE"
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
export {
|
|
122
|
+
Permissions,
|
|
123
|
+
createRNPEngine,
|
|
124
|
+
rnp_exports,
|
|
125
|
+
init_rnp
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=chunk-FJ23EV7L.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/engines/rnp.ts"],"sourcesContent":["import { Platform } from \"react-native\";\nimport {\n type Permission,\n check,\n checkNotifications,\n openSettings,\n request,\n requestNotifications,\n} from \"react-native-permissions\";\nimport type { PermissionEngine, PermissionStatus } from \"../types\";\n\nfunction p(ios: string, android: string): string {\n return Platform.select({ ios, android, default: ios }) ?? ios;\n}\n\n/**\n * Cross-platform permission constants that resolve to the correct\n * platform-specific string at runtime via Platform.select.\n */\nexport const Permissions = {\n // Cross-platform\n CAMERA: p(\"ios.permission.CAMERA\", \"android.permission.CAMERA\"),\n MICROPHONE: p(\"ios.permission.MICROPHONE\", \"android.permission.RECORD_AUDIO\"),\n CONTACTS: p(\"ios.permission.CONTACTS\", \"android.permission.READ_CONTACTS\"),\n CALENDARS: p(\"ios.permission.CALENDARS\", \"android.permission.READ_CALENDAR\"),\n CALENDARS_WRITE_ONLY: p(\n \"ios.permission.CALENDARS_WRITE_ONLY\",\n \"android.permission.WRITE_CALENDAR\",\n ),\n LOCATION_WHEN_IN_USE: p(\n \"ios.permission.LOCATION_WHEN_IN_USE\",\n \"android.permission.ACCESS_FINE_LOCATION\",\n ),\n LOCATION_ALWAYS: p(\n \"ios.permission.LOCATION_ALWAYS\",\n \"android.permission.ACCESS_BACKGROUND_LOCATION\",\n ),\n PHOTO_LIBRARY: p(\"ios.permission.PHOTO_LIBRARY\", \"android.permission.READ_MEDIA_IMAGES\"),\n PHOTO_LIBRARY_ADD_ONLY: p(\n \"ios.permission.PHOTO_LIBRARY_ADD_ONLY\",\n \"android.permission.WRITE_EXTERNAL_STORAGE\",\n ),\n MEDIA_LIBRARY: p(\"ios.permission.MEDIA_LIBRARY\", \"android.permission.READ_MEDIA_AUDIO\"),\n BLUETOOTH: p(\"ios.permission.BLUETOOTH\", \"android.permission.BLUETOOTH_CONNECT\"),\n SPEECH_RECOGNITION: p(\"ios.permission.SPEECH_RECOGNITION\", \"android.permission.RECORD_AUDIO\"),\n MOTION: p(\"ios.permission.MOTION\", \"android.permission.ACTIVITY_RECOGNITION\"),\n NOTIFICATIONS: \"notifications\",\n\n // iOS-only\n IOS: {\n APP_TRACKING_TRANSPARENCY: \"ios.permission.APP_TRACKING_TRANSPARENCY\",\n FACE_ID: \"ios.permission.FACE_ID\",\n REMINDERS: \"ios.permission.REMINDERS\",\n SIRI: \"ios.permission.SIRI\",\n STOREKIT: \"ios.permission.STOREKIT\",\n },\n\n // Android-only\n ANDROID: {\n ACCEPT_HANDOVER: \"android.permission.ACCEPT_HANDOVER\",\n ACCESS_COARSE_LOCATION: \"android.permission.ACCESS_COARSE_LOCATION\",\n ACCESS_MEDIA_LOCATION: \"android.permission.ACCESS_MEDIA_LOCATION\",\n ADD_VOICEMAIL: \"com.android.voicemail.permission.ADD_VOICEMAIL\",\n ANSWER_PHONE_CALLS: \"android.permission.ANSWER_PHONE_CALLS\",\n BLUETOOTH_ADVERTISE: \"android.permission.BLUETOOTH_ADVERTISE\",\n BLUETOOTH_SCAN: \"android.permission.BLUETOOTH_SCAN\",\n BODY_SENSORS: \"android.permission.BODY_SENSORS\",\n BODY_SENSORS_BACKGROUND: \"android.permission.BODY_SENSORS_BACKGROUND\",\n CALL_PHONE: \"android.permission.CALL_PHONE\",\n GET_ACCOUNTS: \"android.permission.GET_ACCOUNTS\",\n NEARBY_WIFI_DEVICES: \"android.permission.NEARBY_WIFI_DEVICES\",\n PROCESS_OUTGOING_CALLS: \"android.permission.PROCESS_OUTGOING_CALLS\",\n READ_CALL_LOG: \"android.permission.READ_CALL_LOG\",\n READ_EXTERNAL_STORAGE: \"android.permission.READ_EXTERNAL_STORAGE\",\n READ_MEDIA_AUDIO: \"android.permission.READ_MEDIA_AUDIO\",\n READ_MEDIA_IMAGES: \"android.permission.READ_MEDIA_IMAGES\",\n READ_MEDIA_VIDEO: \"android.permission.READ_MEDIA_VIDEO\",\n READ_MEDIA_VISUAL_USER_SELECTED: \"android.permission.READ_MEDIA_VISUAL_USER_SELECTED\",\n READ_PHONE_NUMBERS: \"android.permission.READ_PHONE_NUMBERS\",\n READ_PHONE_STATE: \"android.permission.READ_PHONE_STATE\",\n READ_SMS: \"android.permission.READ_SMS\",\n RECEIVE_MMS: \"android.permission.RECEIVE_MMS\",\n RECEIVE_SMS: \"android.permission.RECEIVE_SMS\",\n RECEIVE_WAP_PUSH: \"android.permission.RECEIVE_WAP_PUSH\",\n SEND_SMS: \"android.permission.SEND_SMS\",\n USE_SIP: \"android.permission.USE_SIP\",\n UWB_RANGING: \"android.permission.UWB_RANGING\",\n WRITE_CALL_LOG: \"android.permission.WRITE_CALL_LOG\",\n WRITE_CONTACTS: \"android.permission.WRITE_CONTACTS\",\n WRITE_EXTERNAL_STORAGE: \"android.permission.WRITE_EXTERNAL_STORAGE\",\n },\n} as const;\n\nexport function createRNPEngine(): PermissionEngine {\n return {\n async check(permission: string): Promise<PermissionStatus> {\n if (permission === \"notifications\") {\n const result = await checkNotifications();\n return result.status as PermissionStatus;\n }\n return (await check(permission as Permission)) as PermissionStatus;\n },\n\n async request(permission: string): Promise<PermissionStatus> {\n if (permission === \"notifications\") {\n const result = await requestNotifications([\"alert\", \"badge\", \"sound\"]);\n return result.status as PermissionStatus;\n }\n return (await request(permission as Permission)) as PermissionStatus;\n },\n\n async openSettings(): Promise<void> {\n await openSettings();\n },\n };\n}\n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,gBAAgB;AACzB;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAS,EAAE,KAAa,SAAyB;AAC/C,SAAO,SAAS,OAAO,EAAE,KAAK,SAAS,SAAS,IAAI,CAAC,KAAK;AAC5D;AAgFO,SAAS,kBAAoC;AAClD,SAAO;AAAA,IACL,MAAM,MAAM,YAA+C;AACzD,UAAI,eAAe,iBAAiB;AAClC,cAAM,SAAS,MAAM,mBAAmB;AACxC,eAAO,OAAO;AAAA,MAChB;AACA,aAAQ,MAAM,MAAM,UAAwB;AAAA,IAC9C;AAAA,IAEA,MAAM,QAAQ,YAA+C;AAC3D,UAAI,eAAe,iBAAiB;AAClC,cAAM,SAAS,MAAM,qBAAqB,CAAC,SAAS,SAAS,OAAO,CAAC;AACrE,eAAO,OAAO;AAAA,MAChB;AACA,aAAQ,MAAM,QAAQ,UAAwB;AAAA,IAChD;AAAA,IAEA,MAAM,eAA8B;AAClC,YAAM,aAAa;AAAA,IACrB;AAAA,EACF;AACF;AAnHA,IAmBa;AAnBb;AAAA;AAmBO,IAAM,cAAc;AAAA;AAAA,MAEzB,QAAQ,EAAE,yBAAyB,2BAA2B;AAAA,MAC9D,YAAY,EAAE,6BAA6B,iCAAiC;AAAA,MAC5E,UAAU,EAAE,2BAA2B,kCAAkC;AAAA,MACzE,WAAW,EAAE,4BAA4B,kCAAkC;AAAA,MAC3E,sBAAsB;AAAA,QACpB;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAsB;AAAA,QACpB;AAAA,QACA;AAAA,MACF;AAAA,MACA,iBAAiB;AAAA,QACf;AAAA,QACA;AAAA,MACF;AAAA,MACA,eAAe,EAAE,gCAAgC,sCAAsC;AAAA,MACvF,wBAAwB;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,MACA,eAAe,EAAE,gCAAgC,qCAAqC;AAAA,MACtF,WAAW,EAAE,4BAA4B,sCAAsC;AAAA,MAC/E,oBAAoB,EAAE,qCAAqC,iCAAiC;AAAA,MAC5F,QAAQ,EAAE,yBAAyB,yCAAyC;AAAA,MAC5E,eAAe;AAAA;AAAA,MAGf,KAAK;AAAA,QACH,2BAA2B;AAAA,QAC3B,SAAS;AAAA,QACT,WAAW;AAAA,QACX,MAAM;AAAA,QACN,UAAU;AAAA,MACZ;AAAA;AAAA,MAGA,SAAS;AAAA,QACP,iBAAiB;AAAA,QACjB,wBAAwB;AAAA,QACxB,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,QACrB,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,yBAAyB;AAAA,QACzB,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,qBAAqB;AAAA,QACrB,wBAAwB;AAAA,QACxB,eAAe;AAAA,QACf,uBAAuB;AAAA,QACvB,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,kBAAkB;AAAA,QAClB,iCAAiC;AAAA,QACjC,oBAAoB;AAAA,QACpB,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,aAAa;AAAA,QACb,aAAa;AAAA,QACb,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,aAAa;AAAA,QACb,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,IACF;AAAA;AAAA;","names":[]}
|
package/dist/engines/expo.d.mts
CHANGED
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import { P as PermissionEngine } from '../types-DwqbbLGD.mjs';
|
|
2
2
|
|
|
3
|
+
type ExpoPermissionResponse = {
|
|
4
|
+
status: string;
|
|
5
|
+
canAskAgain: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* An Expo module with standard permission methods (getPermissionsAsync/requestPermissionsAsync).
|
|
9
|
+
* Works with: expo-media-library, expo-notifications, expo-contacts, expo-brightness,
|
|
10
|
+
* expo-screen-capture, expo-cellular, expo-av, expo-sensors, expo-maps.
|
|
11
|
+
*/
|
|
3
12
|
interface ExpoPermissionModule {
|
|
4
|
-
getPermissionsAsync: () => Promise<
|
|
5
|
-
|
|
6
|
-
canAskAgain: boolean;
|
|
7
|
-
}>;
|
|
8
|
-
requestPermissionsAsync: () => Promise<{
|
|
9
|
-
status: string;
|
|
10
|
-
canAskAgain: boolean;
|
|
11
|
-
}>;
|
|
13
|
+
getPermissionsAsync: () => Promise<ExpoPermissionResponse>;
|
|
14
|
+
requestPermissionsAsync: () => Promise<ExpoPermissionResponse>;
|
|
12
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Explicit get/request function pair for modules with non-standard method names.
|
|
18
|
+
* Use this for: expo-camera, expo-location, expo-calendar, expo-image-picker,
|
|
19
|
+
* expo-tracking-transparency, expo-audio.
|
|
20
|
+
*/
|
|
21
|
+
interface ExpoPermissionFunctions {
|
|
22
|
+
get: () => Promise<ExpoPermissionResponse>;
|
|
23
|
+
request: () => Promise<ExpoPermissionResponse>;
|
|
24
|
+
}
|
|
25
|
+
type ExpoPermissionEntry = ExpoPermissionModule | ExpoPermissionFunctions;
|
|
13
26
|
interface ExpoEngineConfig {
|
|
14
|
-
permissions: Record<string,
|
|
27
|
+
permissions: Record<string, ExpoPermissionEntry>;
|
|
15
28
|
}
|
|
16
29
|
declare function createExpoEngine(config: ExpoEngineConfig): PermissionEngine;
|
|
17
30
|
|
|
18
|
-
export { type ExpoEngineConfig, type ExpoPermissionModule, createExpoEngine };
|
|
31
|
+
export { type ExpoEngineConfig, type ExpoPermissionEntry, type ExpoPermissionFunctions, type ExpoPermissionModule, createExpoEngine };
|
package/dist/engines/expo.d.ts
CHANGED
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import { P as PermissionEngine } from '../types-DwqbbLGD.js';
|
|
2
2
|
|
|
3
|
+
type ExpoPermissionResponse = {
|
|
4
|
+
status: string;
|
|
5
|
+
canAskAgain: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* An Expo module with standard permission methods (getPermissionsAsync/requestPermissionsAsync).
|
|
9
|
+
* Works with: expo-media-library, expo-notifications, expo-contacts, expo-brightness,
|
|
10
|
+
* expo-screen-capture, expo-cellular, expo-av, expo-sensors, expo-maps.
|
|
11
|
+
*/
|
|
3
12
|
interface ExpoPermissionModule {
|
|
4
|
-
getPermissionsAsync: () => Promise<
|
|
5
|
-
|
|
6
|
-
canAskAgain: boolean;
|
|
7
|
-
}>;
|
|
8
|
-
requestPermissionsAsync: () => Promise<{
|
|
9
|
-
status: string;
|
|
10
|
-
canAskAgain: boolean;
|
|
11
|
-
}>;
|
|
13
|
+
getPermissionsAsync: () => Promise<ExpoPermissionResponse>;
|
|
14
|
+
requestPermissionsAsync: () => Promise<ExpoPermissionResponse>;
|
|
12
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Explicit get/request function pair for modules with non-standard method names.
|
|
18
|
+
* Use this for: expo-camera, expo-location, expo-calendar, expo-image-picker,
|
|
19
|
+
* expo-tracking-transparency, expo-audio.
|
|
20
|
+
*/
|
|
21
|
+
interface ExpoPermissionFunctions {
|
|
22
|
+
get: () => Promise<ExpoPermissionResponse>;
|
|
23
|
+
request: () => Promise<ExpoPermissionResponse>;
|
|
24
|
+
}
|
|
25
|
+
type ExpoPermissionEntry = ExpoPermissionModule | ExpoPermissionFunctions;
|
|
13
26
|
interface ExpoEngineConfig {
|
|
14
|
-
permissions: Record<string,
|
|
27
|
+
permissions: Record<string, ExpoPermissionEntry>;
|
|
15
28
|
}
|
|
16
29
|
declare function createExpoEngine(config: ExpoEngineConfig): PermissionEngine;
|
|
17
30
|
|
|
18
|
-
export { type ExpoEngineConfig, type ExpoPermissionModule, createExpoEngine };
|
|
31
|
+
export { type ExpoEngineConfig, type ExpoPermissionEntry, type ExpoPermissionFunctions, type ExpoPermissionModule, createExpoEngine };
|
package/dist/engines/expo.js
CHANGED
|
@@ -24,6 +24,15 @@ __export(expo_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(expo_exports);
|
|
26
26
|
var import_react_native = require("react-native");
|
|
27
|
+
function resolveEntry(entry) {
|
|
28
|
+
if ("get" in entry && "request" in entry) {
|
|
29
|
+
return entry;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
get: () => entry.getPermissionsAsync(),
|
|
33
|
+
request: () => entry.requestPermissionsAsync()
|
|
34
|
+
};
|
|
35
|
+
}
|
|
27
36
|
function mapExpoStatus(result) {
|
|
28
37
|
if (result.status === "granted") return "granted";
|
|
29
38
|
if (result.status === "undetermined") return "denied";
|
|
@@ -35,16 +44,16 @@ function mapExpoStatus(result) {
|
|
|
35
44
|
function createExpoEngine(config) {
|
|
36
45
|
return {
|
|
37
46
|
async check(permission) {
|
|
38
|
-
const
|
|
39
|
-
if (!
|
|
40
|
-
const
|
|
41
|
-
return mapExpoStatus(
|
|
47
|
+
const entry = config.permissions[permission];
|
|
48
|
+
if (!entry) return "unavailable";
|
|
49
|
+
const { get } = resolveEntry(entry);
|
|
50
|
+
return mapExpoStatus(await get());
|
|
42
51
|
},
|
|
43
52
|
async request(permission) {
|
|
44
|
-
const
|
|
45
|
-
if (!
|
|
46
|
-
const
|
|
47
|
-
return mapExpoStatus(
|
|
53
|
+
const entry = config.permissions[permission];
|
|
54
|
+
if (!entry) return "unavailable";
|
|
55
|
+
const { request } = resolveEntry(entry);
|
|
56
|
+
return mapExpoStatus(await request());
|
|
48
57
|
},
|
|
49
58
|
async openSettings() {
|
|
50
59
|
await import_react_native.Linking.openSettings();
|
package/dist/engines/expo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/engines/expo.ts"],"sourcesContent":["import { Linking } from \"react-native\";\nimport type { PermissionEngine, PermissionStatus } from \"../types\";\n\nexport interface ExpoPermissionModule {\n getPermissionsAsync: () => Promise<
|
|
1
|
+
{"version":3,"sources":["../../src/engines/expo.ts"],"sourcesContent":["import { Linking } from \"react-native\";\nimport type { PermissionEngine, PermissionStatus } from \"../types\";\n\ntype ExpoPermissionResponse = { status: string; canAskAgain: boolean };\n\n/**\n * An Expo module with standard permission methods (getPermissionsAsync/requestPermissionsAsync).\n * Works with: expo-media-library, expo-notifications, expo-contacts, expo-brightness,\n * expo-screen-capture, expo-cellular, expo-av, expo-sensors, expo-maps.\n */\nexport interface ExpoPermissionModule {\n getPermissionsAsync: () => Promise<ExpoPermissionResponse>;\n requestPermissionsAsync: () => Promise<ExpoPermissionResponse>;\n}\n\n/**\n * Explicit get/request function pair for modules with non-standard method names.\n * Use this for: expo-camera, expo-location, expo-calendar, expo-image-picker,\n * expo-tracking-transparency, expo-audio.\n */\nexport interface ExpoPermissionFunctions {\n get: () => Promise<ExpoPermissionResponse>;\n request: () => Promise<ExpoPermissionResponse>;\n}\n\nexport type ExpoPermissionEntry = ExpoPermissionModule | ExpoPermissionFunctions;\n\nexport interface ExpoEngineConfig {\n permissions: Record<string, ExpoPermissionEntry>;\n}\n\nfunction resolveEntry(entry: ExpoPermissionEntry): {\n get: () => Promise<ExpoPermissionResponse>;\n request: () => Promise<ExpoPermissionResponse>;\n} {\n if (\"get\" in entry && \"request\" in entry) {\n return entry;\n }\n return {\n get: () => entry.getPermissionsAsync(),\n request: () => entry.requestPermissionsAsync(),\n };\n}\n\nfunction mapExpoStatus(result: ExpoPermissionResponse): PermissionStatus {\n if (result.status === \"granted\") return \"granted\";\n if (result.status === \"undetermined\") return \"denied\";\n if (result.status === \"denied\") {\n return result.canAskAgain ? \"denied\" : \"blocked\";\n }\n return \"unavailable\";\n}\n\nexport function createExpoEngine(config: ExpoEngineConfig): PermissionEngine {\n return {\n async check(permission: string): Promise<PermissionStatus> {\n const entry = config.permissions[permission];\n if (!entry) return \"unavailable\";\n const { get } = resolveEntry(entry);\n return mapExpoStatus(await get());\n },\n\n async request(permission: string): Promise<PermissionStatus> {\n const entry = config.permissions[permission];\n if (!entry) return \"unavailable\";\n const { request } = resolveEntry(entry);\n return mapExpoStatus(await request());\n },\n\n async openSettings(): Promise<void> {\n await Linking.openSettings();\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAwB;AA+BxB,SAAS,aAAa,OAGpB;AACA,MAAI,SAAS,SAAS,aAAa,OAAO;AACxC,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,KAAK,MAAM,MAAM,oBAAoB;AAAA,IACrC,SAAS,MAAM,MAAM,wBAAwB;AAAA,EAC/C;AACF;AAEA,SAAS,cAAc,QAAkD;AACvE,MAAI,OAAO,WAAW,UAAW,QAAO;AACxC,MAAI,OAAO,WAAW,eAAgB,QAAO;AAC7C,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,OAAO,cAAc,WAAW;AAAA,EACzC;AACA,SAAO;AACT;AAEO,SAAS,iBAAiB,QAA4C;AAC3E,SAAO;AAAA,IACL,MAAM,MAAM,YAA+C;AACzD,YAAM,QAAQ,OAAO,YAAY,UAAU;AAC3C,UAAI,CAAC,MAAO,QAAO;AACnB,YAAM,EAAE,IAAI,IAAI,aAAa,KAAK;AAClC,aAAO,cAAc,MAAM,IAAI,CAAC;AAAA,IAClC;AAAA,IAEA,MAAM,QAAQ,YAA+C;AAC3D,YAAM,QAAQ,OAAO,YAAY,UAAU;AAC3C,UAAI,CAAC,MAAO,QAAO;AACnB,YAAM,EAAE,QAAQ,IAAI,aAAa,KAAK;AACtC,aAAO,cAAc,MAAM,QAAQ,CAAC;AAAA,IACtC;AAAA,IAEA,MAAM,eAA8B;AAClC,YAAM,4BAAQ,aAAa;AAAA,IAC7B;AAAA,EACF;AACF;","names":[]}
|
package/dist/engines/expo.mjs
CHANGED
|
@@ -2,6 +2,15 @@ import "../chunk-NFEGQTCC.mjs";
|
|
|
2
2
|
|
|
3
3
|
// src/engines/expo.ts
|
|
4
4
|
import { Linking } from "react-native";
|
|
5
|
+
function resolveEntry(entry) {
|
|
6
|
+
if ("get" in entry && "request" in entry) {
|
|
7
|
+
return entry;
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
get: () => entry.getPermissionsAsync(),
|
|
11
|
+
request: () => entry.requestPermissionsAsync()
|
|
12
|
+
};
|
|
13
|
+
}
|
|
5
14
|
function mapExpoStatus(result) {
|
|
6
15
|
if (result.status === "granted") return "granted";
|
|
7
16
|
if (result.status === "undetermined") return "denied";
|
|
@@ -13,16 +22,16 @@ function mapExpoStatus(result) {
|
|
|
13
22
|
function createExpoEngine(config) {
|
|
14
23
|
return {
|
|
15
24
|
async check(permission) {
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
18
|
-
const
|
|
19
|
-
return mapExpoStatus(
|
|
25
|
+
const entry = config.permissions[permission];
|
|
26
|
+
if (!entry) return "unavailable";
|
|
27
|
+
const { get } = resolveEntry(entry);
|
|
28
|
+
return mapExpoStatus(await get());
|
|
20
29
|
},
|
|
21
30
|
async request(permission) {
|
|
22
|
-
const
|
|
23
|
-
if (!
|
|
24
|
-
const
|
|
25
|
-
return mapExpoStatus(
|
|
31
|
+
const entry = config.permissions[permission];
|
|
32
|
+
if (!entry) return "unavailable";
|
|
33
|
+
const { request } = resolveEntry(entry);
|
|
34
|
+
return mapExpoStatus(await request());
|
|
26
35
|
},
|
|
27
36
|
async openSettings() {
|
|
28
37
|
await Linking.openSettings();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/engines/expo.ts"],"sourcesContent":["import { Linking } from \"react-native\";\nimport type { PermissionEngine, PermissionStatus } from \"../types\";\n\nexport interface ExpoPermissionModule {\n getPermissionsAsync: () => Promise<
|
|
1
|
+
{"version":3,"sources":["../../src/engines/expo.ts"],"sourcesContent":["import { Linking } from \"react-native\";\nimport type { PermissionEngine, PermissionStatus } from \"../types\";\n\ntype ExpoPermissionResponse = { status: string; canAskAgain: boolean };\n\n/**\n * An Expo module with standard permission methods (getPermissionsAsync/requestPermissionsAsync).\n * Works with: expo-media-library, expo-notifications, expo-contacts, expo-brightness,\n * expo-screen-capture, expo-cellular, expo-av, expo-sensors, expo-maps.\n */\nexport interface ExpoPermissionModule {\n getPermissionsAsync: () => Promise<ExpoPermissionResponse>;\n requestPermissionsAsync: () => Promise<ExpoPermissionResponse>;\n}\n\n/**\n * Explicit get/request function pair for modules with non-standard method names.\n * Use this for: expo-camera, expo-location, expo-calendar, expo-image-picker,\n * expo-tracking-transparency, expo-audio.\n */\nexport interface ExpoPermissionFunctions {\n get: () => Promise<ExpoPermissionResponse>;\n request: () => Promise<ExpoPermissionResponse>;\n}\n\nexport type ExpoPermissionEntry = ExpoPermissionModule | ExpoPermissionFunctions;\n\nexport interface ExpoEngineConfig {\n permissions: Record<string, ExpoPermissionEntry>;\n}\n\nfunction resolveEntry(entry: ExpoPermissionEntry): {\n get: () => Promise<ExpoPermissionResponse>;\n request: () => Promise<ExpoPermissionResponse>;\n} {\n if (\"get\" in entry && \"request\" in entry) {\n return entry;\n }\n return {\n get: () => entry.getPermissionsAsync(),\n request: () => entry.requestPermissionsAsync(),\n };\n}\n\nfunction mapExpoStatus(result: ExpoPermissionResponse): PermissionStatus {\n if (result.status === \"granted\") return \"granted\";\n if (result.status === \"undetermined\") return \"denied\";\n if (result.status === \"denied\") {\n return result.canAskAgain ? \"denied\" : \"blocked\";\n }\n return \"unavailable\";\n}\n\nexport function createExpoEngine(config: ExpoEngineConfig): PermissionEngine {\n return {\n async check(permission: string): Promise<PermissionStatus> {\n const entry = config.permissions[permission];\n if (!entry) return \"unavailable\";\n const { get } = resolveEntry(entry);\n return mapExpoStatus(await get());\n },\n\n async request(permission: string): Promise<PermissionStatus> {\n const entry = config.permissions[permission];\n if (!entry) return \"unavailable\";\n const { request } = resolveEntry(entry);\n return mapExpoStatus(await request());\n },\n\n async openSettings(): Promise<void> {\n await Linking.openSettings();\n },\n };\n}\n"],"mappings":";;;AAAA,SAAS,eAAe;AA+BxB,SAAS,aAAa,OAGpB;AACA,MAAI,SAAS,SAAS,aAAa,OAAO;AACxC,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,KAAK,MAAM,MAAM,oBAAoB;AAAA,IACrC,SAAS,MAAM,MAAM,wBAAwB;AAAA,EAC/C;AACF;AAEA,SAAS,cAAc,QAAkD;AACvE,MAAI,OAAO,WAAW,UAAW,QAAO;AACxC,MAAI,OAAO,WAAW,eAAgB,QAAO;AAC7C,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,OAAO,cAAc,WAAW;AAAA,EACzC;AACA,SAAO;AACT;AAEO,SAAS,iBAAiB,QAA4C;AAC3E,SAAO;AAAA,IACL,MAAM,MAAM,YAA+C;AACzD,YAAM,QAAQ,OAAO,YAAY,UAAU;AAC3C,UAAI,CAAC,MAAO,QAAO;AACnB,YAAM,EAAE,IAAI,IAAI,aAAa,KAAK;AAClC,aAAO,cAAc,MAAM,IAAI,CAAC;AAAA,IAClC;AAAA,IAEA,MAAM,QAAQ,YAA+C;AAC3D,YAAM,QAAQ,OAAO,YAAY,UAAU;AAC3C,UAAI,CAAC,MAAO,QAAO;AACnB,YAAM,EAAE,QAAQ,IAAI,aAAa,KAAK;AACtC,aAAO,cAAc,MAAM,QAAQ,CAAC;AAAA,IACtC;AAAA,IAEA,MAAM,eAA8B;AAClC,YAAM,QAAQ,aAAa;AAAA,IAC7B;AAAA,EACF;AACF;","names":[]}
|
package/dist/engines/rnp.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { P as PermissionEngine } from '../types-DwqbbLGD.mjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Cross-platform permission constants
|
|
5
|
-
*
|
|
4
|
+
* Cross-platform permission constants that resolve to the correct
|
|
5
|
+
* platform-specific string at runtime via Platform.select.
|
|
6
6
|
*/
|
|
7
7
|
declare const Permissions: {
|
|
8
8
|
readonly CAMERA: string;
|
|
@@ -14,8 +14,51 @@ declare const Permissions: {
|
|
|
14
14
|
readonly LOCATION_ALWAYS: string;
|
|
15
15
|
readonly PHOTO_LIBRARY: string;
|
|
16
16
|
readonly PHOTO_LIBRARY_ADD_ONLY: string;
|
|
17
|
+
readonly MEDIA_LIBRARY: string;
|
|
17
18
|
readonly BLUETOOTH: string;
|
|
19
|
+
readonly SPEECH_RECOGNITION: string;
|
|
20
|
+
readonly MOTION: string;
|
|
18
21
|
readonly NOTIFICATIONS: "notifications";
|
|
22
|
+
readonly IOS: {
|
|
23
|
+
readonly APP_TRACKING_TRANSPARENCY: "ios.permission.APP_TRACKING_TRANSPARENCY";
|
|
24
|
+
readonly FACE_ID: "ios.permission.FACE_ID";
|
|
25
|
+
readonly REMINDERS: "ios.permission.REMINDERS";
|
|
26
|
+
readonly SIRI: "ios.permission.SIRI";
|
|
27
|
+
readonly STOREKIT: "ios.permission.STOREKIT";
|
|
28
|
+
};
|
|
29
|
+
readonly ANDROID: {
|
|
30
|
+
readonly ACCEPT_HANDOVER: "android.permission.ACCEPT_HANDOVER";
|
|
31
|
+
readonly ACCESS_COARSE_LOCATION: "android.permission.ACCESS_COARSE_LOCATION";
|
|
32
|
+
readonly ACCESS_MEDIA_LOCATION: "android.permission.ACCESS_MEDIA_LOCATION";
|
|
33
|
+
readonly ADD_VOICEMAIL: "com.android.voicemail.permission.ADD_VOICEMAIL";
|
|
34
|
+
readonly ANSWER_PHONE_CALLS: "android.permission.ANSWER_PHONE_CALLS";
|
|
35
|
+
readonly BLUETOOTH_ADVERTISE: "android.permission.BLUETOOTH_ADVERTISE";
|
|
36
|
+
readonly BLUETOOTH_SCAN: "android.permission.BLUETOOTH_SCAN";
|
|
37
|
+
readonly BODY_SENSORS: "android.permission.BODY_SENSORS";
|
|
38
|
+
readonly BODY_SENSORS_BACKGROUND: "android.permission.BODY_SENSORS_BACKGROUND";
|
|
39
|
+
readonly CALL_PHONE: "android.permission.CALL_PHONE";
|
|
40
|
+
readonly GET_ACCOUNTS: "android.permission.GET_ACCOUNTS";
|
|
41
|
+
readonly NEARBY_WIFI_DEVICES: "android.permission.NEARBY_WIFI_DEVICES";
|
|
42
|
+
readonly PROCESS_OUTGOING_CALLS: "android.permission.PROCESS_OUTGOING_CALLS";
|
|
43
|
+
readonly READ_CALL_LOG: "android.permission.READ_CALL_LOG";
|
|
44
|
+
readonly READ_EXTERNAL_STORAGE: "android.permission.READ_EXTERNAL_STORAGE";
|
|
45
|
+
readonly READ_MEDIA_AUDIO: "android.permission.READ_MEDIA_AUDIO";
|
|
46
|
+
readonly READ_MEDIA_IMAGES: "android.permission.READ_MEDIA_IMAGES";
|
|
47
|
+
readonly READ_MEDIA_VIDEO: "android.permission.READ_MEDIA_VIDEO";
|
|
48
|
+
readonly READ_MEDIA_VISUAL_USER_SELECTED: "android.permission.READ_MEDIA_VISUAL_USER_SELECTED";
|
|
49
|
+
readonly READ_PHONE_NUMBERS: "android.permission.READ_PHONE_NUMBERS";
|
|
50
|
+
readonly READ_PHONE_STATE: "android.permission.READ_PHONE_STATE";
|
|
51
|
+
readonly READ_SMS: "android.permission.READ_SMS";
|
|
52
|
+
readonly RECEIVE_MMS: "android.permission.RECEIVE_MMS";
|
|
53
|
+
readonly RECEIVE_SMS: "android.permission.RECEIVE_SMS";
|
|
54
|
+
readonly RECEIVE_WAP_PUSH: "android.permission.RECEIVE_WAP_PUSH";
|
|
55
|
+
readonly SEND_SMS: "android.permission.SEND_SMS";
|
|
56
|
+
readonly USE_SIP: "android.permission.USE_SIP";
|
|
57
|
+
readonly UWB_RANGING: "android.permission.UWB_RANGING";
|
|
58
|
+
readonly WRITE_CALL_LOG: "android.permission.WRITE_CALL_LOG";
|
|
59
|
+
readonly WRITE_CONTACTS: "android.permission.WRITE_CONTACTS";
|
|
60
|
+
readonly WRITE_EXTERNAL_STORAGE: "android.permission.WRITE_EXTERNAL_STORAGE";
|
|
61
|
+
};
|
|
19
62
|
};
|
|
20
63
|
declare function createRNPEngine(): PermissionEngine;
|
|
21
64
|
|
package/dist/engines/rnp.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { P as PermissionEngine } from '../types-DwqbbLGD.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Cross-platform permission constants
|
|
5
|
-
*
|
|
4
|
+
* Cross-platform permission constants that resolve to the correct
|
|
5
|
+
* platform-specific string at runtime via Platform.select.
|
|
6
6
|
*/
|
|
7
7
|
declare const Permissions: {
|
|
8
8
|
readonly CAMERA: string;
|
|
@@ -14,8 +14,51 @@ declare const Permissions: {
|
|
|
14
14
|
readonly LOCATION_ALWAYS: string;
|
|
15
15
|
readonly PHOTO_LIBRARY: string;
|
|
16
16
|
readonly PHOTO_LIBRARY_ADD_ONLY: string;
|
|
17
|
+
readonly MEDIA_LIBRARY: string;
|
|
17
18
|
readonly BLUETOOTH: string;
|
|
19
|
+
readonly SPEECH_RECOGNITION: string;
|
|
20
|
+
readonly MOTION: string;
|
|
18
21
|
readonly NOTIFICATIONS: "notifications";
|
|
22
|
+
readonly IOS: {
|
|
23
|
+
readonly APP_TRACKING_TRANSPARENCY: "ios.permission.APP_TRACKING_TRANSPARENCY";
|
|
24
|
+
readonly FACE_ID: "ios.permission.FACE_ID";
|
|
25
|
+
readonly REMINDERS: "ios.permission.REMINDERS";
|
|
26
|
+
readonly SIRI: "ios.permission.SIRI";
|
|
27
|
+
readonly STOREKIT: "ios.permission.STOREKIT";
|
|
28
|
+
};
|
|
29
|
+
readonly ANDROID: {
|
|
30
|
+
readonly ACCEPT_HANDOVER: "android.permission.ACCEPT_HANDOVER";
|
|
31
|
+
readonly ACCESS_COARSE_LOCATION: "android.permission.ACCESS_COARSE_LOCATION";
|
|
32
|
+
readonly ACCESS_MEDIA_LOCATION: "android.permission.ACCESS_MEDIA_LOCATION";
|
|
33
|
+
readonly ADD_VOICEMAIL: "com.android.voicemail.permission.ADD_VOICEMAIL";
|
|
34
|
+
readonly ANSWER_PHONE_CALLS: "android.permission.ANSWER_PHONE_CALLS";
|
|
35
|
+
readonly BLUETOOTH_ADVERTISE: "android.permission.BLUETOOTH_ADVERTISE";
|
|
36
|
+
readonly BLUETOOTH_SCAN: "android.permission.BLUETOOTH_SCAN";
|
|
37
|
+
readonly BODY_SENSORS: "android.permission.BODY_SENSORS";
|
|
38
|
+
readonly BODY_SENSORS_BACKGROUND: "android.permission.BODY_SENSORS_BACKGROUND";
|
|
39
|
+
readonly CALL_PHONE: "android.permission.CALL_PHONE";
|
|
40
|
+
readonly GET_ACCOUNTS: "android.permission.GET_ACCOUNTS";
|
|
41
|
+
readonly NEARBY_WIFI_DEVICES: "android.permission.NEARBY_WIFI_DEVICES";
|
|
42
|
+
readonly PROCESS_OUTGOING_CALLS: "android.permission.PROCESS_OUTGOING_CALLS";
|
|
43
|
+
readonly READ_CALL_LOG: "android.permission.READ_CALL_LOG";
|
|
44
|
+
readonly READ_EXTERNAL_STORAGE: "android.permission.READ_EXTERNAL_STORAGE";
|
|
45
|
+
readonly READ_MEDIA_AUDIO: "android.permission.READ_MEDIA_AUDIO";
|
|
46
|
+
readonly READ_MEDIA_IMAGES: "android.permission.READ_MEDIA_IMAGES";
|
|
47
|
+
readonly READ_MEDIA_VIDEO: "android.permission.READ_MEDIA_VIDEO";
|
|
48
|
+
readonly READ_MEDIA_VISUAL_USER_SELECTED: "android.permission.READ_MEDIA_VISUAL_USER_SELECTED";
|
|
49
|
+
readonly READ_PHONE_NUMBERS: "android.permission.READ_PHONE_NUMBERS";
|
|
50
|
+
readonly READ_PHONE_STATE: "android.permission.READ_PHONE_STATE";
|
|
51
|
+
readonly READ_SMS: "android.permission.READ_SMS";
|
|
52
|
+
readonly RECEIVE_MMS: "android.permission.RECEIVE_MMS";
|
|
53
|
+
readonly RECEIVE_SMS: "android.permission.RECEIVE_SMS";
|
|
54
|
+
readonly RECEIVE_WAP_PUSH: "android.permission.RECEIVE_WAP_PUSH";
|
|
55
|
+
readonly SEND_SMS: "android.permission.SEND_SMS";
|
|
56
|
+
readonly USE_SIP: "android.permission.USE_SIP";
|
|
57
|
+
readonly UWB_RANGING: "android.permission.UWB_RANGING";
|
|
58
|
+
readonly WRITE_CALL_LOG: "android.permission.WRITE_CALL_LOG";
|
|
59
|
+
readonly WRITE_CONTACTS: "android.permission.WRITE_CONTACTS";
|
|
60
|
+
readonly WRITE_EXTERNAL_STORAGE: "android.permission.WRITE_EXTERNAL_STORAGE";
|
|
61
|
+
};
|
|
19
62
|
};
|
|
20
63
|
declare function createRNPEngine(): PermissionEngine;
|
|
21
64
|
|