@vxrn/utils 2.13.2 → 2.13.4

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.
@@ -818,6 +818,55 @@ export function iosUsageDescriptions(app: NativeAppManifest): Map<string, string
818
818
  return usage
819
819
  }
820
820
 
821
+ // android declarations authored by native.app, before library manifest merging.
822
+ // prebuild uses the same entries so capped permissions retain their SDK bounds.
823
+ export const androidNotificationPermissions = [
824
+ 'android.permission.POST_NOTIFICATIONS',
825
+ 'android.permission.RECEIVE_BOOT_COMPLETED',
826
+ ]
827
+
828
+ export function androidAppPermissions(app: NativeAppManifest): Map<string, number | undefined> {
829
+ const permissions = new Map<string, number | undefined>()
830
+ const add = (name: string, maxSdkVersion?: number) => {
831
+ const fullName = name.includes('.') ? name : `android.permission.${name}`
832
+ if (!permissions.has(fullName) || maxSdkVersion === undefined) {
833
+ permissions.set(fullName, maxSdkVersion)
834
+ }
835
+ }
836
+ if (app.imagePicker?.camera !== undefined) add('CAMERA')
837
+ if (app.speech !== undefined || app.audio?.microphone !== undefined) add('RECORD_AUDIO')
838
+ if (app.location !== undefined) {
839
+ add('ACCESS_COARSE_LOCATION')
840
+ add('ACCESS_FINE_LOCATION')
841
+ if (app.location.background) add('ACCESS_BACKGROUND_LOCATION')
842
+ }
843
+ if (app.pedometer !== undefined) add('ACTIVITY_RECOGNITION')
844
+ if (app.brightness === true) add('WRITE_SETTINGS')
845
+ if (app.notifications !== undefined || app.calendar?.remindersUsage !== undefined) {
846
+ for (const name of androidNotificationPermissions) add(name)
847
+ }
848
+ if (app.photoLibrary?.readWrite !== undefined) {
849
+ add('READ_MEDIA_IMAGES')
850
+ add('READ_MEDIA_VIDEO')
851
+ add('READ_EXTERNAL_STORAGE', 32)
852
+ }
853
+ if (app.photoLibrary?.addOnly !== undefined) add('WRITE_EXTERNAL_STORAGE', 28)
854
+ if (app.contacts !== undefined) {
855
+ add('READ_CONTACTS')
856
+ add('WRITE_CONTACTS')
857
+ }
858
+ if (app.calendar?.usage !== undefined) {
859
+ add('READ_CALENDAR')
860
+ add('WRITE_CALENDAR')
861
+ }
862
+ if (app.audio?.background === true) {
863
+ add('FOREGROUND_SERVICE')
864
+ add('FOREGROUND_SERVICE_MEDIA_PLAYBACK')
865
+ }
866
+ for (const name of app.android?.permissions ?? []) add(name)
867
+ return permissions
868
+ }
869
+
821
870
  // the expo config shape the dev server's manifest carries (`extra.expoClient`)
822
871
  // for an app that declares native.app and no expo: clients that read an app's
823
872
  // name, scheme or splash from the manifest read a one app the same way.
@@ -861,7 +910,16 @@ export function expoClientFromNativeApp(app: NativeAppManifest) {
861
910
  android: app.android && {
862
911
  package: app.android.applicationId,
863
912
  versionCode: app.android.versionCode,
864
- permissions: app.android.permissions,
913
+ // expo's string list cannot express maxSdkVersion, so only declarations
914
+ // valid on every SDK can be represented without overstating access.
915
+ permissions: [...androidAppPermissions(app)]
916
+ .filter(([name, maxSdk]) =>
917
+ maxSdk === undefined &&
918
+ !(app.android?.blockedPermissions ?? []).some((blocked) =>
919
+ (blocked.includes('.') ? blocked : `android.permission.${blocked}`) === name
920
+ )
921
+ )
922
+ .map(([name]) => name),
865
923
  blockedPermissions: app.android.blockedPermissions,
866
924
  googleServicesFile: app.android.googleServicesFile,
867
925
  adaptiveIcon: app.android.adaptiveIcon && {
@@ -149,6 +149,8 @@ export interface NativeAppManifest {
149
149
  }
150
150
  export declare function validateNativeApp(manifest: NativeAppManifest, platform?: 'ios' | 'android' | string): NativeAppManifest;
151
151
  export declare function iosUsageDescriptions(app: NativeAppManifest): Map<string, string>;
152
+ export declare const androidNotificationPermissions: string[];
153
+ export declare function androidAppPermissions(app: NativeAppManifest): Map<string, number | undefined>;
152
154
  export declare function expoClientFromNativeApp(app: NativeAppManifest): {
153
155
  name: string;
154
156
  slug: string;
@@ -187,7 +189,7 @@ export declare function expoClientFromNativeApp(app: NativeAppManifest): {
187
189
  android: {
188
190
  package: string;
189
191
  versionCode: number | undefined;
190
- permissions: string[] | undefined;
192
+ permissions: string[];
191
193
  blockedPermissions: string[] | undefined;
192
194
  googleServicesFile: string | undefined;
193
195
  adaptiveIcon: {
@@ -1 +1 @@
1
- {"version":3,"file":"nativeAppManifest.d.ts","sourceRoot":"","sources":["../src/nativeAppManifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nativeAppManifest.d.ts","sourceRoot":"","sources":["../src/nativeAppManifest.ts"],"names":[],"mappings":"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"}