@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.
@@ -20,7 +20,9 @@ var __copyProps = (to, from, except, desc) => {
20
20
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
21
  var nativeAppManifest_exports = {};
22
22
  __export(nativeAppManifest_exports, {
23
+ androidAppPermissions: () => androidAppPermissions,
23
24
  androidIconSuffix: () => androidIconSuffix,
25
+ androidNotificationPermissions: () => androidNotificationPermissions,
24
26
  appIconPreviewResources: () => appIconPreviewResources,
25
27
  expoClientFromNativeApp: () => expoClientFromNativeApp,
26
28
  iosUsageDescriptions: () => iosUsageDescriptions,
@@ -387,6 +389,48 @@ function iosUsageDescriptions(app) {
387
389
  }
388
390
  return usage;
389
391
  }
392
+ const androidNotificationPermissions = ["android.permission.POST_NOTIFICATIONS", "android.permission.RECEIVE_BOOT_COMPLETED"];
393
+ function androidAppPermissions(app) {
394
+ const permissions = /* @__PURE__ */ new Map();
395
+ const add = (name, maxSdkVersion) => {
396
+ const fullName = name.includes(".") ? name : `android.permission.${name}`;
397
+ if (!permissions.has(fullName) || maxSdkVersion === void 0) {
398
+ permissions.set(fullName, maxSdkVersion);
399
+ }
400
+ };
401
+ if (app.imagePicker?.camera !== void 0) add("CAMERA");
402
+ if (app.speech !== void 0 || app.audio?.microphone !== void 0) add("RECORD_AUDIO");
403
+ if (app.location !== void 0) {
404
+ add("ACCESS_COARSE_LOCATION");
405
+ add("ACCESS_FINE_LOCATION");
406
+ if (app.location.background) add("ACCESS_BACKGROUND_LOCATION");
407
+ }
408
+ if (app.pedometer !== void 0) add("ACTIVITY_RECOGNITION");
409
+ if (app.brightness === true) add("WRITE_SETTINGS");
410
+ if (app.notifications !== void 0 || app.calendar?.remindersUsage !== void 0) {
411
+ for (const name of androidNotificationPermissions) add(name);
412
+ }
413
+ if (app.photoLibrary?.readWrite !== void 0) {
414
+ add("READ_MEDIA_IMAGES");
415
+ add("READ_MEDIA_VIDEO");
416
+ add("READ_EXTERNAL_STORAGE", 32);
417
+ }
418
+ if (app.photoLibrary?.addOnly !== void 0) add("WRITE_EXTERNAL_STORAGE", 28);
419
+ if (app.contacts !== void 0) {
420
+ add("READ_CONTACTS");
421
+ add("WRITE_CONTACTS");
422
+ }
423
+ if (app.calendar?.usage !== void 0) {
424
+ add("READ_CALENDAR");
425
+ add("WRITE_CALENDAR");
426
+ }
427
+ if (app.audio?.background === true) {
428
+ add("FOREGROUND_SERVICE");
429
+ add("FOREGROUND_SERVICE_MEDIA_PLAYBACK");
430
+ }
431
+ for (const name of app.android?.permissions ?? []) add(name);
432
+ return permissions;
433
+ }
390
434
  function expoClientFromNativeApp(app) {
391
435
  return {
392
436
  name: app.displayName ?? app.name,
@@ -425,7 +469,7 @@ function expoClientFromNativeApp(app) {
425
469
  android: app.android && {
426
470
  package: app.android.applicationId,
427
471
  versionCode: app.android.versionCode,
428
- permissions: app.android.permissions,
472
+ permissions: [...androidAppPermissions(app)].filter(([name, maxSdk]) => maxSdk === void 0 && !(app.android?.blockedPermissions ?? []).some((blocked) => (blocked.includes(".") ? blocked : `android.permission.${blocked}`) === name)).map(([name]) => name),
429
473
  blockedPermissions: app.android.blockedPermissions,
430
474
  googleServicesFile: app.android.googleServicesFile,
431
475
  adaptiveIcon: app.android.adaptiveIcon && {
@@ -22,7 +22,9 @@ var __copyProps = (to, from, except, desc) => {
22
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
23
  var nativeAppManifest_exports = {};
24
24
  __export(nativeAppManifest_exports, {
25
+ androidAppPermissions: () => androidAppPermissions,
25
26
  androidIconSuffix: () => androidIconSuffix,
27
+ androidNotificationPermissions: () => androidNotificationPermissions,
26
28
  appIconPreviewResources: () => appIconPreviewResources,
27
29
  expoClientFromNativeApp: () => expoClientFromNativeApp,
28
30
  iosUsageDescriptions: () => iosUsageDescriptions,
@@ -528,6 +530,88 @@ function iosUsageDescriptions(app) {
528
530
  }
529
531
  return usage;
530
532
  }
533
+ var androidNotificationPermissions = ["android.permission.POST_NOTIFICATIONS", "android.permission.RECEIVE_BOOT_COMPLETED"];
534
+ function androidAppPermissions(app) {
535
+ var _ref;
536
+ var _app_imagePicker, _app_audio, _app_calendar, _app_photoLibrary, _app_photoLibrary1, _app_calendar1, _app_audio1, _app_android;
537
+ var permissions = /* @__PURE__ */ new Map();
538
+ var add = function add2(name2, maxSdkVersion) {
539
+ var fullName = name2.includes(".") ? name2 : `android.permission.${name2}`;
540
+ if (!permissions.has(fullName) || maxSdkVersion === void 0) {
541
+ permissions.set(fullName, maxSdkVersion);
542
+ }
543
+ };
544
+ if (((_app_imagePicker = app.imagePicker) === null || _app_imagePicker === void 0 ? void 0 : _app_imagePicker.camera) !== void 0) add("CAMERA");
545
+ if (app.speech !== void 0 || ((_app_audio = app.audio) === null || _app_audio === void 0 ? void 0 : _app_audio.microphone) !== void 0) add("RECORD_AUDIO");
546
+ if (app.location !== void 0) {
547
+ add("ACCESS_COARSE_LOCATION");
548
+ add("ACCESS_FINE_LOCATION");
549
+ if (app.location.background) add("ACCESS_BACKGROUND_LOCATION");
550
+ }
551
+ if (app.pedometer !== void 0) add("ACTIVITY_RECOGNITION");
552
+ if (app.brightness === true) add("WRITE_SETTINGS");
553
+ if (app.notifications !== void 0 || ((_app_calendar = app.calendar) === null || _app_calendar === void 0 ? void 0 : _app_calendar.remindersUsage) !== void 0) {
554
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
555
+ try {
556
+ for (var _iterator = androidNotificationPermissions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
557
+ var name = _step.value;
558
+ add(name);
559
+ }
560
+ } catch (err) {
561
+ _didIteratorError = true;
562
+ _iteratorError = err;
563
+ } finally {
564
+ try {
565
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
566
+ _iterator.return();
567
+ }
568
+ } finally {
569
+ if (_didIteratorError) {
570
+ throw _iteratorError;
571
+ }
572
+ }
573
+ }
574
+ }
575
+ if (((_app_photoLibrary = app.photoLibrary) === null || _app_photoLibrary === void 0 ? void 0 : _app_photoLibrary.readWrite) !== void 0) {
576
+ add("READ_MEDIA_IMAGES");
577
+ add("READ_MEDIA_VIDEO");
578
+ add("READ_EXTERNAL_STORAGE", 32);
579
+ }
580
+ if (((_app_photoLibrary1 = app.photoLibrary) === null || _app_photoLibrary1 === void 0 ? void 0 : _app_photoLibrary1.addOnly) !== void 0) add("WRITE_EXTERNAL_STORAGE", 28);
581
+ if (app.contacts !== void 0) {
582
+ add("READ_CONTACTS");
583
+ add("WRITE_CONTACTS");
584
+ }
585
+ if (((_app_calendar1 = app.calendar) === null || _app_calendar1 === void 0 ? void 0 : _app_calendar1.usage) !== void 0) {
586
+ add("READ_CALENDAR");
587
+ add("WRITE_CALENDAR");
588
+ }
589
+ if (((_app_audio1 = app.audio) === null || _app_audio1 === void 0 ? void 0 : _app_audio1.background) === true) {
590
+ add("FOREGROUND_SERVICE");
591
+ add("FOREGROUND_SERVICE_MEDIA_PLAYBACK");
592
+ }
593
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
594
+ try {
595
+ for (var _iterator1 = ((_ref = (_app_android = app.android) === null || _app_android === void 0 ? void 0 : _app_android.permissions) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
596
+ var name1 = _step1.value;
597
+ add(name1);
598
+ }
599
+ } catch (err) {
600
+ _didIteratorError1 = true;
601
+ _iteratorError1 = err;
602
+ } finally {
603
+ try {
604
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
605
+ _iterator1.return();
606
+ }
607
+ } finally {
608
+ if (_didIteratorError1) {
609
+ throw _iteratorError1;
610
+ }
611
+ }
612
+ }
613
+ return permissions;
614
+ }
531
615
  function expoClientFromNativeApp(app) {
532
616
  var _app_displayName, _app_userInterfaceStyle;
533
617
  var _app_icon, _app_fonts;
@@ -568,7 +652,17 @@ function expoClientFromNativeApp(app) {
568
652
  android: app.android && {
569
653
  package: app.android.applicationId,
570
654
  versionCode: app.android.versionCode,
571
- permissions: app.android.permissions,
655
+ permissions: [...androidAppPermissions(app)].filter(function(param) {
656
+ var [name, maxSdk] = param;
657
+ var _ref;
658
+ var _app_android;
659
+ return maxSdk === void 0 && !((_ref = (_app_android = app.android) === null || _app_android === void 0 ? void 0 : _app_android.blockedPermissions) !== null && _ref !== void 0 ? _ref : []).some(function(blocked) {
660
+ return (blocked.includes(".") ? blocked : `android.permission.${blocked}`) === name;
661
+ });
662
+ }).map(function(param) {
663
+ var [name] = param;
664
+ return name;
665
+ }),
572
666
  blockedPermissions: app.android.blockedPermissions,
573
667
  googleServicesFile: app.android.googleServicesFile,
574
668
  adaptiveIcon: app.android.adaptiveIcon && {
@@ -22,7 +22,9 @@ var __copyProps = (to, from, except, desc) => {
22
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
23
  var nativeAppManifest_exports = {};
24
24
  __export(nativeAppManifest_exports, {
25
+ androidAppPermissions: () => androidAppPermissions,
25
26
  androidIconSuffix: () => androidIconSuffix,
27
+ androidNotificationPermissions: () => androidNotificationPermissions,
26
28
  appIconPreviewResources: () => appIconPreviewResources,
27
29
  expoClientFromNativeApp: () => expoClientFromNativeApp,
28
30
  iosUsageDescriptions: () => iosUsageDescriptions,
@@ -528,6 +530,88 @@ function iosUsageDescriptions(app) {
528
530
  }
529
531
  return usage;
530
532
  }
533
+ var androidNotificationPermissions = ["android.permission.POST_NOTIFICATIONS", "android.permission.RECEIVE_BOOT_COMPLETED"];
534
+ function androidAppPermissions(app) {
535
+ var _ref;
536
+ var _app_imagePicker, _app_audio, _app_calendar, _app_photoLibrary, _app_photoLibrary1, _app_calendar1, _app_audio1, _app_android;
537
+ var permissions = /* @__PURE__ */ new Map();
538
+ var add = function add2(name2, maxSdkVersion) {
539
+ var fullName = name2.includes(".") ? name2 : `android.permission.${name2}`;
540
+ if (!permissions.has(fullName) || maxSdkVersion === void 0) {
541
+ permissions.set(fullName, maxSdkVersion);
542
+ }
543
+ };
544
+ if (((_app_imagePicker = app.imagePicker) === null || _app_imagePicker === void 0 ? void 0 : _app_imagePicker.camera) !== void 0) add("CAMERA");
545
+ if (app.speech !== void 0 || ((_app_audio = app.audio) === null || _app_audio === void 0 ? void 0 : _app_audio.microphone) !== void 0) add("RECORD_AUDIO");
546
+ if (app.location !== void 0) {
547
+ add("ACCESS_COARSE_LOCATION");
548
+ add("ACCESS_FINE_LOCATION");
549
+ if (app.location.background) add("ACCESS_BACKGROUND_LOCATION");
550
+ }
551
+ if (app.pedometer !== void 0) add("ACTIVITY_RECOGNITION");
552
+ if (app.brightness === true) add("WRITE_SETTINGS");
553
+ if (app.notifications !== void 0 || ((_app_calendar = app.calendar) === null || _app_calendar === void 0 ? void 0 : _app_calendar.remindersUsage) !== void 0) {
554
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
555
+ try {
556
+ for (var _iterator = androidNotificationPermissions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
557
+ var name = _step.value;
558
+ add(name);
559
+ }
560
+ } catch (err) {
561
+ _didIteratorError = true;
562
+ _iteratorError = err;
563
+ } finally {
564
+ try {
565
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
566
+ _iterator.return();
567
+ }
568
+ } finally {
569
+ if (_didIteratorError) {
570
+ throw _iteratorError;
571
+ }
572
+ }
573
+ }
574
+ }
575
+ if (((_app_photoLibrary = app.photoLibrary) === null || _app_photoLibrary === void 0 ? void 0 : _app_photoLibrary.readWrite) !== void 0) {
576
+ add("READ_MEDIA_IMAGES");
577
+ add("READ_MEDIA_VIDEO");
578
+ add("READ_EXTERNAL_STORAGE", 32);
579
+ }
580
+ if (((_app_photoLibrary1 = app.photoLibrary) === null || _app_photoLibrary1 === void 0 ? void 0 : _app_photoLibrary1.addOnly) !== void 0) add("WRITE_EXTERNAL_STORAGE", 28);
581
+ if (app.contacts !== void 0) {
582
+ add("READ_CONTACTS");
583
+ add("WRITE_CONTACTS");
584
+ }
585
+ if (((_app_calendar1 = app.calendar) === null || _app_calendar1 === void 0 ? void 0 : _app_calendar1.usage) !== void 0) {
586
+ add("READ_CALENDAR");
587
+ add("WRITE_CALENDAR");
588
+ }
589
+ if (((_app_audio1 = app.audio) === null || _app_audio1 === void 0 ? void 0 : _app_audio1.background) === true) {
590
+ add("FOREGROUND_SERVICE");
591
+ add("FOREGROUND_SERVICE_MEDIA_PLAYBACK");
592
+ }
593
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
594
+ try {
595
+ for (var _iterator1 = ((_ref = (_app_android = app.android) === null || _app_android === void 0 ? void 0 : _app_android.permissions) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
596
+ var name1 = _step1.value;
597
+ add(name1);
598
+ }
599
+ } catch (err) {
600
+ _didIteratorError1 = true;
601
+ _iteratorError1 = err;
602
+ } finally {
603
+ try {
604
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
605
+ _iterator1.return();
606
+ }
607
+ } finally {
608
+ if (_didIteratorError1) {
609
+ throw _iteratorError1;
610
+ }
611
+ }
612
+ }
613
+ return permissions;
614
+ }
531
615
  function expoClientFromNativeApp(app) {
532
616
  var _app_displayName, _app_userInterfaceStyle;
533
617
  var _app_icon, _app_fonts;
@@ -568,7 +652,17 @@ function expoClientFromNativeApp(app) {
568
652
  android: app.android && {
569
653
  package: app.android.applicationId,
570
654
  versionCode: app.android.versionCode,
571
- permissions: app.android.permissions,
655
+ permissions: [...androidAppPermissions(app)].filter(function(param) {
656
+ var [name, maxSdk] = param;
657
+ var _ref;
658
+ var _app_android;
659
+ return maxSdk === void 0 && !((_ref = (_app_android = app.android) === null || _app_android === void 0 ? void 0 : _app_android.blockedPermissions) !== null && _ref !== void 0 ? _ref : []).some(function(blocked) {
660
+ return (blocked.includes(".") ? blocked : `android.permission.${blocked}`) === name;
661
+ });
662
+ }).map(function(param) {
663
+ var [name] = param;
664
+ return name;
665
+ }),
572
666
  blockedPermissions: app.android.blockedPermissions,
573
667
  googleServicesFile: app.android.googleServicesFile,
574
668
  adaptiveIcon: app.android.adaptiveIcon && {
@@ -1 +1 @@
1
- {"version":3,"file":"nativeAppManifest.native.js","names":[],"sources":["cjs/nativeAppManifest.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar nativeAppManifest_exports = {};\n__export(nativeAppManifest_exports, {\n androidIconSuffix: () => androidIconSuffix,\n appIconPreviewResources: () => appIconPreviewResources,\n expoClientFromNativeApp: () => expoClientFromNativeApp,\n iosUsageDescriptions: () => iosUsageDescriptions,\n nativeAppDefines: () => nativeAppDefines,\n validateNativeApp: () => validateNativeApp\n});\nmodule.exports = __toCommonJS(nativeAppManifest_exports);\nfunction androidIconSuffix(name) {\n return name.replace(/([a-z\\d])([A-Z])/g, \"$1_$2\").toLowerCase();\n}\nfunction appIconPreviewResources(name) {\n return {\n ios: `AppIconPreview${name !== null && name !== void 0 ? name : \"Primary\"}`,\n android: `app_icon_preview_${name === void 0 ? \"primary\" : androidIconSuffix(name)}`\n };\n}\nfunction nativeAppDefines(app) {\n var defines = {};\n if (app === null || app === void 0 ? void 0 : app.splash) {\n var _app_splash_width;\n defines[\"process.env.ONE_LAUNCH_SCREEN\"] = JSON.stringify(JSON.stringify({\n width: (_app_splash_width = app.splash.width) !== null && _app_splash_width !== void 0 ? _app_splash_width : 200,\n cover: app.splash.resizeMode === \"cover\",\n backgroundImage: app.splash.backgroundImage !== void 0\n }));\n }\n if (app === null || app === void 0 ? void 0 : app.alternateIcons) {\n defines[\"process.env.ONE_APP_ICONS\"] = JSON.stringify(JSON.stringify([\n void 0,\n ...Object.keys(app.alternateIcons)\n ].map(function(name) {\n return {\n name,\n ...appIconPreviewResources(name)\n };\n })));\n }\n return defines;\n}\nvar TARGET_NAME = /^[A-Za-z][A-Za-z0-9_]*$/;\nvar SCHEME = /^[a-z][a-z0-9+.-]*$/i;\nvar VERSION = /^\\d+\\.\\d+\\.\\d+/;\nvar BUILD_NUMBER = /^[A-Za-z0-9.]+$/;\nvar REVERSE_DNS = /^[A-Za-z][A-Za-z0-9-]*(\\.[A-Za-z][A-Za-z0-9-]*)+$/;\nvar DEPLOYMENT_TARGET = /^\\d+\\.\\d+$/;\nvar HEX_COLOR = /^#[\\da-f]{6}$/i;\nvar FONT_FILE = /\\.(ttf|otf)$/i;\nvar ORIENTATIONS = [\n \"portrait\",\n \"landscape\",\n \"default\"\n];\nvar USER_INTERFACE_STYLES = [\n \"light\",\n \"dark\",\n \"automatic\"\n];\nfunction fail(message) {\n throw new Error(`[one] invalid native.app: ${message}`);\n}\nfunction validateNativeApp(manifest, platform) {\n var _manifest_alternateIcons;\n var _manifest_ios, _manifest_ios1, _manifest_ios2, _manifest_splash, _manifest_splash_dark, _manifest_splash1, _manifest_splash2, _manifest_imagePicker, _manifest_imagePicker1, _manifest_photoLibrary, _manifest_photoLibrary1, _manifest_location, _manifest_location1, _manifest_ios3, _manifest_speech, _manifest_pedometer, _manifest_ios4;\n if (!manifest || typeof manifest !== \"object\") fail(\"manifest must be an object\");\n if (!manifest.name || typeof manifest.name !== \"string\") fail(\"name is required\");\n if (!TARGET_NAME.test(manifest.name)) {\n fail(`name \"${manifest.name}\" must start with a letter and contain only letters, digits, and underscore`);\n }\n var schemes = manifest.scheme === void 0 ? [] : Array.isArray(manifest.scheme) ? manifest.scheme : [\n manifest.scheme\n ];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = schemes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var scheme = _step.value;\n if (typeof scheme !== \"string\" || !SCHEME.test(scheme)) {\n fail(`scheme \"${scheme}\" must be a valid uri scheme`);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (manifest.orientation !== void 0 && !ORIENTATIONS.includes(manifest.orientation)) {\n fail(`orientation \"${manifest.orientation}\" must be ${ORIENTATIONS.join(\", \")}`);\n }\n if (manifest.userInterfaceStyle !== void 0 && !USER_INTERFACE_STYLES.includes(manifest.userInterfaceStyle)) {\n fail(`userInterfaceStyle \"${manifest.userInterfaceStyle}\" must be ${USER_INTERFACE_STYLES.join(\", \")}`);\n }\n if (manifest.fonts !== void 0) {\n var names = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = manifest.fonts[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var font = _step1.value;\n var _font_split_pop;\n if (typeof font !== \"string\" || !FONT_FILE.test(font)) {\n fail(`fonts entry \"${font}\" must be a .ttf or .otf file path`);\n }\n var name = (_font_split_pop = font.split(\"/\").pop()) !== null && _font_split_pop !== void 0 ? _font_split_pop : font;\n if (names.has(name)) fail(`fonts lists ${name} twice`);\n names.add(name);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n if (manifest.version !== void 0 && !VERSION.test(manifest.version)) {\n fail(`version \"${manifest.version}\" must start with major.minor.patch`);\n }\n if (manifest.icon !== void 0 && (!manifest.icon.source || !HEX_COLOR.test(manifest.icon.backgroundColor))) {\n fail(\"icon requires source and a six-digit hex backgroundColor\");\n }\n if (((_manifest_ios = manifest.ios) === null || _manifest_ios === void 0 ? void 0 : _manifest_ios.alternateIcons) !== void 0) {\n fail(\"ios.alternateIcons moved to alternateIcons, which android uses too\");\n }\n var alternates = Object.entries((_manifest_alternateIcons = manifest.alternateIcons) !== null && _manifest_alternateIcons !== void 0 ? _manifest_alternateIcons : {});\n if (manifest.alternateIcons !== void 0) {\n if (!manifest.icon) fail(\"alternateIcons requires a primary icon\");\n if (alternates.length === 0) fail(\"alternateIcons requires at least one icon\");\n var lowered = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = alternates[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var [name1, icon] = _step2.value;\n if (name1 === \"AppIcon\" || name1 === \"Primary\" || !TARGET_NAME.test(name1)) {\n fail(`alternateIcons name \"${name1}\" must be an identifier other than AppIcon or Primary`);\n }\n if (lowered.has(name1.toLowerCase())) {\n fail(`alternateIcons name \"${name1}\" repeats another name apart from its case`);\n }\n lowered.add(name1.toLowerCase());\n if (!(icon === null || icon === void 0 ? void 0 : icon.source) || !HEX_COLOR.test(icon.backgroundColor)) {\n fail(`alternateIcons.${name1} requires source and a six-digit hex backgroundColor`);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n var icons = [\n [\n \"icon\",\n manifest.icon\n ],\n ...alternates.map(function(param) {\n var [name2, alternate] = param;\n return [\n `alternateIcons.${name2}`,\n alternate\n ];\n })\n ];\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = icons[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var [label, icon1] = _step3.value;\n for (var _i = 0, _iter = [\n \"dark\",\n \"tinted\"\n ]; _i < _iter.length; _i++) {\n var appearance = _iter[_i];\n var variant = icon1 === null || icon1 === void 0 ? void 0 : icon1[appearance];\n if (variant === void 0) continue;\n if (typeof variant !== \"object\" || variant === null || variant.source !== void 0 && !variant.source || variant.backgroundColor !== void 0 && !HEX_COLOR.test(variant.backgroundColor)) {\n fail(`${label}.${appearance} takes an optional source and six-digit hex backgroundColor`);\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n if (((_manifest_ios1 = manifest.ios) === null || _manifest_ios1 === void 0 ? void 0 : _manifest_ios1.backgroundTasks) !== void 0) {\n var _tasks_refresh, _tasks_processing;\n var tasks = manifest.ios.backgroundTasks;\n if (!tasks || tasks.refresh !== void 0 && !Array.isArray(tasks.refresh) || tasks.processing !== void 0 && !Array.isArray(tasks.processing)) {\n fail(\"ios.backgroundTasks refresh and processing must be arrays of identifiers\");\n }\n var identifiers = [\n ...(_tasks_refresh = tasks.refresh) !== null && _tasks_refresh !== void 0 ? _tasks_refresh : [],\n ...(_tasks_processing = tasks.processing) !== null && _tasks_processing !== void 0 ? _tasks_processing : []\n ];\n if (!identifiers.length || new Set(identifiers).size !== identifiers.length) {\n fail(\"ios.backgroundTasks needs distinct refresh or processing identifiers\");\n }\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = identifiers[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var identifier = _step4.value;\n if (typeof identifier !== \"string\" || !REVERSE_DNS.test(identifier)) {\n fail(`ios.backgroundTasks identifier \"${identifier}\" must use reverse DNS notation`);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n if (((_manifest_ios2 = manifest.ios) === null || _manifest_ios2 === void 0 ? void 0 : _manifest_ios2.appIntents) !== void 0) {\n var _manifest_ios_appIntents;\n var actions = (_manifest_ios_appIntents = manifest.ios.appIntents) === null || _manifest_ios_appIntents === void 0 ? void 0 : _manifest_ios_appIntents.actions;\n if (!Array.isArray(actions) || actions.length === 0) {\n fail(\"ios.appIntents.actions must be a non-empty array\");\n }\n var ids = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = void 0;\n try {\n for (var _iterator5 = actions[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var action = _step5.value;\n if (!action || typeof action !== \"object\" || typeof action.id !== \"string\" || !action.id.trim() || typeof action.title !== \"string\" || !action.title.trim() || action.textParameterTitle !== void 0 && (typeof action.textParameterTitle !== \"string\" || !action.textParameterTitle.trim()) || typeof action.shortcutPhrase !== \"string\" || action.shortcutPhrase.split(\"{app}\").length !== 2 || !action.shortcutPhrase.replace(\"{app}\", \"\").trim()) {\n fail(\"ios.appIntents actions need unique non-empty id/title, optional textParameterTitle, and a shortcutPhrase with one {app}\");\n }\n if (ids.has(action.id)) fail(`ios.appIntents action \"${action.id}\" is duplicated`);\n ids.add(action.id);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n if (manifest.splash !== void 0 && (!manifest.splash.source || !HEX_COLOR.test(manifest.splash.backgroundColor) || manifest.splash.width !== void 0 && (!Number.isFinite(manifest.splash.width) || manifest.splash.width < 1 || manifest.splash.width > 288))) {\n fail(\"splash requires source, a six-digit hex backgroundColor, and width from 1 to 288\");\n }\n if (((_manifest_splash = manifest.splash) === null || _manifest_splash === void 0 ? void 0 : _manifest_splash.dark) !== void 0 && !HEX_COLOR.test(manifest.splash.dark.backgroundColor)) {\n fail(\"splash.dark requires a six-digit hex backgroundColor\");\n }\n if (((_manifest_splash1 = manifest.splash) === null || _manifest_splash1 === void 0 ? void 0 : (_manifest_splash_dark = _manifest_splash1.dark) === null || _manifest_splash_dark === void 0 ? void 0 : _manifest_splash_dark.backgroundImage) !== void 0 && manifest.splash.backgroundImage === void 0) {\n fail(\"splash.dark.backgroundImage needs splash.backgroundImage for the light launch\");\n }\n if (((_manifest_splash2 = manifest.splash) === null || _manifest_splash2 === void 0 ? void 0 : _manifest_splash2.resizeMode) !== void 0 && manifest.splash.resizeMode !== \"contain\" && manifest.splash.resizeMode !== \"cover\") {\n fail(`splash.resizeMode \"${manifest.splash.resizeMode}\" must be contain or cover`);\n }\n if (((_manifest_imagePicker = manifest.imagePicker) === null || _manifest_imagePicker === void 0 ? void 0 : _manifest_imagePicker.camera) !== void 0 && (typeof manifest.imagePicker.camera !== \"string\" || manifest.imagePicker.camera.trim() === \"\")) {\n fail(\"imagePicker.camera must be a non-empty string\");\n }\n if (((_manifest_imagePicker1 = manifest.imagePicker) === null || _manifest_imagePicker1 === void 0 ? void 0 : _manifest_imagePicker1.microphone) !== void 0 && (typeof manifest.imagePicker.microphone !== \"string\" || manifest.imagePicker.microphone.trim() === \"\")) {\n fail(\"imagePicker.microphone must be a non-empty string\");\n }\n if (manifest.photoLibrary !== void 0 && (!manifest.photoLibrary || manifest.photoLibrary.addOnly === void 0 && manifest.photoLibrary.readWrite === void 0)) {\n fail(\"photoLibrary must configure addOnly or readWrite\");\n }\n if (((_manifest_photoLibrary = manifest.photoLibrary) === null || _manifest_photoLibrary === void 0 ? void 0 : _manifest_photoLibrary.addOnly) !== void 0 && (typeof manifest.photoLibrary.addOnly !== \"string\" || manifest.photoLibrary.addOnly.trim() === \"\")) {\n fail(\"photoLibrary.addOnly must be a non-empty string\");\n }\n if (((_manifest_photoLibrary1 = manifest.photoLibrary) === null || _manifest_photoLibrary1 === void 0 ? void 0 : _manifest_photoLibrary1.readWrite) !== void 0 && (typeof manifest.photoLibrary.readWrite !== \"string\" || manifest.photoLibrary.readWrite.trim() === \"\")) {\n fail(\"photoLibrary.readWrite must be a non-empty string\");\n }\n if (manifest.contacts !== void 0 && (!manifest.contacts || typeof manifest.contacts.usage !== \"string\" || manifest.contacts.usage.trim() === \"\")) {\n fail(\"contacts.usage must be a non-empty string\");\n }\n if (manifest.calendar !== void 0) {\n if (!manifest.calendar || manifest.calendar.usage === void 0 && manifest.calendar.remindersUsage === void 0) {\n fail(\"calendar.usage or calendar.remindersUsage must be a non-empty string\");\n }\n if (manifest.calendar.usage !== void 0 && (typeof manifest.calendar.usage !== \"string\" || manifest.calendar.usage.trim() === \"\")) {\n fail(\"calendar.usage must be a non-empty string\");\n }\n if (manifest.calendar.remindersUsage !== void 0 && (typeof manifest.calendar.remindersUsage !== \"string\" || manifest.calendar.remindersUsage.trim() === \"\")) {\n fail(\"calendar.remindersUsage must be a non-empty string\");\n }\n }\n if (manifest.location !== void 0 && (!manifest.location || typeof manifest.location.whenInUse !== \"string\" || manifest.location.whenInUse.trim() === \"\")) {\n fail(\"location.whenInUse must be a non-empty string\");\n }\n if (((_manifest_location = manifest.location) === null || _manifest_location === void 0 ? void 0 : _manifest_location.background) !== void 0 && typeof manifest.location.background !== \"boolean\") {\n fail(\"location.background must be a boolean\");\n }\n if (((_manifest_location1 = manifest.location) === null || _manifest_location1 === void 0 ? void 0 : _manifest_location1.alwaysAndWhenInUse) !== void 0 && (typeof manifest.location.alwaysAndWhenInUse !== \"string\" || manifest.location.alwaysAndWhenInUse.trim() === \"\")) {\n fail(\"location.alwaysAndWhenInUse must be a non-empty string\");\n }\n if (manifest.audio !== void 0) {\n if (!manifest.audio || typeof manifest.audio !== \"object\") {\n fail(\"audio must configure microphone or background playback\");\n }\n if (manifest.audio.microphone !== void 0 && (typeof manifest.audio.microphone !== \"string\" || manifest.audio.microphone.trim() === \"\")) {\n fail(\"audio.microphone must be a non-empty string\");\n }\n if (manifest.audio.background !== void 0 && typeof manifest.audio.background !== \"boolean\") {\n fail(\"audio.background must be a boolean\");\n }\n if (manifest.audio.microphone === void 0 && manifest.audio.background !== true) {\n fail(\"audio must configure microphone or background playback\");\n }\n }\n if (((_manifest_ios3 = manifest.ios) === null || _manifest_ios3 === void 0 ? void 0 : _manifest_ios3.faceIdUsageDescription) !== void 0 && (typeof manifest.ios.faceIdUsageDescription !== \"string\" || manifest.ios.faceIdUsageDescription.trim() === \"\")) {\n fail(\"ios.faceIdUsageDescription must be a non-empty string\");\n }\n if (manifest.speech !== void 0 && (typeof ((_manifest_speech = manifest.speech) === null || _manifest_speech === void 0 ? void 0 : _manifest_speech.recognition) !== \"string\" || manifest.speech.recognition.trim() === \"\" || typeof manifest.speech.microphone !== \"string\" || manifest.speech.microphone.trim() === \"\")) {\n fail(\"speech.recognition and speech.microphone must be non-empty strings\");\n }\n if (manifest.brightness !== void 0 && typeof manifest.brightness !== \"boolean\") {\n fail(\"brightness must be a boolean\");\n }\n if (manifest.pedometer !== void 0 && (typeof ((_manifest_pedometer = manifest.pedometer) === null || _manifest_pedometer === void 0 ? void 0 : _manifest_pedometer.usage) !== \"string\" || manifest.pedometer.usage.trim() === \"\")) {\n fail(\"pedometer.usage must be a non-empty string\");\n }\n if (manifest.notifications !== void 0) {\n if (typeof manifest.notifications !== \"object\" || manifest.notifications.push !== void 0 && typeof manifest.notifications.push !== \"boolean\") {\n fail(\"notifications.push must be a boolean\");\n }\n var aps = manifest.notifications.apsEnvironment;\n if (aps !== void 0 && aps !== \"development\" && aps !== \"production\") {\n fail(`notifications.apsEnvironment \"${aps}\" must be development or production`);\n }\n if (aps !== void 0 && !manifest.notifications.push) {\n fail(\"notifications.apsEnvironment needs notifications.push\");\n }\n }\n var accent = (_manifest_ios4 = manifest.ios) === null || _manifest_ios4 === void 0 ? void 0 : _manifest_ios4.accentColor;\n if (accent !== void 0 && (!HEX_COLOR.test(accent.light) || accent.dark !== void 0 && !HEX_COLOR.test(accent.dark))) {\n fail(\"ios.accentColor light and dark must be six-digit hex colors\");\n }\n if (manifest.pictureInPicture !== void 0 && typeof manifest.pictureInPicture !== \"boolean\") {\n fail(\"pictureInPicture must be a boolean\");\n }\n if (manifest.updates !== void 0) {\n if (typeof manifest.updates.runtimeVersion !== \"string\" || manifest.updates.runtimeVersion.trim() === \"\") {\n fail(\"updates.runtimeVersion must be a non-empty string\");\n }\n if (manifest.updates.url !== void 0 && (typeof manifest.updates.url !== \"string\" || manifest.updates.url.trim() === \"\")) {\n fail(\"updates.url must be a non-empty string\");\n }\n }\n if (!platform || platform === \"ios\") {\n var _manifest_ios5;\n if (!((_manifest_ios5 = manifest.ios) === null || _manifest_ios5 === void 0 ? void 0 : _manifest_ios5.bundleId) || !REVERSE_DNS.test(manifest.ios.bundleId)) {\n var _manifest_ios6;\n fail(`ios.bundleId \"${(_manifest_ios6 = manifest.ios) === null || _manifest_ios6 === void 0 ? void 0 : _manifest_ios6.bundleId}\" must be reverse-dns`);\n }\n if (manifest.ios.deploymentTarget !== void 0 && !DEPLOYMENT_TARGET.test(manifest.ios.deploymentTarget)) {\n fail(`ios.deploymentTarget \"${manifest.ios.deploymentTarget}\" must look like \"17.0\"`);\n }\n if (manifest.ios.buildNumber !== void 0 && !BUILD_NUMBER.test(manifest.ios.buildNumber)) {\n fail(`ios.buildNumber \"${manifest.ios.buildNumber}\" must contain only letters, digits, and dots`);\n }\n var widgets = manifest.ios.widgets;\n if (widgets) {\n var _widgets_displayName, _widgets_description;\n if (!manifest.ios.deploymentTarget || Number(manifest.ios.deploymentTarget) < 17) {\n fail(\"ios.widgets requires ios.deploymentTarget of 17.0 or newer\");\n }\n if (!/^group\\.[A-Za-z][A-Za-z0-9-]*(\\.[A-Za-z][A-Za-z0-9-]*)+$/.test(widgets.appGroup)) {\n fail(\"ios.widgets.appGroup must be a reverse-dns App Group beginning with group.\");\n }\n if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(widgets.kind)) {\n fail(\"ios.widgets.kind must be a non-empty WidgetKit kind\");\n }\n if (!((_widgets_displayName = widgets.displayName) === null || _widgets_displayName === void 0 ? void 0 : _widgets_displayName.trim()) || !((_widgets_description = widgets.description) === null || _widgets_description === void 0 ? void 0 : _widgets_description.trim())) {\n fail(\"ios.widgets.displayName and description must be non-empty strings\");\n }\n if (widgets.pushNotifications !== void 0 && typeof widgets.pushNotifications !== \"boolean\") {\n fail(\"ios.widgets.pushNotifications must be a boolean\");\n }\n }\n }\n if (!platform || platform === \"android\") {\n var _manifest_android_appLinks;\n var _manifest_android;\n if (!((_manifest_android = manifest.android) === null || _manifest_android === void 0 ? void 0 : _manifest_android.applicationId) || !REVERSE_DNS.test(manifest.android.applicationId)) {\n var _manifest_android1;\n fail(`android.applicationId \"${(_manifest_android1 = manifest.android) === null || _manifest_android1 === void 0 ? void 0 : _manifest_android1.applicationId}\" must be reverse-dns`);\n }\n if (manifest.android.minSdk !== void 0 && (!Number.isInteger(manifest.android.minSdk) || manifest.android.minSdk < 21 || manifest.android.minSdk > 36)) {\n fail(`android.minSdk \"${manifest.android.minSdk}\" must be an integer from 21 to 36`);\n }\n if (manifest.android.versionCode !== void 0 && (!Number.isInteger(manifest.android.versionCode) || manifest.android.versionCode < 1)) {\n fail(`android.versionCode \"${manifest.android.versionCode}\" must be a positive integer`);\n }\n for (var _i1 = 0, _iter1 = [\n \"targetSdk\",\n \"compileSdk\"\n ]; _i1 < _iter1.length; _i1++) {\n var key = _iter1[_i1];\n var value = manifest.android[key];\n if (value !== void 0 && (!Number.isInteger(value) || value < 21)) {\n fail(`android.${key} \"${value}\" must be an api level integer`);\n }\n }\n if (manifest.android.shrinkResources && !manifest.android.minify) {\n fail(\"android.shrinkResources needs android.minify\");\n }\n var _iteratorNormalCompletion6 = true, _didIteratorError6 = false, _iteratorError6 = void 0;\n try {\n for (var _iterator6 = ((_manifest_android_appLinks = manifest.android.appLinks) !== null && _manifest_android_appLinks !== void 0 ? _manifest_android_appLinks : [])[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var link = _step6.value;\n if (!link.host || !REVERSE_DNS.test(link.host)) {\n fail(`android.appLinks host \"${link.host}\" must be a domain`);\n }\n if (link.pathPrefix !== void 0 && !link.pathPrefix.startsWith(\"/\")) {\n fail(`android.appLinks pathPrefix \"${link.pathPrefix}\" must start with /`);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return != null) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n var adaptiveIcon = manifest.android.adaptiveIcon;\n if (adaptiveIcon !== void 0 && (!adaptiveIcon.foreground || adaptiveIcon.backgroundColor !== void 0 && !HEX_COLOR.test(adaptiveIcon.backgroundColor))) {\n fail(\"android.adaptiveIcon requires foreground, and backgroundColor must be six-digit hex\");\n }\n if (manifest.android.googleMapsApiKey !== void 0 && (typeof manifest.android.googleMapsApiKey !== \"string\" || manifest.android.googleMapsApiKey.trim() === \"\")) {\n fail(\"android.googleMapsApiKey must be a non-empty string\");\n }\n }\n return manifest;\n}\nfunction iosUsageDescriptions(app) {\n var _app_imagePicker, _app_imagePicker1, _app_ios, _app_audio;\n var usage = /* @__PURE__ */ new Map();\n if (((_app_imagePicker = app.imagePicker) === null || _app_imagePicker === void 0 ? void 0 : _app_imagePicker.camera) !== void 0) {\n usage.set(\"NSCameraUsageDescription\", app.imagePicker.camera);\n }\n if (((_app_imagePicker1 = app.imagePicker) === null || _app_imagePicker1 === void 0 ? void 0 : _app_imagePicker1.microphone) !== void 0) {\n usage.set(\"NSMicrophoneUsageDescription\", app.imagePicker.microphone);\n }\n if (app.photoLibrary !== void 0) {\n if (app.photoLibrary.addOnly !== void 0) {\n usage.set(\"NSPhotoLibraryAddUsageDescription\", app.photoLibrary.addOnly);\n }\n if (app.photoLibrary.readWrite !== void 0) {\n usage.set(\"NSPhotoLibraryUsageDescription\", app.photoLibrary.readWrite);\n }\n }\n if (app.contacts !== void 0) {\n usage.set(\"NSContactsUsageDescription\", app.contacts.usage);\n }\n if (app.calendar !== void 0) {\n if (app.calendar.usage !== void 0) {\n usage.set(\"NSCalendarsFullAccessUsageDescription\", app.calendar.usage);\n }\n if (app.calendar.remindersUsage !== void 0) {\n usage.set(\"NSRemindersFullAccessUsageDescription\", app.calendar.remindersUsage);\n }\n }\n if (app.location !== void 0) {\n usage.set(\"NSLocationWhenInUseUsageDescription\", app.location.whenInUse);\n if (app.location.alwaysAndWhenInUse !== void 0) {\n usage.set(\"NSLocationAlwaysAndWhenInUseUsageDescription\", app.location.alwaysAndWhenInUse);\n }\n }\n if (app.pedometer !== void 0) {\n usage.set(\"NSMotionUsageDescription\", app.pedometer.usage);\n }\n if (((_app_ios = app.ios) === null || _app_ios === void 0 ? void 0 : _app_ios.faceIdUsageDescription) !== void 0) {\n usage.set(\"NSFaceIDUsageDescription\", app.ios.faceIdUsageDescription);\n }\n if (app.speech !== void 0) {\n usage.set(\"NSSpeechRecognitionUsageDescription\", app.speech.recognition);\n usage.set(\"NSMicrophoneUsageDescription\", app.speech.microphone);\n }\n if (((_app_audio = app.audio) === null || _app_audio === void 0 ? void 0 : _app_audio.microphone) !== void 0) {\n usage.set(\"NSMicrophoneUsageDescription\", app.audio.microphone);\n }\n return usage;\n}\nfunction expoClientFromNativeApp(app) {\n var _app_displayName, _app_userInterfaceStyle;\n var _app_icon, _app_fonts;\n return {\n name: (_app_displayName = app.displayName) !== null && _app_displayName !== void 0 ? _app_displayName : app.name,\n slug: app.name,\n scheme: app.scheme,\n version: app.version,\n orientation: app.orientation,\n // an expo config without the key means light, while prebuild writes no\n // UIUserInterfaceStyle for an unset style and the app follows the system,\n // so the manifest states the style the built app has.\n userInterfaceStyle: (_app_userInterfaceStyle = app.userInterfaceStyle) !== null && _app_userInterfaceStyle !== void 0 ? _app_userInterfaceStyle : \"automatic\",\n icon: (_app_icon = app.icon) === null || _app_icon === void 0 ? void 0 : _app_icon.source,\n splash: app.splash && {\n image: app.splash.source,\n backgroundImage: app.splash.backgroundImage,\n backgroundColor: app.splash.backgroundColor,\n imageWidth: app.splash.width,\n resizeMode: app.splash.resizeMode,\n dark: app.splash.dark && {\n image: app.splash.dark.source,\n backgroundImage: app.splash.dark.backgroundImage,\n backgroundColor: app.splash.dark.backgroundColor\n }\n },\n plugins: ((_app_fonts = app.fonts) === null || _app_fonts === void 0 ? void 0 : _app_fonts.length) ? [\n [\n \"expo-font\",\n {\n fonts: app.fonts\n }\n ]\n ] : void 0,\n ios: app.ios && {\n bundleIdentifier: app.ios.bundleId,\n buildNumber: app.ios.buildNumber,\n supportsTablet: app.ios.tablet,\n associatedDomains: app.ios.associatedDomains,\n usesAppleSignIn: app.ios.usesAppleSignIn,\n googleServicesFile: app.ios.googleServicesFile,\n // a live preview has no Info.plist, so the purpose strings the built\n // app carries ride in the manifest's infoPlist\n infoPlist: {\n ...app.ios.infoPlist,\n ...Object.fromEntries(iosUsageDescriptions(app))\n },\n entitlements: app.ios.entitlements\n },\n android: app.android && {\n package: app.android.applicationId,\n versionCode: app.android.versionCode,\n permissions: app.android.permissions,\n blockedPermissions: app.android.blockedPermissions,\n googleServicesFile: app.android.googleServicesFile,\n adaptiveIcon: app.android.adaptiveIcon && {\n foregroundImage: app.android.adaptiveIcon.foreground,\n backgroundImage: app.android.adaptiveIcon.background,\n backgroundColor: app.android.adaptiveIcon.backgroundColor,\n monochromeImage: app.android.adaptiveIcon.monochrome\n }\n }\n };\n}\n//# sourceMappingURL=nativeAppManifest.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"nativeAppManifest.native.js","names":[],"sources":["cjs/nativeAppManifest.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar nativeAppManifest_exports = {};\n__export(nativeAppManifest_exports, {\n androidAppPermissions: () => androidAppPermissions,\n androidIconSuffix: () => androidIconSuffix,\n androidNotificationPermissions: () => androidNotificationPermissions,\n appIconPreviewResources: () => appIconPreviewResources,\n expoClientFromNativeApp: () => expoClientFromNativeApp,\n iosUsageDescriptions: () => iosUsageDescriptions,\n nativeAppDefines: () => nativeAppDefines,\n validateNativeApp: () => validateNativeApp\n});\nmodule.exports = __toCommonJS(nativeAppManifest_exports);\nfunction androidIconSuffix(name) {\n return name.replace(/([a-z\\d])([A-Z])/g, \"$1_$2\").toLowerCase();\n}\nfunction appIconPreviewResources(name) {\n return {\n ios: `AppIconPreview${name !== null && name !== void 0 ? name : \"Primary\"}`,\n android: `app_icon_preview_${name === void 0 ? \"primary\" : androidIconSuffix(name)}`\n };\n}\nfunction nativeAppDefines(app) {\n var defines = {};\n if (app === null || app === void 0 ? void 0 : app.splash) {\n var _app_splash_width;\n defines[\"process.env.ONE_LAUNCH_SCREEN\"] = JSON.stringify(JSON.stringify({\n width: (_app_splash_width = app.splash.width) !== null && _app_splash_width !== void 0 ? _app_splash_width : 200,\n cover: app.splash.resizeMode === \"cover\",\n backgroundImage: app.splash.backgroundImage !== void 0\n }));\n }\n if (app === null || app === void 0 ? void 0 : app.alternateIcons) {\n defines[\"process.env.ONE_APP_ICONS\"] = JSON.stringify(JSON.stringify([\n void 0,\n ...Object.keys(app.alternateIcons)\n ].map(function(name) {\n return {\n name,\n ...appIconPreviewResources(name)\n };\n })));\n }\n return defines;\n}\nvar TARGET_NAME = /^[A-Za-z][A-Za-z0-9_]*$/;\nvar SCHEME = /^[a-z][a-z0-9+.-]*$/i;\nvar VERSION = /^\\d+\\.\\d+\\.\\d+/;\nvar BUILD_NUMBER = /^[A-Za-z0-9.]+$/;\nvar REVERSE_DNS = /^[A-Za-z][A-Za-z0-9-]*(\\.[A-Za-z][A-Za-z0-9-]*)+$/;\nvar DEPLOYMENT_TARGET = /^\\d+\\.\\d+$/;\nvar HEX_COLOR = /^#[\\da-f]{6}$/i;\nvar FONT_FILE = /\\.(ttf|otf)$/i;\nvar ORIENTATIONS = [\n \"portrait\",\n \"landscape\",\n \"default\"\n];\nvar USER_INTERFACE_STYLES = [\n \"light\",\n \"dark\",\n \"automatic\"\n];\nfunction fail(message) {\n throw new Error(`[one] invalid native.app: ${message}`);\n}\nfunction validateNativeApp(manifest, platform) {\n var _manifest_alternateIcons;\n var _manifest_ios, _manifest_ios1, _manifest_ios2, _manifest_splash, _manifest_splash_dark, _manifest_splash1, _manifest_splash2, _manifest_imagePicker, _manifest_imagePicker1, _manifest_photoLibrary, _manifest_photoLibrary1, _manifest_location, _manifest_location1, _manifest_ios3, _manifest_speech, _manifest_pedometer, _manifest_ios4;\n if (!manifest || typeof manifest !== \"object\") fail(\"manifest must be an object\");\n if (!manifest.name || typeof manifest.name !== \"string\") fail(\"name is required\");\n if (!TARGET_NAME.test(manifest.name)) {\n fail(`name \"${manifest.name}\" must start with a letter and contain only letters, digits, and underscore`);\n }\n var schemes = manifest.scheme === void 0 ? [] : Array.isArray(manifest.scheme) ? manifest.scheme : [\n manifest.scheme\n ];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = schemes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var scheme = _step.value;\n if (typeof scheme !== \"string\" || !SCHEME.test(scheme)) {\n fail(`scheme \"${scheme}\" must be a valid uri scheme`);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (manifest.orientation !== void 0 && !ORIENTATIONS.includes(manifest.orientation)) {\n fail(`orientation \"${manifest.orientation}\" must be ${ORIENTATIONS.join(\", \")}`);\n }\n if (manifest.userInterfaceStyle !== void 0 && !USER_INTERFACE_STYLES.includes(manifest.userInterfaceStyle)) {\n fail(`userInterfaceStyle \"${manifest.userInterfaceStyle}\" must be ${USER_INTERFACE_STYLES.join(\", \")}`);\n }\n if (manifest.fonts !== void 0) {\n var names = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = manifest.fonts[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var font = _step1.value;\n var _font_split_pop;\n if (typeof font !== \"string\" || !FONT_FILE.test(font)) {\n fail(`fonts entry \"${font}\" must be a .ttf or .otf file path`);\n }\n var name = (_font_split_pop = font.split(\"/\").pop()) !== null && _font_split_pop !== void 0 ? _font_split_pop : font;\n if (names.has(name)) fail(`fonts lists ${name} twice`);\n names.add(name);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n if (manifest.version !== void 0 && !VERSION.test(manifest.version)) {\n fail(`version \"${manifest.version}\" must start with major.minor.patch`);\n }\n if (manifest.icon !== void 0 && (!manifest.icon.source || !HEX_COLOR.test(manifest.icon.backgroundColor))) {\n fail(\"icon requires source and a six-digit hex backgroundColor\");\n }\n if (((_manifest_ios = manifest.ios) === null || _manifest_ios === void 0 ? void 0 : _manifest_ios.alternateIcons) !== void 0) {\n fail(\"ios.alternateIcons moved to alternateIcons, which android uses too\");\n }\n var alternates = Object.entries((_manifest_alternateIcons = manifest.alternateIcons) !== null && _manifest_alternateIcons !== void 0 ? _manifest_alternateIcons : {});\n if (manifest.alternateIcons !== void 0) {\n if (!manifest.icon) fail(\"alternateIcons requires a primary icon\");\n if (alternates.length === 0) fail(\"alternateIcons requires at least one icon\");\n var lowered = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = alternates[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var [name1, icon] = _step2.value;\n if (name1 === \"AppIcon\" || name1 === \"Primary\" || !TARGET_NAME.test(name1)) {\n fail(`alternateIcons name \"${name1}\" must be an identifier other than AppIcon or Primary`);\n }\n if (lowered.has(name1.toLowerCase())) {\n fail(`alternateIcons name \"${name1}\" repeats another name apart from its case`);\n }\n lowered.add(name1.toLowerCase());\n if (!(icon === null || icon === void 0 ? void 0 : icon.source) || !HEX_COLOR.test(icon.backgroundColor)) {\n fail(`alternateIcons.${name1} requires source and a six-digit hex backgroundColor`);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n var icons = [\n [\n \"icon\",\n manifest.icon\n ],\n ...alternates.map(function(param) {\n var [name2, alternate] = param;\n return [\n `alternateIcons.${name2}`,\n alternate\n ];\n })\n ];\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = icons[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var [label, icon1] = _step3.value;\n for (var _i = 0, _iter = [\n \"dark\",\n \"tinted\"\n ]; _i < _iter.length; _i++) {\n var appearance = _iter[_i];\n var variant = icon1 === null || icon1 === void 0 ? void 0 : icon1[appearance];\n if (variant === void 0) continue;\n if (typeof variant !== \"object\" || variant === null || variant.source !== void 0 && !variant.source || variant.backgroundColor !== void 0 && !HEX_COLOR.test(variant.backgroundColor)) {\n fail(`${label}.${appearance} takes an optional source and six-digit hex backgroundColor`);\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n if (((_manifest_ios1 = manifest.ios) === null || _manifest_ios1 === void 0 ? void 0 : _manifest_ios1.backgroundTasks) !== void 0) {\n var _tasks_refresh, _tasks_processing;\n var tasks = manifest.ios.backgroundTasks;\n if (!tasks || tasks.refresh !== void 0 && !Array.isArray(tasks.refresh) || tasks.processing !== void 0 && !Array.isArray(tasks.processing)) {\n fail(\"ios.backgroundTasks refresh and processing must be arrays of identifiers\");\n }\n var identifiers = [\n ...(_tasks_refresh = tasks.refresh) !== null && _tasks_refresh !== void 0 ? _tasks_refresh : [],\n ...(_tasks_processing = tasks.processing) !== null && _tasks_processing !== void 0 ? _tasks_processing : []\n ];\n if (!identifiers.length || new Set(identifiers).size !== identifiers.length) {\n fail(\"ios.backgroundTasks needs distinct refresh or processing identifiers\");\n }\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = identifiers[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var identifier = _step4.value;\n if (typeof identifier !== \"string\" || !REVERSE_DNS.test(identifier)) {\n fail(`ios.backgroundTasks identifier \"${identifier}\" must use reverse DNS notation`);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n if (((_manifest_ios2 = manifest.ios) === null || _manifest_ios2 === void 0 ? void 0 : _manifest_ios2.appIntents) !== void 0) {\n var _manifest_ios_appIntents;\n var actions = (_manifest_ios_appIntents = manifest.ios.appIntents) === null || _manifest_ios_appIntents === void 0 ? void 0 : _manifest_ios_appIntents.actions;\n if (!Array.isArray(actions) || actions.length === 0) {\n fail(\"ios.appIntents.actions must be a non-empty array\");\n }\n var ids = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = void 0;\n try {\n for (var _iterator5 = actions[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var action = _step5.value;\n if (!action || typeof action !== \"object\" || typeof action.id !== \"string\" || !action.id.trim() || typeof action.title !== \"string\" || !action.title.trim() || action.textParameterTitle !== void 0 && (typeof action.textParameterTitle !== \"string\" || !action.textParameterTitle.trim()) || typeof action.shortcutPhrase !== \"string\" || action.shortcutPhrase.split(\"{app}\").length !== 2 || !action.shortcutPhrase.replace(\"{app}\", \"\").trim()) {\n fail(\"ios.appIntents actions need unique non-empty id/title, optional textParameterTitle, and a shortcutPhrase with one {app}\");\n }\n if (ids.has(action.id)) fail(`ios.appIntents action \"${action.id}\" is duplicated`);\n ids.add(action.id);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n if (manifest.splash !== void 0 && (!manifest.splash.source || !HEX_COLOR.test(manifest.splash.backgroundColor) || manifest.splash.width !== void 0 && (!Number.isFinite(manifest.splash.width) || manifest.splash.width < 1 || manifest.splash.width > 288))) {\n fail(\"splash requires source, a six-digit hex backgroundColor, and width from 1 to 288\");\n }\n if (((_manifest_splash = manifest.splash) === null || _manifest_splash === void 0 ? void 0 : _manifest_splash.dark) !== void 0 && !HEX_COLOR.test(manifest.splash.dark.backgroundColor)) {\n fail(\"splash.dark requires a six-digit hex backgroundColor\");\n }\n if (((_manifest_splash1 = manifest.splash) === null || _manifest_splash1 === void 0 ? void 0 : (_manifest_splash_dark = _manifest_splash1.dark) === null || _manifest_splash_dark === void 0 ? void 0 : _manifest_splash_dark.backgroundImage) !== void 0 && manifest.splash.backgroundImage === void 0) {\n fail(\"splash.dark.backgroundImage needs splash.backgroundImage for the light launch\");\n }\n if (((_manifest_splash2 = manifest.splash) === null || _manifest_splash2 === void 0 ? void 0 : _manifest_splash2.resizeMode) !== void 0 && manifest.splash.resizeMode !== \"contain\" && manifest.splash.resizeMode !== \"cover\") {\n fail(`splash.resizeMode \"${manifest.splash.resizeMode}\" must be contain or cover`);\n }\n if (((_manifest_imagePicker = manifest.imagePicker) === null || _manifest_imagePicker === void 0 ? void 0 : _manifest_imagePicker.camera) !== void 0 && (typeof manifest.imagePicker.camera !== \"string\" || manifest.imagePicker.camera.trim() === \"\")) {\n fail(\"imagePicker.camera must be a non-empty string\");\n }\n if (((_manifest_imagePicker1 = manifest.imagePicker) === null || _manifest_imagePicker1 === void 0 ? void 0 : _manifest_imagePicker1.microphone) !== void 0 && (typeof manifest.imagePicker.microphone !== \"string\" || manifest.imagePicker.microphone.trim() === \"\")) {\n fail(\"imagePicker.microphone must be a non-empty string\");\n }\n if (manifest.photoLibrary !== void 0 && (!manifest.photoLibrary || manifest.photoLibrary.addOnly === void 0 && manifest.photoLibrary.readWrite === void 0)) {\n fail(\"photoLibrary must configure addOnly or readWrite\");\n }\n if (((_manifest_photoLibrary = manifest.photoLibrary) === null || _manifest_photoLibrary === void 0 ? void 0 : _manifest_photoLibrary.addOnly) !== void 0 && (typeof manifest.photoLibrary.addOnly !== \"string\" || manifest.photoLibrary.addOnly.trim() === \"\")) {\n fail(\"photoLibrary.addOnly must be a non-empty string\");\n }\n if (((_manifest_photoLibrary1 = manifest.photoLibrary) === null || _manifest_photoLibrary1 === void 0 ? void 0 : _manifest_photoLibrary1.readWrite) !== void 0 && (typeof manifest.photoLibrary.readWrite !== \"string\" || manifest.photoLibrary.readWrite.trim() === \"\")) {\n fail(\"photoLibrary.readWrite must be a non-empty string\");\n }\n if (manifest.contacts !== void 0 && (!manifest.contacts || typeof manifest.contacts.usage !== \"string\" || manifest.contacts.usage.trim() === \"\")) {\n fail(\"contacts.usage must be a non-empty string\");\n }\n if (manifest.calendar !== void 0) {\n if (!manifest.calendar || manifest.calendar.usage === void 0 && manifest.calendar.remindersUsage === void 0) {\n fail(\"calendar.usage or calendar.remindersUsage must be a non-empty string\");\n }\n if (manifest.calendar.usage !== void 0 && (typeof manifest.calendar.usage !== \"string\" || manifest.calendar.usage.trim() === \"\")) {\n fail(\"calendar.usage must be a non-empty string\");\n }\n if (manifest.calendar.remindersUsage !== void 0 && (typeof manifest.calendar.remindersUsage !== \"string\" || manifest.calendar.remindersUsage.trim() === \"\")) {\n fail(\"calendar.remindersUsage must be a non-empty string\");\n }\n }\n if (manifest.location !== void 0 && (!manifest.location || typeof manifest.location.whenInUse !== \"string\" || manifest.location.whenInUse.trim() === \"\")) {\n fail(\"location.whenInUse must be a non-empty string\");\n }\n if (((_manifest_location = manifest.location) === null || _manifest_location === void 0 ? void 0 : _manifest_location.background) !== void 0 && typeof manifest.location.background !== \"boolean\") {\n fail(\"location.background must be a boolean\");\n }\n if (((_manifest_location1 = manifest.location) === null || _manifest_location1 === void 0 ? void 0 : _manifest_location1.alwaysAndWhenInUse) !== void 0 && (typeof manifest.location.alwaysAndWhenInUse !== \"string\" || manifest.location.alwaysAndWhenInUse.trim() === \"\")) {\n fail(\"location.alwaysAndWhenInUse must be a non-empty string\");\n }\n if (manifest.audio !== void 0) {\n if (!manifest.audio || typeof manifest.audio !== \"object\") {\n fail(\"audio must configure microphone or background playback\");\n }\n if (manifest.audio.microphone !== void 0 && (typeof manifest.audio.microphone !== \"string\" || manifest.audio.microphone.trim() === \"\")) {\n fail(\"audio.microphone must be a non-empty string\");\n }\n if (manifest.audio.background !== void 0 && typeof manifest.audio.background !== \"boolean\") {\n fail(\"audio.background must be a boolean\");\n }\n if (manifest.audio.microphone === void 0 && manifest.audio.background !== true) {\n fail(\"audio must configure microphone or background playback\");\n }\n }\n if (((_manifest_ios3 = manifest.ios) === null || _manifest_ios3 === void 0 ? void 0 : _manifest_ios3.faceIdUsageDescription) !== void 0 && (typeof manifest.ios.faceIdUsageDescription !== \"string\" || manifest.ios.faceIdUsageDescription.trim() === \"\")) {\n fail(\"ios.faceIdUsageDescription must be a non-empty string\");\n }\n if (manifest.speech !== void 0 && (typeof ((_manifest_speech = manifest.speech) === null || _manifest_speech === void 0 ? void 0 : _manifest_speech.recognition) !== \"string\" || manifest.speech.recognition.trim() === \"\" || typeof manifest.speech.microphone !== \"string\" || manifest.speech.microphone.trim() === \"\")) {\n fail(\"speech.recognition and speech.microphone must be non-empty strings\");\n }\n if (manifest.brightness !== void 0 && typeof manifest.brightness !== \"boolean\") {\n fail(\"brightness must be a boolean\");\n }\n if (manifest.pedometer !== void 0 && (typeof ((_manifest_pedometer = manifest.pedometer) === null || _manifest_pedometer === void 0 ? void 0 : _manifest_pedometer.usage) !== \"string\" || manifest.pedometer.usage.trim() === \"\")) {\n fail(\"pedometer.usage must be a non-empty string\");\n }\n if (manifest.notifications !== void 0) {\n if (typeof manifest.notifications !== \"object\" || manifest.notifications.push !== void 0 && typeof manifest.notifications.push !== \"boolean\") {\n fail(\"notifications.push must be a boolean\");\n }\n var aps = manifest.notifications.apsEnvironment;\n if (aps !== void 0 && aps !== \"development\" && aps !== \"production\") {\n fail(`notifications.apsEnvironment \"${aps}\" must be development or production`);\n }\n if (aps !== void 0 && !manifest.notifications.push) {\n fail(\"notifications.apsEnvironment needs notifications.push\");\n }\n }\n var accent = (_manifest_ios4 = manifest.ios) === null || _manifest_ios4 === void 0 ? void 0 : _manifest_ios4.accentColor;\n if (accent !== void 0 && (!HEX_COLOR.test(accent.light) || accent.dark !== void 0 && !HEX_COLOR.test(accent.dark))) {\n fail(\"ios.accentColor light and dark must be six-digit hex colors\");\n }\n if (manifest.pictureInPicture !== void 0 && typeof manifest.pictureInPicture !== \"boolean\") {\n fail(\"pictureInPicture must be a boolean\");\n }\n if (manifest.updates !== void 0) {\n if (typeof manifest.updates.runtimeVersion !== \"string\" || manifest.updates.runtimeVersion.trim() === \"\") {\n fail(\"updates.runtimeVersion must be a non-empty string\");\n }\n if (manifest.updates.url !== void 0 && (typeof manifest.updates.url !== \"string\" || manifest.updates.url.trim() === \"\")) {\n fail(\"updates.url must be a non-empty string\");\n }\n }\n if (!platform || platform === \"ios\") {\n var _manifest_ios5;\n if (!((_manifest_ios5 = manifest.ios) === null || _manifest_ios5 === void 0 ? void 0 : _manifest_ios5.bundleId) || !REVERSE_DNS.test(manifest.ios.bundleId)) {\n var _manifest_ios6;\n fail(`ios.bundleId \"${(_manifest_ios6 = manifest.ios) === null || _manifest_ios6 === void 0 ? void 0 : _manifest_ios6.bundleId}\" must be reverse-dns`);\n }\n if (manifest.ios.deploymentTarget !== void 0 && !DEPLOYMENT_TARGET.test(manifest.ios.deploymentTarget)) {\n fail(`ios.deploymentTarget \"${manifest.ios.deploymentTarget}\" must look like \"17.0\"`);\n }\n if (manifest.ios.buildNumber !== void 0 && !BUILD_NUMBER.test(manifest.ios.buildNumber)) {\n fail(`ios.buildNumber \"${manifest.ios.buildNumber}\" must contain only letters, digits, and dots`);\n }\n var widgets = manifest.ios.widgets;\n if (widgets) {\n var _widgets_displayName, _widgets_description;\n if (!manifest.ios.deploymentTarget || Number(manifest.ios.deploymentTarget) < 17) {\n fail(\"ios.widgets requires ios.deploymentTarget of 17.0 or newer\");\n }\n if (!/^group\\.[A-Za-z][A-Za-z0-9-]*(\\.[A-Za-z][A-Za-z0-9-]*)+$/.test(widgets.appGroup)) {\n fail(\"ios.widgets.appGroup must be a reverse-dns App Group beginning with group.\");\n }\n if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(widgets.kind)) {\n fail(\"ios.widgets.kind must be a non-empty WidgetKit kind\");\n }\n if (!((_widgets_displayName = widgets.displayName) === null || _widgets_displayName === void 0 ? void 0 : _widgets_displayName.trim()) || !((_widgets_description = widgets.description) === null || _widgets_description === void 0 ? void 0 : _widgets_description.trim())) {\n fail(\"ios.widgets.displayName and description must be non-empty strings\");\n }\n if (widgets.pushNotifications !== void 0 && typeof widgets.pushNotifications !== \"boolean\") {\n fail(\"ios.widgets.pushNotifications must be a boolean\");\n }\n }\n }\n if (!platform || platform === \"android\") {\n var _manifest_android_appLinks;\n var _manifest_android;\n if (!((_manifest_android = manifest.android) === null || _manifest_android === void 0 ? void 0 : _manifest_android.applicationId) || !REVERSE_DNS.test(manifest.android.applicationId)) {\n var _manifest_android1;\n fail(`android.applicationId \"${(_manifest_android1 = manifest.android) === null || _manifest_android1 === void 0 ? void 0 : _manifest_android1.applicationId}\" must be reverse-dns`);\n }\n if (manifest.android.minSdk !== void 0 && (!Number.isInteger(manifest.android.minSdk) || manifest.android.minSdk < 21 || manifest.android.minSdk > 36)) {\n fail(`android.minSdk \"${manifest.android.minSdk}\" must be an integer from 21 to 36`);\n }\n if (manifest.android.versionCode !== void 0 && (!Number.isInteger(manifest.android.versionCode) || manifest.android.versionCode < 1)) {\n fail(`android.versionCode \"${manifest.android.versionCode}\" must be a positive integer`);\n }\n for (var _i1 = 0, _iter1 = [\n \"targetSdk\",\n \"compileSdk\"\n ]; _i1 < _iter1.length; _i1++) {\n var key = _iter1[_i1];\n var value = manifest.android[key];\n if (value !== void 0 && (!Number.isInteger(value) || value < 21)) {\n fail(`android.${key} \"${value}\" must be an api level integer`);\n }\n }\n if (manifest.android.shrinkResources && !manifest.android.minify) {\n fail(\"android.shrinkResources needs android.minify\");\n }\n var _iteratorNormalCompletion6 = true, _didIteratorError6 = false, _iteratorError6 = void 0;\n try {\n for (var _iterator6 = ((_manifest_android_appLinks = manifest.android.appLinks) !== null && _manifest_android_appLinks !== void 0 ? _manifest_android_appLinks : [])[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var link = _step6.value;\n if (!link.host || !REVERSE_DNS.test(link.host)) {\n fail(`android.appLinks host \"${link.host}\" must be a domain`);\n }\n if (link.pathPrefix !== void 0 && !link.pathPrefix.startsWith(\"/\")) {\n fail(`android.appLinks pathPrefix \"${link.pathPrefix}\" must start with /`);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return != null) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n var adaptiveIcon = manifest.android.adaptiveIcon;\n if (adaptiveIcon !== void 0 && (!adaptiveIcon.foreground || adaptiveIcon.backgroundColor !== void 0 && !HEX_COLOR.test(adaptiveIcon.backgroundColor))) {\n fail(\"android.adaptiveIcon requires foreground, and backgroundColor must be six-digit hex\");\n }\n if (manifest.android.googleMapsApiKey !== void 0 && (typeof manifest.android.googleMapsApiKey !== \"string\" || manifest.android.googleMapsApiKey.trim() === \"\")) {\n fail(\"android.googleMapsApiKey must be a non-empty string\");\n }\n }\n return manifest;\n}\nfunction iosUsageDescriptions(app) {\n var _app_imagePicker, _app_imagePicker1, _app_ios, _app_audio;\n var usage = /* @__PURE__ */ new Map();\n if (((_app_imagePicker = app.imagePicker) === null || _app_imagePicker === void 0 ? void 0 : _app_imagePicker.camera) !== void 0) {\n usage.set(\"NSCameraUsageDescription\", app.imagePicker.camera);\n }\n if (((_app_imagePicker1 = app.imagePicker) === null || _app_imagePicker1 === void 0 ? void 0 : _app_imagePicker1.microphone) !== void 0) {\n usage.set(\"NSMicrophoneUsageDescription\", app.imagePicker.microphone);\n }\n if (app.photoLibrary !== void 0) {\n if (app.photoLibrary.addOnly !== void 0) {\n usage.set(\"NSPhotoLibraryAddUsageDescription\", app.photoLibrary.addOnly);\n }\n if (app.photoLibrary.readWrite !== void 0) {\n usage.set(\"NSPhotoLibraryUsageDescription\", app.photoLibrary.readWrite);\n }\n }\n if (app.contacts !== void 0) {\n usage.set(\"NSContactsUsageDescription\", app.contacts.usage);\n }\n if (app.calendar !== void 0) {\n if (app.calendar.usage !== void 0) {\n usage.set(\"NSCalendarsFullAccessUsageDescription\", app.calendar.usage);\n }\n if (app.calendar.remindersUsage !== void 0) {\n usage.set(\"NSRemindersFullAccessUsageDescription\", app.calendar.remindersUsage);\n }\n }\n if (app.location !== void 0) {\n usage.set(\"NSLocationWhenInUseUsageDescription\", app.location.whenInUse);\n if (app.location.alwaysAndWhenInUse !== void 0) {\n usage.set(\"NSLocationAlwaysAndWhenInUseUsageDescription\", app.location.alwaysAndWhenInUse);\n }\n }\n if (app.pedometer !== void 0) {\n usage.set(\"NSMotionUsageDescription\", app.pedometer.usage);\n }\n if (((_app_ios = app.ios) === null || _app_ios === void 0 ? void 0 : _app_ios.faceIdUsageDescription) !== void 0) {\n usage.set(\"NSFaceIDUsageDescription\", app.ios.faceIdUsageDescription);\n }\n if (app.speech !== void 0) {\n usage.set(\"NSSpeechRecognitionUsageDescription\", app.speech.recognition);\n usage.set(\"NSMicrophoneUsageDescription\", app.speech.microphone);\n }\n if (((_app_audio = app.audio) === null || _app_audio === void 0 ? void 0 : _app_audio.microphone) !== void 0) {\n usage.set(\"NSMicrophoneUsageDescription\", app.audio.microphone);\n }\n return usage;\n}\nvar androidNotificationPermissions = [\n \"android.permission.POST_NOTIFICATIONS\",\n \"android.permission.RECEIVE_BOOT_COMPLETED\"\n];\nfunction androidAppPermissions(app) {\n var _ref;\n var _app_imagePicker, _app_audio, _app_calendar, _app_photoLibrary, _app_photoLibrary1, _app_calendar1, _app_audio1, _app_android;\n var permissions = /* @__PURE__ */ new Map();\n var add = function add2(name2, maxSdkVersion) {\n var fullName = name2.includes(\".\") ? name2 : `android.permission.${name2}`;\n if (!permissions.has(fullName) || maxSdkVersion === void 0) {\n permissions.set(fullName, maxSdkVersion);\n }\n };\n if (((_app_imagePicker = app.imagePicker) === null || _app_imagePicker === void 0 ? void 0 : _app_imagePicker.camera) !== void 0) add(\"CAMERA\");\n if (app.speech !== void 0 || ((_app_audio = app.audio) === null || _app_audio === void 0 ? void 0 : _app_audio.microphone) !== void 0) add(\"RECORD_AUDIO\");\n if (app.location !== void 0) {\n add(\"ACCESS_COARSE_LOCATION\");\n add(\"ACCESS_FINE_LOCATION\");\n if (app.location.background) add(\"ACCESS_BACKGROUND_LOCATION\");\n }\n if (app.pedometer !== void 0) add(\"ACTIVITY_RECOGNITION\");\n if (app.brightness === true) add(\"WRITE_SETTINGS\");\n if (app.notifications !== void 0 || ((_app_calendar = app.calendar) === null || _app_calendar === void 0 ? void 0 : _app_calendar.remindersUsage) !== void 0) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = androidNotificationPermissions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var name = _step.value;\n add(name);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n if (((_app_photoLibrary = app.photoLibrary) === null || _app_photoLibrary === void 0 ? void 0 : _app_photoLibrary.readWrite) !== void 0) {\n add(\"READ_MEDIA_IMAGES\");\n add(\"READ_MEDIA_VIDEO\");\n add(\"READ_EXTERNAL_STORAGE\", 32);\n }\n if (((_app_photoLibrary1 = app.photoLibrary) === null || _app_photoLibrary1 === void 0 ? void 0 : _app_photoLibrary1.addOnly) !== void 0) add(\"WRITE_EXTERNAL_STORAGE\", 28);\n if (app.contacts !== void 0) {\n add(\"READ_CONTACTS\");\n add(\"WRITE_CONTACTS\");\n }\n if (((_app_calendar1 = app.calendar) === null || _app_calendar1 === void 0 ? void 0 : _app_calendar1.usage) !== void 0) {\n add(\"READ_CALENDAR\");\n add(\"WRITE_CALENDAR\");\n }\n if (((_app_audio1 = app.audio) === null || _app_audio1 === void 0 ? void 0 : _app_audio1.background) === true) {\n add(\"FOREGROUND_SERVICE\");\n add(\"FOREGROUND_SERVICE_MEDIA_PLAYBACK\");\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = ((_ref = (_app_android = app.android) === null || _app_android === void 0 ? void 0 : _app_android.permissions) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var name1 = _step1.value;\n add(name1);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return permissions;\n}\nfunction expoClientFromNativeApp(app) {\n var _app_displayName, _app_userInterfaceStyle;\n var _app_icon, _app_fonts;\n return {\n name: (_app_displayName = app.displayName) !== null && _app_displayName !== void 0 ? _app_displayName : app.name,\n slug: app.name,\n scheme: app.scheme,\n version: app.version,\n orientation: app.orientation,\n // an expo config without the key means light, while prebuild writes no\n // UIUserInterfaceStyle for an unset style and the app follows the system,\n // so the manifest states the style the built app has.\n userInterfaceStyle: (_app_userInterfaceStyle = app.userInterfaceStyle) !== null && _app_userInterfaceStyle !== void 0 ? _app_userInterfaceStyle : \"automatic\",\n icon: (_app_icon = app.icon) === null || _app_icon === void 0 ? void 0 : _app_icon.source,\n splash: app.splash && {\n image: app.splash.source,\n backgroundImage: app.splash.backgroundImage,\n backgroundColor: app.splash.backgroundColor,\n imageWidth: app.splash.width,\n resizeMode: app.splash.resizeMode,\n dark: app.splash.dark && {\n image: app.splash.dark.source,\n backgroundImage: app.splash.dark.backgroundImage,\n backgroundColor: app.splash.dark.backgroundColor\n }\n },\n plugins: ((_app_fonts = app.fonts) === null || _app_fonts === void 0 ? void 0 : _app_fonts.length) ? [\n [\n \"expo-font\",\n {\n fonts: app.fonts\n }\n ]\n ] : void 0,\n ios: app.ios && {\n bundleIdentifier: app.ios.bundleId,\n buildNumber: app.ios.buildNumber,\n supportsTablet: app.ios.tablet,\n associatedDomains: app.ios.associatedDomains,\n usesAppleSignIn: app.ios.usesAppleSignIn,\n googleServicesFile: app.ios.googleServicesFile,\n // a live preview has no Info.plist, so the purpose strings the built\n // app carries ride in the manifest's infoPlist\n infoPlist: {\n ...app.ios.infoPlist,\n ...Object.fromEntries(iosUsageDescriptions(app))\n },\n entitlements: app.ios.entitlements\n },\n android: app.android && {\n package: app.android.applicationId,\n versionCode: app.android.versionCode,\n // expo's string list cannot express maxSdkVersion, so only declarations\n // valid on every SDK can be represented without overstating access.\n permissions: [\n ...androidAppPermissions(app)\n ].filter(function(param) {\n var [name, maxSdk] = param;\n var _ref;\n var _app_android;\n return maxSdk === void 0 && !((_ref = (_app_android = app.android) === null || _app_android === void 0 ? void 0 : _app_android.blockedPermissions) !== null && _ref !== void 0 ? _ref : []).some(function(blocked) {\n return (blocked.includes(\".\") ? blocked : `android.permission.${blocked}`) === name;\n });\n }).map(function(param) {\n var [name] = param;\n return name;\n }),\n blockedPermissions: app.android.blockedPermissions,\n googleServicesFile: app.android.googleServicesFile,\n adaptiveIcon: app.android.adaptiveIcon && {\n foregroundImage: app.android.adaptiveIcon.foreground,\n backgroundImage: app.android.adaptiveIcon.background,\n backgroundColor: app.android.adaptiveIcon.backgroundColor,\n monochromeImage: app.android.adaptiveIcon.monochrome\n }\n }\n };\n}\n//# sourceMappingURL=nativeAppManifest.js.map\n"],"mappings":"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"}
@@ -357,6 +357,48 @@ function iosUsageDescriptions(app) {
357
357
  }
358
358
  return usage;
359
359
  }
360
+ const androidNotificationPermissions = ["android.permission.POST_NOTIFICATIONS", "android.permission.RECEIVE_BOOT_COMPLETED"];
361
+ function androidAppPermissions(app) {
362
+ const permissions = /* @__PURE__ */ new Map();
363
+ const add = (name, maxSdkVersion) => {
364
+ const fullName = name.includes(".") ? name : `android.permission.${name}`;
365
+ if (!permissions.has(fullName) || maxSdkVersion === void 0) {
366
+ permissions.set(fullName, maxSdkVersion);
367
+ }
368
+ };
369
+ if (app.imagePicker?.camera !== void 0) add("CAMERA");
370
+ if (app.speech !== void 0 || app.audio?.microphone !== void 0) add("RECORD_AUDIO");
371
+ if (app.location !== void 0) {
372
+ add("ACCESS_COARSE_LOCATION");
373
+ add("ACCESS_FINE_LOCATION");
374
+ if (app.location.background) add("ACCESS_BACKGROUND_LOCATION");
375
+ }
376
+ if (app.pedometer !== void 0) add("ACTIVITY_RECOGNITION");
377
+ if (app.brightness === true) add("WRITE_SETTINGS");
378
+ if (app.notifications !== void 0 || app.calendar?.remindersUsage !== void 0) {
379
+ for (const name of androidNotificationPermissions) add(name);
380
+ }
381
+ if (app.photoLibrary?.readWrite !== void 0) {
382
+ add("READ_MEDIA_IMAGES");
383
+ add("READ_MEDIA_VIDEO");
384
+ add("READ_EXTERNAL_STORAGE", 32);
385
+ }
386
+ if (app.photoLibrary?.addOnly !== void 0) add("WRITE_EXTERNAL_STORAGE", 28);
387
+ if (app.contacts !== void 0) {
388
+ add("READ_CONTACTS");
389
+ add("WRITE_CONTACTS");
390
+ }
391
+ if (app.calendar?.usage !== void 0) {
392
+ add("READ_CALENDAR");
393
+ add("WRITE_CALENDAR");
394
+ }
395
+ if (app.audio?.background === true) {
396
+ add("FOREGROUND_SERVICE");
397
+ add("FOREGROUND_SERVICE_MEDIA_PLAYBACK");
398
+ }
399
+ for (const name of app.android?.permissions ?? []) add(name);
400
+ return permissions;
401
+ }
360
402
  function expoClientFromNativeApp(app) {
361
403
  return {
362
404
  name: app.displayName ?? app.name,
@@ -395,7 +437,7 @@ function expoClientFromNativeApp(app) {
395
437
  android: app.android && {
396
438
  package: app.android.applicationId,
397
439
  versionCode: app.android.versionCode,
398
- permissions: app.android.permissions,
440
+ permissions: [...androidAppPermissions(app)].filter(([name, maxSdk]) => maxSdk === void 0 && !(app.android?.blockedPermissions ?? []).some((blocked) => (blocked.includes(".") ? blocked : `android.permission.${blocked}`) === name)).map(([name]) => name),
399
441
  blockedPermissions: app.android.blockedPermissions,
400
442
  googleServicesFile: app.android.googleServicesFile,
401
443
  adaptiveIcon: app.android.adaptiveIcon && {
@@ -408,5 +450,5 @@ function expoClientFromNativeApp(app) {
408
450
  };
409
451
  }
410
452
 
411
- export { androidIconSuffix, appIconPreviewResources, expoClientFromNativeApp, iosUsageDescriptions, nativeAppDefines, validateNativeApp };
453
+ export { androidAppPermissions, androidIconSuffix, androidNotificationPermissions, appIconPreviewResources, expoClientFromNativeApp, iosUsageDescriptions, nativeAppDefines, validateNativeApp };
412
454
  //# sourceMappingURL=nativeAppManifest.mjs.map