@expo/config-plugins 4.1.5 → 5.0.0

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.
Files changed (94) hide show
  1. package/build/Plugin.types.d.ts +8 -0
  2. package/build/Plugin.types.js.map +1 -1
  3. package/build/android/AllowBackup.js.map +1 -1
  4. package/build/android/BuildProperties.js.map +1 -1
  5. package/build/android/Colors.js.map +1 -1
  6. package/build/android/EasBuild.js.map +1 -1
  7. package/build/android/EasBuildGradleScript.js.map +1 -1
  8. package/build/android/GoogleMapsApiKey.js.map +1 -1
  9. package/build/android/GoogleServices.js.map +1 -1
  10. package/build/android/IntentFilters.js.map +1 -1
  11. package/build/android/Manifest.js.map +1 -1
  12. package/build/android/Name.js.map +1 -1
  13. package/build/android/Orientation.js.map +1 -1
  14. package/build/android/Package.js.map +1 -1
  15. package/build/android/Paths.js.map +1 -1
  16. package/build/android/Permissions.js.map +1 -1
  17. package/build/android/PrimaryColor.js.map +1 -1
  18. package/build/android/Properties.js.map +1 -1
  19. package/build/android/Resources.js.map +1 -1
  20. package/build/android/Scheme.js.map +1 -1
  21. package/build/android/StatusBar.js.map +1 -1
  22. package/build/android/Strings.js.map +1 -1
  23. package/build/android/Styles.js.map +1 -1
  24. package/build/android/Updates.js.map +1 -1
  25. package/build/android/Version.js.map +1 -1
  26. package/build/android/WindowSoftInputMode.js.map +1 -1
  27. package/build/android/codeMod.js.map +1 -1
  28. package/build/android/index.js.map +1 -1
  29. package/build/index.js.map +1 -1
  30. package/build/ios/Bitcode.js.map +1 -1
  31. package/build/ios/BuildProperties.js.map +1 -1
  32. package/build/ios/BuildScheme.js.map +1 -1
  33. package/build/ios/BundleIdentifier.js.map +1 -1
  34. package/build/ios/DeviceFamily.js.map +1 -1
  35. package/build/ios/Entitlements.js.map +1 -1
  36. package/build/ios/Google.js.map +1 -1
  37. package/build/ios/IosConfig.types.js.map +1 -1
  38. package/build/ios/Locales.js.map +1 -1
  39. package/build/ios/Maps.js.map +1 -1
  40. package/build/ios/Name.js +8 -2
  41. package/build/ios/Name.js.map +1 -1
  42. package/build/ios/Orientation.js +4 -1
  43. package/build/ios/Orientation.js.map +1 -1
  44. package/build/ios/Paths.js.map +1 -1
  45. package/build/ios/Permissions.js.map +1 -1
  46. package/build/ios/ProvisioningProfile.js.map +1 -1
  47. package/build/ios/RequiresFullScreen.js.map +1 -1
  48. package/build/ios/Scheme.js +4 -1
  49. package/build/ios/Scheme.js.map +1 -1
  50. package/build/ios/Swift.js.map +1 -1
  51. package/build/ios/Target.js.map +1 -1
  52. package/build/ios/Updates.js.map +1 -1
  53. package/build/ios/UsesNonExemptEncryption.js +4 -1
  54. package/build/ios/UsesNonExemptEncryption.js.map +1 -1
  55. package/build/ios/Version.js +8 -2
  56. package/build/ios/Version.js.map +1 -1
  57. package/build/ios/XcodeProjectFile.js.map +1 -1
  58. package/build/ios/codeMod.js.map +1 -1
  59. package/build/ios/index.js.map +1 -1
  60. package/build/ios/utils/Xcodeproj.js.map +1 -1
  61. package/build/ios/utils/getInfoPlistPath.js.map +1 -1
  62. package/build/ios/utils/string.js.map +1 -1
  63. package/build/plugins/android-plugins.js.map +1 -1
  64. package/build/plugins/createBaseMod.js.map +1 -1
  65. package/build/plugins/ios-plugins.d.ts +5 -0
  66. package/build/plugins/ios-plugins.js +46 -0
  67. package/build/plugins/ios-plugins.js.map +1 -1
  68. package/build/plugins/mod-compiler.js +18 -4
  69. package/build/plugins/mod-compiler.js.map +1 -1
  70. package/build/plugins/withAndroidBaseMods.js.map +1 -1
  71. package/build/plugins/withDangerousMod.js.map +1 -1
  72. package/build/plugins/withIosBaseMods.js.map +1 -1
  73. package/build/plugins/withMod.js.map +1 -1
  74. package/build/plugins/withPlugins.js.map +1 -1
  75. package/build/plugins/withRunOnce.js.map +1 -1
  76. package/build/plugins/withStaticPlugin.js.map +1 -1
  77. package/build/utils/BuildProperties.types.js.map +1 -1
  78. package/build/utils/Updates.js.map +1 -1
  79. package/build/utils/XML.js.map +1 -1
  80. package/build/utils/commonCodeMod.js.map +1 -1
  81. package/build/utils/errors.js.map +1 -1
  82. package/build/utils/fs.js.map +1 -1
  83. package/build/utils/generateCode.js.map +1 -1
  84. package/build/utils/history.js.map +1 -1
  85. package/build/utils/matchBrackets.js.map +1 -1
  86. package/build/utils/modules.js.map +1 -1
  87. package/build/utils/obj.d.ts +2 -0
  88. package/build/utils/obj.js +24 -0
  89. package/build/utils/obj.js.map +1 -0
  90. package/build/utils/plugin-resolver.js.map +1 -1
  91. package/build/utils/sortObject.js.map +1 -1
  92. package/build/utils/versions.js.map +1 -1
  93. package/build/utils/warnings.js.map +1 -1
  94. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Permissions.ts"],"names":["USES_PERMISSION","withPermissions","config","permissions","Array","isArray","filter","Boolean","android","Set","concat","modResults","setAndroidPermissions","withBlockedPermissions","resolvedPermissions","permission","includes","addBlockedPermissions","withInternalBlockedPermissions","blockedPermissions","length","androidManifest","manifest","ensureBlockedPermission","manifestPermissions","e","$","push","prefixAndroidPermissionsIfNecessary","map","getAndroidPermissions","providedPermissions","permissionsToAdd","hasOwnProperty","forEach","isPermissionAlreadyRequested","addPermissionToManifest","some","removePermissions","permissionNames","targetNames","ensurePermissionNameFormat","nextPermissions","attribute","value","name","addPermission","permissionName","usesPermissions","ensurePermissions","getPermissions","results","targetName","ensurePermission","com","split","pop","toUpperCase","join","permissionObject"],"mappings":"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","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport { AndroidManifest, ensureToolsAvailable, ManifestUsesPermission } from './Manifest';\n\nconst USES_PERMISSION = 'uses-permission';\n\nexport const withPermissions: ConfigPlugin<string[] | void> = (config, permissions) => {\n if (Array.isArray(permissions)) {\n permissions = permissions.filter(Boolean);\n if (!config.android) config.android = {};\n if (!config.android.permissions) config.android.permissions = [];\n config.android.permissions = [\n // @ts-ignore\n ...new Set(config.android.permissions.concat(permissions)),\n ];\n }\n return withAndroidManifest(config, async config => {\n config.modResults = await setAndroidPermissions(config, config.modResults);\n return config;\n });\n};\n\n/** Given a permission or list of permissions, block permissions in the final `AndroidManifest.xml` to ensure no installed library or plugin can add them. */\nexport const withBlockedPermissions: ConfigPlugin<string[] | string> = (config, permissions) => {\n const resolvedPermissions = (Array.isArray(permissions) ? permissions : [permissions]).filter(\n Boolean\n );\n\n if (config?.android?.permissions && Array.isArray(config.android.permissions)) {\n // Remove any static config permissions\n config.android.permissions = config.android.permissions.filter(\n permission => !resolvedPermissions.includes(permission)\n );\n }\n\n return withAndroidManifest(config, async config => {\n config.modResults = ensureToolsAvailable(config.modResults);\n config.modResults = addBlockedPermissions(config.modResults, resolvedPermissions);\n return config;\n });\n};\n\nexport const withInternalBlockedPermissions: ConfigPlugin = config => {\n // Only add permissions if the user defined the property and added some values\n // this ensures we don't add the `tools:*` namespace extraneously.\n if (config.android?.blockedPermissions?.length) {\n return withBlockedPermissions(config, config.android.blockedPermissions);\n }\n\n return config;\n};\n\nexport function addBlockedPermissions(androidManifest: AndroidManifest, permissions: string[]) {\n if (!Array.isArray(androidManifest.manifest['uses-permission'])) {\n androidManifest.manifest['uses-permission'] = [];\n }\n\n for (const permission of permissions) {\n androidManifest.manifest['uses-permission'] = ensureBlockedPermission(\n androidManifest.manifest['uses-permission'],\n permission\n );\n }\n\n return androidManifest;\n}\n\n/**\n * Filter any existing permissions matching the provided permission name, then add a\n * restricted permission to overwrite any extra permissions that may be added in a\n * third-party package's AndroidManifest.xml.\n *\n * @param manifestPermissions manifest `uses-permissions` array.\n * @param permission `android:name` of the permission to restrict\n * @returns\n */\nfunction ensureBlockedPermission(\n manifestPermissions: ManifestUsesPermission[],\n permission: string\n) {\n // Remove permission if it currently exists\n manifestPermissions = manifestPermissions.filter(e => e.$['android:name'] !== permission);\n\n // Add a permission with tools:node to overwrite any existing permission and ensure it's removed upon building.\n manifestPermissions.push({\n $: { 'android:name': permission, 'tools:node': 'remove' },\n });\n return manifestPermissions;\n}\n\nfunction prefixAndroidPermissionsIfNecessary(permissions: string[]): string[] {\n return permissions.map(permission => {\n if (!permission.includes('.')) {\n return `android.permission.${permission}`;\n }\n return permission;\n });\n}\n\nexport function getAndroidPermissions(config: Pick<ExpoConfig, 'android'>): string[] {\n return config.android?.permissions ?? [];\n}\n\nexport function setAndroidPermissions(\n config: Pick<ExpoConfig, 'android'>,\n androidManifest: AndroidManifest\n) {\n const permissions = getAndroidPermissions(config);\n const providedPermissions = prefixAndroidPermissionsIfNecessary(permissions);\n const permissionsToAdd = [...providedPermissions];\n\n if (!androidManifest.manifest.hasOwnProperty('uses-permission')) {\n androidManifest.manifest['uses-permission'] = [];\n }\n // manifest.manifest['uses-permission'] = [];\n\n const manifestPermissions = androidManifest.manifest['uses-permission'] ?? [];\n\n permissionsToAdd.forEach(permission => {\n if (!isPermissionAlreadyRequested(permission, manifestPermissions)) {\n addPermissionToManifest(permission, manifestPermissions);\n }\n });\n\n return androidManifest;\n}\n\nexport function isPermissionAlreadyRequested(\n permission: string,\n manifestPermissions: ManifestUsesPermission[]\n): boolean {\n return manifestPermissions.some(e => e.$['android:name'] === permission);\n}\n\nexport function addPermissionToManifest(\n permission: string,\n manifestPermissions: ManifestUsesPermission[]\n) {\n manifestPermissions.push({ $: { 'android:name': permission } });\n return manifestPermissions;\n}\n\nexport function removePermissions(androidManifest: AndroidManifest, permissionNames?: string[]) {\n const targetNames = permissionNames ? permissionNames.map(ensurePermissionNameFormat) : null;\n const permissions = androidManifest.manifest[USES_PERMISSION] || [];\n const nextPermissions = [];\n for (const attribute of permissions) {\n if (targetNames) {\n // @ts-ignore: name isn't part of the type\n const value = attribute.$['android:name'] || attribute.$.name;\n if (!targetNames.includes(value)) {\n nextPermissions.push(attribute);\n }\n }\n }\n\n androidManifest.manifest[USES_PERMISSION] = nextPermissions;\n}\n\nexport function addPermission(androidManifest: AndroidManifest, permissionName: string): void {\n const usesPermissions: ManifestUsesPermission[] = androidManifest.manifest[USES_PERMISSION] || [];\n usesPermissions.push({\n $: { 'android:name': permissionName },\n });\n androidManifest.manifest[USES_PERMISSION] = usesPermissions;\n}\n\nexport function ensurePermissions(\n androidManifest: AndroidManifest,\n permissionNames: string[]\n): { [permission: string]: boolean } {\n const permissions = getPermissions(androidManifest);\n\n const results: { [permission: string]: boolean } = {};\n for (const permissionName of permissionNames) {\n const targetName = ensurePermissionNameFormat(permissionName);\n if (!permissions.includes(targetName)) {\n addPermission(androidManifest, targetName);\n results[permissionName] = true;\n } else {\n results[permissionName] = false;\n }\n }\n return results;\n}\n\nexport function ensurePermission(\n androidManifest: AndroidManifest,\n permissionName: string\n): boolean {\n const permissions = getPermissions(androidManifest);\n const targetName = ensurePermissionNameFormat(permissionName);\n\n if (!permissions.includes(targetName)) {\n addPermission(androidManifest, targetName);\n return true;\n }\n return false;\n}\n\nexport function ensurePermissionNameFormat(permissionName: string): string {\n if (permissionName.includes('.')) {\n const com = permissionName.split('.');\n const name = com.pop() as string;\n return [...com, name.toUpperCase()].join('.');\n } else {\n // If shorthand form like `WRITE_CONTACTS` is provided, expand it to `android.permission.WRITE_CONTACTS`.\n return ensurePermissionNameFormat(`android.permission.${permissionName}`);\n }\n}\n\nexport function getPermissions(androidManifest: AndroidManifest): string[] {\n const usesPermissions: { [key: string]: any }[] = androidManifest.manifest[USES_PERMISSION] || [];\n const permissions = usesPermissions.map(permissionObject => {\n return permissionObject.$['android:name'] || permissionObject.$.name;\n });\n return permissions;\n}\n"],"file":"Permissions.js"}
1
+ {"version":3,"file":"Permissions.js","names":["USES_PERMISSION","withPermissions","config","permissions","Array","isArray","filter","Boolean","android","Set","concat","withAndroidManifest","modResults","setAndroidPermissions","withBlockedPermissions","resolvedPermissions","permission","includes","ensureToolsAvailable","addBlockedPermissions","withInternalBlockedPermissions","blockedPermissions","length","androidManifest","manifest","ensureBlockedPermission","manifestPermissions","e","$","push","prefixAndroidPermissionsIfNecessary","map","getAndroidPermissions","providedPermissions","permissionsToAdd","hasOwnProperty","forEach","isPermissionAlreadyRequested","addPermissionToManifest","some","removePermissions","permissionNames","targetNames","ensurePermissionNameFormat","nextPermissions","attribute","value","name","addPermission","permissionName","usesPermissions","ensurePermissions","getPermissions","results","targetName","ensurePermission","com","split","pop","toUpperCase","join","permissionObject"],"sources":["../../src/android/Permissions.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport { AndroidManifest, ensureToolsAvailable, ManifestUsesPermission } from './Manifest';\n\nconst USES_PERMISSION = 'uses-permission';\n\nexport const withPermissions: ConfigPlugin<string[] | void> = (config, permissions) => {\n if (Array.isArray(permissions)) {\n permissions = permissions.filter(Boolean);\n if (!config.android) config.android = {};\n if (!config.android.permissions) config.android.permissions = [];\n config.android.permissions = [\n // @ts-ignore\n ...new Set(config.android.permissions.concat(permissions)),\n ];\n }\n return withAndroidManifest(config, async (config) => {\n config.modResults = await setAndroidPermissions(config, config.modResults);\n return config;\n });\n};\n\n/** Given a permission or list of permissions, block permissions in the final `AndroidManifest.xml` to ensure no installed library or plugin can add them. */\nexport const withBlockedPermissions: ConfigPlugin<string[] | string> = (config, permissions) => {\n const resolvedPermissions = (Array.isArray(permissions) ? permissions : [permissions]).filter(\n Boolean\n );\n\n if (config?.android?.permissions && Array.isArray(config.android.permissions)) {\n // Remove any static config permissions\n config.android.permissions = config.android.permissions.filter(\n (permission) => !resolvedPermissions.includes(permission)\n );\n }\n\n return withAndroidManifest(config, async (config) => {\n config.modResults = ensureToolsAvailable(config.modResults);\n config.modResults = addBlockedPermissions(config.modResults, resolvedPermissions);\n return config;\n });\n};\n\nexport const withInternalBlockedPermissions: ConfigPlugin = (config) => {\n // Only add permissions if the user defined the property and added some values\n // this ensures we don't add the `tools:*` namespace extraneously.\n if (config.android?.blockedPermissions?.length) {\n return withBlockedPermissions(config, config.android.blockedPermissions);\n }\n\n return config;\n};\n\nexport function addBlockedPermissions(androidManifest: AndroidManifest, permissions: string[]) {\n if (!Array.isArray(androidManifest.manifest['uses-permission'])) {\n androidManifest.manifest['uses-permission'] = [];\n }\n\n for (const permission of permissions) {\n androidManifest.manifest['uses-permission'] = ensureBlockedPermission(\n androidManifest.manifest['uses-permission'],\n permission\n );\n }\n\n return androidManifest;\n}\n\n/**\n * Filter any existing permissions matching the provided permission name, then add a\n * restricted permission to overwrite any extra permissions that may be added in a\n * third-party package's AndroidManifest.xml.\n *\n * @param manifestPermissions manifest `uses-permissions` array.\n * @param permission `android:name` of the permission to restrict\n * @returns\n */\nfunction ensureBlockedPermission(\n manifestPermissions: ManifestUsesPermission[],\n permission: string\n) {\n // Remove permission if it currently exists\n manifestPermissions = manifestPermissions.filter((e) => e.$['android:name'] !== permission);\n\n // Add a permission with tools:node to overwrite any existing permission and ensure it's removed upon building.\n manifestPermissions.push({\n $: { 'android:name': permission, 'tools:node': 'remove' },\n });\n return manifestPermissions;\n}\n\nfunction prefixAndroidPermissionsIfNecessary(permissions: string[]): string[] {\n return permissions.map((permission) => {\n if (!permission.includes('.')) {\n return `android.permission.${permission}`;\n }\n return permission;\n });\n}\n\nexport function getAndroidPermissions(config: Pick<ExpoConfig, 'android'>): string[] {\n return config.android?.permissions ?? [];\n}\n\nexport function setAndroidPermissions(\n config: Pick<ExpoConfig, 'android'>,\n androidManifest: AndroidManifest\n) {\n const permissions = getAndroidPermissions(config);\n const providedPermissions = prefixAndroidPermissionsIfNecessary(permissions);\n const permissionsToAdd = [...providedPermissions];\n\n if (!androidManifest.manifest.hasOwnProperty('uses-permission')) {\n androidManifest.manifest['uses-permission'] = [];\n }\n // manifest.manifest['uses-permission'] = [];\n\n const manifestPermissions = androidManifest.manifest['uses-permission'] ?? [];\n\n permissionsToAdd.forEach((permission) => {\n if (!isPermissionAlreadyRequested(permission, manifestPermissions)) {\n addPermissionToManifest(permission, manifestPermissions);\n }\n });\n\n return androidManifest;\n}\n\nexport function isPermissionAlreadyRequested(\n permission: string,\n manifestPermissions: ManifestUsesPermission[]\n): boolean {\n return manifestPermissions.some((e) => e.$['android:name'] === permission);\n}\n\nexport function addPermissionToManifest(\n permission: string,\n manifestPermissions: ManifestUsesPermission[]\n) {\n manifestPermissions.push({ $: { 'android:name': permission } });\n return manifestPermissions;\n}\n\nexport function removePermissions(androidManifest: AndroidManifest, permissionNames?: string[]) {\n const targetNames = permissionNames ? permissionNames.map(ensurePermissionNameFormat) : null;\n const permissions = androidManifest.manifest[USES_PERMISSION] || [];\n const nextPermissions = [];\n for (const attribute of permissions) {\n if (targetNames) {\n // @ts-ignore: name isn't part of the type\n const value = attribute.$['android:name'] || attribute.$.name;\n if (!targetNames.includes(value)) {\n nextPermissions.push(attribute);\n }\n }\n }\n\n androidManifest.manifest[USES_PERMISSION] = nextPermissions;\n}\n\nexport function addPermission(androidManifest: AndroidManifest, permissionName: string): void {\n const usesPermissions: ManifestUsesPermission[] = androidManifest.manifest[USES_PERMISSION] || [];\n usesPermissions.push({\n $: { 'android:name': permissionName },\n });\n androidManifest.manifest[USES_PERMISSION] = usesPermissions;\n}\n\nexport function ensurePermissions(\n androidManifest: AndroidManifest,\n permissionNames: string[]\n): { [permission: string]: boolean } {\n const permissions = getPermissions(androidManifest);\n\n const results: { [permission: string]: boolean } = {};\n for (const permissionName of permissionNames) {\n const targetName = ensurePermissionNameFormat(permissionName);\n if (!permissions.includes(targetName)) {\n addPermission(androidManifest, targetName);\n results[permissionName] = true;\n } else {\n results[permissionName] = false;\n }\n }\n return results;\n}\n\nexport function ensurePermission(\n androidManifest: AndroidManifest,\n permissionName: string\n): boolean {\n const permissions = getPermissions(androidManifest);\n const targetName = ensurePermissionNameFormat(permissionName);\n\n if (!permissions.includes(targetName)) {\n addPermission(androidManifest, targetName);\n return true;\n }\n return false;\n}\n\nexport function ensurePermissionNameFormat(permissionName: string): string {\n if (permissionName.includes('.')) {\n const com = permissionName.split('.');\n const name = com.pop() as string;\n return [...com, name.toUpperCase()].join('.');\n } else {\n // If shorthand form like `WRITE_CONTACTS` is provided, expand it to `android.permission.WRITE_CONTACTS`.\n return ensurePermissionNameFormat(`android.permission.${permissionName}`);\n }\n}\n\nexport function getPermissions(androidManifest: AndroidManifest): string[] {\n const usesPermissions: { [key: string]: any }[] = androidManifest.manifest[USES_PERMISSION] || [];\n const permissions = usesPermissions.map((permissionObject) => {\n return permissionObject.$['android:name'] || permissionObject.$.name;\n });\n return permissions;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/PrimaryColor.ts"],"names":["COLOR_PRIMARY_KEY","DEFAULT_PRIMARY_COLOR","withPrimaryColor","config","withPrimaryColorColors","withPrimaryColorStyles","modResults","name","value","getPrimaryColor","add","parent","primaryColor"],"mappings":";;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA,MAAMA,iBAAiB,GAAG,cAA1B;AACA,MAAMC,qBAAqB,GAAG,SAA9B;;AAEO,MAAMC,gBAA8B,GAAGC,MAAM,IAAI;AACtDA,EAAAA,MAAM,GAAGC,sBAAsB,CAACD,MAAD,CAA/B;AACAA,EAAAA,MAAM,GAAGE,sBAAsB,CAACF,MAAD,CAA/B;AACA,SAAOA,MAAP;AACD,CAJM;;;;AAMA,MAAMC,sBAAoC,GAAGD,MAAM,IAAI;AAC5D,SAAO,yCAAkBA,MAAlB,EAA0BA,MAAM,IAAI;AACzCA,IAAAA,MAAM,CAACG,UAAP,GAAoB,gCAAiBH,MAAM,CAACG,UAAxB,EAAoC;AACtDC,MAAAA,IAAI,EAAEP,iBADgD;AAEtDQ,MAAAA,KAAK,EAAEC,eAAe,CAACN,MAAD;AAFgC,KAApC,CAApB;AAIA,WAAOA,MAAP;AACD,GANM,CAAP;AAOD,CARM;;;;AAUA,MAAME,sBAAoC,GAAGF,MAAM,IAAI;AAC5D,SAAO,yCAAkBA,MAAlB,EAA0BA,MAAM,IAAI;AACzCA,IAAAA,MAAM,CAACG,UAAP,GAAoB,iCAAkBH,MAAM,CAACG,UAAzB,EAAqC;AACvDI,MAAAA,GAAG,EAAE,CAAC,CAACD,eAAe,CAACN,MAAD,CADiC;AAEvDQ,MAAAA,MAAM,EAAE,iDAF+C;AAGvDJ,MAAAA,IAAI,EAAEP,iBAHiD;AAIvDQ,MAAAA,KAAK,EAAG,UAASR,iBAAkB;AAJoB,KAArC,CAApB;AAMA,WAAOG,MAAP;AACD,GARM,CAAP;AASD,CAVM;;;;AAYA,SAASM,eAAT,CAAyBN,MAAzB,EAAmE;AAAA;;AACxE,iCAAOA,MAAM,CAACS,YAAd,uEAA8BX,qBAA9B;AACD","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidColors, withAndroidStyles } from '../plugins/android-plugins';\nimport { assignColorValue } from './Colors';\nimport { assignStylesValue, getAppThemeLightNoActionBarGroup } from './Styles';\n\nconst COLOR_PRIMARY_KEY = 'colorPrimary';\nconst DEFAULT_PRIMARY_COLOR = '#023c69';\n\nexport const withPrimaryColor: ConfigPlugin = config => {\n config = withPrimaryColorColors(config);\n config = withPrimaryColorStyles(config);\n return config;\n};\n\nexport const withPrimaryColorColors: ConfigPlugin = config => {\n return withAndroidColors(config, config => {\n config.modResults = assignColorValue(config.modResults, {\n name: COLOR_PRIMARY_KEY,\n value: getPrimaryColor(config),\n });\n return config;\n });\n};\n\nexport const withPrimaryColorStyles: ConfigPlugin = config => {\n return withAndroidStyles(config, config => {\n config.modResults = assignStylesValue(config.modResults, {\n add: !!getPrimaryColor(config),\n parent: getAppThemeLightNoActionBarGroup(),\n name: COLOR_PRIMARY_KEY,\n value: `@color/${COLOR_PRIMARY_KEY}`,\n });\n return config;\n });\n};\n\nexport function getPrimaryColor(config: Pick<ExpoConfig, 'primaryColor'>) {\n return config.primaryColor ?? DEFAULT_PRIMARY_COLOR;\n}\n"],"file":"PrimaryColor.js"}
1
+ {"version":3,"file":"PrimaryColor.js","names":["COLOR_PRIMARY_KEY","DEFAULT_PRIMARY_COLOR","withPrimaryColor","config","withPrimaryColorColors","withPrimaryColorStyles","withAndroidColors","modResults","assignColorValue","name","value","getPrimaryColor","withAndroidStyles","assignStylesValue","add","parent","getAppThemeLightNoActionBarGroup","primaryColor"],"sources":["../../src/android/PrimaryColor.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidColors, withAndroidStyles } from '../plugins/android-plugins';\nimport { assignColorValue } from './Colors';\nimport { assignStylesValue, getAppThemeLightNoActionBarGroup } from './Styles';\n\nconst COLOR_PRIMARY_KEY = 'colorPrimary';\nconst DEFAULT_PRIMARY_COLOR = '#023c69';\n\nexport const withPrimaryColor: ConfigPlugin = (config) => {\n config = withPrimaryColorColors(config);\n config = withPrimaryColorStyles(config);\n return config;\n};\n\nexport const withPrimaryColorColors: ConfigPlugin = (config) => {\n return withAndroidColors(config, (config) => {\n config.modResults = assignColorValue(config.modResults, {\n name: COLOR_PRIMARY_KEY,\n value: getPrimaryColor(config),\n });\n return config;\n });\n};\n\nexport const withPrimaryColorStyles: ConfigPlugin = (config) => {\n return withAndroidStyles(config, (config) => {\n config.modResults = assignStylesValue(config.modResults, {\n add: !!getPrimaryColor(config),\n parent: getAppThemeLightNoActionBarGroup(),\n name: COLOR_PRIMARY_KEY,\n value: `@color/${COLOR_PRIMARY_KEY}`,\n });\n return config;\n });\n};\n\nexport function getPrimaryColor(config: Pick<ExpoConfig, 'primaryColor'>) {\n return config.primaryColor ?? DEFAULT_PRIMARY_COLOR;\n}\n"],"mappings":";;;;;;;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA,MAAMA,iBAAiB,GAAG,cAA1B;AACA,MAAMC,qBAAqB,GAAG,SAA9B;;AAEO,MAAMC,gBAA8B,GAAIC,MAAD,IAAY;EACxDA,MAAM,GAAGC,sBAAsB,CAACD,MAAD,CAA/B;EACAA,MAAM,GAAGE,sBAAsB,CAACF,MAAD,CAA/B;EACA,OAAOA,MAAP;AACD,CAJM;;;;AAMA,MAAMC,sBAAoC,GAAID,MAAD,IAAY;EAC9D,OAAO,IAAAG,mCAAA,EAAkBH,MAAlB,EAA2BA,MAAD,IAAY;IAC3CA,MAAM,CAACI,UAAP,GAAoB,IAAAC,0BAAA,EAAiBL,MAAM,CAACI,UAAxB,EAAoC;MACtDE,IAAI,EAAET,iBADgD;MAEtDU,KAAK,EAAEC,eAAe,CAACR,MAAD;IAFgC,CAApC,CAApB;IAIA,OAAOA,MAAP;EACD,CANM,CAAP;AAOD,CARM;;;;AAUA,MAAME,sBAAoC,GAAIF,MAAD,IAAY;EAC9D,OAAO,IAAAS,mCAAA,EAAkBT,MAAlB,EAA2BA,MAAD,IAAY;IAC3CA,MAAM,CAACI,UAAP,GAAoB,IAAAM,2BAAA,EAAkBV,MAAM,CAACI,UAAzB,EAAqC;MACvDO,GAAG,EAAE,CAAC,CAACH,eAAe,CAACR,MAAD,CADiC;MAEvDY,MAAM,EAAE,IAAAC,0CAAA,GAF+C;MAGvDP,IAAI,EAAET,iBAHiD;MAIvDU,KAAK,EAAG,UAASV,iBAAkB;IAJoB,CAArC,CAApB;IAMA,OAAOG,MAAP;EACD,CARM,CAAP;AASD,CAVM;;;;AAYA,SAASQ,eAAT,CAAyBR,MAAzB,EAAmE;EAAA;;EACxE,+BAAOA,MAAM,CAACc,YAAd,uEAA8BhB,qBAA9B;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Properties.ts"],"names":["parsePropertiesFile","contents","propertiesList","lines","split","i","length","line","trim","push","type","startsWith","value","substring","trimStart","eok","indexOf","key","slice","propertiesListToString","props","output","prop","Error"],"mappings":";;;;;;;;AAcO,SAASA,mBAAT,CAA6BC,QAA7B,EAAiE;AACtE,QAAMC,cAAgC,GAAG,EAAzC;AACA,QAAMC,KAAK,GAAGF,QAAQ,CAACG,KAAT,CAAe,IAAf,CAAd;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAAK,CAACG,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAME,IAAI,GAAGJ,KAAK,CAACE,CAAD,CAAL,CAASG,IAAT,EAAb;;AACA,QAAI,CAACD,IAAL,EAAW;AACTL,MAAAA,cAAc,CAACO,IAAf,CAAoB;AAAEC,QAAAA,IAAI,EAAE;AAAR,OAApB;AACD,KAFD,MAEO,IAAIH,IAAI,CAACI,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AAC/BT,MAAAA,cAAc,CAACO,IAAf,CAAoB;AAAEC,QAAAA,IAAI,EAAE,SAAR;AAAmBE,QAAAA,KAAK,EAAEL,IAAI,CAACM,SAAL,CAAe,CAAf,EAAkBC,SAAlB;AAA1B,OAApB;AACD,KAFM,MAEA;AACL,YAAMC,GAAG,GAAGR,IAAI,CAACS,OAAL,CAAa,GAAb,CAAZ;AACA,YAAMC,GAAG,GAAGV,IAAI,CAACW,KAAL,CAAW,CAAX,EAAcH,GAAd,CAAZ;AACA,YAAMH,KAAK,GAAGL,IAAI,CAACW,KAAL,CAAWH,GAAG,GAAG,CAAjB,EAAoBR,IAAI,CAACD,MAAzB,CAAd;AACAJ,MAAAA,cAAc,CAACO,IAAf,CAAoB;AAAEC,QAAAA,IAAI,EAAE,UAAR;AAAoBO,QAAAA,GAApB;AAAyBL,QAAAA;AAAzB,OAApB;AACD;AACF;;AAED,SAAOV,cAAP;AACD;;AAEM,SAASiB,sBAAT,CAAgCC,KAAhC,EAAiE;AACtE,MAAIC,MAAM,GAAG,EAAb;;AACA,OAAK,IAAIhB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGe,KAAK,CAACd,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAMiB,IAAI,GAAGF,KAAK,CAACf,CAAD,CAAlB;;AACA,QAAIiB,IAAI,CAACZ,IAAL,KAAc,OAAlB,EAA2B;AACzBW,MAAAA,MAAM,IAAI,EAAV;AACD,KAFD,MAEO,IAAIC,IAAI,CAACZ,IAAL,KAAc,SAAlB,EAA6B;AAClCW,MAAAA,MAAM,IAAI,OAAOC,IAAI,CAACV,KAAtB;AACD,KAFM,MAEA,IAAIU,IAAI,CAACZ,IAAL,KAAc,UAAlB,EAA8B;AACnCW,MAAAA,MAAM,IAAK,GAAEC,IAAI,CAACL,GAAI,IAAGK,IAAI,CAACV,KAAM,EAApC;AACD,KAFM,MAEA;AACL;AACA,YAAM,IAAIW,KAAJ,CAAW,4BAA2BD,IAAI,CAACZ,IAAK,GAAhD,CAAN;AACD;;AACD,QAAIL,CAAC,GAAGe,KAAK,CAACd,MAAN,GAAe,CAAvB,EAA0B;AACxBe,MAAAA,MAAM,IAAI,IAAV;AACD;AACF;;AACD,SAAOA,MAAP;AACD","sourcesContent":["export type PropertiesItem =\n | {\n type: 'comment';\n value: string;\n }\n | {\n type: 'empty';\n }\n | {\n type: 'property';\n key: string;\n value: string;\n };\n\nexport function parsePropertiesFile(contents: string): PropertiesItem[] {\n const propertiesList: PropertiesItem[] = [];\n const lines = contents.split('\\n');\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n if (!line) {\n propertiesList.push({ type: 'empty' });\n } else if (line.startsWith('#')) {\n propertiesList.push({ type: 'comment', value: line.substring(1).trimStart() });\n } else {\n const eok = line.indexOf('=');\n const key = line.slice(0, eok);\n const value = line.slice(eok + 1, line.length);\n propertiesList.push({ type: 'property', key, value });\n }\n }\n\n return propertiesList;\n}\n\nexport function propertiesListToString(props: PropertiesItem[]): string {\n let output = '';\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 'empty') {\n output += '';\n } else if (prop.type === 'comment') {\n output += '# ' + prop.value;\n } else if (prop.type === 'property') {\n output += `${prop.key}=${prop.value}`;\n } else {\n // @ts-ignore: assertion\n throw new Error(`Invalid properties type \"${prop.type}\"`);\n }\n if (i < props.length - 1) {\n output += '\\n';\n }\n }\n return output;\n}\n"],"file":"Properties.js"}
1
+ {"version":3,"file":"Properties.js","names":["parsePropertiesFile","contents","propertiesList","lines","split","i","length","line","trim","push","type","startsWith","value","substring","trimStart","eok","indexOf","key","slice","propertiesListToString","props","output","prop","Error"],"sources":["../../src/android/Properties.ts"],"sourcesContent":["export type PropertiesItem =\n | {\n type: 'comment';\n value: string;\n }\n | {\n type: 'empty';\n }\n | {\n type: 'property';\n key: string;\n value: string;\n };\n\nexport function parsePropertiesFile(contents: string): PropertiesItem[] {\n const propertiesList: PropertiesItem[] = [];\n const lines = contents.split('\\n');\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n if (!line) {\n propertiesList.push({ type: 'empty' });\n } else if (line.startsWith('#')) {\n propertiesList.push({ type: 'comment', value: line.substring(1).trimStart() });\n } else {\n const eok = line.indexOf('=');\n const key = line.slice(0, eok);\n const value = line.slice(eok + 1, line.length);\n propertiesList.push({ type: 'property', key, value });\n }\n }\n\n return propertiesList;\n}\n\nexport function propertiesListToString(props: PropertiesItem[]): string {\n let output = '';\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 'empty') {\n output += '';\n } else if (prop.type === 'comment') {\n output += '# ' + prop.value;\n } else if (prop.type === 'property') {\n output += `${prop.key}=${prop.value}`;\n } else {\n // @ts-ignore: assertion\n throw new Error(`Invalid properties type \"${prop.type}\"`);\n }\n if (i < props.length - 1) {\n output += '\\n';\n }\n }\n return output;\n}\n"],"mappings":";;;;;;;;AAcO,SAASA,mBAAT,CAA6BC,QAA7B,EAAiE;EACtE,MAAMC,cAAgC,GAAG,EAAzC;EACA,MAAMC,KAAK,GAAGF,QAAQ,CAACG,KAAT,CAAe,IAAf,CAAd;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAAK,CAACG,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;IACrC,MAAME,IAAI,GAAGJ,KAAK,CAACE,CAAD,CAAL,CAASG,IAAT,EAAb;;IACA,IAAI,CAACD,IAAL,EAAW;MACTL,cAAc,CAACO,IAAf,CAAoB;QAAEC,IAAI,EAAE;MAAR,CAApB;IACD,CAFD,MAEO,IAAIH,IAAI,CAACI,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;MAC/BT,cAAc,CAACO,IAAf,CAAoB;QAAEC,IAAI,EAAE,SAAR;QAAmBE,KAAK,EAAEL,IAAI,CAACM,SAAL,CAAe,CAAf,EAAkBC,SAAlB;MAA1B,CAApB;IACD,CAFM,MAEA;MACL,MAAMC,GAAG,GAAGR,IAAI,CAACS,OAAL,CAAa,GAAb,CAAZ;MACA,MAAMC,GAAG,GAAGV,IAAI,CAACW,KAAL,CAAW,CAAX,EAAcH,GAAd,CAAZ;MACA,MAAMH,KAAK,GAAGL,IAAI,CAACW,KAAL,CAAWH,GAAG,GAAG,CAAjB,EAAoBR,IAAI,CAACD,MAAzB,CAAd;MACAJ,cAAc,CAACO,IAAf,CAAoB;QAAEC,IAAI,EAAE,UAAR;QAAoBO,GAApB;QAAyBL;MAAzB,CAApB;IACD;EACF;;EAED,OAAOV,cAAP;AACD;;AAEM,SAASiB,sBAAT,CAAgCC,KAAhC,EAAiE;EACtE,IAAIC,MAAM,GAAG,EAAb;;EACA,KAAK,IAAIhB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGe,KAAK,CAACd,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;IACrC,MAAMiB,IAAI,GAAGF,KAAK,CAACf,CAAD,CAAlB;;IACA,IAAIiB,IAAI,CAACZ,IAAL,KAAc,OAAlB,EAA2B;MACzBW,MAAM,IAAI,EAAV;IACD,CAFD,MAEO,IAAIC,IAAI,CAACZ,IAAL,KAAc,SAAlB,EAA6B;MAClCW,MAAM,IAAI,OAAOC,IAAI,CAACV,KAAtB;IACD,CAFM,MAEA,IAAIU,IAAI,CAACZ,IAAL,KAAc,UAAlB,EAA8B;MACnCW,MAAM,IAAK,GAAEC,IAAI,CAACL,GAAI,IAAGK,IAAI,CAACV,KAAM,EAApC;IACD,CAFM,MAEA;MACL;MACA,MAAM,IAAIW,KAAJ,CAAW,4BAA2BD,IAAI,CAACZ,IAAK,GAAhD,CAAN;IACD;;IACD,IAAIL,CAAC,GAAGe,KAAK,CAACd,MAAN,GAAe,CAAvB,EAA0B;MACxBe,MAAM,IAAI,IAAV;IACD;EACF;;EACD,OAAOA,MAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Resources.ts"],"names":["fallbackResourceString","readResourcesXMLAsync","path","fallback","xml","resources","ensureDefaultResourceXML","buildResourceItem","name","value","targetApi","translatable","item","$","_","undefined","String","buildResourceGroup","parent","items","findResourceGroup","group","app","filter","head","matches","getResourceItemsAsObject","reduce","prev","curr","getObjectAsResourceItems","obj","Object","entries","map","getObjectAsResourceGroup"],"mappings":"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","sourcesContent":["import { readXMLAsync, XMLObject } from '../utils/XML';\n\nexport type ResourceGroupXML = {\n $: {\n name: string;\n parent: string;\n };\n item: ResourceItemXML[];\n};\n\nexport type ResourceXML = {\n resources: {\n $?: {\n 'xmlns:tools'?: string;\n };\n color?: ResourceItemXML[];\n string?: ResourceItemXML[];\n style?: ResourceGroupXML[];\n // Add more if needed...\n };\n};\n\nexport type ResourceItemXML = {\n _: string;\n $: {\n name: string;\n 'tools:targetApi'?: string;\n translatable?: string;\n };\n};\n/**\n * Name of the resource folder.\n */\nexport type ResourceKind =\n | 'values'\n | 'values-night'\n | 'values-v23'\n | 'values-night-v23'\n | 'drawable';\n\nconst fallbackResourceString = `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources></resources>`;\n\n/**\n * Read an XML file while providing a default fallback for resource files.\n *\n * @param options path to the XML file, returns a fallback XML if the path doesn't exist.\n */\nexport async function readResourcesXMLAsync({\n path,\n fallback = fallbackResourceString,\n}: {\n path: string;\n fallback?: string | null;\n}): Promise<ResourceXML> {\n const xml = await readXMLAsync({ path, fallback });\n // Ensure the type is expected.\n if (!xml.resources) {\n xml.resources = {};\n }\n return xml as ResourceXML;\n}\n\n/**\n * Ensure the provided xml has a `resources` object (the expected shape).\n *\n * @param xml\n */\nexport function ensureDefaultResourceXML(xml: XMLObject): ResourceXML {\n if (!xml) {\n xml = { resources: {} };\n }\n if (!xml.resources) {\n xml.resources = {};\n }\n\n return xml as ResourceXML;\n}\n\n/**\n * Build a `ResourceItemXML` given its `name` and `value`. This makes things a bit more readable.\n *\n * - JSON: `{ $: { name }, _: value }`\n * - XML: `<item name=\"NAME\">VALUE</item>`\n *\n * @param props name and value strings.\n */\nexport function buildResourceItem({\n name,\n value,\n targetApi,\n translatable,\n}: {\n name: string;\n value: string;\n targetApi?: string;\n translatable?: boolean;\n}): ResourceItemXML {\n const item: ResourceItemXML = { $: { name }, _: value };\n if (targetApi) {\n item.$['tools:targetApi'] = targetApi;\n }\n if (translatable !== undefined) {\n item.$['translatable'] = String(translatable);\n }\n return item;\n}\n\nexport function buildResourceGroup(parent: {\n name: string;\n parent: string;\n items?: ResourceItemXML[];\n}): ResourceGroupXML {\n return {\n $: { name: parent.name, parent: parent.parent },\n item: parent.items ?? [],\n };\n}\n\nexport function findResourceGroup(\n xml: ResourceGroupXML[] | undefined,\n group: { name: string; parent?: string }\n): ResourceGroupXML | null {\n const app = xml?.filter?.(({ $: head }) => {\n let matches = head.name === group.name;\n if (group.parent != null && matches) {\n matches = head.parent === group.parent;\n }\n return matches;\n })?.[0];\n return app ?? null;\n}\n\n/**\n * Helper to convert a basic XML object into a simple k/v pair.\n *\n * @param xml\n * @returns\n */\nexport function getResourceItemsAsObject(xml: ResourceItemXML[]): Record<string, string> | null {\n return xml.reduce(\n (prev, curr) => ({\n ...prev,\n [curr.$.name]: curr._,\n }),\n {}\n );\n}\n\n/**\n * Helper to convert a basic k/v object to a ResourceItemXML array.\n *\n * @param xml\n * @returns\n */\nexport function getObjectAsResourceItems(obj: Record<string, string>): ResourceItemXML[] {\n return Object.entries(obj).map(([name, value]) => ({\n $: { name },\n _: value,\n }));\n}\n\nexport function getObjectAsResourceGroup(group: {\n name: string;\n parent: string;\n item: Record<string, string>;\n}): ResourceGroupXML {\n return {\n $: {\n name: group.name,\n parent: group.parent,\n },\n item: getObjectAsResourceItems(group.item),\n };\n}\n"],"file":"Resources.js"}
1
+ {"version":3,"file":"Resources.js","names":["fallbackResourceString","readResourcesXMLAsync","path","fallback","xml","readXMLAsync","resources","ensureDefaultResourceXML","buildResourceItem","name","value","targetApi","translatable","item","$","_","undefined","String","buildResourceGroup","parent","items","findResourceGroup","group","app","filter","head","matches","getResourceItemsAsObject","reduce","prev","curr","getObjectAsResourceItems","obj","Object","entries","map","getObjectAsResourceGroup"],"sources":["../../src/android/Resources.ts"],"sourcesContent":["import { readXMLAsync, XMLObject } from '../utils/XML';\n\nexport type ResourceGroupXML = {\n $: {\n name: string;\n parent: string;\n };\n item: ResourceItemXML[];\n};\n\nexport type ResourceXML = {\n resources: {\n $?: {\n 'xmlns:tools'?: string;\n };\n color?: ResourceItemXML[];\n string?: ResourceItemXML[];\n style?: ResourceGroupXML[];\n // Add more if needed...\n };\n};\n\nexport type ResourceItemXML = {\n _: string;\n $: {\n name: string;\n 'tools:targetApi'?: string;\n translatable?: string;\n };\n};\n/**\n * Name of the resource folder.\n */\nexport type ResourceKind =\n | 'values'\n | 'values-night'\n | 'values-v23'\n | 'values-night-v23'\n | 'drawable';\n\nconst fallbackResourceString = `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources></resources>`;\n\n/**\n * Read an XML file while providing a default fallback for resource files.\n *\n * @param options path to the XML file, returns a fallback XML if the path doesn't exist.\n */\nexport async function readResourcesXMLAsync({\n path,\n fallback = fallbackResourceString,\n}: {\n path: string;\n fallback?: string | null;\n}): Promise<ResourceXML> {\n const xml = await readXMLAsync({ path, fallback });\n // Ensure the type is expected.\n if (!xml.resources) {\n xml.resources = {};\n }\n return xml as ResourceXML;\n}\n\n/**\n * Ensure the provided xml has a `resources` object (the expected shape).\n *\n * @param xml\n */\nexport function ensureDefaultResourceXML(xml: XMLObject): ResourceXML {\n if (!xml) {\n xml = { resources: {} };\n }\n if (!xml.resources) {\n xml.resources = {};\n }\n\n return xml as ResourceXML;\n}\n\n/**\n * Build a `ResourceItemXML` given its `name` and `value`. This makes things a bit more readable.\n *\n * - JSON: `{ $: { name }, _: value }`\n * - XML: `<item name=\"NAME\">VALUE</item>`\n *\n * @param props name and value strings.\n */\nexport function buildResourceItem({\n name,\n value,\n targetApi,\n translatable,\n}: {\n name: string;\n value: string;\n targetApi?: string;\n translatable?: boolean;\n}): ResourceItemXML {\n const item: ResourceItemXML = { $: { name }, _: value };\n if (targetApi) {\n item.$['tools:targetApi'] = targetApi;\n }\n if (translatable !== undefined) {\n item.$['translatable'] = String(translatable);\n }\n return item;\n}\n\nexport function buildResourceGroup(parent: {\n name: string;\n parent: string;\n items?: ResourceItemXML[];\n}): ResourceGroupXML {\n return {\n $: { name: parent.name, parent: parent.parent },\n item: parent.items ?? [],\n };\n}\n\nexport function findResourceGroup(\n xml: ResourceGroupXML[] | undefined,\n group: { name: string; parent?: string }\n): ResourceGroupXML | null {\n const app = xml?.filter?.(({ $: head }) => {\n let matches = head.name === group.name;\n if (group.parent != null && matches) {\n matches = head.parent === group.parent;\n }\n return matches;\n })?.[0];\n return app ?? null;\n}\n\n/**\n * Helper to convert a basic XML object into a simple k/v pair.\n *\n * @param xml\n * @returns\n */\nexport function getResourceItemsAsObject(xml: ResourceItemXML[]): Record<string, string> | null {\n return xml.reduce(\n (prev, curr) => ({\n ...prev,\n [curr.$.name]: curr._,\n }),\n {}\n );\n}\n\n/**\n * Helper to convert a basic k/v object to a ResourceItemXML array.\n *\n * @param xml\n * @returns\n */\nexport function getObjectAsResourceItems(obj: Record<string, string>): ResourceItemXML[] {\n return Object.entries(obj).map(([name, value]) => ({\n $: { name },\n _: value,\n }));\n}\n\nexport function getObjectAsResourceGroup(group: {\n name: string;\n parent: string;\n item: Record<string, string>;\n}): ResourceGroupXML {\n return {\n $: {\n name: group.name,\n parent: group.parent,\n },\n item: getObjectAsResourceItems(group.item),\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Scheme.ts"],"names":["withScheme","setScheme","getScheme","config","Array","isArray","scheme","validate","value","filter","androidManifest","schemes","android","package","push","length","ensureManifestHasValidIntentFilter","currentSchemes","getSchemesFromManifest","uri","index","indexOf","splice","appendScheme","isValidRedirectIntentFilter","actions","categories","includes","propertiesFromIntentFilter","intentFilter","action","map","data","$","category","host","getSingleTaskIntentFilters","manifest","application","outputSchemes","activity","activities","singleTaskActivities","intentFilters","concat","requestedHost","singleTaskIntentFilters","properties","hasScheme","removeScheme","dataKey"],"mappings":"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","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createAndroidManifestPlugin } from '../plugins/android-plugins';\nimport { addWarningAndroid } from '../utils/warnings';\nimport { AndroidManifest, ManifestActivity } from './Manifest';\n\nexport type IntentFilterProps = {\n actions: string[];\n categories: string[];\n data: {\n scheme: string;\n host?: string;\n }[];\n};\n\nexport const withScheme = createAndroidManifestPlugin(setScheme, 'withScheme');\n\nexport function getScheme(config: { scheme?: string | string[] }): string[] {\n if (Array.isArray(config.scheme)) {\n const validate = (value: any): value is string => typeof value === 'string';\n\n return config.scheme.filter<string>(validate);\n } else if (typeof config.scheme === 'string') {\n return [config.scheme];\n }\n return [];\n}\n\n// This plugin used to remove the unused schemes but this is unpredictable because other plugins could add schemes.\n// The only way to reliably remove schemes from the project is to nuke the file and regenerate the code (`expo prebuild --clean`).\n// Regardless, having extra schemes isn't a fatal issue and therefore a tolerable compromise is to just add new schemes that aren't currently present.\nexport function setScheme(\n config: Pick<ExpoConfig, 'scheme' | 'android'>,\n androidManifest: AndroidManifest\n) {\n const schemes = [\n ...getScheme(config),\n // @ts-ignore: TODO: android.scheme is an unreleased -- harder to add to turtle v1.\n ...getScheme(config.android ?? {}),\n ];\n // Add the package name to the list of schemes for easier Google auth and parity with Turtle v1.\n if (config.android?.package) {\n schemes.push(config.android.package);\n }\n if (schemes.length === 0) {\n return androidManifest;\n }\n\n if (!ensureManifestHasValidIntentFilter(androidManifest)) {\n addWarningAndroid(\n 'scheme',\n `Cannot add schemes because the provided manifest does not have a valid Activity with \\`android:launchMode=\"singleTask\"\\``,\n 'https://expo.fyi/setup-android-uri-scheme'\n );\n return androidManifest;\n }\n\n // Get the current schemes and remove them from the list of schemes to add.\n const currentSchemes = getSchemesFromManifest(androidManifest);\n for (const uri of currentSchemes) {\n const index = schemes.indexOf(uri);\n if (index > -1) schemes.splice(index, 1);\n }\n\n // Now add all of the remaining schemes.\n for (const uri of schemes) {\n androidManifest = appendScheme(uri, androidManifest);\n }\n\n return androidManifest;\n}\n\nfunction isValidRedirectIntentFilter({ actions, categories }: IntentFilterProps): boolean {\n return (\n actions.includes('android.intent.action.VIEW') &&\n !categories.includes('android.intent.category.LAUNCHER')\n );\n}\n\nfunction propertiesFromIntentFilter(intentFilter: any): IntentFilterProps {\n const actions = intentFilter?.action?.map((data: any) => data?.$?.['android:name']) ?? [];\n const categories = intentFilter?.category?.map((data: any) => data?.$?.['android:name']) ?? [];\n const data =\n intentFilter?.data\n ?.filter((data: any) => data?.$?.['android:scheme'])\n ?.map((data: any) => ({\n scheme: data?.$?.['android:scheme'],\n host: data?.$?.['android:host'],\n })) ?? [];\n return {\n actions,\n categories,\n data,\n };\n}\n\nfunction getSingleTaskIntentFilters(androidManifest: AndroidManifest): any[] {\n if (!Array.isArray(androidManifest.manifest.application)) return [];\n\n let outputSchemes: any[] = [];\n for (const application of androidManifest.manifest.application) {\n const { activity } = application;\n // @ts-ignore\n const activities = Array.isArray(activity) ? activity : [activity];\n const singleTaskActivities = (activities as ManifestActivity[]).filter(\n activity => activity?.$?.['android:launchMode'] === 'singleTask'\n );\n for (const activity of singleTaskActivities) {\n const intentFilters = activity['intent-filter'];\n outputSchemes = outputSchemes.concat(intentFilters);\n }\n }\n return outputSchemes;\n}\n\nexport function getSchemesFromManifest(\n androidManifest: AndroidManifest,\n requestedHost: string | null = null\n): string[] {\n const outputSchemes: string[] = [];\n\n const singleTaskIntentFilters = getSingleTaskIntentFilters(androidManifest);\n for (const intentFilter of singleTaskIntentFilters) {\n const properties = propertiesFromIntentFilter(intentFilter);\n if (isValidRedirectIntentFilter(properties) && properties.data) {\n for (const { scheme, host } of properties.data) {\n if (requestedHost === null || !host || host === requestedHost) {\n outputSchemes.push(scheme);\n }\n }\n }\n }\n\n return outputSchemes;\n}\n\nexport function ensureManifestHasValidIntentFilter(androidManifest: AndroidManifest): boolean {\n if (!Array.isArray(androidManifest.manifest.application)) {\n return false;\n }\n\n for (const application of androidManifest.manifest.application) {\n for (const activity of application.activity || []) {\n if (activity?.$?.['android:launchMode'] === 'singleTask') {\n for (const intentFilter of activity['intent-filter'] || []) {\n // Parse valid intent filters...\n const properties = propertiesFromIntentFilter(intentFilter);\n if (isValidRedirectIntentFilter(properties)) {\n return true;\n }\n }\n if (!activity['intent-filter']) {\n activity['intent-filter'] = [];\n }\n\n activity['intent-filter'].push({\n action: [{ $: { 'android:name': 'android.intent.action.VIEW' } }],\n category: [\n { $: { 'android:name': 'android.intent.category.DEFAULT' } },\n { $: { 'android:name': 'android.intent.category.BROWSABLE' } },\n ],\n });\n return true;\n }\n }\n }\n return false;\n}\n\nexport function hasScheme(scheme: string, androidManifest: AndroidManifest): boolean {\n const schemes = getSchemesFromManifest(androidManifest);\n return schemes.includes(scheme);\n}\n\nexport function appendScheme(scheme: string, androidManifest: AndroidManifest): AndroidManifest {\n if (!Array.isArray(androidManifest.manifest.application)) {\n return androidManifest;\n }\n\n for (const application of androidManifest.manifest.application) {\n for (const activity of application.activity || []) {\n if (activity?.$?.['android:launchMode'] === 'singleTask') {\n for (const intentFilter of activity['intent-filter'] || []) {\n const properties = propertiesFromIntentFilter(intentFilter);\n if (isValidRedirectIntentFilter(properties)) {\n if (!intentFilter.data) intentFilter.data = [];\n intentFilter.data.push({\n $: { 'android:scheme': scheme },\n });\n }\n }\n break;\n }\n }\n }\n return androidManifest;\n}\n\nexport function removeScheme(scheme: string, androidManifest: AndroidManifest): AndroidManifest {\n if (!Array.isArray(androidManifest.manifest.application)) {\n return androidManifest;\n }\n\n for (const application of androidManifest.manifest.application) {\n for (const activity of application.activity || []) {\n if (activity?.$?.['android:launchMode'] === 'singleTask') {\n for (const intentFilter of activity['intent-filter'] || []) {\n // Parse valid intent filters...\n const properties = propertiesFromIntentFilter(intentFilter);\n if (isValidRedirectIntentFilter(properties)) {\n for (const dataKey in intentFilter?.data || []) {\n const data = intentFilter.data?.[dataKey];\n if (data?.$?.['android:scheme'] === scheme) {\n delete intentFilter.data?.[dataKey];\n }\n }\n }\n }\n break;\n }\n }\n }\n\n return androidManifest;\n}\n"],"file":"Scheme.js"}
1
+ {"version":3,"file":"Scheme.js","names":["withScheme","createAndroidManifestPlugin","setScheme","getScheme","config","Array","isArray","scheme","validate","value","filter","androidManifest","schemes","android","package","push","length","ensureManifestHasValidIntentFilter","addWarningAndroid","currentSchemes","getSchemesFromManifest","uri","index","indexOf","splice","appendScheme","isValidRedirectIntentFilter","actions","categories","includes","propertiesFromIntentFilter","intentFilter","action","map","data","$","category","host","getSingleTaskIntentFilters","manifest","application","outputSchemes","activity","activities","singleTaskActivities","intentFilters","concat","requestedHost","singleTaskIntentFilters","properties","hasScheme","removeScheme","dataKey"],"sources":["../../src/android/Scheme.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createAndroidManifestPlugin } from '../plugins/android-plugins';\nimport { addWarningAndroid } from '../utils/warnings';\nimport { AndroidManifest, ManifestActivity } from './Manifest';\n\nexport type IntentFilterProps = {\n actions: string[];\n categories: string[];\n data: {\n scheme: string;\n host?: string;\n }[];\n};\n\nexport const withScheme = createAndroidManifestPlugin(setScheme, 'withScheme');\n\nexport function getScheme(config: { scheme?: string | string[] }): string[] {\n if (Array.isArray(config.scheme)) {\n const validate = (value: any): value is string => typeof value === 'string';\n\n return config.scheme.filter<string>(validate);\n } else if (typeof config.scheme === 'string') {\n return [config.scheme];\n }\n return [];\n}\n\n// This plugin used to remove the unused schemes but this is unpredictable because other plugins could add schemes.\n// The only way to reliably remove schemes from the project is to nuke the file and regenerate the code (`expo prebuild --clean`).\n// Regardless, having extra schemes isn't a fatal issue and therefore a tolerable compromise is to just add new schemes that aren't currently present.\nexport function setScheme(\n config: Pick<ExpoConfig, 'scheme' | 'android'>,\n androidManifest: AndroidManifest\n) {\n const schemes = [\n ...getScheme(config),\n // @ts-ignore: TODO: android.scheme is an unreleased -- harder to add to turtle v1.\n ...getScheme(config.android ?? {}),\n ];\n // Add the package name to the list of schemes for easier Google auth and parity with Turtle v1.\n if (config.android?.package) {\n schemes.push(config.android.package);\n }\n if (schemes.length === 0) {\n return androidManifest;\n }\n\n if (!ensureManifestHasValidIntentFilter(androidManifest)) {\n addWarningAndroid(\n 'scheme',\n `Cannot add schemes because the provided manifest does not have a valid Activity with \\`android:launchMode=\"singleTask\"\\``,\n 'https://expo.fyi/setup-android-uri-scheme'\n );\n return androidManifest;\n }\n\n // Get the current schemes and remove them from the list of schemes to add.\n const currentSchemes = getSchemesFromManifest(androidManifest);\n for (const uri of currentSchemes) {\n const index = schemes.indexOf(uri);\n if (index > -1) schemes.splice(index, 1);\n }\n\n // Now add all of the remaining schemes.\n for (const uri of schemes) {\n androidManifest = appendScheme(uri, androidManifest);\n }\n\n return androidManifest;\n}\n\nfunction isValidRedirectIntentFilter({ actions, categories }: IntentFilterProps): boolean {\n return (\n actions.includes('android.intent.action.VIEW') &&\n !categories.includes('android.intent.category.LAUNCHER')\n );\n}\n\nfunction propertiesFromIntentFilter(intentFilter: any): IntentFilterProps {\n const actions = intentFilter?.action?.map((data: any) => data?.$?.['android:name']) ?? [];\n const categories = intentFilter?.category?.map((data: any) => data?.$?.['android:name']) ?? [];\n const data =\n intentFilter?.data\n ?.filter((data: any) => data?.$?.['android:scheme'])\n ?.map((data: any) => ({\n scheme: data?.$?.['android:scheme'],\n host: data?.$?.['android:host'],\n })) ?? [];\n return {\n actions,\n categories,\n data,\n };\n}\n\nfunction getSingleTaskIntentFilters(androidManifest: AndroidManifest): any[] {\n if (!Array.isArray(androidManifest.manifest.application)) return [];\n\n let outputSchemes: any[] = [];\n for (const application of androidManifest.manifest.application) {\n const { activity } = application;\n // @ts-ignore\n const activities = Array.isArray(activity) ? activity : [activity];\n const singleTaskActivities = (activities as ManifestActivity[]).filter(\n (activity) => activity?.$?.['android:launchMode'] === 'singleTask'\n );\n for (const activity of singleTaskActivities) {\n const intentFilters = activity['intent-filter'];\n outputSchemes = outputSchemes.concat(intentFilters);\n }\n }\n return outputSchemes;\n}\n\nexport function getSchemesFromManifest(\n androidManifest: AndroidManifest,\n requestedHost: string | null = null\n): string[] {\n const outputSchemes: string[] = [];\n\n const singleTaskIntentFilters = getSingleTaskIntentFilters(androidManifest);\n for (const intentFilter of singleTaskIntentFilters) {\n const properties = propertiesFromIntentFilter(intentFilter);\n if (isValidRedirectIntentFilter(properties) && properties.data) {\n for (const { scheme, host } of properties.data) {\n if (requestedHost === null || !host || host === requestedHost) {\n outputSchemes.push(scheme);\n }\n }\n }\n }\n\n return outputSchemes;\n}\n\nexport function ensureManifestHasValidIntentFilter(androidManifest: AndroidManifest): boolean {\n if (!Array.isArray(androidManifest.manifest.application)) {\n return false;\n }\n\n for (const application of androidManifest.manifest.application) {\n for (const activity of application.activity || []) {\n if (activity?.$?.['android:launchMode'] === 'singleTask') {\n for (const intentFilter of activity['intent-filter'] || []) {\n // Parse valid intent filters...\n const properties = propertiesFromIntentFilter(intentFilter);\n if (isValidRedirectIntentFilter(properties)) {\n return true;\n }\n }\n if (!activity['intent-filter']) {\n activity['intent-filter'] = [];\n }\n\n activity['intent-filter'].push({\n action: [{ $: { 'android:name': 'android.intent.action.VIEW' } }],\n category: [\n { $: { 'android:name': 'android.intent.category.DEFAULT' } },\n { $: { 'android:name': 'android.intent.category.BROWSABLE' } },\n ],\n });\n return true;\n }\n }\n }\n return false;\n}\n\nexport function hasScheme(scheme: string, androidManifest: AndroidManifest): boolean {\n const schemes = getSchemesFromManifest(androidManifest);\n return schemes.includes(scheme);\n}\n\nexport function appendScheme(scheme: string, androidManifest: AndroidManifest): AndroidManifest {\n if (!Array.isArray(androidManifest.manifest.application)) {\n return androidManifest;\n }\n\n for (const application of androidManifest.manifest.application) {\n for (const activity of application.activity || []) {\n if (activity?.$?.['android:launchMode'] === 'singleTask') {\n for (const intentFilter of activity['intent-filter'] || []) {\n const properties = propertiesFromIntentFilter(intentFilter);\n if (isValidRedirectIntentFilter(properties)) {\n if (!intentFilter.data) intentFilter.data = [];\n intentFilter.data.push({\n $: { 'android:scheme': scheme },\n });\n }\n }\n break;\n }\n }\n }\n return androidManifest;\n}\n\nexport function removeScheme(scheme: string, androidManifest: AndroidManifest): AndroidManifest {\n if (!Array.isArray(androidManifest.manifest.application)) {\n return androidManifest;\n }\n\n for (const application of androidManifest.manifest.application) {\n for (const activity of application.activity || []) {\n if (activity?.$?.['android:launchMode'] === 'singleTask') {\n for (const intentFilter of activity['intent-filter'] || []) {\n // Parse valid intent filters...\n const properties = propertiesFromIntentFilter(intentFilter);\n if (isValidRedirectIntentFilter(properties)) {\n for (const dataKey in intentFilter?.data || []) {\n const data = intentFilter.data?.[dataKey];\n if (data?.$?.['android:scheme'] === scheme) {\n delete intentFilter.data?.[dataKey];\n }\n }\n }\n }\n break;\n }\n }\n }\n\n return androidManifest;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/StatusBar.ts"],"names":["COLOR_PRIMARY_DARK_KEY","WINDOW_TRANSLUCENT_STATUS","WINDOW_LIGHT_STATUS_BAR","withStatusBar","config","withStatusBarColors","withStatusBarStyles","modResults","setStatusBarColors","setStatusBarStyles","colors","name","value","getStatusBarColor","styles","hexString","floatElement","getStatusBarTranslucent","parent","targetApi","add","getStatusBarStyle","backgroundColor","androidStatusBar","translucent","barStyle"],"mappings":"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","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport assert from 'assert';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidColors, withAndroidStyles } from '../plugins/android-plugins';\nimport { assignColorValue } from './Colors';\nimport { ResourceXML } from './Resources';\nimport { assignStylesValue, getAppThemeLightNoActionBarGroup } from './Styles';\n\n// https://developer.android.com/reference/android/R.attr#colorPrimaryDark\nconst COLOR_PRIMARY_DARK_KEY = 'colorPrimaryDark';\n// https://developer.android.com/reference/android/R.attr#windowTranslucentStatus\nconst WINDOW_TRANSLUCENT_STATUS = 'android:windowTranslucentStatus';\n// https://developer.android.com/reference/android/R.attr#windowLightStatusBar\nconst WINDOW_LIGHT_STATUS_BAR = 'android:windowLightStatusBar';\n\nexport const withStatusBar: ConfigPlugin = config => {\n config = withStatusBarColors(config);\n config = withStatusBarStyles(config);\n return config;\n};\n\nconst withStatusBarColors: ConfigPlugin = config => {\n return withAndroidColors(config, config => {\n config.modResults = setStatusBarColors(config, config.modResults);\n return config;\n });\n};\n\nconst withStatusBarStyles: ConfigPlugin = config => {\n return withAndroidStyles(config, config => {\n config.modResults = setStatusBarStyles(config, config.modResults);\n return config;\n });\n};\n\nexport function setStatusBarColors(\n config: Pick<ExpoConfig, 'androidStatusBar'>,\n colors: ResourceXML\n): ResourceXML {\n return assignColorValue(colors, {\n name: COLOR_PRIMARY_DARK_KEY,\n value: getStatusBarColor(config),\n });\n}\n\nexport function setStatusBarStyles(\n config: Pick<ExpoConfig, 'androidStatusBar'>,\n styles: ResourceXML\n): ResourceXML {\n const hexString = getStatusBarColor(config);\n const floatElement = getStatusBarTranslucent(config);\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeLightNoActionBarGroup(),\n name: WINDOW_LIGHT_STATUS_BAR,\n targetApi: '23',\n value: 'true',\n // Default is light-content, don't need to do anything to set it\n add: getStatusBarStyle(config) === 'dark-content',\n });\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeLightNoActionBarGroup(),\n name: WINDOW_TRANSLUCENT_STATUS,\n value: 'true',\n // translucent status bar set in theme\n add: floatElement,\n });\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeLightNoActionBarGroup(),\n name: COLOR_PRIMARY_DARK_KEY,\n value: `@color/${COLOR_PRIMARY_DARK_KEY}`,\n // Remove the color if translucent is used\n add: !!hexString,\n });\n\n return styles;\n}\n\nexport function getStatusBarColor(config: Pick<ExpoConfig, 'androidStatusBar'>) {\n const backgroundColor = config.androidStatusBar?.backgroundColor;\n if (backgroundColor) {\n // Drop support for translucent\n assert(\n backgroundColor !== 'translucent',\n `androidStatusBar.backgroundColor must be a valid hex string, instead got: \"${backgroundColor}\"`\n );\n }\n return backgroundColor;\n}\n\n/**\n * Specifies whether the status bar should be \"translucent\". When true, the status bar is drawn with `position: absolute` and a gray underlay, when false `position: relative` (pushes content down).\n *\n * @default false\n * @param config\n * @returns\n */\nexport function getStatusBarTranslucent(config: Pick<ExpoConfig, 'androidStatusBar'>): boolean {\n return config.androidStatusBar?.translucent ?? false;\n}\n\nexport function getStatusBarStyle(config: Pick<ExpoConfig, 'androidStatusBar'>) {\n return config.androidStatusBar?.barStyle || 'light-content';\n}\n"],"file":"StatusBar.js"}
1
+ {"version":3,"file":"StatusBar.js","names":["COLOR_PRIMARY_DARK_KEY","WINDOW_TRANSLUCENT_STATUS","WINDOW_LIGHT_STATUS_BAR","withStatusBar","config","withStatusBarColors","withStatusBarStyles","withAndroidColors","modResults","setStatusBarColors","withAndroidStyles","setStatusBarStyles","colors","assignColorValue","name","value","getStatusBarColor","styles","hexString","floatElement","getStatusBarTranslucent","assignStylesValue","parent","getAppThemeLightNoActionBarGroup","targetApi","add","getStatusBarStyle","backgroundColor","androidStatusBar","assert","translucent","barStyle"],"sources":["../../src/android/StatusBar.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport assert from 'assert';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidColors, withAndroidStyles } from '../plugins/android-plugins';\nimport { assignColorValue } from './Colors';\nimport { ResourceXML } from './Resources';\nimport { assignStylesValue, getAppThemeLightNoActionBarGroup } from './Styles';\n\n// https://developer.android.com/reference/android/R.attr#colorPrimaryDark\nconst COLOR_PRIMARY_DARK_KEY = 'colorPrimaryDark';\n// https://developer.android.com/reference/android/R.attr#windowTranslucentStatus\nconst WINDOW_TRANSLUCENT_STATUS = 'android:windowTranslucentStatus';\n// https://developer.android.com/reference/android/R.attr#windowLightStatusBar\nconst WINDOW_LIGHT_STATUS_BAR = 'android:windowLightStatusBar';\n\nexport const withStatusBar: ConfigPlugin = (config) => {\n config = withStatusBarColors(config);\n config = withStatusBarStyles(config);\n return config;\n};\n\nconst withStatusBarColors: ConfigPlugin = (config) => {\n return withAndroidColors(config, (config) => {\n config.modResults = setStatusBarColors(config, config.modResults);\n return config;\n });\n};\n\nconst withStatusBarStyles: ConfigPlugin = (config) => {\n return withAndroidStyles(config, (config) => {\n config.modResults = setStatusBarStyles(config, config.modResults);\n return config;\n });\n};\n\nexport function setStatusBarColors(\n config: Pick<ExpoConfig, 'androidStatusBar'>,\n colors: ResourceXML\n): ResourceXML {\n return assignColorValue(colors, {\n name: COLOR_PRIMARY_DARK_KEY,\n value: getStatusBarColor(config),\n });\n}\n\nexport function setStatusBarStyles(\n config: Pick<ExpoConfig, 'androidStatusBar'>,\n styles: ResourceXML\n): ResourceXML {\n const hexString = getStatusBarColor(config);\n const floatElement = getStatusBarTranslucent(config);\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeLightNoActionBarGroup(),\n name: WINDOW_LIGHT_STATUS_BAR,\n targetApi: '23',\n value: 'true',\n // Default is light-content, don't need to do anything to set it\n add: getStatusBarStyle(config) === 'dark-content',\n });\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeLightNoActionBarGroup(),\n name: WINDOW_TRANSLUCENT_STATUS,\n value: 'true',\n // translucent status bar set in theme\n add: floatElement,\n });\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeLightNoActionBarGroup(),\n name: COLOR_PRIMARY_DARK_KEY,\n value: `@color/${COLOR_PRIMARY_DARK_KEY}`,\n // Remove the color if translucent is used\n add: !!hexString,\n });\n\n return styles;\n}\n\nexport function getStatusBarColor(config: Pick<ExpoConfig, 'androidStatusBar'>) {\n const backgroundColor = config.androidStatusBar?.backgroundColor;\n if (backgroundColor) {\n // Drop support for translucent\n assert(\n backgroundColor !== 'translucent',\n `androidStatusBar.backgroundColor must be a valid hex string, instead got: \"${backgroundColor}\"`\n );\n }\n return backgroundColor;\n}\n\n/**\n * Specifies whether the status bar should be \"translucent\". When true, the status bar is drawn with `position: absolute` and a gray underlay, when false `position: relative` (pushes content down).\n *\n * @default false\n * @param config\n * @returns\n */\nexport function getStatusBarTranslucent(config: Pick<ExpoConfig, 'androidStatusBar'>): boolean {\n return config.androidStatusBar?.translucent ?? false;\n}\n\nexport function getStatusBarStyle(config: Pick<ExpoConfig, 'androidStatusBar'>) {\n return config.androidStatusBar?.barStyle || 'light-content';\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Strings.ts"],"names":["getProjectStringsXMLPathAsync","projectRoot","kind","name","setStringItem","itemToAdd","stringFileContentsJSON","resources","string","newItem","stringNameExists","findIndex","e","$","concat","removeStringItem","named","splice"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,eAAeA,6BAAf,CACLC,WADK,EAEL;AAAEC,EAAAA;AAAF,IAAoC,EAF/B,EAGY;AACjB,SAAO,sCAAwBD,WAAxB,EAAqC;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAI,EAAE;AAAd,GAArC,CAAP;AACD;;AAEM,SAASC,aAAT,CACLC,SADK,EAELC,sBAFK,EAGQ;AAAA;;AACb,MAAI,EAACA,sBAAD,aAACA,sBAAD,wCAACA,sBAAsB,CAAEC,SAAzB,kDAAC,sBAAmCC,MAApC,CAAJ,EAAgD;AAC9C,QAAI,CAACF,sBAAsB,CAACC,SAAxB,IAAqC,OAAOD,sBAAsB,CAACC,SAA9B,KAA4C,QAArF,EAA+F;AAC7F;AACAD,MAAAA,sBAAsB,CAACC,SAAvB,GAAmC,EAAnC;AACD;;AACDD,IAAAA,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,GAA0CH,SAA1C;AACA,WAAOC,sBAAP;AACD;;AAED,OAAK,MAAMG,OAAX,IAAsBJ,SAAtB,EAAiC;AAC/B,UAAMK,gBAAgB,GAAGJ,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCG,SAAxC,CACtBC,CAAD,IAAwBA,CAAC,CAACC,CAAF,CAAIV,IAAJ,KAAaM,OAAO,CAACI,CAAR,CAAUV,IADxB,CAAzB;;AAGA,QAAIO,gBAAgB,GAAG,CAAC,CAAxB,EAA2B;AACzB;AACAJ,MAAAA,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCE,gBAAxC,IAA4DD,OAA5D;AACD,KAHD,MAGO;AACLH,MAAAA,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,GAA0CF,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCM,MAAxC,CACxCL,OADwC,CAA1C;AAGD;AACF;;AACD,SAAOH,sBAAP;AACD;;AAEM,SAASS,gBAAT,CAA0BC,KAA1B,EAAyCV,sBAAzC,EAA2F;AAAA;;AAChG,MAAIA,sBAAJ,aAAIA,sBAAJ,yCAAIA,sBAAsB,CAAEC,SAA5B,mDAAI,uBAAmCC,MAAvC,EAA+C;AAC7C,UAAME,gBAAgB,GAAGJ,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCG,SAAxC,CACtBC,CAAD,IAAwBA,CAAC,CAACC,CAAF,CAAIV,IAAJ,KAAaa,KADd,CAAzB;;AAGA,QAAIN,gBAAgB,GAAG,CAAC,CAAxB,EAA2B;AACzB;AACAJ,MAAAA,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCS,MAAxC,CAA+CP,gBAA/C,EAAiE,CAAjE;AACD;AACF;;AACD,SAAOJ,sBAAP;AACD","sourcesContent":["import { getResourceXMLPathAsync } from './Paths';\nimport { ResourceItemXML, ResourceKind, ResourceXML } from './Resources';\n\nexport async function getProjectStringsXMLPathAsync(\n projectRoot: string,\n { kind }: { kind?: ResourceKind } = {}\n): Promise<string> {\n return getResourceXMLPathAsync(projectRoot, { kind, name: 'strings' });\n}\n\nexport function setStringItem(\n itemToAdd: ResourceItemXML[],\n stringFileContentsJSON: ResourceXML\n): ResourceXML {\n if (!stringFileContentsJSON?.resources?.string) {\n if (!stringFileContentsJSON.resources || typeof stringFileContentsJSON.resources === 'string') {\n // file was empty and JSON is `{resources : ''}`\n stringFileContentsJSON.resources = {};\n }\n stringFileContentsJSON.resources.string = itemToAdd;\n return stringFileContentsJSON;\n }\n\n for (const newItem of itemToAdd) {\n const stringNameExists = stringFileContentsJSON.resources.string.findIndex(\n (e: ResourceItemXML) => e.$.name === newItem.$.name\n );\n if (stringNameExists > -1) {\n // replace the previous item\n stringFileContentsJSON.resources.string[stringNameExists] = newItem;\n } else {\n stringFileContentsJSON.resources.string = stringFileContentsJSON.resources.string.concat(\n newItem\n );\n }\n }\n return stringFileContentsJSON;\n}\n\nexport function removeStringItem(named: string, stringFileContentsJSON: ResourceXML): ResourceXML {\n if (stringFileContentsJSON?.resources?.string) {\n const stringNameExists = stringFileContentsJSON.resources.string.findIndex(\n (e: ResourceItemXML) => e.$.name === named\n );\n if (stringNameExists > -1) {\n // replace the previous value\n stringFileContentsJSON.resources.string.splice(stringNameExists, 1);\n }\n }\n return stringFileContentsJSON;\n}\n"],"file":"Strings.js"}
1
+ {"version":3,"file":"Strings.js","names":["getProjectStringsXMLPathAsync","projectRoot","kind","getResourceXMLPathAsync","name","setStringItem","itemToAdd","stringFileContentsJSON","resources","string","newItem","stringNameExists","findIndex","e","$","concat","removeStringItem","named","splice"],"sources":["../../src/android/Strings.ts"],"sourcesContent":["import { getResourceXMLPathAsync } from './Paths';\nimport { ResourceItemXML, ResourceKind, ResourceXML } from './Resources';\n\nexport async function getProjectStringsXMLPathAsync(\n projectRoot: string,\n { kind }: { kind?: ResourceKind } = {}\n): Promise<string> {\n return getResourceXMLPathAsync(projectRoot, { kind, name: 'strings' });\n}\n\nexport function setStringItem(\n itemToAdd: ResourceItemXML[],\n stringFileContentsJSON: ResourceXML\n): ResourceXML {\n if (!stringFileContentsJSON?.resources?.string) {\n if (!stringFileContentsJSON.resources || typeof stringFileContentsJSON.resources === 'string') {\n // file was empty and JSON is `{resources : ''}`\n stringFileContentsJSON.resources = {};\n }\n stringFileContentsJSON.resources.string = itemToAdd;\n return stringFileContentsJSON;\n }\n\n for (const newItem of itemToAdd) {\n const stringNameExists = stringFileContentsJSON.resources.string.findIndex(\n (e: ResourceItemXML) => e.$.name === newItem.$.name\n );\n if (stringNameExists > -1) {\n // replace the previous item\n stringFileContentsJSON.resources.string[stringNameExists] = newItem;\n } else {\n stringFileContentsJSON.resources.string =\n stringFileContentsJSON.resources.string.concat(newItem);\n }\n }\n return stringFileContentsJSON;\n}\n\nexport function removeStringItem(named: string, stringFileContentsJSON: ResourceXML): ResourceXML {\n if (stringFileContentsJSON?.resources?.string) {\n const stringNameExists = stringFileContentsJSON.resources.string.findIndex(\n (e: ResourceItemXML) => e.$.name === named\n );\n if (stringNameExists > -1) {\n // replace the previous value\n stringFileContentsJSON.resources.string.splice(stringNameExists, 1);\n }\n }\n return stringFileContentsJSON;\n}\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,eAAeA,6BAAf,CACLC,WADK,EAEL;EAAEC;AAAF,IAAoC,EAF/B,EAGY;EACjB,OAAO,IAAAC,gCAAA,EAAwBF,WAAxB,EAAqC;IAAEC,IAAF;IAAQE,IAAI,EAAE;EAAd,CAArC,CAAP;AACD;;AAEM,SAASC,aAAT,CACLC,SADK,EAELC,sBAFK,EAGQ;EAAA;;EACb,IAAI,EAACA,sBAAD,aAACA,sBAAD,wCAACA,sBAAsB,CAAEC,SAAzB,kDAAC,sBAAmCC,MAApC,CAAJ,EAAgD;IAC9C,IAAI,CAACF,sBAAsB,CAACC,SAAxB,IAAqC,OAAOD,sBAAsB,CAACC,SAA9B,KAA4C,QAArF,EAA+F;MAC7F;MACAD,sBAAsB,CAACC,SAAvB,GAAmC,EAAnC;IACD;;IACDD,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,GAA0CH,SAA1C;IACA,OAAOC,sBAAP;EACD;;EAED,KAAK,MAAMG,OAAX,IAAsBJ,SAAtB,EAAiC;IAC/B,MAAMK,gBAAgB,GAAGJ,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCG,SAAxC,CACtBC,CAAD,IAAwBA,CAAC,CAACC,CAAF,CAAIV,IAAJ,KAAaM,OAAO,CAACI,CAAR,CAAUV,IADxB,CAAzB;;IAGA,IAAIO,gBAAgB,GAAG,CAAC,CAAxB,EAA2B;MACzB;MACAJ,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCE,gBAAxC,IAA4DD,OAA5D;IACD,CAHD,MAGO;MACLH,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,GACEF,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCM,MAAxC,CAA+CL,OAA/C,CADF;IAED;EACF;;EACD,OAAOH,sBAAP;AACD;;AAEM,SAASS,gBAAT,CAA0BC,KAA1B,EAAyCV,sBAAzC,EAA2F;EAAA;;EAChG,IAAIA,sBAAJ,aAAIA,sBAAJ,yCAAIA,sBAAsB,CAAEC,SAA5B,mDAAI,uBAAmCC,MAAvC,EAA+C;IAC7C,MAAME,gBAAgB,GAAGJ,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCG,SAAxC,CACtBC,CAAD,IAAwBA,CAAC,CAACC,CAAF,CAAIV,IAAJ,KAAaa,KADd,CAAzB;;IAGA,IAAIN,gBAAgB,GAAG,CAAC,CAAxB,EAA2B;MACzB;MACAJ,sBAAsB,CAACC,SAAvB,CAAiCC,MAAjC,CAAwCS,MAAxC,CAA+CP,gBAA/C,EAAiE,CAAjE;IACD;EACF;;EACD,OAAOJ,sBAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Styles.ts"],"names":["fallbackResourceString","readStylesXMLAsync","path","fallback","getProjectStylesXMLPathAsync","projectRoot","kind","name","ensureDefaultStyleResourceXML","xml","Array","isArray","resources","style","getStyleParent","group","getStylesItem","parent","appTheme","item","existingItem","filter","$","head","setStylesItem","push","_","removeStylesItem","index","findIndex","splice","getAppThemeLightNoActionBarGroup","assignStylesValue","add","value","targetApi","getStylesGroupAsObject","xmlGroup"],"mappings":"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","sourcesContent":["import { getResourceXMLPathAsync } from './Paths';\nimport {\n buildResourceGroup,\n buildResourceItem,\n ensureDefaultResourceXML,\n findResourceGroup,\n getResourceItemsAsObject,\n readResourcesXMLAsync,\n ResourceGroupXML,\n ResourceItemXML,\n ResourceKind,\n ResourceXML,\n} from './Resources';\n\n// Adds support for `tools:x`\nconst fallbackResourceString = `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources xmlns:tools=\"http://schemas.android.com/tools\"></resources>`;\n\nexport async function readStylesXMLAsync({\n path,\n fallback = fallbackResourceString,\n}: {\n path: string;\n fallback?: string | null;\n}): Promise<ResourceXML> {\n return readResourcesXMLAsync({ path, fallback });\n}\n\nexport async function getProjectStylesXMLPathAsync(\n projectRoot: string,\n { kind }: { kind?: ResourceKind } = {}\n): Promise<string> {\n return getResourceXMLPathAsync(projectRoot, { kind, name: 'styles' });\n}\n\nfunction ensureDefaultStyleResourceXML(xml: ResourceXML): ResourceXML {\n xml = ensureDefaultResourceXML(xml);\n if (!Array.isArray(xml?.resources?.style)) {\n xml.resources.style = [];\n }\n return xml;\n}\n\nexport function getStyleParent(\n xml: ResourceXML,\n group: { name: string; parent?: string }\n): ResourceGroupXML | null {\n return findResourceGroup(xml.resources.style, group);\n}\n\nexport function getStylesItem({\n name,\n xml,\n parent,\n}: {\n name: string;\n xml: ResourceXML;\n parent: { name: string; parent?: string };\n}): ResourceItemXML | null {\n xml = ensureDefaultStyleResourceXML(xml);\n\n const appTheme = getStyleParent(xml, parent);\n\n if (!appTheme) {\n return null;\n }\n\n if (appTheme.item) {\n const existingItem = appTheme.item.filter(({ $: head }) => head.name === name)[0];\n\n // Don't want to 2 of the same item, so if one exists, we overwrite it\n if (existingItem) {\n return existingItem;\n }\n }\n return null;\n}\n\nexport function setStylesItem({\n item,\n xml,\n parent,\n}: {\n item: ResourceItemXML;\n xml: ResourceXML;\n parent: { name: string; parent: string };\n}): ResourceXML {\n xml = ensureDefaultStyleResourceXML(xml);\n\n let appTheme = getStyleParent(xml, parent);\n\n if (!appTheme) {\n appTheme = buildResourceGroup(parent);\n xml.resources!.style!.push(appTheme);\n }\n\n if (appTheme.item) {\n const existingItem = appTheme.item.filter(({ $: head }) => head.name === item.$.name)[0];\n\n // Don't want to 2 of the same item, so if one exists, we overwrite it\n if (existingItem) {\n existingItem._ = item._;\n existingItem.$ = item.$;\n } else {\n appTheme.item.push(item);\n }\n } else {\n appTheme.item = [item];\n }\n return xml;\n}\n\nexport function removeStylesItem({\n name,\n xml,\n parent,\n}: {\n name: string;\n xml: ResourceXML;\n parent: { name: string; parent: string };\n}): ResourceXML {\n xml = ensureDefaultStyleResourceXML(xml);\n const appTheme = getStyleParent(xml, parent);\n if (appTheme?.item) {\n const index = appTheme.item.findIndex(({ $: head }: ResourceItemXML) => head.name === name);\n if (index > -1) {\n appTheme.item.splice(index, 1);\n }\n }\n return xml;\n}\n\n// This is a very common theme so make it reusable.\nexport function getAppThemeLightNoActionBarGroup() {\n return { name: 'AppTheme', parent: 'Theme.AppCompat.Light.NoActionBar' };\n}\n\nexport function assignStylesValue(\n xml: ResourceXML,\n {\n add,\n value,\n targetApi,\n name,\n parent,\n }: {\n add: boolean;\n value: string;\n targetApi?: string;\n name: string;\n parent: { name: string; parent: string };\n }\n): ResourceXML {\n if (add) {\n return setStylesItem({\n xml,\n parent,\n item: buildResourceItem({\n name,\n targetApi,\n value,\n }),\n });\n }\n return removeStylesItem({\n xml,\n parent,\n name,\n });\n}\n\n/**\n * Helper to convert a styles.xml parent's children into a simple k/v pair.\n * Added for testing purposes.\n *\n * @param xml\n * @returns\n */\nexport function getStylesGroupAsObject(\n xml: ResourceXML,\n group: { name: string; parent?: string }\n): Record<string, string> | null {\n const xmlGroup = getStyleParent(xml, group);\n return xmlGroup?.item ? getResourceItemsAsObject(xmlGroup.item) : null;\n}\n"],"file":"Styles.js"}
1
+ {"version":3,"file":"Styles.js","names":["fallbackResourceString","readStylesXMLAsync","path","fallback","readResourcesXMLAsync","getProjectStylesXMLPathAsync","projectRoot","kind","getResourceXMLPathAsync","name","ensureDefaultStyleResourceXML","xml","ensureDefaultResourceXML","Array","isArray","resources","style","getStyleParent","group","findResourceGroup","getStylesItem","parent","appTheme","item","existingItem","filter","$","head","setStylesItem","buildResourceGroup","push","_","removeStylesItem","index","findIndex","splice","getAppThemeLightNoActionBarGroup","assignStylesValue","add","value","targetApi","buildResourceItem","getStylesGroupAsObject","xmlGroup","getResourceItemsAsObject"],"sources":["../../src/android/Styles.ts"],"sourcesContent":["import { getResourceXMLPathAsync } from './Paths';\nimport {\n buildResourceGroup,\n buildResourceItem,\n ensureDefaultResourceXML,\n findResourceGroup,\n getResourceItemsAsObject,\n readResourcesXMLAsync,\n ResourceGroupXML,\n ResourceItemXML,\n ResourceKind,\n ResourceXML,\n} from './Resources';\n\n// Adds support for `tools:x`\nconst fallbackResourceString = `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources xmlns:tools=\"http://schemas.android.com/tools\"></resources>`;\n\nexport async function readStylesXMLAsync({\n path,\n fallback = fallbackResourceString,\n}: {\n path: string;\n fallback?: string | null;\n}): Promise<ResourceXML> {\n return readResourcesXMLAsync({ path, fallback });\n}\n\nexport async function getProjectStylesXMLPathAsync(\n projectRoot: string,\n { kind }: { kind?: ResourceKind } = {}\n): Promise<string> {\n return getResourceXMLPathAsync(projectRoot, { kind, name: 'styles' });\n}\n\nfunction ensureDefaultStyleResourceXML(xml: ResourceXML): ResourceXML {\n xml = ensureDefaultResourceXML(xml);\n if (!Array.isArray(xml?.resources?.style)) {\n xml.resources.style = [];\n }\n return xml;\n}\n\nexport function getStyleParent(\n xml: ResourceXML,\n group: { name: string; parent?: string }\n): ResourceGroupXML | null {\n return findResourceGroup(xml.resources.style, group);\n}\n\nexport function getStylesItem({\n name,\n xml,\n parent,\n}: {\n name: string;\n xml: ResourceXML;\n parent: { name: string; parent?: string };\n}): ResourceItemXML | null {\n xml = ensureDefaultStyleResourceXML(xml);\n\n const appTheme = getStyleParent(xml, parent);\n\n if (!appTheme) {\n return null;\n }\n\n if (appTheme.item) {\n const existingItem = appTheme.item.filter(({ $: head }) => head.name === name)[0];\n\n // Don't want to 2 of the same item, so if one exists, we overwrite it\n if (existingItem) {\n return existingItem;\n }\n }\n return null;\n}\n\nexport function setStylesItem({\n item,\n xml,\n parent,\n}: {\n item: ResourceItemXML;\n xml: ResourceXML;\n parent: { name: string; parent: string };\n}): ResourceXML {\n xml = ensureDefaultStyleResourceXML(xml);\n\n let appTheme = getStyleParent(xml, parent);\n\n if (!appTheme) {\n appTheme = buildResourceGroup(parent);\n xml.resources!.style!.push(appTheme);\n }\n\n if (appTheme.item) {\n const existingItem = appTheme.item.filter(({ $: head }) => head.name === item.$.name)[0];\n\n // Don't want to 2 of the same item, so if one exists, we overwrite it\n if (existingItem) {\n existingItem._ = item._;\n existingItem.$ = item.$;\n } else {\n appTheme.item.push(item);\n }\n } else {\n appTheme.item = [item];\n }\n return xml;\n}\n\nexport function removeStylesItem({\n name,\n xml,\n parent,\n}: {\n name: string;\n xml: ResourceXML;\n parent: { name: string; parent: string };\n}): ResourceXML {\n xml = ensureDefaultStyleResourceXML(xml);\n const appTheme = getStyleParent(xml, parent);\n if (appTheme?.item) {\n const index = appTheme.item.findIndex(({ $: head }: ResourceItemXML) => head.name === name);\n if (index > -1) {\n appTheme.item.splice(index, 1);\n }\n }\n return xml;\n}\n\n// This is a very common theme so make it reusable.\nexport function getAppThemeLightNoActionBarGroup() {\n return { name: 'AppTheme', parent: 'Theme.AppCompat.Light.NoActionBar' };\n}\n\nexport function assignStylesValue(\n xml: ResourceXML,\n {\n add,\n value,\n targetApi,\n name,\n parent,\n }: {\n add: boolean;\n value: string;\n targetApi?: string;\n name: string;\n parent: { name: string; parent: string };\n }\n): ResourceXML {\n if (add) {\n return setStylesItem({\n xml,\n parent,\n item: buildResourceItem({\n name,\n targetApi,\n value,\n }),\n });\n }\n return removeStylesItem({\n xml,\n parent,\n name,\n });\n}\n\n/**\n * Helper to convert a styles.xml parent's children into a simple k/v pair.\n * Added for testing purposes.\n *\n * @param xml\n * @returns\n */\nexport function getStylesGroupAsObject(\n xml: ResourceXML,\n group: { name: string; parent?: string }\n): Record<string, string> | null {\n const xmlGroup = getStyleParent(xml, group);\n return xmlGroup?.item ? getResourceItemsAsObject(xmlGroup.item) : null;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAaA;AACA,MAAMA,sBAAsB,GAAI,8GAAhC;;AAEO,eAAeC,kBAAf,CAAkC;EACvCC,IADuC;EAEvCC,QAAQ,GAAGH;AAF4B,CAAlC,EAMkB;EACvB,OAAO,IAAAI,kCAAA,EAAsB;IAAEF,IAAF;IAAQC;EAAR,CAAtB,CAAP;AACD;;AAEM,eAAeE,4BAAf,CACLC,WADK,EAEL;EAAEC;AAAF,IAAoC,EAF/B,EAGY;EACjB,OAAO,IAAAC,gCAAA,EAAwBF,WAAxB,EAAqC;IAAEC,IAAF;IAAQE,IAAI,EAAE;EAAd,CAArC,CAAP;AACD;;AAED,SAASC,6BAAT,CAAuCC,GAAvC,EAAsE;EAAA;;EACpEA,GAAG,GAAG,IAAAC,qCAAA,EAAyBD,GAAzB,CAAN;;EACA,IAAI,CAACE,KAAK,CAACC,OAAN,SAAcH,GAAd,2DAAc,KAAKI,SAAnB,mDAAc,eAAgBC,KAA9B,CAAL,EAA2C;IACzCL,GAAG,CAACI,SAAJ,CAAcC,KAAd,GAAsB,EAAtB;EACD;;EACD,OAAOL,GAAP;AACD;;AAEM,SAASM,cAAT,CACLN,GADK,EAELO,KAFK,EAGoB;EACzB,OAAO,IAAAC,8BAAA,EAAkBR,GAAG,CAACI,SAAJ,CAAcC,KAAhC,EAAuCE,KAAvC,CAAP;AACD;;AAEM,SAASE,aAAT,CAAuB;EAC5BX,IAD4B;EAE5BE,GAF4B;EAG5BU;AAH4B,CAAvB,EAQoB;EACzBV,GAAG,GAAGD,6BAA6B,CAACC,GAAD,CAAnC;EAEA,MAAMW,QAAQ,GAAGL,cAAc,CAACN,GAAD,EAAMU,MAAN,CAA/B;;EAEA,IAAI,CAACC,QAAL,EAAe;IACb,OAAO,IAAP;EACD;;EAED,IAAIA,QAAQ,CAACC,IAAb,EAAmB;IACjB,MAAMC,YAAY,GAAGF,QAAQ,CAACC,IAAT,CAAcE,MAAd,CAAqB,CAAC;MAAEC,CAAC,EAAEC;IAAL,CAAD,KAAiBA,IAAI,CAAClB,IAAL,KAAcA,IAApD,EAA0D,CAA1D,CAArB,CADiB,CAGjB;;IACA,IAAIe,YAAJ,EAAkB;MAChB,OAAOA,YAAP;IACD;EACF;;EACD,OAAO,IAAP;AACD;;AAEM,SAASI,aAAT,CAAuB;EAC5BL,IAD4B;EAE5BZ,GAF4B;EAG5BU;AAH4B,CAAvB,EAQS;EACdV,GAAG,GAAGD,6BAA6B,CAACC,GAAD,CAAnC;EAEA,IAAIW,QAAQ,GAAGL,cAAc,CAACN,GAAD,EAAMU,MAAN,CAA7B;;EAEA,IAAI,CAACC,QAAL,EAAe;IACbA,QAAQ,GAAG,IAAAO,+BAAA,EAAmBR,MAAnB,CAAX;IACAV,GAAG,CAACI,SAAJ,CAAeC,KAAf,CAAsBc,IAAtB,CAA2BR,QAA3B;EACD;;EAED,IAAIA,QAAQ,CAACC,IAAb,EAAmB;IACjB,MAAMC,YAAY,GAAGF,QAAQ,CAACC,IAAT,CAAcE,MAAd,CAAqB,CAAC;MAAEC,CAAC,EAAEC;IAAL,CAAD,KAAiBA,IAAI,CAAClB,IAAL,KAAcc,IAAI,CAACG,CAAL,CAAOjB,IAA3D,EAAiE,CAAjE,CAArB,CADiB,CAGjB;;IACA,IAAIe,YAAJ,EAAkB;MAChBA,YAAY,CAACO,CAAb,GAAiBR,IAAI,CAACQ,CAAtB;MACAP,YAAY,CAACE,CAAb,GAAiBH,IAAI,CAACG,CAAtB;IACD,CAHD,MAGO;MACLJ,QAAQ,CAACC,IAAT,CAAcO,IAAd,CAAmBP,IAAnB;IACD;EACF,CAVD,MAUO;IACLD,QAAQ,CAACC,IAAT,GAAgB,CAACA,IAAD,CAAhB;EACD;;EACD,OAAOZ,GAAP;AACD;;AAEM,SAASqB,gBAAT,CAA0B;EAC/BvB,IAD+B;EAE/BE,GAF+B;EAG/BU;AAH+B,CAA1B,EAQS;EACdV,GAAG,GAAGD,6BAA6B,CAACC,GAAD,CAAnC;EACA,MAAMW,QAAQ,GAAGL,cAAc,CAACN,GAAD,EAAMU,MAAN,CAA/B;;EACA,IAAIC,QAAJ,aAAIA,QAAJ,eAAIA,QAAQ,CAAEC,IAAd,EAAoB;IAClB,MAAMU,KAAK,GAAGX,QAAQ,CAACC,IAAT,CAAcW,SAAd,CAAwB,CAAC;MAAER,CAAC,EAAEC;IAAL,CAAD,KAAkCA,IAAI,CAAClB,IAAL,KAAcA,IAAxE,CAAd;;IACA,IAAIwB,KAAK,GAAG,CAAC,CAAb,EAAgB;MACdX,QAAQ,CAACC,IAAT,CAAcY,MAAd,CAAqBF,KAArB,EAA4B,CAA5B;IACD;EACF;;EACD,OAAOtB,GAAP;AACD,C,CAED;;;AACO,SAASyB,gCAAT,GAA4C;EACjD,OAAO;IAAE3B,IAAI,EAAE,UAAR;IAAoBY,MAAM,EAAE;EAA5B,CAAP;AACD;;AAEM,SAASgB,iBAAT,CACL1B,GADK,EAEL;EACE2B,GADF;EAEEC,KAFF;EAGEC,SAHF;EAIE/B,IAJF;EAKEY;AALF,CAFK,EAeQ;EACb,IAAIiB,GAAJ,EAAS;IACP,OAAOV,aAAa,CAAC;MACnBjB,GADmB;MAEnBU,MAFmB;MAGnBE,IAAI,EAAE,IAAAkB,8BAAA,EAAkB;QACtBhC,IADsB;QAEtB+B,SAFsB;QAGtBD;MAHsB,CAAlB;IAHa,CAAD,CAApB;EASD;;EACD,OAAOP,gBAAgB,CAAC;IACtBrB,GADsB;IAEtBU,MAFsB;IAGtBZ;EAHsB,CAAD,CAAvB;AAKD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASiC,sBAAT,CACL/B,GADK,EAELO,KAFK,EAG0B;EAC/B,MAAMyB,QAAQ,GAAG1B,cAAc,CAACN,GAAD,EAAMO,KAAN,CAA/B;EACA,OAAOyB,QAAQ,SAAR,IAAAA,QAAQ,WAAR,IAAAA,QAAQ,CAAEpB,IAAV,GAAiB,IAAAqB,qCAAA,EAAyBD,QAAQ,CAACpB,IAAlC,CAAjB,GAA2D,IAAlE;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Updates.ts"],"names":["CREATE_MANIFEST_ANDROID_PATH","Config","withUpdates","config","expoUsername","projectRoot","modRequest","expoUpdatesPackageVersion","modResults","setUpdatesConfig","androidManifest","username","mainApplication","ENABLED","String","CHECK_ON_LAUNCH","LAUNCH_WAIT_MS","updateUrl","UPDATE_URL","codeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","CODE_SIGNING_METADATA","setVersionsConfig","runtimeVersion","RUNTIME_VERSION","Error","sdkVersion","SDK_VERSION","ensureBuildGradleContainsConfigurationScript","buildGradleContents","isBuildGradleConfigured","cleanedUpBuildGradleContents","isBuildGradleMisconfigured","split","some","line","includes","replace","RegExp","gradleScriptApply","formatApplyLineForBuildGradle","updatesGradleScriptPath","resolveFrom","silent","relativePath","path","relative","join","posixPath","process","platform","androidBuildScript","isMainApplicationMetaDataSet","Boolean","isMainApplicationMetaDataSynced","areVersionsSynced","expectedRuntimeVersion","expectedSdkVersion","currentRuntimeVersion","currentSdkVersion"],"mappings":"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","sourcesContent":["import path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport {\n ExpoConfigUpdates,\n getExpoUpdatesPackageVersion,\n getRuntimeVersionNullable,\n getSDKVersion,\n getUpdatesCheckOnLaunch,\n getUpdatesCodeSigningCertificate,\n getUpdatesCodeSigningMetadataStringified,\n getUpdatesEnabled,\n getUpdatesTimeout,\n getUpdateUrl,\n} from '../utils/Updates';\nimport {\n addMetaDataItemToMainApplication,\n AndroidManifest,\n findMetaDataItem,\n getMainApplicationMetaDataValue,\n getMainApplicationOrThrow,\n removeMetaDataItemFromMainApplication,\n} from './Manifest';\n\nconst CREATE_MANIFEST_ANDROID_PATH = 'expo-updates/scripts/create-manifest-android.gradle';\n\nexport enum Config {\n ENABLED = 'expo.modules.updates.ENABLED',\n CHECK_ON_LAUNCH = 'expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH',\n LAUNCH_WAIT_MS = 'expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS',\n SDK_VERSION = 'expo.modules.updates.EXPO_SDK_VERSION',\n RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n UPDATE_URL = 'expo.modules.updates.EXPO_UPDATE_URL',\n RELEASE_CHANNEL = 'expo.modules.updates.EXPO_RELEASE_CHANNEL',\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n CODE_SIGNING_CERTIFICATE = 'expo.modules.updates.CODE_SIGNING_CERTIFICATE',\n CODE_SIGNING_METADATA = 'expo.modules.updates.CODE_SIGNING_METADATA',\n}\n\nexport const withUpdates: ConfigPlugin<{ expoUsername: string | null }> = (\n config,\n { expoUsername }\n) => {\n return withAndroidManifest(config, config => {\n const projectRoot = config.modRequest.projectRoot;\n const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n config.modResults = setUpdatesConfig(\n projectRoot,\n config,\n config.modResults,\n expoUsername,\n expoUpdatesPackageVersion\n );\n return config;\n });\n};\n\nexport function setUpdatesConfig(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n username: string | null,\n expoUpdatesPackageVersion?: string | null\n): AndroidManifest {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.ENABLED,\n String(getUpdatesEnabled(config))\n );\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CHECK_ON_LAUNCH,\n getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion)\n );\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.LAUNCH_WAIT_MS,\n String(getUpdatesTimeout(config))\n );\n\n const updateUrl = getUpdateUrl(config, username);\n if (updateUrl) {\n addMetaDataItemToMainApplication(mainApplication, Config.UPDATE_URL, updateUrl);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.UPDATE_URL);\n }\n\n const codeSigningCertificate = getUpdatesCodeSigningCertificate(projectRoot, config);\n if (codeSigningCertificate) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_CERTIFICATE,\n codeSigningCertificate\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_CERTIFICATE);\n }\n\n const codeSigningMetadata = getUpdatesCodeSigningMetadataStringified(config);\n if (codeSigningMetadata) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_METADATA,\n codeSigningMetadata\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_METADATA);\n }\n\n return setVersionsConfig(config, androidManifest);\n}\n\nexport function setVersionsConfig(\n config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n androidManifest: AndroidManifest\n): AndroidManifest {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n const runtimeVersion = getRuntimeVersionNullable(config, 'android');\n if (!runtimeVersion && findMetaDataItem(mainApplication, Config.RUNTIME_VERSION) > -1) {\n throw new Error(\n 'A runtime version is set in your AndroidManifest.xml, but is missing from your app.json/app.config.js. Please either set runtimeVersion in your app.json/app.config.js or remove expo.modules.updates.EXPO_RUNTIME_VERSION from your AndroidManifest.xml.'\n );\n }\n const sdkVersion = getSDKVersion(config);\n if (runtimeVersion) {\n removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n addMetaDataItemToMainApplication(mainApplication, Config.RUNTIME_VERSION, runtimeVersion);\n } else if (sdkVersion) {\n /**\n * runtime version maybe null in projects using classic updates. In that\n * case we use SDK version\n */\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n addMetaDataItemToMainApplication(mainApplication, Config.SDK_VERSION, sdkVersion);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n }\n\n return androidManifest;\n}\nexport function ensureBuildGradleContainsConfigurationScript(\n projectRoot: string,\n buildGradleContents: string\n): string {\n if (!isBuildGradleConfigured(projectRoot, buildGradleContents)) {\n let cleanedUpBuildGradleContents;\n\n const isBuildGradleMisconfigured = buildGradleContents\n .split('\\n')\n .some(line => line.includes(CREATE_MANIFEST_ANDROID_PATH));\n if (isBuildGradleMisconfigured) {\n cleanedUpBuildGradleContents = buildGradleContents.replace(\n new RegExp(`(\\n// Integration with Expo updates)?\\n.*${CREATE_MANIFEST_ANDROID_PATH}.*\\n`),\n ''\n );\n } else {\n cleanedUpBuildGradleContents = buildGradleContents;\n }\n\n const gradleScriptApply = formatApplyLineForBuildGradle(projectRoot);\n return `${cleanedUpBuildGradleContents}\\n// Integration with Expo updates\\n${gradleScriptApply}\\n`;\n } else {\n return buildGradleContents;\n }\n}\n\nexport function formatApplyLineForBuildGradle(projectRoot: string): string {\n const updatesGradleScriptPath = resolveFrom.silent(projectRoot, CREATE_MANIFEST_ANDROID_PATH);\n\n if (!updatesGradleScriptPath) {\n throw new Error(\n \"Could not find the build script for Android. This could happen in case of outdated 'node_modules'. Run 'npm install' to make sure that it's up-to-date.\"\n );\n }\n\n const relativePath = path.relative(\n path.join(projectRoot, 'android', 'app'),\n updatesGradleScriptPath\n );\n const posixPath = process.platform === 'win32' ? relativePath.replace(/\\\\/g, '/') : relativePath;\n\n return `apply from: \"${posixPath}\"`;\n}\n\nexport function isBuildGradleConfigured(projectRoot: string, buildGradleContents: string): boolean {\n const androidBuildScript = formatApplyLineForBuildGradle(projectRoot);\n\n return (\n buildGradleContents\n .replace(/\\r\\n/g, '\\n')\n .split('\\n')\n // Check for both single and double quotes\n .some(line => line === androidBuildScript || line === androidBuildScript.replace(/\"/g, \"'\"))\n );\n}\n\nexport function isMainApplicationMetaDataSet(androidManifest: AndroidManifest): boolean {\n const updateUrl = getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL);\n const runtimeVersion = getMainApplicationMetaDataValue(androidManifest, Config.RUNTIME_VERSION);\n const sdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n return Boolean(updateUrl && (sdkVersion || runtimeVersion));\n}\n\nexport function isMainApplicationMetaDataSynced(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n username: string | null\n): boolean {\n return (\n getUpdateUrl(config, username) ===\n getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL) &&\n String(getUpdatesEnabled(config)) ===\n getMainApplicationMetaDataValue(androidManifest, Config.ENABLED) &&\n String(getUpdatesTimeout(config)) ===\n getMainApplicationMetaDataValue(androidManifest, Config.LAUNCH_WAIT_MS) &&\n getUpdatesCheckOnLaunch(config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CHECK_ON_LAUNCH) &&\n getUpdatesCodeSigningCertificate(projectRoot, config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_CERTIFICATE) &&\n getUpdatesCodeSigningMetadataStringified(config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_METADATA) &&\n areVersionsSynced(config, androidManifest)\n );\n}\n\nexport function areVersionsSynced(\n config: Pick<ExpoConfigUpdates, 'runtimeVersion' | 'sdkVersion'>,\n androidManifest: AndroidManifest\n): boolean {\n const expectedRuntimeVersion = getRuntimeVersionNullable(config, 'android');\n const expectedSdkVersion = getSDKVersion(config);\n\n const currentRuntimeVersion = getMainApplicationMetaDataValue(\n androidManifest,\n Config.RUNTIME_VERSION\n );\n const currentSdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n if (expectedRuntimeVersion !== null) {\n return currentRuntimeVersion === expectedRuntimeVersion && currentSdkVersion === null;\n } else if (expectedSdkVersion !== null) {\n return currentSdkVersion === expectedSdkVersion && currentRuntimeVersion === null;\n } else {\n return true;\n }\n}\n"],"file":"Updates.js"}
1
+ {"version":3,"file":"Updates.js","names":["CREATE_MANIFEST_ANDROID_PATH","Config","withUpdates","config","expoUsername","withAndroidManifest","projectRoot","modRequest","expoUpdatesPackageVersion","getExpoUpdatesPackageVersion","modResults","setUpdatesConfig","androidManifest","username","mainApplication","getMainApplicationOrThrow","addMetaDataItemToMainApplication","ENABLED","String","getUpdatesEnabled","CHECK_ON_LAUNCH","getUpdatesCheckOnLaunch","LAUNCH_WAIT_MS","getUpdatesTimeout","updateUrl","getUpdateUrl","UPDATE_URL","removeMetaDataItemFromMainApplication","codeSigningCertificate","getUpdatesCodeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","CODE_SIGNING_METADATA","setVersionsConfig","runtimeVersion","getRuntimeVersionNullable","findMetaDataItem","RUNTIME_VERSION","Error","sdkVersion","getSDKVersion","SDK_VERSION","ensureBuildGradleContainsConfigurationScript","buildGradleContents","isBuildGradleConfigured","cleanedUpBuildGradleContents","isBuildGradleMisconfigured","split","some","line","includes","replace","RegExp","gradleScriptApply","formatApplyLineForBuildGradle","updatesGradleScriptPath","resolveFrom","silent","relativePath","path","relative","join","posixPath","process","platform","androidBuildScript","isMainApplicationMetaDataSet","getMainApplicationMetaDataValue","Boolean","isMainApplicationMetaDataSynced","areVersionsSynced","expectedRuntimeVersion","expectedSdkVersion","currentRuntimeVersion","currentSdkVersion"],"sources":["../../src/android/Updates.ts"],"sourcesContent":["import path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport {\n ExpoConfigUpdates,\n getExpoUpdatesPackageVersion,\n getRuntimeVersionNullable,\n getSDKVersion,\n getUpdatesCheckOnLaunch,\n getUpdatesCodeSigningCertificate,\n getUpdatesCodeSigningMetadataStringified,\n getUpdatesEnabled,\n getUpdatesTimeout,\n getUpdateUrl,\n} from '../utils/Updates';\nimport {\n addMetaDataItemToMainApplication,\n AndroidManifest,\n findMetaDataItem,\n getMainApplicationMetaDataValue,\n getMainApplicationOrThrow,\n removeMetaDataItemFromMainApplication,\n} from './Manifest';\n\nconst CREATE_MANIFEST_ANDROID_PATH = 'expo-updates/scripts/create-manifest-android.gradle';\n\nexport enum Config {\n ENABLED = 'expo.modules.updates.ENABLED',\n CHECK_ON_LAUNCH = 'expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH',\n LAUNCH_WAIT_MS = 'expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS',\n SDK_VERSION = 'expo.modules.updates.EXPO_SDK_VERSION',\n RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n UPDATE_URL = 'expo.modules.updates.EXPO_UPDATE_URL',\n RELEASE_CHANNEL = 'expo.modules.updates.EXPO_RELEASE_CHANNEL',\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n CODE_SIGNING_CERTIFICATE = 'expo.modules.updates.CODE_SIGNING_CERTIFICATE',\n CODE_SIGNING_METADATA = 'expo.modules.updates.CODE_SIGNING_METADATA',\n}\n\nexport const withUpdates: ConfigPlugin<{ expoUsername: string | null }> = (\n config,\n { expoUsername }\n) => {\n return withAndroidManifest(config, (config) => {\n const projectRoot = config.modRequest.projectRoot;\n const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n config.modResults = setUpdatesConfig(\n projectRoot,\n config,\n config.modResults,\n expoUsername,\n expoUpdatesPackageVersion\n );\n return config;\n });\n};\n\nexport function setUpdatesConfig(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n username: string | null,\n expoUpdatesPackageVersion?: string | null\n): AndroidManifest {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.ENABLED,\n String(getUpdatesEnabled(config))\n );\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CHECK_ON_LAUNCH,\n getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion)\n );\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.LAUNCH_WAIT_MS,\n String(getUpdatesTimeout(config))\n );\n\n const updateUrl = getUpdateUrl(config, username);\n if (updateUrl) {\n addMetaDataItemToMainApplication(mainApplication, Config.UPDATE_URL, updateUrl);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.UPDATE_URL);\n }\n\n const codeSigningCertificate = getUpdatesCodeSigningCertificate(projectRoot, config);\n if (codeSigningCertificate) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_CERTIFICATE,\n codeSigningCertificate\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_CERTIFICATE);\n }\n\n const codeSigningMetadata = getUpdatesCodeSigningMetadataStringified(config);\n if (codeSigningMetadata) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_METADATA,\n codeSigningMetadata\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_METADATA);\n }\n\n return setVersionsConfig(config, androidManifest);\n}\n\nexport function setVersionsConfig(\n config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n androidManifest: AndroidManifest\n): AndroidManifest {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n const runtimeVersion = getRuntimeVersionNullable(config, 'android');\n if (!runtimeVersion && findMetaDataItem(mainApplication, Config.RUNTIME_VERSION) > -1) {\n throw new Error(\n 'A runtime version is set in your AndroidManifest.xml, but is missing from your app.json/app.config.js. Please either set runtimeVersion in your app.json/app.config.js or remove expo.modules.updates.EXPO_RUNTIME_VERSION from your AndroidManifest.xml.'\n );\n }\n const sdkVersion = getSDKVersion(config);\n if (runtimeVersion) {\n removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n addMetaDataItemToMainApplication(mainApplication, Config.RUNTIME_VERSION, runtimeVersion);\n } else if (sdkVersion) {\n /**\n * runtime version maybe null in projects using classic updates. In that\n * case we use SDK version\n */\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n addMetaDataItemToMainApplication(mainApplication, Config.SDK_VERSION, sdkVersion);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n }\n\n return androidManifest;\n}\nexport function ensureBuildGradleContainsConfigurationScript(\n projectRoot: string,\n buildGradleContents: string\n): string {\n if (!isBuildGradleConfigured(projectRoot, buildGradleContents)) {\n let cleanedUpBuildGradleContents;\n\n const isBuildGradleMisconfigured = buildGradleContents\n .split('\\n')\n .some((line) => line.includes(CREATE_MANIFEST_ANDROID_PATH));\n if (isBuildGradleMisconfigured) {\n cleanedUpBuildGradleContents = buildGradleContents.replace(\n new RegExp(`(\\n// Integration with Expo updates)?\\n.*${CREATE_MANIFEST_ANDROID_PATH}.*\\n`),\n ''\n );\n } else {\n cleanedUpBuildGradleContents = buildGradleContents;\n }\n\n const gradleScriptApply = formatApplyLineForBuildGradle(projectRoot);\n return `${cleanedUpBuildGradleContents}\\n// Integration with Expo updates\\n${gradleScriptApply}\\n`;\n } else {\n return buildGradleContents;\n }\n}\n\nexport function formatApplyLineForBuildGradle(projectRoot: string): string {\n const updatesGradleScriptPath = resolveFrom.silent(projectRoot, CREATE_MANIFEST_ANDROID_PATH);\n\n if (!updatesGradleScriptPath) {\n throw new Error(\n \"Could not find the build script for Android. This could happen in case of outdated 'node_modules'. Run 'npm install' to make sure that it's up-to-date.\"\n );\n }\n\n const relativePath = path.relative(\n path.join(projectRoot, 'android', 'app'),\n updatesGradleScriptPath\n );\n const posixPath = process.platform === 'win32' ? relativePath.replace(/\\\\/g, '/') : relativePath;\n\n return `apply from: \"${posixPath}\"`;\n}\n\nexport function isBuildGradleConfigured(projectRoot: string, buildGradleContents: string): boolean {\n const androidBuildScript = formatApplyLineForBuildGradle(projectRoot);\n\n return (\n buildGradleContents\n .replace(/\\r\\n/g, '\\n')\n .split('\\n')\n // Check for both single and double quotes\n .some((line) => line === androidBuildScript || line === androidBuildScript.replace(/\"/g, \"'\"))\n );\n}\n\nexport function isMainApplicationMetaDataSet(androidManifest: AndroidManifest): boolean {\n const updateUrl = getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL);\n const runtimeVersion = getMainApplicationMetaDataValue(androidManifest, Config.RUNTIME_VERSION);\n const sdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n return Boolean(updateUrl && (sdkVersion || runtimeVersion));\n}\n\nexport function isMainApplicationMetaDataSynced(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n username: string | null\n): boolean {\n return (\n getUpdateUrl(config, username) ===\n getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL) &&\n String(getUpdatesEnabled(config)) ===\n getMainApplicationMetaDataValue(androidManifest, Config.ENABLED) &&\n String(getUpdatesTimeout(config)) ===\n getMainApplicationMetaDataValue(androidManifest, Config.LAUNCH_WAIT_MS) &&\n getUpdatesCheckOnLaunch(config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CHECK_ON_LAUNCH) &&\n getUpdatesCodeSigningCertificate(projectRoot, config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_CERTIFICATE) &&\n getUpdatesCodeSigningMetadataStringified(config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_METADATA) &&\n areVersionsSynced(config, androidManifest)\n );\n}\n\nexport function areVersionsSynced(\n config: Pick<ExpoConfigUpdates, 'runtimeVersion' | 'sdkVersion'>,\n androidManifest: AndroidManifest\n): boolean {\n const expectedRuntimeVersion = getRuntimeVersionNullable(config, 'android');\n const expectedSdkVersion = getSDKVersion(config);\n\n const currentRuntimeVersion = getMainApplicationMetaDataValue(\n androidManifest,\n Config.RUNTIME_VERSION\n );\n const currentSdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n if (expectedRuntimeVersion !== null) {\n return currentRuntimeVersion === expectedRuntimeVersion && currentSdkVersion === null;\n } else if (expectedSdkVersion !== null) {\n return currentSdkVersion === expectedSdkVersion && currentRuntimeVersion === null;\n } else {\n return true;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Version.ts"],"names":["withVersion","config","modResults","language","contents","setVersionCode","setVersionName","withBuildScriptExtMinimumVersion","props","setMinBuildScriptExtVersion","buildGradle","name","minVersion","regex","RegExp","currentVersion","match","currentVersionNum","Number","replace","Math","max","getVersionName","version","versionName","pattern","getVersionCode","android","versionCode"],"mappings":";;;;;;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,WAAyB,GAAGC,MAAM,IAAI;AACjD,SAAO,0CAAmBA,MAAnB,EAA2BA,MAAM,IAAI;AAC1C,QAAIA,MAAM,CAACC,UAAP,CAAkBC,QAAlB,KAA+B,QAAnC,EAA6C;AAC3CF,MAAAA,MAAM,CAACC,UAAP,CAAkBE,QAAlB,GAA6BC,cAAc,CAACJ,MAAD,EAASA,MAAM,CAACC,UAAP,CAAkBE,QAA3B,CAA3C;AACAH,MAAAA,MAAM,CAACC,UAAP,CAAkBE,QAAlB,GAA6BE,cAAc,CAACL,MAAD,EAASA,MAAM,CAACC,UAAP,CAAkBE,QAA3B,CAA3C;AACD,KAHD,MAGO;AACL,yCACE,qBADF,EAEG,oEAFH;AAID;;AACD,WAAOH,MAAP;AACD,GAXM,CAAP;AAYD,CAbM;AAeP;;;;;AACO,MAAMM,gCAGX,GAAG,CAACN,MAAD,EAASO,KAAT,KAAmB;AACtB,SAAO,8CAAuBP,MAAvB,EAA+BA,MAAM,IAAI;AAC9C,QAAIA,MAAM,CAACC,UAAP,CAAkBC,QAAlB,KAA+B,QAAnC,EAA6C;AAC3CF,MAAAA,MAAM,CAACC,UAAP,CAAkBE,QAAlB,GAA6BK,2BAA2B,CAACR,MAAM,CAACC,UAAP,CAAkBE,QAAnB,EAA6BI,KAA7B,CAAxD;AACD,KAFD,MAEO;AACL,yCACE,2BADF,EAEG,wEAFH;AAID;;AACD,WAAOP,MAAP;AACD,GAVM,CAAP;AAWD,CAfM;;;;AAiBA,SAASQ,2BAAT,CACLC,WADK,EAEL;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,CAFK,EAGL;AAAA;;AACA,QAAMC,KAAK,GAAG,IAAIC,MAAJ,CAAY,IAAGH,IAAK,8BAApB,CAAd;AACA,QAAMI,cAAc,yBAAGL,WAAW,CAACM,KAAZ,CAAkBH,KAAlB,CAAH,uDAAG,mBAA2B,CAA3B,CAAvB;;AACA,MAAI,CAACE,cAAL,EAAqB;AACnB,uCACE,2BADF,EAEG,sCAAqCJ,IAAK,kCAAiCA,IAAK,qDAFnF,EADmB,CAKnB;;AACA,WAAOD,WAAP;AACD;;AAED,QAAMO,iBAAiB,GAAGC,MAAM,CAACH,cAAD,CAAhC;AACA,SAAOL,WAAW,CAACS,OAAZ,CAAoBN,KAApB,EAA4B,KAAIO,IAAI,CAACC,GAAL,CAAST,UAAT,EAAqBK,iBAArB,CAAwC,EAAxE,CAAP;AACD;;AAEM,SAASK,cAAT,CAAwBrB,MAAxB,EAA6D;AAAA;;AAClE,4BAAOA,MAAM,CAACsB,OAAd,6DAAyB,IAAzB;AACD;;AAEM,SAASjB,cAAT,CAAwBL,MAAxB,EAA6DS,WAA7D,EAAkF;AACvF,QAAMc,WAAW,GAAGF,cAAc,CAACrB,MAAD,CAAlC;;AACA,MAAIuB,WAAW,KAAK,IAApB,EAA0B;AACxB,WAAOd,WAAP;AACD;;AAED,QAAMe,OAAO,GAAG,IAAIX,MAAJ,CAAY,kBAAZ,CAAhB;AACA,SAAOJ,WAAW,CAACS,OAAZ,CAAoBM,OAApB,EAA8B,gBAAeD,WAAY,GAAzD,CAAP;AACD;;AAEM,SAASE,cAAT,CAAwBzB,MAAxB,EAA6D;AAAA;;AAClE,qDAAOA,MAAM,CAAC0B,OAAd,oDAAO,gBAAgBC,WAAvB,yEAAsC,CAAtC;AACD;;AAEM,SAASvB,cAAT,CAAwBJ,MAAxB,EAA6DS,WAA7D,EAAkF;AACvF,QAAMkB,WAAW,GAAGF,cAAc,CAACzB,MAAD,CAAlC;;AACA,MAAI2B,WAAW,KAAK,IAApB,EAA0B;AACxB,WAAOlB,WAAP;AACD;;AAED,QAAMe,OAAO,GAAG,IAAIX,MAAJ,CAAY,eAAZ,CAAhB;AACA,SAAOJ,WAAW,CAACS,OAAZ,CAAoBM,OAApB,EAA8B,eAAcG,WAAY,EAAxD,CAAP;AACD","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAppBuildGradle, withProjectBuildGradle } from '../plugins/android-plugins';\nimport { addWarningAndroid } from '../utils/warnings';\n\nexport const withVersion: ConfigPlugin = config => {\n return withAppBuildGradle(config, config => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setVersionCode(config, config.modResults.contents);\n config.modResults.contents = setVersionName(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.versionCode',\n `Cannot automatically configure app build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\n/** Sets a numeric version for a value in the project.gradle buildscript.ext object to be at least the provided props.minVersion, if the existing value is greater then no change will be made. */\nexport const withBuildScriptExtMinimumVersion: ConfigPlugin<{\n name: string;\n minVersion: number;\n}> = (config, props) => {\n return withProjectBuildGradle(config, config => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setMinBuildScriptExtVersion(config.modResults.contents, props);\n } else {\n addWarningAndroid(\n 'withBuildScriptExtVersion',\n `Cannot automatically configure project build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport function setMinBuildScriptExtVersion(\n buildGradle: string,\n { name, minVersion }: { name: string; minVersion: number }\n) {\n const regex = new RegExp(`(${name}\\\\s?=\\\\s?)(\\\\d+(?:\\\\.\\\\d+)?)`);\n const currentVersion = buildGradle.match(regex)?.[2];\n if (!currentVersion) {\n addWarningAndroid(\n 'withBuildScriptExtVersion',\n `Cannot set minimum buildscript.ext.${name} version because the property \"${name}\" cannot be found or does not have a numeric value.`\n );\n // TODO: Maybe just add the property...\n return buildGradle;\n }\n\n const currentVersionNum = Number(currentVersion);\n return buildGradle.replace(regex, `$1${Math.max(minVersion, currentVersionNum)}`);\n}\n\nexport function getVersionName(config: Pick<ExpoConfig, 'version'>) {\n return config.version ?? null;\n}\n\nexport function setVersionName(config: Pick<ExpoConfig, 'version'>, buildGradle: string) {\n const versionName = getVersionName(config);\n if (versionName === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`versionName \".*\"`);\n return buildGradle.replace(pattern, `versionName \"${versionName}\"`);\n}\n\nexport function getVersionCode(config: Pick<ExpoConfig, 'android'>) {\n return config.android?.versionCode ?? 1;\n}\n\nexport function setVersionCode(config: Pick<ExpoConfig, 'android'>, buildGradle: string) {\n const versionCode = getVersionCode(config);\n if (versionCode === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`versionCode.*`);\n return buildGradle.replace(pattern, `versionCode ${versionCode}`);\n}\n"],"file":"Version.js"}
1
+ {"version":3,"file":"Version.js","names":["withVersion","config","withAppBuildGradle","modResults","language","contents","setVersionCode","setVersionName","addWarningAndroid","withBuildScriptExtMinimumVersion","props","withProjectBuildGradle","setMinBuildScriptExtVersion","buildGradle","name","minVersion","regex","RegExp","currentVersion","match","currentVersionNum","Number","replace","Math","max","getVersionName","version","versionName","pattern","getVersionCode","android","versionCode"],"sources":["../../src/android/Version.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAppBuildGradle, withProjectBuildGradle } from '../plugins/android-plugins';\nimport { addWarningAndroid } from '../utils/warnings';\n\nexport const withVersion: ConfigPlugin = (config) => {\n return withAppBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setVersionCode(config, config.modResults.contents);\n config.modResults.contents = setVersionName(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.versionCode',\n `Cannot automatically configure app build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\n/** Sets a numeric version for a value in the project.gradle buildscript.ext object to be at least the provided props.minVersion, if the existing value is greater then no change will be made. */\nexport const withBuildScriptExtMinimumVersion: ConfigPlugin<{\n name: string;\n minVersion: number;\n}> = (config, props) => {\n return withProjectBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setMinBuildScriptExtVersion(config.modResults.contents, props);\n } else {\n addWarningAndroid(\n 'withBuildScriptExtVersion',\n `Cannot automatically configure project build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport function setMinBuildScriptExtVersion(\n buildGradle: string,\n { name, minVersion }: { name: string; minVersion: number }\n) {\n const regex = new RegExp(`(${name}\\\\s?=\\\\s?)(\\\\d+(?:\\\\.\\\\d+)?)`);\n const currentVersion = buildGradle.match(regex)?.[2];\n if (!currentVersion) {\n addWarningAndroid(\n 'withBuildScriptExtVersion',\n `Cannot set minimum buildscript.ext.${name} version because the property \"${name}\" cannot be found or does not have a numeric value.`\n );\n // TODO: Maybe just add the property...\n return buildGradle;\n }\n\n const currentVersionNum = Number(currentVersion);\n return buildGradle.replace(regex, `$1${Math.max(minVersion, currentVersionNum)}`);\n}\n\nexport function getVersionName(config: Pick<ExpoConfig, 'version'>) {\n return config.version ?? null;\n}\n\nexport function setVersionName(config: Pick<ExpoConfig, 'version'>, buildGradle: string) {\n const versionName = getVersionName(config);\n if (versionName === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`versionName \".*\"`);\n return buildGradle.replace(pattern, `versionName \"${versionName}\"`);\n}\n\nexport function getVersionCode(config: Pick<ExpoConfig, 'android'>) {\n return config.android?.versionCode ?? 1;\n}\n\nexport function setVersionCode(config: Pick<ExpoConfig, 'android'>, buildGradle: string) {\n const versionCode = getVersionCode(config);\n if (versionCode === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`versionCode.*`);\n return buildGradle.replace(pattern, `versionCode ${versionCode}`);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/WindowSoftInputMode.ts"],"names":["ANDROID_WINDOW_SOFT_INPUT_MODE","MAPPING","pan","resize","withWindowSoftInputMode","config","modResults","setWindowSoftInputModeMode","androidManifest","app","$","getWindowSoftInputModeMode","value","android","softwareKeyboardLayoutMode"],"mappings":";;;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA,MAAMA,8BAA8B,GAAG,6BAAvC;AAEA,MAAMC,OAA+B,GAAG;AACtCC,EAAAA,GAAG,EAAE,WADiC;AAEtCC,EAAAA,MAAM,EAAE;AAF8B,CAAxC;;AAKO,MAAMC,uBAAqC,GAAGC,MAAM,IAAI;AAC7D,SAAO,2CAAoBA,MAApB,EAA4B,MAAMA,MAAN,IAAgB;AACjDA,IAAAA,MAAM,CAACC,UAAP,GAAoBC,0BAA0B,CAACF,MAAD,EAASA,MAAM,CAACC,UAAhB,CAA9C;AACA,WAAOD,MAAP;AACD,GAHM,CAAP;AAID,CALM;;;;AAOA,SAASE,0BAAT,CACLF,MADK,EAELG,eAFK,EAGL;AACA,QAAMC,GAAG,GAAG,wCAAuBD,eAAvB,CAAZ;AACAC,EAAAA,GAAG,CAACC,CAAJ,CAAMV,8BAAN,IAAwCW,0BAA0B,CAACN,MAAD,CAAlE;AACA,SAAOG,eAAP;AACD;;AAEM,SAASG,0BAAT,CAAoCN,MAApC,EAAyE;AAAA;;AAC9E,QAAMO,KAAK,sBAAGP,MAAM,CAACQ,OAAV,oDAAG,gBAAgBC,0BAA9B;;AAEA,MAAI,CAACF,KAAL,EAAY;AACV;AACA,WAAO,cAAP;AACD;;AACD,2BAAOX,OAAO,CAACW,KAAD,CAAd,2DAAyBA,KAAzB;AACD","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport { AndroidManifest, getMainActivityOrThrow } from './Manifest';\n\nconst ANDROID_WINDOW_SOFT_INPUT_MODE = 'android:windowSoftInputMode';\n\nconst MAPPING: Record<string, string> = {\n pan: 'adjustPan',\n resize: 'adjustResize',\n};\n\nexport const withWindowSoftInputMode: ConfigPlugin = config => {\n return withAndroidManifest(config, async config => {\n config.modResults = setWindowSoftInputModeMode(config, config.modResults);\n return config;\n });\n};\n\nexport function setWindowSoftInputModeMode(\n config: Pick<ExpoConfig, 'android' | 'userInterfaceStyle'>,\n androidManifest: AndroidManifest\n) {\n const app = getMainActivityOrThrow(androidManifest);\n app.$[ANDROID_WINDOW_SOFT_INPUT_MODE] = getWindowSoftInputModeMode(config);\n return androidManifest;\n}\n\nexport function getWindowSoftInputModeMode(config: Pick<ExpoConfig, 'android'>) {\n const value = config.android?.softwareKeyboardLayoutMode;\n\n if (!value) {\n // Default to `adjustResize` or `resize`.\n return 'adjustResize';\n }\n return MAPPING[value] ?? value;\n}\n"],"file":"WindowSoftInputMode.js"}
1
+ {"version":3,"file":"WindowSoftInputMode.js","names":["ANDROID_WINDOW_SOFT_INPUT_MODE","MAPPING","pan","resize","withWindowSoftInputMode","config","withAndroidManifest","modResults","setWindowSoftInputModeMode","androidManifest","app","getMainActivityOrThrow","$","getWindowSoftInputModeMode","value","android","softwareKeyboardLayoutMode"],"sources":["../../src/android/WindowSoftInputMode.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport { AndroidManifest, getMainActivityOrThrow } from './Manifest';\n\nconst ANDROID_WINDOW_SOFT_INPUT_MODE = 'android:windowSoftInputMode';\n\nconst MAPPING: Record<string, string> = {\n pan: 'adjustPan',\n resize: 'adjustResize',\n};\n\nexport const withWindowSoftInputMode: ConfigPlugin = (config) => {\n return withAndroidManifest(config, async (config) => {\n config.modResults = setWindowSoftInputModeMode(config, config.modResults);\n return config;\n });\n};\n\nexport function setWindowSoftInputModeMode(\n config: Pick<ExpoConfig, 'android' | 'userInterfaceStyle'>,\n androidManifest: AndroidManifest\n) {\n const app = getMainActivityOrThrow(androidManifest);\n app.$[ANDROID_WINDOW_SOFT_INPUT_MODE] = getWindowSoftInputModeMode(config);\n return androidManifest;\n}\n\nexport function getWindowSoftInputModeMode(config: Pick<ExpoConfig, 'android'>) {\n const value = config.android?.softwareKeyboardLayoutMode;\n\n if (!value) {\n // Default to `adjustResize` or `resize`.\n return 'adjustResize';\n }\n return MAPPING[value] ?? value;\n}\n"],"mappings":";;;;;;;;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA,MAAMA,8BAA8B,GAAG,6BAAvC;AAEA,MAAMC,OAA+B,GAAG;EACtCC,GAAG,EAAE,WADiC;EAEtCC,MAAM,EAAE;AAF8B,CAAxC;;AAKO,MAAMC,uBAAqC,GAAIC,MAAD,IAAY;EAC/D,OAAO,IAAAC,qCAAA,EAAoBD,MAApB,EAA4B,MAAOA,MAAP,IAAkB;IACnDA,MAAM,CAACE,UAAP,GAAoBC,0BAA0B,CAACH,MAAD,EAASA,MAAM,CAACE,UAAhB,CAA9C;IACA,OAAOF,MAAP;EACD,CAHM,CAAP;AAID,CALM;;;;AAOA,SAASG,0BAAT,CACLH,MADK,EAELI,eAFK,EAGL;EACA,MAAMC,GAAG,GAAG,IAAAC,kCAAA,EAAuBF,eAAvB,CAAZ;EACAC,GAAG,CAACE,CAAJ,CAAMZ,8BAAN,IAAwCa,0BAA0B,CAACR,MAAD,CAAlE;EACA,OAAOI,eAAP;AACD;;AAEM,SAASI,0BAAT,CAAoCR,MAApC,EAAyE;EAAA;;EAC9E,MAAMS,KAAK,sBAAGT,MAAM,CAACU,OAAV,oDAAG,gBAAgBC,0BAA9B;;EAEA,IAAI,CAACF,KAAL,EAAY;IACV;IACA,OAAO,cAAP;EACD;;EACD,yBAAOb,OAAO,CAACa,KAAD,CAAd,2DAAyBA,KAAzB;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/codeMod.ts"],"names":["findNewInstanceCodeBlock","contents","classDeclaration","language","isJava","start","indexOf","search","RegExp","end","nextBrace","isAnonymousClass","substring","match","code","appendContentsInsideDeclarationBlock","srcContents","declaration","insertion","Error","addImports","source","imports","lines","split","lineIndexWithPackageDeclaration","findIndex","line","javaImport","includes","importStatement","splice","join"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,wBAAT,CACLC,QADK,EAELC,gBAFK,EAGLC,QAHK,EAIa;AAClB,QAAMC,MAAM,GAAGD,QAAQ,KAAK,MAA5B;AACA,MAAIE,KAAK,GAAGD,MAAM,GACdH,QAAQ,CAACK,OAAT,CAAkB,QAAOJ,gBAAiB,GAA1C,CADc,GAEdD,QAAQ,CAACM,MAAT,CAAgB,IAAIC,MAAJ,CAAY,sBAAqBN,gBAAiB,KAAlD,CAAhB,CAFJ;;AAGA,MAAIG,KAAK,GAAG,CAAZ,EAAe;AACb,WAAO,IAAP;AACD,GAPiB,CAQlB;;;AACAA,EAAAA,KAAK,IAAI,CAAT;AACA,MAAII,GAAG,GAAG,kDAA4BR,QAA5B,EAAsC,GAAtC,EAA2CI,KAA3C,CAAV,CAVkB,CAYlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAMK,SAAS,GAAGT,QAAQ,CAACK,OAAT,CAAiB,GAAjB,EAAsBG,GAAG,GAAG,CAA5B,CAAlB;AACA,QAAME,gBAAgB,GACpBD,SAAS,IAAID,GAAb,IAAoB,CAAC,CAACR,QAAQ,CAACW,SAAT,CAAmBH,GAAG,GAAG,CAAzB,EAA4BC,SAA5B,EAAuCG,KAAvC,CAA6C,OAA7C,CADxB;;AAEA,MAAIF,gBAAJ,EAAsB;AACpBF,IAAAA,GAAG,GAAG,kDAA4BR,QAA5B,EAAsC,GAAtC,EAA2CQ,GAA3C,CAAN;AACD;;AAED,SAAO;AACLJ,IAAAA,KADK;AAELI,IAAAA,GAFK;AAGLK,IAAAA,IAAI,EAAEb,QAAQ,CAACW,SAAT,CAAmBP,KAAnB,EAA0BI,GAAG,GAAG,CAAhC;AAHD,GAAP;AAKD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASM,oCAAT,CACLC,WADK,EAELC,WAFK,EAGLC,SAHK,EAIG;AACR,QAAMb,KAAK,GAAGW,WAAW,CAACT,MAAZ,CAAmB,IAAIC,MAAJ,CAAY,OAAMS,WAAY,aAA9B,CAAnB,CAAd;;AACA,MAAIZ,KAAK,GAAG,CAAZ,EAAe;AACb,UAAM,IAAIc,KAAJ,CAAW,2CAA0CF,WAAY,GAAjE,CAAN;AACD;;AACD,QAAMR,GAAG,GAAG,kDAA4BO,WAA5B,EAAyC,GAAzC,EAA8CX,KAA9C,CAAZ;AACA,SAAO,6CAAuBW,WAAvB,EAAoCE,SAApC,EAA+CT,GAA/C,CAAP;AACD;;AAEM,SAASW,UAAT,CAAoBC,MAApB,EAAoCC,OAApC,EAAuDlB,MAAvD,EAAgF;AACrF,QAAMmB,KAAK,GAAGF,MAAM,CAACG,KAAP,CAAa,IAAb,CAAd;AACA,QAAMC,+BAA+B,GAAGF,KAAK,CAACG,SAAN,CAAgBC,IAAI,IAAIA,IAAI,CAACd,KAAL,CAAW,gBAAX,CAAxB,CAAxC;;AACA,OAAK,MAAMe,UAAX,IAAyBN,OAAzB,EAAkC;AAChC,QAAI,CAACD,MAAM,CAACQ,QAAP,CAAgBD,UAAhB,CAAL,EAAkC;AAChC,YAAME,eAAe,GAAI,UAASF,UAAW,GAAExB,MAAM,GAAG,GAAH,GAAS,EAAG,EAAjE;AACAmB,MAAAA,KAAK,CAACQ,MAAN,CAAaN,+BAA+B,GAAG,CAA/C,EAAkD,CAAlD,EAAqDK,eAArD;AACD;AACF;;AACD,SAAOP,KAAK,CAACS,IAAN,CAAW,IAAX,CAAP;AACD","sourcesContent":["import { CodeBlock, insertContentsAtOffset } from '../utils/commonCodeMod';\nimport { findMatchingBracketPosition } from '../utils/matchBrackets';\n\n/**\n * Find java or kotlin new class instance code block\n *\n * @param contents source contents\n * @param classDeclaration class declaration or just a class name\n * @param language 'java' | 'kt'\n * @returns `CodeBlock` for start/end offset and code block contents\n */\nexport function findNewInstanceCodeBlock(\n contents: string,\n classDeclaration: string,\n language: 'java' | 'kt'\n): CodeBlock | null {\n const isJava = language === 'java';\n let start = isJava\n ? contents.indexOf(` new ${classDeclaration}(`)\n : contents.search(new RegExp(` (object\\\\s*:\\\\s*)?${classDeclaration}\\\\(`));\n if (start < 0) {\n return null;\n }\n // `+ 1` for the prefix space\n start += 1;\n let end = findMatchingBracketPosition(contents, '(', start);\n\n // For anonymous class, should search further to the {} block.\n // ```java\n // new Foo() {\n // @Override\n // protected void interfaceMethod {}\n // };\n // ```\n //\n // ```kotlin\n // object : Foo() {\n // override fun interfaceMethod {}\n // }\n // ```\n const nextBrace = contents.indexOf('{', end + 1);\n const isAnonymousClass =\n nextBrace >= end && !!contents.substring(end + 1, nextBrace).match(/^\\s*$/);\n if (isAnonymousClass) {\n end = findMatchingBracketPosition(contents, '{', end);\n }\n\n return {\n start,\n end,\n code: contents.substring(start, end + 1),\n };\n}\n\n/**\n * Append contents to the end of code declaration block, support class or method declarations.\n *\n * @param srcContents source contents\n * @param declaration class declaration or method declaration\n * @param insertion code to append\n * @returns updated contents\n */\nexport function appendContentsInsideDeclarationBlock(\n srcContents: string,\n declaration: string,\n insertion: string\n): string {\n const start = srcContents.search(new RegExp(`\\\\s*${declaration}.*?[\\\\(\\\\{]`));\n if (start < 0) {\n throw new Error(`Unable to find code block - declaration[${declaration}]`);\n }\n const end = findMatchingBracketPosition(srcContents, '{', start);\n return insertContentsAtOffset(srcContents, insertion, end);\n}\n\nexport function addImports(source: string, imports: string[], isJava: boolean): string {\n const lines = source.split('\\n');\n const lineIndexWithPackageDeclaration = lines.findIndex(line => line.match(/^package .*;?$/));\n for (const javaImport of imports) {\n if (!source.includes(javaImport)) {\n const importStatement = `import ${javaImport}${isJava ? ';' : ''}`;\n lines.splice(lineIndexWithPackageDeclaration + 1, 0, importStatement);\n }\n }\n return lines.join('\\n');\n}\n"],"file":"codeMod.js"}
1
+ {"version":3,"file":"codeMod.js","names":["findNewInstanceCodeBlock","contents","classDeclaration","language","isJava","start","indexOf","search","RegExp","end","findMatchingBracketPosition","nextBrace","isAnonymousClass","substring","match","code","appendContentsInsideDeclarationBlock","srcContents","declaration","insertion","Error","insertContentsAtOffset","addImports","source","imports","lines","split","lineIndexWithPackageDeclaration","findIndex","line","javaImport","includes","importStatement","splice","join"],"sources":["../../src/android/codeMod.ts"],"sourcesContent":["import { CodeBlock, insertContentsAtOffset } from '../utils/commonCodeMod';\nimport { findMatchingBracketPosition } from '../utils/matchBrackets';\n\n/**\n * Find java or kotlin new class instance code block\n *\n * @param contents source contents\n * @param classDeclaration class declaration or just a class name\n * @param language 'java' | 'kt'\n * @returns `CodeBlock` for start/end offset and code block contents\n */\nexport function findNewInstanceCodeBlock(\n contents: string,\n classDeclaration: string,\n language: 'java' | 'kt'\n): CodeBlock | null {\n const isJava = language === 'java';\n let start = isJava\n ? contents.indexOf(` new ${classDeclaration}(`)\n : contents.search(new RegExp(` (object\\\\s*:\\\\s*)?${classDeclaration}\\\\(`));\n if (start < 0) {\n return null;\n }\n // `+ 1` for the prefix space\n start += 1;\n let end = findMatchingBracketPosition(contents, '(', start);\n\n // For anonymous class, should search further to the {} block.\n // ```java\n // new Foo() {\n // @Override\n // protected void interfaceMethod {}\n // };\n // ```\n //\n // ```kotlin\n // object : Foo() {\n // override fun interfaceMethod {}\n // }\n // ```\n const nextBrace = contents.indexOf('{', end + 1);\n const isAnonymousClass =\n nextBrace >= end && !!contents.substring(end + 1, nextBrace).match(/^\\s*$/);\n if (isAnonymousClass) {\n end = findMatchingBracketPosition(contents, '{', end);\n }\n\n return {\n start,\n end,\n code: contents.substring(start, end + 1),\n };\n}\n\n/**\n * Append contents to the end of code declaration block, support class or method declarations.\n *\n * @param srcContents source contents\n * @param declaration class declaration or method declaration\n * @param insertion code to append\n * @returns updated contents\n */\nexport function appendContentsInsideDeclarationBlock(\n srcContents: string,\n declaration: string,\n insertion: string\n): string {\n const start = srcContents.search(new RegExp(`\\\\s*${declaration}.*?[\\\\(\\\\{]`));\n if (start < 0) {\n throw new Error(`Unable to find code block - declaration[${declaration}]`);\n }\n const end = findMatchingBracketPosition(srcContents, '{', start);\n return insertContentsAtOffset(srcContents, insertion, end);\n}\n\nexport function addImports(source: string, imports: string[], isJava: boolean): string {\n const lines = source.split('\\n');\n const lineIndexWithPackageDeclaration = lines.findIndex((line) => line.match(/^package .*;?$/));\n for (const javaImport of imports) {\n if (!source.includes(javaImport)) {\n const importStatement = `import ${javaImport}${isJava ? ';' : ''}`;\n lines.splice(lineIndexWithPackageDeclaration + 1, 0, importStatement);\n }\n }\n return lines.join('\\n');\n}\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,wBAAT,CACLC,QADK,EAELC,gBAFK,EAGLC,QAHK,EAIa;EAClB,MAAMC,MAAM,GAAGD,QAAQ,KAAK,MAA5B;EACA,IAAIE,KAAK,GAAGD,MAAM,GACdH,QAAQ,CAACK,OAAT,CAAkB,QAAOJ,gBAAiB,GAA1C,CADc,GAEdD,QAAQ,CAACM,MAAT,CAAgB,IAAIC,MAAJ,CAAY,sBAAqBN,gBAAiB,KAAlD,CAAhB,CAFJ;;EAGA,IAAIG,KAAK,GAAG,CAAZ,EAAe;IACb,OAAO,IAAP;EACD,CAPiB,CAQlB;;;EACAA,KAAK,IAAI,CAAT;EACA,IAAII,GAAG,GAAG,IAAAC,4CAAA,EAA4BT,QAA5B,EAAsC,GAAtC,EAA2CI,KAA3C,CAAV,CAVkB,CAYlB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACA,MAAMM,SAAS,GAAGV,QAAQ,CAACK,OAAT,CAAiB,GAAjB,EAAsBG,GAAG,GAAG,CAA5B,CAAlB;EACA,MAAMG,gBAAgB,GACpBD,SAAS,IAAIF,GAAb,IAAoB,CAAC,CAACR,QAAQ,CAACY,SAAT,CAAmBJ,GAAG,GAAG,CAAzB,EAA4BE,SAA5B,EAAuCG,KAAvC,CAA6C,OAA7C,CADxB;;EAEA,IAAIF,gBAAJ,EAAsB;IACpBH,GAAG,GAAG,IAAAC,4CAAA,EAA4BT,QAA5B,EAAsC,GAAtC,EAA2CQ,GAA3C,CAAN;EACD;;EAED,OAAO;IACLJ,KADK;IAELI,GAFK;IAGLM,IAAI,EAAEd,QAAQ,CAACY,SAAT,CAAmBR,KAAnB,EAA0BI,GAAG,GAAG,CAAhC;EAHD,CAAP;AAKD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,oCAAT,CACLC,WADK,EAELC,WAFK,EAGLC,SAHK,EAIG;EACR,MAAMd,KAAK,GAAGY,WAAW,CAACV,MAAZ,CAAmB,IAAIC,MAAJ,CAAY,OAAMU,WAAY,aAA9B,CAAnB,CAAd;;EACA,IAAIb,KAAK,GAAG,CAAZ,EAAe;IACb,MAAM,IAAIe,KAAJ,CAAW,2CAA0CF,WAAY,GAAjE,CAAN;EACD;;EACD,MAAMT,GAAG,GAAG,IAAAC,4CAAA,EAA4BO,WAA5B,EAAyC,GAAzC,EAA8CZ,KAA9C,CAAZ;EACA,OAAO,IAAAgB,uCAAA,EAAuBJ,WAAvB,EAAoCE,SAApC,EAA+CV,GAA/C,CAAP;AACD;;AAEM,SAASa,UAAT,CAAoBC,MAApB,EAAoCC,OAApC,EAAuDpB,MAAvD,EAAgF;EACrF,MAAMqB,KAAK,GAAGF,MAAM,CAACG,KAAP,CAAa,IAAb,CAAd;EACA,MAAMC,+BAA+B,GAAGF,KAAK,CAACG,SAAN,CAAiBC,IAAD,IAAUA,IAAI,CAACf,KAAL,CAAW,gBAAX,CAA1B,CAAxC;;EACA,KAAK,MAAMgB,UAAX,IAAyBN,OAAzB,EAAkC;IAChC,IAAI,CAACD,MAAM,CAACQ,QAAP,CAAgBD,UAAhB,CAAL,EAAkC;MAChC,MAAME,eAAe,GAAI,UAASF,UAAW,GAAE1B,MAAM,GAAG,GAAH,GAAS,EAAG,EAAjE;MACAqB,KAAK,CAACQ,MAAN,CAAaN,+BAA+B,GAAG,CAA/C,EAAkD,CAAlD,EAAqDK,eAArD;IACD;EACF;;EACD,OAAOP,KAAK,CAACS,IAAN,CAAW,IAAX,CAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/index.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["import * as AllowBackup from './AllowBackup';\nimport * as BuildProperties from './BuildProperties';\nimport * as Colors from './Colors';\nimport * as EasBuild from './EasBuild';\nimport * as GoogleMapsApiKey from './GoogleMapsApiKey';\nimport * as GoogleServices from './GoogleServices';\nimport * as IntentFilters from './IntentFilters';\nimport * as Manifest from './Manifest';\nimport * as Name from './Name';\nimport * as Orientation from './Orientation';\nimport * as Package from './Package';\nimport * as Paths from './Paths';\nimport * as Permissions from './Permissions';\nimport * as PrimaryColor from './PrimaryColor';\nimport * as Properties from './Properties';\nimport * as Resources from './Resources';\nimport * as Scheme from './Scheme';\nimport * as StatusBar from './StatusBar';\nimport * as Strings from './Strings';\nimport * as Styles from './Styles';\nimport * as Updates from './Updates';\nimport * as Version from './Version';\nimport * as WindowSoftInputMode from './WindowSoftInputMode';\n\nexport { Manifest, Colors, Paths, Permissions, Properties, Resources, Scheme, Strings, Styles };\n\nexport {\n AllowBackup,\n BuildProperties,\n EasBuild,\n GoogleMapsApiKey,\n GoogleServices,\n IntentFilters,\n Name,\n Orientation,\n Package,\n PrimaryColor,\n StatusBar,\n Updates,\n Version,\n WindowSoftInputMode,\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/android/index.ts"],"sourcesContent":["import * as AllowBackup from './AllowBackup';\nimport * as BuildProperties from './BuildProperties';\nimport * as Colors from './Colors';\nimport * as EasBuild from './EasBuild';\nimport * as GoogleMapsApiKey from './GoogleMapsApiKey';\nimport * as GoogleServices from './GoogleServices';\nimport * as IntentFilters from './IntentFilters';\nimport * as Manifest from './Manifest';\nimport * as Name from './Name';\nimport * as Orientation from './Orientation';\nimport * as Package from './Package';\nimport * as Paths from './Paths';\nimport * as Permissions from './Permissions';\nimport * as PrimaryColor from './PrimaryColor';\nimport * as Properties from './Properties';\nimport * as Resources from './Resources';\nimport * as Scheme from './Scheme';\nimport * as StatusBar from './StatusBar';\nimport * as Strings from './Strings';\nimport * as Styles from './Styles';\nimport * as Updates from './Updates';\nimport * as Version from './Version';\nimport * as WindowSoftInputMode from './WindowSoftInputMode';\n\nexport { Manifest, Colors, Paths, Permissions, Properties, Resources, Scheme, Strings, Styles };\n\nexport {\n AllowBackup,\n BuildProperties,\n EasBuild,\n GoogleMapsApiKey,\n GoogleServices,\n IntentFilters,\n Name,\n Orientation,\n Package,\n PrimaryColor,\n StatusBar,\n Updates,\n Version,\n WindowSoftInputMode,\n};\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["BaseMods","withGeneratedBaseMods","provider","withAndroidBaseMods","getAndroidModFileProviders","withIosBaseMods","getIosModFileProviders"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AASA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAcA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AA3DA;AACA;AACA;AAUA;;AAOA;AACA;AACA;AAwCO,MAAMA,QAAQ,GAAG;AACtBC,EAAAA,qBAAqB,EAArBA,sCADsB;AAEtBC,EAAAA,QAAQ,EAARA,yBAFsB;AAGtBC,EAAAA,mBAAmB,EAAnBA,0CAHsB;AAItBC,EAAAA,0BAA0B,EAA1BA,iDAJsB;AAKtBC,EAAAA,eAAe,EAAfA,kCALsB;AAMtBC,EAAAA,sBAAsB,EAAtBA;AANsB,CAAjB","sourcesContent":["/**\n * For internal use in Expo CLI\n */\nimport * as AndroidConfig from './android';\nimport * as IOSConfig from './ios';\nimport { provider, withGeneratedBaseMods } from './plugins/createBaseMod';\nimport { getAndroidModFileProviders, withAndroidBaseMods } from './plugins/withAndroidBaseMods';\nimport { getIosModFileProviders, withIosBaseMods } from './plugins/withIosBaseMods';\nimport * as XML from './utils/XML';\nimport * as History from './utils/history';\nimport * as WarningAggregator from './utils/warnings';\n\n// TODO: Remove\nexport * as Updates from './utils/Updates';\n\nexport { IOSConfig, AndroidConfig };\n\nexport { WarningAggregator, History, XML };\n\n/**\n * These are the \"config-plugins\"\n */\n\nexport * from './Plugin.types';\n\nexport { withPlugins } from './plugins/withPlugins';\n\nexport { withRunOnce, createRunOncePlugin } from './plugins/withRunOnce';\n\nexport { withDangerousMod } from './plugins/withDangerousMod';\nexport { withMod, withBaseMod } from './plugins/withMod';\n\nexport {\n withAppDelegate,\n withInfoPlist,\n withEntitlementsPlist,\n withExpoPlist,\n withXcodeProject,\n withPodfileProperties,\n} from './plugins/ios-plugins';\n\nexport {\n withAndroidManifest,\n withStringsXml,\n withAndroidColors,\n withAndroidColorsNight,\n withAndroidStyles,\n withMainActivity,\n withMainApplication,\n withProjectBuildGradle,\n withAppBuildGradle,\n withSettingsGradle,\n withGradleProperties,\n} from './plugins/android-plugins';\n\nexport { withStaticPlugin } from './plugins/withStaticPlugin';\n\nexport { compileModsAsync, withDefaultBaseMods, evalModsAsync } from './plugins/mod-compiler';\n\nexport { PluginError } from './utils/errors';\n\nexport const BaseMods = {\n withGeneratedBaseMods,\n provider,\n withAndroidBaseMods,\n getAndroidModFileProviders,\n withIosBaseMods,\n getIosModFileProviders,\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["BaseMods","withGeneratedBaseMods","provider","withAndroidBaseMods","getAndroidModFileProviders","withIosBaseMods","getIosModFileProviders"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * For internal use in Expo CLI\n */\nimport * as AndroidConfig from './android';\nimport * as IOSConfig from './ios';\nimport { provider, withGeneratedBaseMods } from './plugins/createBaseMod';\nimport { getAndroidModFileProviders, withAndroidBaseMods } from './plugins/withAndroidBaseMods';\nimport { getIosModFileProviders, withIosBaseMods } from './plugins/withIosBaseMods';\nimport * as XML from './utils/XML';\nimport * as History from './utils/history';\nimport * as WarningAggregator from './utils/warnings';\n\n// TODO: Remove\nexport * as Updates from './utils/Updates';\n\nexport { IOSConfig, AndroidConfig };\n\nexport { WarningAggregator, History, XML };\n\n/**\n * These are the \"config-plugins\"\n */\n\nexport * from './Plugin.types';\n\nexport { withPlugins } from './plugins/withPlugins';\n\nexport { withRunOnce, createRunOncePlugin } from './plugins/withRunOnce';\n\nexport { withDangerousMod } from './plugins/withDangerousMod';\nexport { withMod, withBaseMod } from './plugins/withMod';\n\nexport {\n withAppDelegate,\n withInfoPlist,\n withEntitlementsPlist,\n withExpoPlist,\n withXcodeProject,\n withPodfileProperties,\n} from './plugins/ios-plugins';\n\nexport {\n withAndroidManifest,\n withStringsXml,\n withAndroidColors,\n withAndroidColorsNight,\n withAndroidStyles,\n withMainActivity,\n withMainApplication,\n withProjectBuildGradle,\n withAppBuildGradle,\n withSettingsGradle,\n withGradleProperties,\n} from './plugins/android-plugins';\n\nexport { withStaticPlugin } from './plugins/withStaticPlugin';\n\nexport { compileModsAsync, withDefaultBaseMods, evalModsAsync } from './plugins/mod-compiler';\n\nexport { PluginError } from './utils/errors';\n\nexport const BaseMods = {\n withGeneratedBaseMods,\n provider,\n withAndroidBaseMods,\n getAndroidModFileProviders,\n withIosBaseMods,\n getIosModFileProviders,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AASA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAcA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AA3DA;AACA;AACA;AAUA;;AAOA;AACA;AACA;AAwCO,MAAMA,QAAQ,GAAG;EACtBC,qBAAqB,EAArBA,sCADsB;EAEtBC,QAAQ,EAARA,yBAFsB;EAGtBC,mBAAmB,EAAnBA,0CAHsB;EAItBC,0BAA0B,EAA1BA,iDAJsB;EAKtBC,eAAe,EAAfA,kCALsB;EAMtBC,sBAAsB,EAAtBA;AANsB,CAAjB"}