@expo/config-plugins 7.3.0 → 7.4.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.
- package/README.md +1 -1
- package/build/android/AllowBackup.js +6 -6
- package/build/android/AllowBackup.js.map +1 -1
- package/build/android/BuildProperties.d.ts +1 -1
- package/build/android/BuildProperties.js.map +1 -1
- package/build/android/GoogleMapsApiKey.js +6 -6
- package/build/android/GoogleMapsApiKey.js.map +1 -1
- package/build/android/IntentFilters.js +6 -6
- package/build/android/IntentFilters.js.map +1 -1
- package/build/android/Manifest.js.map +1 -1
- package/build/android/Name.js +12 -12
- package/build/android/Name.js.map +1 -1
- package/build/android/Orientation.js +6 -6
- package/build/android/Orientation.js.map +1 -1
- package/build/android/Package.js +7 -7
- package/build/android/Package.js.map +1 -1
- package/build/android/Paths.js.map +1 -1
- package/build/android/Permissions.d.ts +1 -1
- package/build/android/Permissions.js +6 -6
- package/build/android/Permissions.js.map +1 -1
- package/build/android/PrimaryColor.js +7 -7
- package/build/android/PrimaryColor.js.map +1 -1
- package/build/android/Scheme.js.map +1 -1
- package/build/android/StatusBar.d.ts +1 -1
- package/build/android/StatusBar.js +7 -7
- package/build/android/StatusBar.js.map +1 -1
- package/build/android/Updates.d.ts +5 -7
- package/build/android/Updates.js +27 -33
- package/build/android/Updates.js.map +1 -1
- package/build/android/WindowSoftInputMode.d.ts +1 -1
- package/build/android/WindowSoftInputMode.js +6 -6
- package/build/android/WindowSoftInputMode.js.map +1 -1
- package/build/ios/Bitcode.js +7 -7
- package/build/ios/Bitcode.js.map +1 -1
- package/build/ios/BuildScheme.js +7 -7
- package/build/ios/BuildScheme.js.map +1 -1
- package/build/ios/BundleIdentifier.d.ts +1 -1
- package/build/ios/BundleIdentifier.js +7 -7
- package/build/ios/BundleIdentifier.js.map +1 -1
- package/build/ios/Entitlements.js +7 -7
- package/build/ios/Entitlements.js.map +1 -1
- package/build/ios/Google.d.ts +1 -1
- package/build/ios/Google.js +7 -7
- package/build/ios/Google.js.map +1 -1
- package/build/ios/Locales.js +7 -7
- package/build/ios/Locales.js.map +1 -1
- package/build/ios/Name.d.ts +1 -1
- package/build/ios/Name.js +7 -7
- package/build/ios/Name.js.map +1 -1
- package/build/ios/Orientation.js.map +1 -1
- package/build/ios/Paths.js +7 -7
- package/build/ios/Paths.js.map +1 -1
- package/build/ios/Permissions.d.ts +1 -1
- package/build/ios/Permissions.js.map +1 -1
- package/build/ios/RequiresFullScreen.js.map +1 -1
- package/build/ios/Scheme.js.map +1 -1
- package/build/ios/Swift.js +7 -7
- package/build/ios/Swift.js.map +1 -1
- package/build/ios/Updates.d.ts +4 -6
- package/build/ios/Updates.js +7 -9
- package/build/ios/Updates.js.map +1 -1
- package/build/ios/UsesNonExemptEncryption.js.map +1 -1
- package/build/ios/Version.js.map +1 -1
- package/build/ios/XcodeProjectFile.js +6 -6
- package/build/ios/XcodeProjectFile.js.map +1 -1
- package/build/ios/utils/Xcodeproj.js +7 -7
- package/build/ios/utils/Xcodeproj.js.map +1 -1
- package/build/ios/utils/getInfoPlistPath.js +6 -6
- package/build/ios/utils/getInfoPlistPath.js.map +1 -1
- package/build/plugins/android-plugins.js.map +1 -1
- package/build/plugins/createBaseMod.d.ts +1 -1
- package/build/plugins/createBaseMod.js.map +1 -1
- package/build/plugins/ios-plugins.js +7 -7
- package/build/plugins/ios-plugins.js.map +1 -1
- package/build/plugins/mod-compiler.d.ts +1 -1
- package/build/plugins/mod-compiler.js +18 -18
- package/build/plugins/mod-compiler.js.map +1 -1
- package/build/plugins/withAndroidBaseMods.d.ts +1 -1
- package/build/plugins/withAndroidBaseMods.js +7 -7
- package/build/plugins/withAndroidBaseMods.js.map +1 -1
- package/build/plugins/withDangerousMod.js.map +1 -1
- package/build/plugins/withIosBaseMods.d.ts +1 -1
- package/build/plugins/withIosBaseMods.js +7 -7
- package/build/plugins/withIosBaseMods.js.map +1 -1
- package/build/plugins/withPlugins.js.map +1 -1
- package/build/utils/Updates.d.ts +2 -2
- package/build/utils/Updates.js +20 -37
- package/build/utils/Updates.js.map +1 -1
- package/build/utils/errors.js.map +1 -1
- package/build/utils/matchBrackets.d.ts +2 -2
- package/build/utils/matchBrackets.js.map +1 -1
- package/build/utils/plugin-resolver.js.map +1 -1
- package/package.json +3 -3
|
@@ -21,44 +21,44 @@ function _path() {
|
|
|
21
21
|
};
|
|
22
22
|
return data;
|
|
23
23
|
}
|
|
24
|
-
function
|
|
25
|
-
const data = require("
|
|
26
|
-
|
|
24
|
+
function _createBaseMod() {
|
|
25
|
+
const data = require("./createBaseMod");
|
|
26
|
+
_createBaseMod = function () {
|
|
27
27
|
return data;
|
|
28
28
|
};
|
|
29
29
|
return data;
|
|
30
30
|
}
|
|
31
|
-
function
|
|
32
|
-
const data = require("
|
|
33
|
-
|
|
31
|
+
function _withAndroidBaseMods() {
|
|
32
|
+
const data = require("./withAndroidBaseMods");
|
|
33
|
+
_withAndroidBaseMods = function () {
|
|
34
34
|
return data;
|
|
35
35
|
};
|
|
36
36
|
return data;
|
|
37
37
|
}
|
|
38
|
-
function
|
|
39
|
-
const data =
|
|
40
|
-
|
|
38
|
+
function _withIosBaseMods() {
|
|
39
|
+
const data = require("./withIosBaseMods");
|
|
40
|
+
_withIosBaseMods = function () {
|
|
41
41
|
return data;
|
|
42
42
|
};
|
|
43
43
|
return data;
|
|
44
44
|
}
|
|
45
|
-
function
|
|
46
|
-
const data = require("
|
|
47
|
-
|
|
45
|
+
function _Xcodeproj() {
|
|
46
|
+
const data = require("../ios/utils/Xcodeproj");
|
|
47
|
+
_Xcodeproj = function () {
|
|
48
48
|
return data;
|
|
49
49
|
};
|
|
50
50
|
return data;
|
|
51
51
|
}
|
|
52
|
-
function
|
|
53
|
-
const data = require("
|
|
54
|
-
|
|
52
|
+
function _errors() {
|
|
53
|
+
const data = require("../utils/errors");
|
|
54
|
+
_errors = function () {
|
|
55
55
|
return data;
|
|
56
56
|
};
|
|
57
57
|
return data;
|
|
58
58
|
}
|
|
59
|
-
function
|
|
60
|
-
const data = require("
|
|
61
|
-
|
|
59
|
+
function Warnings() {
|
|
60
|
+
const data = _interopRequireWildcard(require("../utils/warnings"));
|
|
61
|
+
Warnings = function () {
|
|
62
62
|
return data;
|
|
63
63
|
};
|
|
64
64
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod-compiler.js","names":["_debug","data","_interopRequireDefault","require","_path","_Xcodeproj","_errors","Warnings","_interopRequireWildcard","_createBaseMod","_withAndroidBaseMods","_withIosBaseMods","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","debug","Debug","withDefaultBaseMods","config","props","withIosBaseMods","withAndroidBaseMods","withIntrospectionBaseMods","saveToInternal","skipEmptyMod","mods","platform","keys","_config$mods$platform","_config$mods$platform2","isIntrospective","_config$mods$platform3","compileModsAsync","introspect","evalModsAsync","sortMods","commands","order","allKeys","map","completeOrder","Set","sorted","length","group","shift","commandSet","find","push","getRawClone","freeze","JSON","parse","stringify","orders","ios","projectRoot","platforms","assertMissingModProviders","ignoreExistingNativeFiles","modRawConfig","platformName","entries","_config$mods","includes","_orders$platformName","name","join","platformProjectRoot","path","projectName","getHackyProjectName","undefined","modName","mod","modRequest","isProvider","errorMessage","PluginError","addWarningForPlatform","results","modResults","assertModResults"],"sources":["../../src/plugins/mod-compiler.ts"],"sourcesContent":["import Debug from 'debug';\nimport path from 'path';\n\nimport { ExportedConfig, Mod, ModConfig, ModPlatform } from '../Plugin.types';\nimport { getHackyProjectName } from '../ios/utils/Xcodeproj';\nimport { PluginError } from '../utils/errors';\nimport * as Warnings from '../utils/warnings';\nimport { assertModResults, ForwardedBaseModOptions } from './createBaseMod';\nimport { withAndroidBaseMods } from './withAndroidBaseMods';\nimport { withIosBaseMods } from './withIosBaseMods';\n\nconst debug = Debug('expo:config-plugins:mod-compiler');\n\nexport function withDefaultBaseMods(\n config: ExportedConfig,\n props: ForwardedBaseModOptions = {}\n): ExportedConfig {\n config = withIosBaseMods(config, props);\n config = withAndroidBaseMods(config, props);\n return config;\n}\n\n/**\n * Get a prebuild config that safely evaluates mods without persisting any changes to the file system.\n * Currently this only supports infoPlist, entitlements, androidManifest, strings, gradleProperties, and expoPlist mods.\n * This plugin should be evaluated directly:\n */\nexport function withIntrospectionBaseMods(\n config: ExportedConfig,\n props: ForwardedBaseModOptions = {}\n): ExportedConfig {\n config = withIosBaseMods(config, {\n saveToInternal: true,\n // This writing optimization can be skipped since we never write in introspection mode.\n // Including empty mods will ensure that all mods get introspected.\n skipEmptyMod: false,\n ...props,\n });\n config = withAndroidBaseMods(config, {\n saveToInternal: true,\n skipEmptyMod: false,\n ...props,\n });\n\n if (config.mods) {\n // Remove all mods that don't have an introspection base mod, for instance `dangerous` mods.\n for (const platform of Object.keys(config.mods) as ModPlatform[]) {\n // const platformPreserve = preserve[platform];\n for (const key of Object.keys(config.mods[platform] || {})) {\n // @ts-ignore\n if (!config.mods[platform]?.[key]?.isIntrospective) {\n debug(`removing non-idempotent mod: ${platform}.${key}`);\n // @ts-ignore\n delete config.mods[platform]?.[key];\n }\n }\n }\n }\n\n return config;\n}\n\n/**\n *\n * @param projectRoot\n * @param config\n */\nexport async function compileModsAsync(\n config: ExportedConfig,\n props: {\n projectRoot: string;\n platforms?: ModPlatform[];\n introspect?: boolean;\n assertMissingModProviders?: boolean;\n ignoreExistingNativeFiles?: boolean;\n }\n): Promise<ExportedConfig> {\n if (props.introspect === true) {\n config = withIntrospectionBaseMods(config);\n } else {\n config = withDefaultBaseMods(config);\n }\n return await evalModsAsync(config, props);\n}\n\nfunction sortMods(commands: [string, any][], order: string[]): [string, any][] {\n const allKeys = commands.map(([key]) => key);\n const completeOrder = [...new Set([...order, ...allKeys])];\n const sorted: [string, any][] = [];\n while (completeOrder.length) {\n const group = completeOrder.shift()!;\n const commandSet = commands.find(([key]) => key === group);\n if (commandSet) {\n sorted.push(commandSet);\n }\n }\n return sorted;\n}\n\nfunction getRawClone({ mods, ...config }: ExportedConfig) {\n // Configs should be fully serializable, so we can clone them without worrying about\n // the mods.\n return Object.freeze(JSON.parse(JSON.stringify(config)));\n}\n\nconst orders: Record<string, string[]> = {\n ios: [\n // dangerous runs first\n 'dangerous',\n // run the XcodeProject mod second because many plugins attempt to read from it.\n 'xcodeproj',\n ],\n};\n/**\n * A generic plugin compiler.\n *\n * @param config\n */\nexport async function evalModsAsync(\n config: ExportedConfig,\n {\n projectRoot,\n introspect,\n platforms,\n assertMissingModProviders,\n ignoreExistingNativeFiles = false,\n }: {\n projectRoot: string;\n introspect?: boolean;\n platforms?: ModPlatform[];\n /**\n * Throw errors when mods are missing providers.\n * @default true\n */\n assertMissingModProviders?: boolean;\n /** Ignore any existing native files, only use the generated prebuild results. */\n ignoreExistingNativeFiles?: boolean;\n }\n): Promise<ExportedConfig> {\n const modRawConfig = getRawClone(config);\n for (const [platformName, platform] of Object.entries(config.mods ?? ({} as ModConfig))) {\n if (platforms && !platforms.includes(platformName as any)) {\n debug(`skip platform: ${platformName}`);\n continue;\n }\n\n let entries = Object.entries(platform);\n if (entries.length) {\n // Move dangerous item to the first position if it exists, this ensures that all dangerous code runs first.\n entries = sortMods(entries, orders[platformName] ?? ['dangerous']);\n debug(`run in order: ${entries.map(([name]) => name).join(', ')}`);\n const platformProjectRoot = path.join(projectRoot, platformName);\n const projectName =\n platformName === 'ios' ? getHackyProjectName(projectRoot, config) : undefined;\n\n for (const [modName, mod] of entries) {\n const modRequest = {\n projectRoot,\n projectName,\n platformProjectRoot,\n platform: platformName as ModPlatform,\n modName,\n introspect: !!introspect,\n ignoreExistingNativeFiles,\n };\n\n if (!(mod as Mod).isProvider) {\n // In strict mode, throw an error.\n const errorMessage = `Initial base modifier for \"${platformName}.${modName}\" is not a provider and therefore will not provide modResults to child mods`;\n if (assertMissingModProviders !== false) {\n throw new PluginError(errorMessage, 'MISSING_PROVIDER');\n } else {\n Warnings.addWarningForPlatform(\n platformName as ModPlatform,\n `${platformName}.${modName}`,\n `Skipping: Initial base modifier for \"${platformName}.${modName}\" is not a provider and therefore will not provide modResults to child mods. This may be due to an outdated version of Expo CLI.`\n );\n // In loose mode, just skip the mod entirely.\n continue;\n }\n }\n\n const results = await (mod as Mod)({\n ...config,\n modResults: null,\n modRequest,\n modRawConfig,\n });\n\n // Sanity check to help locate non compliant mods.\n config = assertModResults(results, platformName, modName);\n // @ts-ignore: `modResults` is added for modifications\n delete config.modResults;\n // @ts-ignore: `modRequest` is added for modifications\n delete config.modRequest;\n // @ts-ignore: `modRawConfig` is added for modifications\n delete config.modRawConfig;\n }\n }\n }\n\n return config;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mod-compiler.js","names":["_debug","data","_interopRequireDefault","require","_path","_createBaseMod","_withAndroidBaseMods","_withIosBaseMods","_Xcodeproj","_errors","Warnings","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","debug","Debug","withDefaultBaseMods","config","props","withIosBaseMods","withAndroidBaseMods","withIntrospectionBaseMods","saveToInternal","skipEmptyMod","mods","platform","keys","_config$mods$platform","_config$mods$platform2","isIntrospective","_config$mods$platform3","compileModsAsync","introspect","evalModsAsync","sortMods","commands","order","allKeys","map","completeOrder","Set","sorted","length","group","shift","commandSet","find","push","getRawClone","freeze","JSON","parse","stringify","orders","ios","projectRoot","platforms","assertMissingModProviders","ignoreExistingNativeFiles","modRawConfig","platformName","entries","_config$mods","includes","_orders$platformName","name","join","platformProjectRoot","path","projectName","getHackyProjectName","undefined","modName","mod","modRequest","isProvider","errorMessage","PluginError","addWarningForPlatform","results","modResults","assertModResults"],"sources":["../../src/plugins/mod-compiler.ts"],"sourcesContent":["import Debug from 'debug';\nimport path from 'path';\n\nimport { assertModResults, ForwardedBaseModOptions } from './createBaseMod';\nimport { withAndroidBaseMods } from './withAndroidBaseMods';\nimport { withIosBaseMods } from './withIosBaseMods';\nimport { ExportedConfig, Mod, ModConfig, ModPlatform } from '../Plugin.types';\nimport { getHackyProjectName } from '../ios/utils/Xcodeproj';\nimport { PluginError } from '../utils/errors';\nimport * as Warnings from '../utils/warnings';\n\nconst debug = Debug('expo:config-plugins:mod-compiler');\n\nexport function withDefaultBaseMods(\n config: ExportedConfig,\n props: ForwardedBaseModOptions = {}\n): ExportedConfig {\n config = withIosBaseMods(config, props);\n config = withAndroidBaseMods(config, props);\n return config;\n}\n\n/**\n * Get a prebuild config that safely evaluates mods without persisting any changes to the file system.\n * Currently this only supports infoPlist, entitlements, androidManifest, strings, gradleProperties, and expoPlist mods.\n * This plugin should be evaluated directly:\n */\nexport function withIntrospectionBaseMods(\n config: ExportedConfig,\n props: ForwardedBaseModOptions = {}\n): ExportedConfig {\n config = withIosBaseMods(config, {\n saveToInternal: true,\n // This writing optimization can be skipped since we never write in introspection mode.\n // Including empty mods will ensure that all mods get introspected.\n skipEmptyMod: false,\n ...props,\n });\n config = withAndroidBaseMods(config, {\n saveToInternal: true,\n skipEmptyMod: false,\n ...props,\n });\n\n if (config.mods) {\n // Remove all mods that don't have an introspection base mod, for instance `dangerous` mods.\n for (const platform of Object.keys(config.mods) as ModPlatform[]) {\n // const platformPreserve = preserve[platform];\n for (const key of Object.keys(config.mods[platform] || {})) {\n // @ts-ignore\n if (!config.mods[platform]?.[key]?.isIntrospective) {\n debug(`removing non-idempotent mod: ${platform}.${key}`);\n // @ts-ignore\n delete config.mods[platform]?.[key];\n }\n }\n }\n }\n\n return config;\n}\n\n/**\n *\n * @param projectRoot\n * @param config\n */\nexport async function compileModsAsync(\n config: ExportedConfig,\n props: {\n projectRoot: string;\n platforms?: ModPlatform[];\n introspect?: boolean;\n assertMissingModProviders?: boolean;\n ignoreExistingNativeFiles?: boolean;\n }\n): Promise<ExportedConfig> {\n if (props.introspect === true) {\n config = withIntrospectionBaseMods(config);\n } else {\n config = withDefaultBaseMods(config);\n }\n return await evalModsAsync(config, props);\n}\n\nfunction sortMods(commands: [string, any][], order: string[]): [string, any][] {\n const allKeys = commands.map(([key]) => key);\n const completeOrder = [...new Set([...order, ...allKeys])];\n const sorted: [string, any][] = [];\n while (completeOrder.length) {\n const group = completeOrder.shift()!;\n const commandSet = commands.find(([key]) => key === group);\n if (commandSet) {\n sorted.push(commandSet);\n }\n }\n return sorted;\n}\n\nfunction getRawClone({ mods, ...config }: ExportedConfig) {\n // Configs should be fully serializable, so we can clone them without worrying about\n // the mods.\n return Object.freeze(JSON.parse(JSON.stringify(config)));\n}\n\nconst orders: Record<string, string[]> = {\n ios: [\n // dangerous runs first\n 'dangerous',\n // run the XcodeProject mod second because many plugins attempt to read from it.\n 'xcodeproj',\n ],\n};\n/**\n * A generic plugin compiler.\n *\n * @param config\n */\nexport async function evalModsAsync(\n config: ExportedConfig,\n {\n projectRoot,\n introspect,\n platforms,\n assertMissingModProviders,\n ignoreExistingNativeFiles = false,\n }: {\n projectRoot: string;\n introspect?: boolean;\n platforms?: ModPlatform[];\n /**\n * Throw errors when mods are missing providers.\n * @default true\n */\n assertMissingModProviders?: boolean;\n /** Ignore any existing native files, only use the generated prebuild results. */\n ignoreExistingNativeFiles?: boolean;\n }\n): Promise<ExportedConfig> {\n const modRawConfig = getRawClone(config);\n for (const [platformName, platform] of Object.entries(config.mods ?? ({} as ModConfig))) {\n if (platforms && !platforms.includes(platformName as any)) {\n debug(`skip platform: ${platformName}`);\n continue;\n }\n\n let entries = Object.entries(platform);\n if (entries.length) {\n // Move dangerous item to the first position if it exists, this ensures that all dangerous code runs first.\n entries = sortMods(entries, orders[platformName] ?? ['dangerous']);\n debug(`run in order: ${entries.map(([name]) => name).join(', ')}`);\n const platformProjectRoot = path.join(projectRoot, platformName);\n const projectName =\n platformName === 'ios' ? getHackyProjectName(projectRoot, config) : undefined;\n\n for (const [modName, mod] of entries) {\n const modRequest = {\n projectRoot,\n projectName,\n platformProjectRoot,\n platform: platformName as ModPlatform,\n modName,\n introspect: !!introspect,\n ignoreExistingNativeFiles,\n };\n\n if (!(mod as Mod).isProvider) {\n // In strict mode, throw an error.\n const errorMessage = `Initial base modifier for \"${platformName}.${modName}\" is not a provider and therefore will not provide modResults to child mods`;\n if (assertMissingModProviders !== false) {\n throw new PluginError(errorMessage, 'MISSING_PROVIDER');\n } else {\n Warnings.addWarningForPlatform(\n platformName as ModPlatform,\n `${platformName}.${modName}`,\n `Skipping: Initial base modifier for \"${platformName}.${modName}\" is not a provider and therefore will not provide modResults to child mods. This may be due to an outdated version of Expo CLI.`\n );\n // In loose mode, just skip the mod entirely.\n continue;\n }\n }\n\n const results = await (mod as Mod)({\n ...config,\n modResults: null,\n modRequest,\n modRawConfig,\n });\n\n // Sanity check to help locate non compliant mods.\n config = assertModResults(results, platformName, modName);\n // @ts-ignore: `modResults` is added for modifications\n delete config.modResults;\n // @ts-ignore: `modRequest` is added for modifications\n delete config.modRequest;\n // @ts-ignore: `modRawConfig` is added for modifications\n delete config.modRawConfig;\n }\n }\n }\n\n return config;\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { ForwardedBaseModOptions } from './createBaseMod';
|
|
1
2
|
import { ExportedConfig } from '../Plugin.types';
|
|
2
3
|
import { Manifest, Paths, Properties, Resources } from '../android';
|
|
3
4
|
import { AndroidManifest } from '../android/Manifest';
|
|
4
|
-
import { ForwardedBaseModOptions } from './createBaseMod';
|
|
5
5
|
export declare function sortAndroidManifest(obj: AndroidManifest): Manifest.AndroidManifest;
|
|
6
6
|
declare const defaultProviders: {
|
|
7
7
|
dangerous: import("./createBaseMod").BaseModProviderMethods<unknown, Partial<Pick<import("./withMod").BaseModOptions, "skipEmptyMod" | "saveToInternal">>>;
|
|
@@ -20,6 +20,13 @@ function _path() {
|
|
|
20
20
|
};
|
|
21
21
|
return data;
|
|
22
22
|
}
|
|
23
|
+
function _createBaseMod() {
|
|
24
|
+
const data = require("./createBaseMod");
|
|
25
|
+
_createBaseMod = function () {
|
|
26
|
+
return data;
|
|
27
|
+
};
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
23
30
|
function _android() {
|
|
24
31
|
const data = require("../android");
|
|
25
32
|
_android = function () {
|
|
@@ -41,13 +48,6 @@ function _sortObject() {
|
|
|
41
48
|
};
|
|
42
49
|
return data;
|
|
43
50
|
}
|
|
44
|
-
function _createBaseMod() {
|
|
45
|
-
const data = require("./createBaseMod");
|
|
46
|
-
_createBaseMod = function () {
|
|
47
|
-
return data;
|
|
48
|
-
};
|
|
49
|
-
return data;
|
|
50
|
-
}
|
|
51
51
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
52
52
|
const {
|
|
53
53
|
readFile,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAndroidBaseMods.js","names":["_fs","data","require","_path","_interopRequireDefault","_android","_XML","_sortObject","_createBaseMod","obj","__esModule","default","readFile","writeFile","promises","getAndroidManifestTemplate","config","_config$android$packa","_config$android","parseXMLAsync","android","package","sortAndroidManifest","manifest","sortObject","reverseSortString","Array","isArray","sort","a","b","$","application","map","sortObjWithOrder","defaultProviders","dangerous","provider","getFilePath","read","filePath","modResults","write","isIntrospective","modRequest","platformProjectRoot","path","join","Manifest","readAndroidManifestAsync","error","introspect","writeAndroidManifestAsync","gradleProperties","Properties","parsePropertiesFile","propertiesListToString","strings","projectRoot","Strings","getProjectStringsXMLPathAsync","Resources","readResourcesXMLAsync","resources","writeXMLAsync","xml","colors","Colors","getProjectColorsXMLPathAsync","colorsNight","kind","styles","Styles","getProjectStylesXMLPathAsync","_styles$resources$$","fallback","projectBuildGradle","Paths","getProjectBuildGradleFilePath","getFileInfo","contents","settingsGradle","getSettingsGradleFilePath","appBuildGradle","getAppBuildGradleFilePath","mainActivity","getProjectFilePath","mainApplication","withAndroidBaseMods","providers","props","withGeneratedBaseMods","platform","getAndroidModFileProviders"],"sources":["../../src/plugins/withAndroidBaseMods.ts"],"sourcesContent":["import { promises } from 'fs';\nimport path from 'path';\n\nimport { ExportedConfig, ModConfig } from '../Plugin.types';\nimport { Colors, Manifest, Paths, Properties, Resources, Strings, Styles } from '../android';\nimport { AndroidManifest } from '../android/Manifest';\nimport { parseXMLAsync, writeXMLAsync } from '../utils/XML';\nimport { reverseSortString, sortObject, sortObjWithOrder } from '../utils/sortObject';\nimport { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\n\nconst { readFile, writeFile } = promises;\n\ntype AndroidModName = keyof Required<ModConfig>['android'];\n\nfunction getAndroidManifestTemplate(config: ExportedConfig) {\n // Keep in sync with https://github.com/expo/expo/blob/master/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n // TODO: Read from remote template when possible\n return parseXMLAsync(`\n <manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"${\n config.android?.package ?? 'com.placeholder.appid'\n }\">\n\n <uses-permission android:name=\"android.permission.INTERNET\"/>\n <!-- OPTIONAL PERMISSIONS, REMOVE WHATEVER YOU DO NOT NEED -->\n <uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>\n <!-- These require runtime permissions on M -->\n <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>\n <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>\n <!-- END OPTIONAL PERMISSIONS -->\n\n <queries>\n <!-- Support checking for http(s) links via the Linking API -->\n <intent>\n <action android:name=\"android.intent.action.VIEW\" />\n <category android:name=\"android.intent.category.BROWSABLE\" />\n <data android:scheme=\"https\" />\n </intent>\n </queries>\n\n <application\n android:name=\".MainApplication\"\n android:label=\"@string/app_name\"\n android:icon=\"@mipmap/ic_launcher\"\n android:roundIcon=\"@mipmap/ic_launcher_round\"\n android:allowBackup=\"false\"\n android:theme=\"@style/AppTheme\"\n android:usesCleartextTraffic=\"true\"\n >\n <meta-data android:name=\"expo.modules.updates.EXPO_UPDATE_URL\" android:value=\"YOUR-APP-URL-HERE\"/>\n <meta-data android:name=\"expo.modules.updates.EXPO_SDK_VERSION\" android:value=\"YOUR-APP-SDK-VERSION-HERE\"/>\n <activity\n android:name=\".MainActivity\"\n android:label=\"@string/app_name\"\n android:configChanges=\"keyboard|keyboardHidden|orientation|screenSize|uiMode\"\n android:launchMode=\"singleTask\"\n android:windowSoftInputMode=\"adjustResize\"\n android:theme=\"@style/Theme.App.SplashScreen\"\n >\n <intent-filter>\n <action android:name=\"android.intent.action.MAIN\"/>\n <category android:name=\"android.intent.category.LAUNCHER\"/>\n </intent-filter>\n </activity>\n <activity android:name=\"com.facebook.react.devsupport.DevSettingsActivity\"/>\n </application>\n </manifest>\n `) as Promise<AndroidManifest>;\n}\n\nexport function sortAndroidManifest(obj: AndroidManifest) {\n if (obj.manifest) {\n // Reverse sort so application is last and permissions are first\n obj.manifest = sortObject(obj.manifest, reverseSortString);\n\n if (Array.isArray(obj.manifest['uses-permission'])) {\n // Sort permissions alphabetically\n obj.manifest['uses-permission'].sort((a, b) => {\n if (a.$['android:name'] < b.$['android:name']) return -1;\n if (a.$['android:name'] > b.$['android:name']) return 1;\n return 0;\n });\n }\n\n if (Array.isArray(obj.manifest.application)) {\n // reverse sort applications so activity is towards the end and meta-data is towards the front.\n obj.manifest.application = obj.manifest.application.map((application) => {\n application = sortObjWithOrder(application, ['meta-data', 'service', 'activity']);\n\n if (Array.isArray(application['meta-data'])) {\n // Sort metadata alphabetically\n application['meta-data'].sort((a, b) => {\n if (a.$['android:name'] < b.$['android:name']) return -1;\n if (a.$['android:name'] > b.$['android:name']) return 1;\n return 0;\n });\n }\n return application;\n });\n }\n }\n return obj;\n}\n\nconst defaultProviders = {\n dangerous: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return { filePath: '', modResults: {} };\n },\n async write() {},\n }),\n\n // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n manifest: provider<Manifest.AndroidManifest>({\n isIntrospective: true,\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.join(platformProjectRoot, 'app/src/main/AndroidManifest.xml');\n },\n async read(filePath, config) {\n try {\n return await Manifest.readAndroidManifestAsync(filePath);\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return await getAndroidManifestTemplate(config);\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await Manifest.writeAndroidManifestAsync(filePath, sortAndroidManifest(modResults));\n },\n }),\n\n // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n gradleProperties: provider<Properties.PropertiesItem[]>({\n isIntrospective: true,\n\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.join(platformProjectRoot, 'gradle.properties');\n },\n async read(filePath, config) {\n try {\n return await Properties.parsePropertiesFile(await readFile(filePath, 'utf8'));\n } catch (error) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return [];\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeFile(filePath, Properties.propertiesListToString(modResults));\n },\n }),\n\n // Append a rule to supply strings.xml data to mods on `mods.android.strings`\n strings: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Strings.getProjectStringsXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n\n async read(filePath, config) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n colors: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Colors.getProjectColorsXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n\n async read(filePath, { modRequest: { introspect } }) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n colorsNight: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Colors.getProjectColorsXMLPathAsync(projectRoot, { kind: 'values-night' });\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n async read(filePath, config) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n styles: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Styles.getProjectStylesXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n async read(filePath, config) {\n let styles: Resources.ResourceXML = { resources: {} };\n\n try {\n // Adds support for `tools:x`\n styles = await Resources.readResourcesXMLAsync({\n path: filePath,\n fallback: `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources xmlns:tools=\"http://schemas.android.com/tools\"></resources>`,\n });\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n\n // Ensure support for tools is added...\n if (!styles.resources.$) {\n styles.resources.$ = {};\n }\n if (!styles.resources.$?.['xmlns:tools']) {\n styles.resources.$['xmlns:tools'] = 'http://schemas.android.com/tools';\n }\n return styles;\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n projectBuildGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectBuildGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n settingsGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getSettingsGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n appBuildGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getAppBuildGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n mainActivity: provider<Paths.ApplicationProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectFilePath(projectRoot, 'MainActivity');\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n mainApplication: provider<Paths.ApplicationProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectFilePath(projectRoot, 'MainApplication');\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n};\n\ntype AndroidDefaultProviders = typeof defaultProviders;\n\nexport function withAndroidBaseMods(\n config: ExportedConfig,\n {\n providers,\n ...props\n }: ForwardedBaseModOptions & { providers?: Partial<AndroidDefaultProviders> } = {}\n): ExportedConfig {\n return withGeneratedBaseMods<AndroidModName>(config, {\n ...props,\n platform: 'android',\n providers: providers ?? getAndroidModFileProviders(),\n });\n}\n\nexport function getAndroidModFileProviders() {\n return defaultProviders;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"withAndroidBaseMods.js","names":["_fs","data","require","_path","_interopRequireDefault","_createBaseMod","_android","_XML","_sortObject","obj","__esModule","default","readFile","writeFile","promises","getAndroidManifestTemplate","config","_config$android$packa","_config$android","parseXMLAsync","android","package","sortAndroidManifest","manifest","sortObject","reverseSortString","Array","isArray","sort","a","b","$","application","map","sortObjWithOrder","defaultProviders","dangerous","provider","getFilePath","read","filePath","modResults","write","isIntrospective","modRequest","platformProjectRoot","path","join","Manifest","readAndroidManifestAsync","error","introspect","writeAndroidManifestAsync","gradleProperties","Properties","parsePropertiesFile","propertiesListToString","strings","projectRoot","Strings","getProjectStringsXMLPathAsync","Resources","readResourcesXMLAsync","resources","writeXMLAsync","xml","colors","Colors","getProjectColorsXMLPathAsync","colorsNight","kind","styles","Styles","getProjectStylesXMLPathAsync","_styles$resources$$","fallback","projectBuildGradle","Paths","getProjectBuildGradleFilePath","getFileInfo","contents","settingsGradle","getSettingsGradleFilePath","appBuildGradle","getAppBuildGradleFilePath","mainActivity","getProjectFilePath","mainApplication","withAndroidBaseMods","providers","props","withGeneratedBaseMods","platform","getAndroidModFileProviders"],"sources":["../../src/plugins/withAndroidBaseMods.ts"],"sourcesContent":["import { promises } from 'fs';\nimport path from 'path';\n\nimport { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\nimport { ExportedConfig, ModConfig } from '../Plugin.types';\nimport { Colors, Manifest, Paths, Properties, Resources, Strings, Styles } from '../android';\nimport { AndroidManifest } from '../android/Manifest';\nimport { parseXMLAsync, writeXMLAsync } from '../utils/XML';\nimport { reverseSortString, sortObject, sortObjWithOrder } from '../utils/sortObject';\n\nconst { readFile, writeFile } = promises;\n\ntype AndroidModName = keyof Required<ModConfig>['android'];\n\nfunction getAndroidManifestTemplate(config: ExportedConfig) {\n // Keep in sync with https://github.com/expo/expo/blob/master/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n // TODO: Read from remote template when possible\n return parseXMLAsync(`\n <manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"${\n config.android?.package ?? 'com.placeholder.appid'\n }\">\n\n <uses-permission android:name=\"android.permission.INTERNET\"/>\n <!-- OPTIONAL PERMISSIONS, REMOVE WHATEVER YOU DO NOT NEED -->\n <uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>\n <!-- These require runtime permissions on M -->\n <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>\n <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>\n <!-- END OPTIONAL PERMISSIONS -->\n\n <queries>\n <!-- Support checking for http(s) links via the Linking API -->\n <intent>\n <action android:name=\"android.intent.action.VIEW\" />\n <category android:name=\"android.intent.category.BROWSABLE\" />\n <data android:scheme=\"https\" />\n </intent>\n </queries>\n\n <application\n android:name=\".MainApplication\"\n android:label=\"@string/app_name\"\n android:icon=\"@mipmap/ic_launcher\"\n android:roundIcon=\"@mipmap/ic_launcher_round\"\n android:allowBackup=\"false\"\n android:theme=\"@style/AppTheme\"\n android:usesCleartextTraffic=\"true\"\n >\n <meta-data android:name=\"expo.modules.updates.EXPO_UPDATE_URL\" android:value=\"YOUR-APP-URL-HERE\"/>\n <meta-data android:name=\"expo.modules.updates.EXPO_SDK_VERSION\" android:value=\"YOUR-APP-SDK-VERSION-HERE\"/>\n <activity\n android:name=\".MainActivity\"\n android:label=\"@string/app_name\"\n android:configChanges=\"keyboard|keyboardHidden|orientation|screenSize|uiMode\"\n android:launchMode=\"singleTask\"\n android:windowSoftInputMode=\"adjustResize\"\n android:theme=\"@style/Theme.App.SplashScreen\"\n >\n <intent-filter>\n <action android:name=\"android.intent.action.MAIN\"/>\n <category android:name=\"android.intent.category.LAUNCHER\"/>\n </intent-filter>\n </activity>\n <activity android:name=\"com.facebook.react.devsupport.DevSettingsActivity\"/>\n </application>\n </manifest>\n `) as Promise<AndroidManifest>;\n}\n\nexport function sortAndroidManifest(obj: AndroidManifest) {\n if (obj.manifest) {\n // Reverse sort so application is last and permissions are first\n obj.manifest = sortObject(obj.manifest, reverseSortString);\n\n if (Array.isArray(obj.manifest['uses-permission'])) {\n // Sort permissions alphabetically\n obj.manifest['uses-permission'].sort((a, b) => {\n if (a.$['android:name'] < b.$['android:name']) return -1;\n if (a.$['android:name'] > b.$['android:name']) return 1;\n return 0;\n });\n }\n\n if (Array.isArray(obj.manifest.application)) {\n // reverse sort applications so activity is towards the end and meta-data is towards the front.\n obj.manifest.application = obj.manifest.application.map((application) => {\n application = sortObjWithOrder(application, ['meta-data', 'service', 'activity']);\n\n if (Array.isArray(application['meta-data'])) {\n // Sort metadata alphabetically\n application['meta-data'].sort((a, b) => {\n if (a.$['android:name'] < b.$['android:name']) return -1;\n if (a.$['android:name'] > b.$['android:name']) return 1;\n return 0;\n });\n }\n return application;\n });\n }\n }\n return obj;\n}\n\nconst defaultProviders = {\n dangerous: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return { filePath: '', modResults: {} };\n },\n async write() {},\n }),\n\n // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n manifest: provider<Manifest.AndroidManifest>({\n isIntrospective: true,\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.join(platformProjectRoot, 'app/src/main/AndroidManifest.xml');\n },\n async read(filePath, config) {\n try {\n return await Manifest.readAndroidManifestAsync(filePath);\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return await getAndroidManifestTemplate(config);\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await Manifest.writeAndroidManifestAsync(filePath, sortAndroidManifest(modResults));\n },\n }),\n\n // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n gradleProperties: provider<Properties.PropertiesItem[]>({\n isIntrospective: true,\n\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.join(platformProjectRoot, 'gradle.properties');\n },\n async read(filePath, config) {\n try {\n return await Properties.parsePropertiesFile(await readFile(filePath, 'utf8'));\n } catch (error) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return [];\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeFile(filePath, Properties.propertiesListToString(modResults));\n },\n }),\n\n // Append a rule to supply strings.xml data to mods on `mods.android.strings`\n strings: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Strings.getProjectStringsXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n\n async read(filePath, config) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n colors: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Colors.getProjectColorsXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n\n async read(filePath, { modRequest: { introspect } }) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n colorsNight: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Colors.getProjectColorsXMLPathAsync(projectRoot, { kind: 'values-night' });\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n async read(filePath, config) {\n try {\n return await Resources.readResourcesXMLAsync({ path: filePath });\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n return { resources: {} };\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n styles: provider<Resources.ResourceXML>({\n isIntrospective: true,\n\n async getFilePath({ modRequest: { projectRoot, introspect } }) {\n try {\n return await Styles.getProjectStylesXMLPathAsync(projectRoot);\n } catch (error: any) {\n if (!introspect) {\n throw error;\n }\n }\n return '';\n },\n async read(filePath, config) {\n let styles: Resources.ResourceXML = { resources: {} };\n\n try {\n // Adds support for `tools:x`\n styles = await Resources.readResourcesXMLAsync({\n path: filePath,\n fallback: `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources xmlns:tools=\"http://schemas.android.com/tools\"></resources>`,\n });\n } catch (error: any) {\n if (!config.modRequest.introspect) {\n throw error;\n }\n }\n\n // Ensure support for tools is added...\n if (!styles.resources.$) {\n styles.resources.$ = {};\n }\n if (!styles.resources.$?.['xmlns:tools']) {\n styles.resources.$['xmlns:tools'] = 'http://schemas.android.com/tools';\n }\n return styles;\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) return;\n await writeXMLAsync({ path: filePath, xml: modResults });\n },\n }),\n\n projectBuildGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectBuildGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n settingsGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getSettingsGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n appBuildGradle: provider<Paths.GradleProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getAppBuildGradleFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n mainActivity: provider<Paths.ApplicationProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectFilePath(projectRoot, 'MainActivity');\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n\n mainApplication: provider<Paths.ApplicationProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getProjectFilePath(projectRoot, 'MainApplication');\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n};\n\ntype AndroidDefaultProviders = typeof defaultProviders;\n\nexport function withAndroidBaseMods(\n config: ExportedConfig,\n {\n providers,\n ...props\n }: ForwardedBaseModOptions & { providers?: Partial<AndroidDefaultProviders> } = {}\n): ExportedConfig {\n return withGeneratedBaseMods<AndroidModName>(config, {\n ...props,\n platform: 'android',\n providers: providers ?? getAndroidModFileProviders(),\n });\n}\n\nexport function getAndroidModFileProviders() {\n return defaultProviders;\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,MAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,eAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,cAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,SAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,QAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAM,KAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,IAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,YAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,WAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsF,SAAAG,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtF,MAAM;EAAEG,QAAQ;EAAEC;AAAU,CAAC,GAAGC,cAAQ;AAIxC,SAASC,0BAA0BA,CAACC,MAAsB,EAAE;EAAA,IAAAC,qBAAA,EAAAC,eAAA;EAC1D;EACA;EACA,OAAO,IAAAC,oBAAa,EAAE;AACxB,kFAAgF,CAAAF,qBAAA,IAAAC,eAAA,GAC5EF,MAAM,CAACI,OAAO,cAAAF,eAAA,uBAAdA,eAAA,CAAgBG,OAAO,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,uBAC5B;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ;AAEO,SAASK,mBAAmBA,CAACb,GAAoB,EAAE;EACxD,IAAIA,GAAG,CAACc,QAAQ,EAAE;IAChB;IACAd,GAAG,CAACc,QAAQ,GAAG,IAAAC,wBAAU,EAACf,GAAG,CAACc,QAAQ,EAAEE,+BAAiB,CAAC;IAE1D,IAAIC,KAAK,CAACC,OAAO,CAAClB,GAAG,CAACc,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE;MAClD;MACAd,GAAG,CAACc,QAAQ,CAAC,iBAAiB,CAAC,CAACK,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QAC7C,IAAID,CAAC,CAACE,CAAC,CAAC,cAAc,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;QACxD,IAAIF,CAAC,CAACE,CAAC,CAAC,cAAc,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QACvD,OAAO,CAAC;MACV,CAAC,CAAC;IACJ;IAEA,IAAIL,KAAK,CAACC,OAAO,CAAClB,GAAG,CAACc,QAAQ,CAACS,WAAW,CAAC,EAAE;MAC3C;MACAvB,GAAG,CAACc,QAAQ,CAACS,WAAW,GAAGvB,GAAG,CAACc,QAAQ,CAACS,WAAW,CAACC,GAAG,CAAED,WAAW,IAAK;QACvEA,WAAW,GAAG,IAAAE,8BAAgB,EAACF,WAAW,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAEjF,IAAIN,KAAK,CAACC,OAAO,CAACK,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE;UAC3C;UACAA,WAAW,CAAC,WAAW,CAAC,CAACJ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;YACtC,IAAID,CAAC,CAACE,CAAC,CAAC,cAAc,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;YACxD,IAAIF,CAAC,CAACE,CAAC,CAAC,cAAc,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;YACvD,OAAO,CAAC;UACV,CAAC,CAAC;QACJ;QACA,OAAOC,WAAW;MACpB,CAAC,CAAC;IACJ;EACF;EACA,OAAOvB,GAAG;AACZ;AAEA,MAAM0B,gBAAgB,GAAG;EACvBC,SAAS,EAAE,IAAAC,yBAAQ,EAAU;IAC3BC,WAAWA,CAAA,EAAG;MACZ,OAAO,EAAE;IACX,CAAC;IACD,MAAMC,IAAIA,CAAA,EAAG;MACX,OAAO;QAAEC,QAAQ,EAAE,EAAE;QAAEC,UAAU,EAAE,CAAC;MAAE,CAAC;IACzC,CAAC;IACD,MAAMC,KAAKA,CAAA,EAAG,CAAC;EACjB,CAAC,CAAC;EAEF;EACAnB,QAAQ,EAAE,IAAAc,yBAAQ,EAA2B;IAC3CM,eAAe,EAAE,IAAI;IACrBL,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEC;MAAoB;IAAE,CAAC,EAAE;MACnD,OAAOC,eAAI,CAACC,IAAI,CAACF,mBAAmB,EAAE,kCAAkC,CAAC;IAC3E,CAAC;IACD,MAAMN,IAAIA,CAACC,QAAQ,EAAExB,MAAM,EAAE;MAC3B,IAAI;QACF,OAAO,MAAMgC,mBAAQ,CAACC,wBAAwB,CAACT,QAAQ,CAAC;MAC1D,CAAC,CAAC,OAAOU,KAAU,EAAE;QACnB,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;MACA,OAAO,MAAMnC,0BAA0B,CAACC,MAAM,CAAC;IACjD,CAAC;IACD,MAAM0B,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEG,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAMH,mBAAQ,CAACI,yBAAyB,CAACZ,QAAQ,EAAElB,mBAAmB,CAACmB,UAAU,CAAC,CAAC;IACrF;EACF,CAAC,CAAC;EAEF;EACAY,gBAAgB,EAAE,IAAAhB,yBAAQ,EAA8B;IACtDM,eAAe,EAAE,IAAI;IAErBL,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEC;MAAoB;IAAE,CAAC,EAAE;MACnD,OAAOC,eAAI,CAACC,IAAI,CAACF,mBAAmB,EAAE,mBAAmB,CAAC;IAC5D,CAAC;IACD,MAAMN,IAAIA,CAACC,QAAQ,EAAExB,MAAM,EAAE;MAC3B,IAAI;QACF,OAAO,MAAMsC,qBAAU,CAACC,mBAAmB,CAAC,MAAM3C,QAAQ,CAAC4B,QAAQ,EAAE,MAAM,CAAC,CAAC;MAC/E,CAAC,CAAC,OAAOU,KAAK,EAAE;QACd,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IACD,MAAMR,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEG,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAMtC,SAAS,CAAC2B,QAAQ,EAAEc,qBAAU,CAACE,sBAAsB,CAACf,UAAU,CAAC,CAAC;IAC1E;EACF,CAAC,CAAC;EAEF;EACAgB,OAAO,EAAE,IAAApB,yBAAQ,EAAwB;IACvCM,eAAe,EAAE,IAAI;IAErB,MAAML,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc,WAAW;QAAEP;MAAW;IAAE,CAAC,EAAE;MAC7D,IAAI;QACF,OAAO,MAAMQ,kBAAO,CAACC,6BAA6B,CAACF,WAAW,CAAC;MACjE,CAAC,CAAC,OAAOR,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IAED,MAAMX,IAAIA,CAACC,QAAQ,EAAExB,MAAM,EAAE;MAC3B,IAAI;QACF,OAAO,MAAM6C,oBAAS,CAACC,qBAAqB,CAAC;UAAEhB,IAAI,EAAEN;QAAS,CAAC,CAAC;MAClE,CAAC,CAAC,OAAOU,KAAK,EAAE;QACd,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;MACA,OAAO;QAAEa,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B,CAAC;IACD,MAAMrB,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEG,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAM,IAAAa,oBAAa,EAAC;QAAElB,IAAI,EAAEN,QAAQ;QAAEyB,GAAG,EAAExB;MAAW,CAAC,CAAC;IAC1D;EACF,CAAC,CAAC;EAEFyB,MAAM,EAAE,IAAA7B,yBAAQ,EAAwB;IACtCM,eAAe,EAAE,IAAI;IAErB,MAAML,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc,WAAW;QAAEP;MAAW;IAAE,CAAC,EAAE;MAC7D,IAAI;QACF,OAAO,MAAMgB,iBAAM,CAACC,4BAA4B,CAACV,WAAW,CAAC;MAC/D,CAAC,CAAC,OAAOR,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IAED,MAAMX,IAAIA,CAACC,QAAQ,EAAE;MAAEI,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MACnD,IAAI;QACF,OAAO,MAAMU,oBAAS,CAACC,qBAAqB,CAAC;UAAEhB,IAAI,EAAEN;QAAS,CAAC,CAAC;MAClE,CAAC,CAAC,OAAOU,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO;QAAEa,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B,CAAC;IACD,MAAMrB,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEG,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAM,IAAAa,oBAAa,EAAC;QAAElB,IAAI,EAAEN,QAAQ;QAAEyB,GAAG,EAAExB;MAAW,CAAC,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF4B,WAAW,EAAE,IAAAhC,yBAAQ,EAAwB;IAC3CM,eAAe,EAAE,IAAI;IAErB,MAAML,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc,WAAW;QAAEP;MAAW;IAAE,CAAC,EAAE;MAC7D,IAAI;QACF,OAAO,MAAMgB,iBAAM,CAACC,4BAA4B,CAACV,WAAW,EAAE;UAAEY,IAAI,EAAE;QAAe,CAAC,CAAC;MACzF,CAAC,CAAC,OAAOpB,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IACD,MAAMX,IAAIA,CAACC,QAAQ,EAAExB,MAAM,EAAE;MAC3B,IAAI;QACF,OAAO,MAAM6C,oBAAS,CAACC,qBAAqB,CAAC;UAAEhB,IAAI,EAAEN;QAAS,CAAC,CAAC;MAClE,CAAC,CAAC,OAAOU,KAAU,EAAE;QACnB,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;MACA,OAAO;QAAEa,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B,CAAC;IACD,MAAMrB,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEG,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAM,IAAAa,oBAAa,EAAC;QAAElB,IAAI,EAAEN,QAAQ;QAAEyB,GAAG,EAAExB;MAAW,CAAC,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF8B,MAAM,EAAE,IAAAlC,yBAAQ,EAAwB;IACtCM,eAAe,EAAE,IAAI;IAErB,MAAML,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc,WAAW;QAAEP;MAAW;IAAE,CAAC,EAAE;MAC7D,IAAI;QACF,OAAO,MAAMqB,iBAAM,CAACC,4BAA4B,CAACf,WAAW,CAAC;MAC/D,CAAC,CAAC,OAAOR,KAAU,EAAE;QACnB,IAAI,CAACC,UAAU,EAAE;UACf,MAAMD,KAAK;QACb;MACF;MACA,OAAO,EAAE;IACX,CAAC;IACD,MAAMX,IAAIA,CAACC,QAAQ,EAAExB,MAAM,EAAE;MAAA,IAAA0D,mBAAA;MAC3B,IAAIH,MAA6B,GAAG;QAAER,SAAS,EAAE,CAAC;MAAE,CAAC;MAErD,IAAI;QACF;QACAQ,MAAM,GAAG,MAAMV,oBAAS,CAACC,qBAAqB,CAAC;UAC7ChB,IAAI,EAAEN,QAAQ;UACdmC,QAAQ,EAAG;QACb,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOzB,KAAU,EAAE;QACnB,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CAACO,UAAU,EAAE;UACjC,MAAMD,KAAK;QACb;MACF;;MAEA;MACA,IAAI,CAACqB,MAAM,CAACR,SAAS,CAAChC,CAAC,EAAE;QACvBwC,MAAM,CAACR,SAAS,CAAChC,CAAC,GAAG,CAAC,CAAC;MACzB;MACA,IAAI,GAAA2C,mBAAA,GAACH,MAAM,CAACR,SAAS,CAAChC,CAAC,cAAA2C,mBAAA,eAAlBA,mBAAA,CAAqB,aAAa,CAAC,GAAE;QACxCH,MAAM,CAACR,SAAS,CAAChC,CAAC,CAAC,aAAa,CAAC,GAAG,kCAAkC;MACxE;MACA,OAAOwC,MAAM;IACf,CAAC;IACD,MAAM7B,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU;MAAEG,UAAU,EAAE;QAAEO;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;MAChB,MAAM,IAAAa,oBAAa,EAAC;QAAElB,IAAI,EAAEN,QAAQ;QAAEyB,GAAG,EAAExB;MAAW,CAAC,CAAC;IAC1D;EACF,CAAC,CAAC;EAEFmC,kBAAkB,EAAE,IAAAvC,yBAAQ,EAA0B;IACpDC,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOmB,gBAAK,CAACC,6BAA6B,CAACpB,WAAW,CAAC;IACzD,CAAC;IACD,MAAMnB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMnE,SAAS,CAAC2B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EAEFC,cAAc,EAAE,IAAA5C,yBAAQ,EAA0B;IAChDC,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOmB,gBAAK,CAACK,yBAAyB,CAACxB,WAAW,CAAC;IACrD,CAAC;IACD,MAAMnB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMnE,SAAS,CAAC2B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EAEFG,cAAc,EAAE,IAAA9C,yBAAQ,EAA0B;IAChDC,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOmB,gBAAK,CAACO,yBAAyB,CAAC1B,WAAW,CAAC;IACrD,CAAC;IACD,MAAMnB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMnE,SAAS,CAAC2B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EAEFK,YAAY,EAAE,IAAAhD,yBAAQ,EAA+B;IACnDC,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOmB,gBAAK,CAACS,kBAAkB,CAAC5B,WAAW,EAAE,cAAc,CAAC;IAC9D,CAAC;IACD,MAAMnB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMnE,SAAS,CAAC2B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EAEFO,eAAe,EAAE,IAAAlD,yBAAQ,EAA+B;IACtDC,WAAWA,CAAC;MAAEM,UAAU,EAAE;QAAEc;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOmB,gBAAK,CAACS,kBAAkB,CAAC5B,WAAW,EAAE,iBAAiB,CAAC;IACjE,CAAC;IACD,MAAMnB,IAAIA,CAACC,QAAQ,EAAE;MACnB,OAAOqC,gBAAK,CAACE,WAAW,CAACvC,QAAQ,CAAC;IACpC,CAAC;IACD,MAAME,KAAKA,CAACF,QAAQ,EAAE;MAAEC,UAAU,EAAE;QAAEuC;MAAS;IAAE,CAAC,EAAE;MAClD,MAAMnE,SAAS,CAAC2B,QAAQ,EAAEwC,QAAQ,CAAC;IACrC;EACF,CAAC;AACH,CAAC;AAIM,SAASQ,mBAAmBA,CACjCxE,MAAsB,EACtB;EACEyE,SAAS;EACT,GAAGC;AACuE,CAAC,GAAG,CAAC,CAAC,EAClE;EAChB,OAAO,IAAAC,sCAAqB,EAAiB3E,MAAM,EAAE;IACnD,GAAG0E,KAAK;IACRE,QAAQ,EAAE,SAAS;IACnBH,SAAS,EAAEA,SAAS,aAATA,SAAS,cAATA,SAAS,GAAII,0BAA0B;EACpD,CAAC,CAAC;AACJ;AAEO,SAASA,0BAA0BA,CAAA,EAAG;EAC3C,OAAO1D,gBAAgB;AACzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withDangerousMod.js","names":["_withMod","data","require","withDangerousMod","config","platform","action","withMod","mod","exports"],"sources":["../../src/plugins/withDangerousMod.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"withDangerousMod.js","names":["_withMod","data","require","withDangerousMod","config","platform","action","withMod","mod","exports"],"sources":["../../src/plugins/withDangerousMod.ts"],"sourcesContent":["import { withMod } from './withMod';\nimport { ConfigPlugin, Mod, ModPlatform } from '../Plugin.types';\n\n/**\n * Mods that don't modify any data, all unresolved functionality is performed inside a dangerous mod.\n * All dangerous mods run first before other mods.\n *\n * @param config\n * @param platform\n * @param action\n */\nexport const withDangerousMod: ConfigPlugin<[ModPlatform, Mod<unknown>]> = (\n config,\n [platform, action]\n) => {\n return withMod(config, {\n platform,\n mod: 'dangerous',\n action,\n });\n};\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,gBAA2D,GAAGA,CACzEC,MAAM,EACN,CAACC,QAAQ,EAAEC,MAAM,CAAC,KACf;EACH,OAAO,IAAAC,kBAAO,EAACH,MAAM,EAAE;IACrBC,QAAQ;IACRG,GAAG,EAAE,WAAW;IAChBF;EACF,CAAC,CAAC;AACJ,CAAC;AAACG,OAAA,CAAAN,gBAAA,GAAAA,gBAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { JSONObject, JSONValue } from '@expo/json-file';
|
|
2
2
|
import xcode from 'xcode';
|
|
3
|
+
import { ForwardedBaseModOptions } from './createBaseMod';
|
|
3
4
|
import { ExportedConfig } from '../Plugin.types';
|
|
4
5
|
import { Paths } from '../ios';
|
|
5
6
|
import { InfoPlist } from '../ios/IosConfig.types';
|
|
6
|
-
import { ForwardedBaseModOptions } from './createBaseMod';
|
|
7
7
|
declare const defaultProviders: {
|
|
8
8
|
dangerous: import("./createBaseMod").BaseModProviderMethods<unknown, Partial<Pick<import("./withMod").BaseModOptions, "skipEmptyMod" | "saveToInternal">>>;
|
|
9
9
|
appDelegate: import("./createBaseMod").BaseModProviderMethods<Paths.AppDelegateProjectFile, Partial<Pick<import("./withMod").BaseModOptions, "skipEmptyMod" | "saveToInternal">>>;
|
|
@@ -47,6 +47,13 @@ function _xcode() {
|
|
|
47
47
|
};
|
|
48
48
|
return data;
|
|
49
49
|
}
|
|
50
|
+
function _createBaseMod() {
|
|
51
|
+
const data = require("./createBaseMod");
|
|
52
|
+
_createBaseMod = function () {
|
|
53
|
+
return data;
|
|
54
|
+
};
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
50
57
|
function _ios() {
|
|
51
58
|
const data = require("../ios");
|
|
52
59
|
_ios = function () {
|
|
@@ -96,13 +103,6 @@ function _warnings() {
|
|
|
96
103
|
};
|
|
97
104
|
return data;
|
|
98
105
|
}
|
|
99
|
-
function _createBaseMod() {
|
|
100
|
-
const data = require("./createBaseMod");
|
|
101
|
-
_createBaseMod = function () {
|
|
102
|
-
return data;
|
|
103
|
-
};
|
|
104
|
-
return data;
|
|
105
|
-
}
|
|
106
106
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
107
107
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
108
108
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withIosBaseMods.js","names":["_jsonFile","data","_interopRequireDefault","require","_plist","_assert","_fs","_interopRequireWildcard","_path","_xcode","_ios","_Entitlements","_Xcodeproj","_getInfoPlistPath","_modules","_sortObject","_warnings","_createBaseMod","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","readFile","writeFile","promises","getEntitlementsPlistTemplate","getInfoPlistTemplate","CFBundleDevelopmentRegion","CFBundleExecutable","CFBundleIdentifier","CFBundleName","CFBundlePackageType","CFBundleInfoDictionaryVersion","CFBundleSignature","LSRequiresIPhoneOS","NSAppTransportSecurity","NSAllowsArbitraryLoads","NSExceptionDomains","localhost","NSExceptionAllowsInsecureHTTPLoads","UILaunchStoryboardName","UIRequiredDeviceCapabilities","UIViewControllerBasedStatusBarAppearance","UIStatusBarStyle","CADisableMinimumFrameDurationOnPhone","defaultProviders","dangerous","provider","getFilePath","read","write","appDelegate","modRequest","projectRoot","Paths","getAppDelegateFilePath","filePath","getFileInfo","modResults","contents","expoPlist","isIntrospective","platformProjectRoot","projectName","supportingDirectory","path","join","resolve","introspect","plist","parse","error","build","sortObject","xcodeproj","getPBXProjectPath","project","xcode","parseSync","writeSync","infoPlist","config","getPbxproj","infoPlistBuildProperty","getInfoPlistPathFromPbxproj","infoPlistPath","fileExists","addWarningIOS","getInfoPlistPath","ios","assert","entitlements","_Entitlements$getEnti","ensureApplicationTargetEntitlementsFileConfigured","Entitlements","getEntitlementsPath","ignoreExistingNativeFiles","fs","existsSync","podfileProperties","results","JsonFile","readAsync","writeAsync","withIosBaseMods","providers","props","withGeneratedBaseMods","platform","getIosModFileProviders"],"sources":["../../src/plugins/withIosBaseMods.ts"],"sourcesContent":["import JsonFile, { JSONObject, JSONValue } from '@expo/json-file';\nimport plist from '@expo/plist';\nimport assert from 'assert';\nimport fs, { promises } from 'fs';\nimport path from 'path';\nimport xcode, { XcodeProject } from 'xcode';\n\nimport { ExportedConfig, ModConfig } from '../Plugin.types';\nimport { Entitlements, Paths } from '../ios';\nimport { ensureApplicationTargetEntitlementsFileConfigured } from '../ios/Entitlements';\nimport { InfoPlist } from '../ios/IosConfig.types';\nimport { getPbxproj } from '../ios/utils/Xcodeproj';\nimport { getInfoPlistPathFromPbxproj } from '../ios/utils/getInfoPlistPath';\nimport { fileExists } from '../utils/modules';\nimport { sortObject } from '../utils/sortObject';\nimport { addWarningIOS } from '../utils/warnings';\nimport { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\n\nconst { readFile, writeFile } = promises;\n\ntype IosModName = keyof Required<ModConfig>['ios'];\n\nfunction getEntitlementsPlistTemplate() {\n // TODO: Fetch the versioned template file if possible\n return {};\n}\n\nfunction getInfoPlistTemplate() {\n // TODO: Fetch the versioned template file if possible\n return {\n CFBundleDevelopmentRegion: '$(DEVELOPMENT_LANGUAGE)',\n CFBundleExecutable: '$(EXECUTABLE_NAME)',\n CFBundleIdentifier: '$(PRODUCT_BUNDLE_IDENTIFIER)',\n CFBundleName: '$(PRODUCT_NAME)',\n CFBundlePackageType: '$(PRODUCT_BUNDLE_PACKAGE_TYPE)',\n CFBundleInfoDictionaryVersion: '6.0',\n CFBundleSignature: '????',\n LSRequiresIPhoneOS: true,\n NSAppTransportSecurity: {\n NSAllowsArbitraryLoads: true,\n NSExceptionDomains: {\n localhost: {\n NSExceptionAllowsInsecureHTTPLoads: true,\n },\n },\n },\n UILaunchStoryboardName: 'SplashScreen',\n UIRequiredDeviceCapabilities: ['armv7'],\n UIViewControllerBasedStatusBarAppearance: false,\n UIStatusBarStyle: 'UIStatusBarStyleDefault',\n CADisableMinimumFrameDurationOnPhone: true,\n };\n}\n\nconst defaultProviders = {\n dangerous: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return {};\n },\n async write() {},\n }),\n // Append a rule to supply AppDelegate data to mods on `mods.ios.appDelegate`\n appDelegate: provider<Paths.AppDelegateProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n // TODO: Get application AppDelegate file from pbxproj.\n return Paths.getAppDelegateFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath: string, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n // Append a rule to supply Expo.plist data to mods on `mods.ios.expoPlist`\n expoPlist: provider<JSONObject>({\n isIntrospective: true,\n getFilePath({ modRequest: { platformProjectRoot, projectName } }) {\n const supportingDirectory = path.join(platformProjectRoot, projectName!, 'Supporting');\n return path.resolve(supportingDirectory, 'Expo.plist');\n },\n async read(filePath, { modRequest: { introspect } }) {\n try {\n return plist.parse(await readFile(filePath, 'utf8'));\n } catch (error) {\n if (introspect) {\n return {};\n }\n throw error;\n }\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) {\n return;\n }\n await writeFile(filePath, plist.build(sortObject(modResults)));\n },\n }),\n // Append a rule to supply .xcodeproj data to mods on `mods.ios.xcodeproj`\n xcodeproj: provider<XcodeProject>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getPBXProjectPath(projectRoot);\n },\n async read(filePath) {\n const project = xcode.project(filePath);\n project.parseSync();\n return project;\n },\n async write(filePath, { modResults }) {\n await writeFile(filePath, modResults.writeSync());\n },\n }),\n // Append a rule to supply Info.plist data to mods on `mods.ios.infoPlist`\n infoPlist: provider<InfoPlist, ForwardedBaseModOptions>({\n isIntrospective: true,\n async getFilePath(config) {\n let project: xcode.XcodeProject | null = null;\n try {\n project = getPbxproj(config.modRequest.projectRoot);\n } catch {\n // noop\n }\n\n // Only check / warn if a project actually exists, this'll provide\n // more accurate warning messages for users in managed projects.\n if (project) {\n const infoPlistBuildProperty = getInfoPlistPathFromPbxproj(project);\n\n if (infoPlistBuildProperty) {\n //: [root]/myapp/ios/MyApp/Info.plist\n const infoPlistPath = path.join(\n //: myapp/ios\n config.modRequest.platformProjectRoot,\n //: MyApp/Info.plist\n infoPlistBuildProperty\n );\n if (fileExists(infoPlistPath)) {\n return infoPlistPath;\n }\n addWarningIOS(\n 'mods.ios.infoPlist',\n `Info.plist file linked to Xcode project does not exist: ${infoPlistPath}`\n );\n } else {\n addWarningIOS('mods.ios.infoPlist', 'Failed to find Info.plist linked to Xcode project.');\n }\n }\n try {\n // Fallback on glob...\n return await Paths.getInfoPlistPath(config.modRequest.projectRoot);\n } catch (error: any) {\n if (config.modRequest.introspect) {\n // fallback to an empty string in introspection mode.\n return '';\n }\n throw error;\n }\n },\n async read(filePath, config) {\n // Apply all of the Info.plist values to the expo.ios.infoPlist object\n // TODO: Remove this in favor of just overwriting the Info.plist with the Expo object. This will enable people to actually remove values.\n if (!config.ios) config.ios = {};\n if (!config.ios.infoPlist) config.ios.infoPlist = {};\n\n let modResults: InfoPlist;\n try {\n const contents = await readFile(filePath, 'utf8');\n assert(contents, 'Info.plist is empty');\n modResults = plist.parse(contents) as InfoPlist;\n } catch (error: any) {\n // Throw errors in introspection mode.\n if (!config.modRequest.introspect) {\n throw error;\n }\n // Fallback to using the infoPlist object from the Expo config.\n modResults = getInfoPlistTemplate();\n }\n\n config.ios.infoPlist = {\n ...(modResults || {}),\n ...config.ios.infoPlist,\n };\n\n return config.ios.infoPlist!;\n },\n async write(filePath, config) {\n // Update the contents of the static infoPlist object\n if (!config.ios) {\n config.ios = {};\n }\n config.ios.infoPlist = config.modResults;\n\n // Return early without writing, in introspection mode.\n if (config.modRequest.introspect) {\n return;\n }\n\n await writeFile(filePath, plist.build(sortObject(config.modResults)));\n },\n }),\n // Append a rule to supply .entitlements data to mods on `mods.ios.entitlements`\n entitlements: provider<JSONObject, ForwardedBaseModOptions>({\n isIntrospective: true,\n\n async getFilePath(config) {\n try {\n ensureApplicationTargetEntitlementsFileConfigured(config.modRequest.projectRoot);\n return Entitlements.getEntitlementsPath(config.modRequest.projectRoot) ?? '';\n } catch (error: any) {\n if (config.modRequest.introspect) {\n // fallback to an empty string in introspection mode.\n return '';\n }\n throw error;\n }\n },\n\n async read(filePath, config) {\n let modResults: JSONObject;\n try {\n if (!config.modRequest.ignoreExistingNativeFiles && fs.existsSync(filePath)) {\n const contents = await readFile(filePath, 'utf8');\n assert(contents, 'Entitlements plist is empty');\n modResults = plist.parse(contents);\n } else {\n modResults = getEntitlementsPlistTemplate();\n }\n } catch (error: any) {\n // Throw errors in introspection mode.\n if (!config.modRequest.introspect) {\n throw error;\n }\n // Fallback to using the template file.\n modResults = getEntitlementsPlistTemplate();\n }\n\n // Apply all of the .entitlements values to the expo.ios.entitlements object\n // TODO: Remove this in favor of just overwriting the .entitlements with the Expo object. This will enable people to actually remove values.\n if (!config.ios) config.ios = {};\n if (!config.ios.entitlements) config.ios.entitlements = {};\n\n config.ios.entitlements = {\n ...(modResults || {}),\n ...config.ios.entitlements,\n };\n\n return config.ios.entitlements!;\n },\n\n async write(filePath, config) {\n // Update the contents of the static entitlements object\n if (!config.ios) {\n config.ios = {};\n }\n config.ios.entitlements = config.modResults;\n\n // Return early without writing, in introspection mode.\n if (config.modRequest.introspect) {\n return;\n }\n\n await writeFile(filePath, plist.build(sortObject(config.modResults)));\n },\n }),\n\n // Append a rule to supply Podfile.properties.json data to mods on `mods.ios.podfileProperties`\n podfileProperties: provider<Record<string, JSONValue>>({\n isIntrospective: true,\n\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.resolve(platformProjectRoot, 'Podfile.properties.json');\n },\n async read(filePath) {\n let results: Record<string, JSONValue> = {};\n try {\n results = await JsonFile.readAsync(filePath);\n } catch {}\n return results;\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) {\n return;\n }\n await JsonFile.writeAsync(filePath, modResults);\n },\n }),\n};\n\ntype IosDefaultProviders = typeof defaultProviders;\n\nexport function withIosBaseMods(\n config: ExportedConfig,\n {\n providers,\n ...props\n }: ForwardedBaseModOptions & { providers?: Partial<IosDefaultProviders> } = {}\n): ExportedConfig {\n return withGeneratedBaseMods<IosModName>(config, {\n ...props,\n platform: 'ios',\n providers: providers ?? getIosModFileProviders(),\n });\n}\n\nexport function getIosModFileProviders() {\n return defaultProviders;\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,OAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,IAAA;EAAA,MAAAL,IAAA,GAAAM,uBAAA,CAAAJ,OAAA;EAAAG,GAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,MAAA;EAAA,MAAAP,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAK,KAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,OAAA;EAAA,MAAAR,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAM,MAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAS,KAAA;EAAA,MAAAT,IAAA,GAAAE,OAAA;EAAAO,IAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,cAAA;EAAA,MAAAV,IAAA,GAAAE,OAAA;EAAAQ,aAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAW,WAAA;EAAA,MAAAX,IAAA,GAAAE,OAAA;EAAAS,UAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,kBAAA;EAAA,MAAAZ,IAAA,GAAAE,OAAA;EAAAU,iBAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,SAAA;EAAA,MAAAb,IAAA,GAAAE,OAAA;EAAAW,QAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,YAAA;EAAA,MAAAd,IAAA,GAAAE,OAAA;EAAAY,WAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,UAAA;EAAA,MAAAf,IAAA,GAAAE,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,eAAA;EAAA,MAAAhB,IAAA,GAAAE,OAAA;EAAAc,cAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2F,SAAAiB,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAZ,wBAAAgB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAA3B,uBAAAqB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE3F,MAAM;EAAEiB,QAAQ;EAAEC;AAAU,CAAC,GAAGC,cAAQ;AAIxC,SAASC,4BAA4BA,CAAA,EAAG;EACtC;EACA,OAAO,CAAC,CAAC;AACX;AAEA,SAASC,oBAAoBA,CAAA,EAAG;EAC9B;EACA,OAAO;IACLC,yBAAyB,EAAE,yBAAyB;IACpDC,kBAAkB,EAAE,oBAAoB;IACxCC,kBAAkB,EAAE,8BAA8B;IAClDC,YAAY,EAAE,iBAAiB;IAC/BC,mBAAmB,EAAE,gCAAgC;IACrDC,6BAA6B,EAAE,KAAK;IACpCC,iBAAiB,EAAE,MAAM;IACzBC,kBAAkB,EAAE,IAAI;IACxBC,sBAAsB,EAAE;MACtBC,sBAAsB,EAAE,IAAI;MAC5BC,kBAAkB,EAAE;QAClBC,SAAS,EAAE;UACTC,kCAAkC,EAAE;QACtC;MACF;IACF,CAAC;IACDC,sBAAsB,EAAE,cAAc;IACtCC,4BAA4B,EAAE,CAAC,OAAO,CAAC;IACvCC,wCAAwC,EAAE,KAAK;IAC/CC,gBAAgB,EAAE,yBAAyB;IAC3CC,oCAAoC,EAAE;EACxC,CAAC;AACH;AAEA,MAAMC,gBAAgB,GAAG;EACvBC,SAAS,EAAE,IAAAC,yBAAQ,EAAU;IAC3BC,WAAWA,CAAA,EAAG;MACZ,OAAO,EAAE;IACX,CAAC;IACD,MAAMC,IAAIA,CAAA,EAAG;MACX,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAMC,KAAKA,CAAA,EAAG,CAAC;EACjB,CAAC,CAAC;EACF;EACAC,WAAW,EAAE,IAAAJ,yBAAQ,EAA+B;IAClDC,WAAWA,CAAC;MAAEI,UAAU,EAAE;QAAEC;MAAY;IAAE,CAAC,EAAE;MAC3C;MACA,OAAOC,YAAK,CAACC,sBAAsB,CAACF,WAAW,CAAC;IAClD,CAAC;IACD,MAAMJ,IAAIA,CAACO,QAAQ,EAAE;MACnB,OAAOF,YAAK,CAACG,WAAW,CAACD,QAAQ,CAAC;IACpC,CAAC;IACD,MAAMN,KAAKA,CAACM,QAAgB,EAAE;MAAEE,UAAU,EAAE;QAAEC;MAAS;IAAE,CAAC,EAAE;MAC1D,MAAMpC,SAAS,CAACiC,QAAQ,EAAEG,QAAQ,CAAC;IACrC;EACF,CAAC,CAAC;EACF;EACAC,SAAS,EAAE,IAAAb,yBAAQ,EAAa;IAC9Bc,eAAe,EAAE,IAAI;IACrBb,WAAWA,CAAC;MAAEI,UAAU,EAAE;QAAEU,mBAAmB;QAAEC;MAAY;IAAE,CAAC,EAAE;MAChE,MAAMC,mBAAmB,GAAGC,eAAI,CAACC,IAAI,CAACJ,mBAAmB,EAAEC,WAAW,EAAG,YAAY,CAAC;MACtF,OAAOE,eAAI,CAACE,OAAO,CAACH,mBAAmB,EAAE,YAAY,CAAC;IACxD,CAAC;IACD,MAAMf,IAAIA,CAACO,QAAQ,EAAE;MAAEJ,UAAU,EAAE;QAAEgB;MAAW;IAAE,CAAC,EAAE;MACnD,IAAI;QACF,OAAOC,gBAAK,CAACC,KAAK,CAAC,MAAMhD,QAAQ,CAACkC,QAAQ,EAAE,MAAM,CAAC,CAAC;MACtD,CAAC,CAAC,OAAOe,KAAK,EAAE;QACd,IAAIH,UAAU,EAAE;UACd,OAAO,CAAC,CAAC;QACX;QACA,MAAMG,KAAK;MACb;IACF,CAAC;IACD,MAAMrB,KAAKA,CAACM,QAAQ,EAAE;MAAEE,UAAU;MAAEN,UAAU,EAAE;QAAEgB;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;QACd;MACF;MACA,MAAM7C,SAAS,CAACiC,QAAQ,EAAEa,gBAAK,CAACG,KAAK,CAAC,IAAAC,wBAAU,EAACf,UAAU,CAAC,CAAC,CAAC;IAChE;EACF,CAAC,CAAC;EACF;EACAgB,SAAS,EAAE,IAAA3B,yBAAQ,EAAe;IAChCC,WAAWA,CAAC;MAAEI,UAAU,EAAE;QAAEC;MAAY;IAAE,CAAC,EAAE;MAC3C,OAAOC,YAAK,CAACqB,iBAAiB,CAACtB,WAAW,CAAC;IAC7C,CAAC;IACD,MAAMJ,IAAIA,CAACO,QAAQ,EAAE;MACnB,MAAMoB,OAAO,GAAGC,gBAAK,CAACD,OAAO,CAACpB,QAAQ,CAAC;MACvCoB,OAAO,CAACE,SAAS,EAAE;MACnB,OAAOF,OAAO;IAChB,CAAC;IACD,MAAM1B,KAAKA,CAACM,QAAQ,EAAE;MAAEE;IAAW,CAAC,EAAE;MACpC,MAAMnC,SAAS,CAACiC,QAAQ,EAAEE,UAAU,CAACqB,SAAS,EAAE,CAAC;IACnD;EACF,CAAC,CAAC;EACF;EACAC,SAAS,EAAE,IAAAjC,yBAAQ,EAAqC;IACtDc,eAAe,EAAE,IAAI;IACrB,MAAMb,WAAWA,CAACiC,MAAM,EAAE;MACxB,IAAIL,OAAkC,GAAG,IAAI;MAC7C,IAAI;QACFA,OAAO,GAAG,IAAAM,uBAAU,EAACD,MAAM,CAAC7B,UAAU,CAACC,WAAW,CAAC;MACrD,CAAC,CAAC,MAAM;QACN;MAAA;;MAGF;MACA;MACA,IAAIuB,OAAO,EAAE;QACX,MAAMO,sBAAsB,GAAG,IAAAC,+CAA2B,EAACR,OAAO,CAAC;QAEnE,IAAIO,sBAAsB,EAAE;UAC1B;UACA,MAAME,aAAa,GAAGpB,eAAI,CAACC,IAAI;UAC7B;UACAe,MAAM,CAAC7B,UAAU,CAACU,mBAAmB;UACrC;UACAqB,sBAAsB,CACvB;UACD,IAAI,IAAAG,qBAAU,EAACD,aAAa,CAAC,EAAE;YAC7B,OAAOA,aAAa;UACtB;UACA,IAAAE,yBAAa,EACX,oBAAoB,EACnB,2DAA0DF,aAAc,EAAC,CAC3E;QACH,CAAC,MAAM;UACL,IAAAE,yBAAa,EAAC,oBAAoB,EAAE,oDAAoD,CAAC;QAC3F;MACF;MACA,IAAI;QACF;QACA,OAAO,MAAMjC,YAAK,CAACkC,gBAAgB,CAACP,MAAM,CAAC7B,UAAU,CAACC,WAAW,CAAC;MACpE,CAAC,CAAC,OAAOkB,KAAU,EAAE;QACnB,IAAIU,MAAM,CAAC7B,UAAU,CAACgB,UAAU,EAAE;UAChC;UACA,OAAO,EAAE;QACX;QACA,MAAMG,KAAK;MACb;IACF,CAAC;IACD,MAAMtB,IAAIA,CAACO,QAAQ,EAAEyB,MAAM,EAAE;MAC3B;MACA;MACA,IAAI,CAACA,MAAM,CAACQ,GAAG,EAAER,MAAM,CAACQ,GAAG,GAAG,CAAC,CAAC;MAChC,IAAI,CAACR,MAAM,CAACQ,GAAG,CAACT,SAAS,EAAEC,MAAM,CAACQ,GAAG,CAACT,SAAS,GAAG,CAAC,CAAC;MAEpD,IAAItB,UAAqB;MACzB,IAAI;QACF,MAAMC,QAAQ,GAAG,MAAMrC,QAAQ,CAACkC,QAAQ,EAAE,MAAM,CAAC;QACjD,IAAAkC,iBAAM,EAAC/B,QAAQ,EAAE,qBAAqB,CAAC;QACvCD,UAAU,GAAGW,gBAAK,CAACC,KAAK,CAACX,QAAQ,CAAc;MACjD,CAAC,CAAC,OAAOY,KAAU,EAAE;QACnB;QACA,IAAI,CAACU,MAAM,CAAC7B,UAAU,CAACgB,UAAU,EAAE;UACjC,MAAMG,KAAK;QACb;QACA;QACAb,UAAU,GAAGhC,oBAAoB,EAAE;MACrC;MAEAuD,MAAM,CAACQ,GAAG,CAACT,SAAS,GAAG;QACrB,IAAItB,UAAU,IAAI,CAAC,CAAC,CAAC;QACrB,GAAGuB,MAAM,CAACQ,GAAG,CAACT;MAChB,CAAC;MAED,OAAOC,MAAM,CAACQ,GAAG,CAACT,SAAS;IAC7B,CAAC;IACD,MAAM9B,KAAKA,CAACM,QAAQ,EAAEyB,MAAM,EAAE;MAC5B;MACA,IAAI,CAACA,MAAM,CAACQ,GAAG,EAAE;QACfR,MAAM,CAACQ,GAAG,GAAG,CAAC,CAAC;MACjB;MACAR,MAAM,CAACQ,GAAG,CAACT,SAAS,GAAGC,MAAM,CAACvB,UAAU;;MAExC;MACA,IAAIuB,MAAM,CAAC7B,UAAU,CAACgB,UAAU,EAAE;QAChC;MACF;MAEA,MAAM7C,SAAS,CAACiC,QAAQ,EAAEa,gBAAK,CAACG,KAAK,CAAC,IAAAC,wBAAU,EAACQ,MAAM,CAACvB,UAAU,CAAC,CAAC,CAAC;IACvE;EACF,CAAC,CAAC;EACF;EACAiC,YAAY,EAAE,IAAA5C,yBAAQ,EAAsC;IAC1Dc,eAAe,EAAE,IAAI;IAErB,MAAMb,WAAWA,CAACiC,MAAM,EAAE;MACxB,IAAI;QAAA,IAAAW,qBAAA;QACF,IAAAC,iEAAiD,EAACZ,MAAM,CAAC7B,UAAU,CAACC,WAAW,CAAC;QAChF,QAAAuC,qBAAA,GAAOE,mBAAY,CAACC,mBAAmB,CAACd,MAAM,CAAC7B,UAAU,CAACC,WAAW,CAAC,cAAAuC,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MAC9E,CAAC,CAAC,OAAOrB,KAAU,EAAE;QACnB,IAAIU,MAAM,CAAC7B,UAAU,CAACgB,UAAU,EAAE;UAChC;UACA,OAAO,EAAE;QACX;QACA,MAAMG,KAAK;MACb;IACF,CAAC;IAED,MAAMtB,IAAIA,CAACO,QAAQ,EAAEyB,MAAM,EAAE;MAC3B,IAAIvB,UAAsB;MAC1B,IAAI;QACF,IAAI,CAACuB,MAAM,CAAC7B,UAAU,CAAC4C,yBAAyB,IAAIC,aAAE,CAACC,UAAU,CAAC1C,QAAQ,CAAC,EAAE;UAC3E,MAAMG,QAAQ,GAAG,MAAMrC,QAAQ,CAACkC,QAAQ,EAAE,MAAM,CAAC;UACjD,IAAAkC,iBAAM,EAAC/B,QAAQ,EAAE,6BAA6B,CAAC;UAC/CD,UAAU,GAAGW,gBAAK,CAACC,KAAK,CAACX,QAAQ,CAAC;QACpC,CAAC,MAAM;UACLD,UAAU,GAAGjC,4BAA4B,EAAE;QAC7C;MACF,CAAC,CAAC,OAAO8C,KAAU,EAAE;QACnB;QACA,IAAI,CAACU,MAAM,CAAC7B,UAAU,CAACgB,UAAU,EAAE;UACjC,MAAMG,KAAK;QACb;QACA;QACAb,UAAU,GAAGjC,4BAA4B,EAAE;MAC7C;;MAEA;MACA;MACA,IAAI,CAACwD,MAAM,CAACQ,GAAG,EAAER,MAAM,CAACQ,GAAG,GAAG,CAAC,CAAC;MAChC,IAAI,CAACR,MAAM,CAACQ,GAAG,CAACE,YAAY,EAAEV,MAAM,CAACQ,GAAG,CAACE,YAAY,GAAG,CAAC,CAAC;MAE1DV,MAAM,CAACQ,GAAG,CAACE,YAAY,GAAG;QACxB,IAAIjC,UAAU,IAAI,CAAC,CAAC,CAAC;QACrB,GAAGuB,MAAM,CAACQ,GAAG,CAACE;MAChB,CAAC;MAED,OAAOV,MAAM,CAACQ,GAAG,CAACE,YAAY;IAChC,CAAC;IAED,MAAMzC,KAAKA,CAACM,QAAQ,EAAEyB,MAAM,EAAE;MAC5B;MACA,IAAI,CAACA,MAAM,CAACQ,GAAG,EAAE;QACfR,MAAM,CAACQ,GAAG,GAAG,CAAC,CAAC;MACjB;MACAR,MAAM,CAACQ,GAAG,CAACE,YAAY,GAAGV,MAAM,CAACvB,UAAU;;MAE3C;MACA,IAAIuB,MAAM,CAAC7B,UAAU,CAACgB,UAAU,EAAE;QAChC;MACF;MAEA,MAAM7C,SAAS,CAACiC,QAAQ,EAAEa,gBAAK,CAACG,KAAK,CAAC,IAAAC,wBAAU,EAACQ,MAAM,CAACvB,UAAU,CAAC,CAAC,CAAC;IACvE;EACF,CAAC,CAAC;EAEF;EACAyC,iBAAiB,EAAE,IAAApD,yBAAQ,EAA4B;IACrDc,eAAe,EAAE,IAAI;IAErBb,WAAWA,CAAC;MAAEI,UAAU,EAAE;QAAEU;MAAoB;IAAE,CAAC,EAAE;MACnD,OAAOG,eAAI,CAACE,OAAO,CAACL,mBAAmB,EAAE,yBAAyB,CAAC;IACrE,CAAC;IACD,MAAMb,IAAIA,CAACO,QAAQ,EAAE;MACnB,IAAI4C,OAAkC,GAAG,CAAC,CAAC;MAC3C,IAAI;QACFA,OAAO,GAAG,MAAMC,mBAAQ,CAACC,SAAS,CAAC9C,QAAQ,CAAC;MAC9C,CAAC,CAAC,MAAM,CAAC;MACT,OAAO4C,OAAO;IAChB,CAAC;IACD,MAAMlD,KAAKA,CAACM,QAAQ,EAAE;MAAEE,UAAU;MAAEN,UAAU,EAAE;QAAEgB;MAAW;IAAE,CAAC,EAAE;MAChE,IAAIA,UAAU,EAAE;QACd;MACF;MACA,MAAMiC,mBAAQ,CAACE,UAAU,CAAC/C,QAAQ,EAAEE,UAAU,CAAC;IACjD;EACF,CAAC;AACH,CAAC;AAIM,SAAS8C,eAAeA,CAC7BvB,MAAsB,EACtB;EACEwB,SAAS;EACT,GAAGC;AACmE,CAAC,GAAG,CAAC,CAAC,EAC9D;EAChB,OAAO,IAAAC,sCAAqB,EAAa1B,MAAM,EAAE;IAC/C,GAAGyB,KAAK;IACRE,QAAQ,EAAE,KAAK;IACfH,SAAS,EAAEA,SAAS,aAATA,SAAS,cAATA,SAAS,GAAII,sBAAsB;EAChD,CAAC,CAAC;AACJ;AAEO,SAASA,sBAAsBA,CAAA,EAAG;EACvC,OAAOhE,gBAAgB;AACzB"}
|
|
1
|
+
{"version":3,"file":"withIosBaseMods.js","names":["_jsonFile","data","_interopRequireDefault","require","_plist","_assert","_fs","_interopRequireWildcard","_path","_xcode","_createBaseMod","_ios","_Entitlements","_Xcodeproj","_getInfoPlistPath","_modules","_sortObject","_warnings","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","readFile","writeFile","promises","getEntitlementsPlistTemplate","getInfoPlistTemplate","CFBundleDevelopmentRegion","CFBundleExecutable","CFBundleIdentifier","CFBundleName","CFBundlePackageType","CFBundleInfoDictionaryVersion","CFBundleSignature","LSRequiresIPhoneOS","NSAppTransportSecurity","NSAllowsArbitraryLoads","NSExceptionDomains","localhost","NSExceptionAllowsInsecureHTTPLoads","UILaunchStoryboardName","UIRequiredDeviceCapabilities","UIViewControllerBasedStatusBarAppearance","UIStatusBarStyle","CADisableMinimumFrameDurationOnPhone","defaultProviders","dangerous","provider","getFilePath","read","write","appDelegate","modRequest","projectRoot","Paths","getAppDelegateFilePath","filePath","getFileInfo","modResults","contents","expoPlist","isIntrospective","platformProjectRoot","projectName","supportingDirectory","path","join","resolve","introspect","plist","parse","error","build","sortObject","xcodeproj","getPBXProjectPath","project","xcode","parseSync","writeSync","infoPlist","config","getPbxproj","infoPlistBuildProperty","getInfoPlistPathFromPbxproj","infoPlistPath","fileExists","addWarningIOS","getInfoPlistPath","ios","assert","entitlements","_Entitlements$getEnti","ensureApplicationTargetEntitlementsFileConfigured","Entitlements","getEntitlementsPath","ignoreExistingNativeFiles","fs","existsSync","podfileProperties","results","JsonFile","readAsync","writeAsync","withIosBaseMods","providers","props","withGeneratedBaseMods","platform","getIosModFileProviders"],"sources":["../../src/plugins/withIosBaseMods.ts"],"sourcesContent":["import JsonFile, { JSONObject, JSONValue } from '@expo/json-file';\nimport plist from '@expo/plist';\nimport assert from 'assert';\nimport fs, { promises } from 'fs';\nimport path from 'path';\nimport xcode, { XcodeProject } from 'xcode';\n\nimport { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\nimport { ExportedConfig, ModConfig } from '../Plugin.types';\nimport { Entitlements, Paths } from '../ios';\nimport { ensureApplicationTargetEntitlementsFileConfigured } from '../ios/Entitlements';\nimport { InfoPlist } from '../ios/IosConfig.types';\nimport { getPbxproj } from '../ios/utils/Xcodeproj';\nimport { getInfoPlistPathFromPbxproj } from '../ios/utils/getInfoPlistPath';\nimport { fileExists } from '../utils/modules';\nimport { sortObject } from '../utils/sortObject';\nimport { addWarningIOS } from '../utils/warnings';\n\nconst { readFile, writeFile } = promises;\n\ntype IosModName = keyof Required<ModConfig>['ios'];\n\nfunction getEntitlementsPlistTemplate() {\n // TODO: Fetch the versioned template file if possible\n return {};\n}\n\nfunction getInfoPlistTemplate() {\n // TODO: Fetch the versioned template file if possible\n return {\n CFBundleDevelopmentRegion: '$(DEVELOPMENT_LANGUAGE)',\n CFBundleExecutable: '$(EXECUTABLE_NAME)',\n CFBundleIdentifier: '$(PRODUCT_BUNDLE_IDENTIFIER)',\n CFBundleName: '$(PRODUCT_NAME)',\n CFBundlePackageType: '$(PRODUCT_BUNDLE_PACKAGE_TYPE)',\n CFBundleInfoDictionaryVersion: '6.0',\n CFBundleSignature: '????',\n LSRequiresIPhoneOS: true,\n NSAppTransportSecurity: {\n NSAllowsArbitraryLoads: true,\n NSExceptionDomains: {\n localhost: {\n NSExceptionAllowsInsecureHTTPLoads: true,\n },\n },\n },\n UILaunchStoryboardName: 'SplashScreen',\n UIRequiredDeviceCapabilities: ['armv7'],\n UIViewControllerBasedStatusBarAppearance: false,\n UIStatusBarStyle: 'UIStatusBarStyleDefault',\n CADisableMinimumFrameDurationOnPhone: true,\n };\n}\n\nconst defaultProviders = {\n dangerous: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return {};\n },\n async write() {},\n }),\n // Append a rule to supply AppDelegate data to mods on `mods.ios.appDelegate`\n appDelegate: provider<Paths.AppDelegateProjectFile>({\n getFilePath({ modRequest: { projectRoot } }) {\n // TODO: Get application AppDelegate file from pbxproj.\n return Paths.getAppDelegateFilePath(projectRoot);\n },\n async read(filePath) {\n return Paths.getFileInfo(filePath);\n },\n async write(filePath: string, { modResults: { contents } }) {\n await writeFile(filePath, contents);\n },\n }),\n // Append a rule to supply Expo.plist data to mods on `mods.ios.expoPlist`\n expoPlist: provider<JSONObject>({\n isIntrospective: true,\n getFilePath({ modRequest: { platformProjectRoot, projectName } }) {\n const supportingDirectory = path.join(platformProjectRoot, projectName!, 'Supporting');\n return path.resolve(supportingDirectory, 'Expo.plist');\n },\n async read(filePath, { modRequest: { introspect } }) {\n try {\n return plist.parse(await readFile(filePath, 'utf8'));\n } catch (error) {\n if (introspect) {\n return {};\n }\n throw error;\n }\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) {\n return;\n }\n await writeFile(filePath, plist.build(sortObject(modResults)));\n },\n }),\n // Append a rule to supply .xcodeproj data to mods on `mods.ios.xcodeproj`\n xcodeproj: provider<XcodeProject>({\n getFilePath({ modRequest: { projectRoot } }) {\n return Paths.getPBXProjectPath(projectRoot);\n },\n async read(filePath) {\n const project = xcode.project(filePath);\n project.parseSync();\n return project;\n },\n async write(filePath, { modResults }) {\n await writeFile(filePath, modResults.writeSync());\n },\n }),\n // Append a rule to supply Info.plist data to mods on `mods.ios.infoPlist`\n infoPlist: provider<InfoPlist, ForwardedBaseModOptions>({\n isIntrospective: true,\n async getFilePath(config) {\n let project: xcode.XcodeProject | null = null;\n try {\n project = getPbxproj(config.modRequest.projectRoot);\n } catch {\n // noop\n }\n\n // Only check / warn if a project actually exists, this'll provide\n // more accurate warning messages for users in managed projects.\n if (project) {\n const infoPlistBuildProperty = getInfoPlistPathFromPbxproj(project);\n\n if (infoPlistBuildProperty) {\n //: [root]/myapp/ios/MyApp/Info.plist\n const infoPlistPath = path.join(\n //: myapp/ios\n config.modRequest.platformProjectRoot,\n //: MyApp/Info.plist\n infoPlistBuildProperty\n );\n if (fileExists(infoPlistPath)) {\n return infoPlistPath;\n }\n addWarningIOS(\n 'mods.ios.infoPlist',\n `Info.plist file linked to Xcode project does not exist: ${infoPlistPath}`\n );\n } else {\n addWarningIOS('mods.ios.infoPlist', 'Failed to find Info.plist linked to Xcode project.');\n }\n }\n try {\n // Fallback on glob...\n return await Paths.getInfoPlistPath(config.modRequest.projectRoot);\n } catch (error: any) {\n if (config.modRequest.introspect) {\n // fallback to an empty string in introspection mode.\n return '';\n }\n throw error;\n }\n },\n async read(filePath, config) {\n // Apply all of the Info.plist values to the expo.ios.infoPlist object\n // TODO: Remove this in favor of just overwriting the Info.plist with the Expo object. This will enable people to actually remove values.\n if (!config.ios) config.ios = {};\n if (!config.ios.infoPlist) config.ios.infoPlist = {};\n\n let modResults: InfoPlist;\n try {\n const contents = await readFile(filePath, 'utf8');\n assert(contents, 'Info.plist is empty');\n modResults = plist.parse(contents) as InfoPlist;\n } catch (error: any) {\n // Throw errors in introspection mode.\n if (!config.modRequest.introspect) {\n throw error;\n }\n // Fallback to using the infoPlist object from the Expo config.\n modResults = getInfoPlistTemplate();\n }\n\n config.ios.infoPlist = {\n ...(modResults || {}),\n ...config.ios.infoPlist,\n };\n\n return config.ios.infoPlist!;\n },\n async write(filePath, config) {\n // Update the contents of the static infoPlist object\n if (!config.ios) {\n config.ios = {};\n }\n config.ios.infoPlist = config.modResults;\n\n // Return early without writing, in introspection mode.\n if (config.modRequest.introspect) {\n return;\n }\n\n await writeFile(filePath, plist.build(sortObject(config.modResults)));\n },\n }),\n // Append a rule to supply .entitlements data to mods on `mods.ios.entitlements`\n entitlements: provider<JSONObject, ForwardedBaseModOptions>({\n isIntrospective: true,\n\n async getFilePath(config) {\n try {\n ensureApplicationTargetEntitlementsFileConfigured(config.modRequest.projectRoot);\n return Entitlements.getEntitlementsPath(config.modRequest.projectRoot) ?? '';\n } catch (error: any) {\n if (config.modRequest.introspect) {\n // fallback to an empty string in introspection mode.\n return '';\n }\n throw error;\n }\n },\n\n async read(filePath, config) {\n let modResults: JSONObject;\n try {\n if (!config.modRequest.ignoreExistingNativeFiles && fs.existsSync(filePath)) {\n const contents = await readFile(filePath, 'utf8');\n assert(contents, 'Entitlements plist is empty');\n modResults = plist.parse(contents);\n } else {\n modResults = getEntitlementsPlistTemplate();\n }\n } catch (error: any) {\n // Throw errors in introspection mode.\n if (!config.modRequest.introspect) {\n throw error;\n }\n // Fallback to using the template file.\n modResults = getEntitlementsPlistTemplate();\n }\n\n // Apply all of the .entitlements values to the expo.ios.entitlements object\n // TODO: Remove this in favor of just overwriting the .entitlements with the Expo object. This will enable people to actually remove values.\n if (!config.ios) config.ios = {};\n if (!config.ios.entitlements) config.ios.entitlements = {};\n\n config.ios.entitlements = {\n ...(modResults || {}),\n ...config.ios.entitlements,\n };\n\n return config.ios.entitlements!;\n },\n\n async write(filePath, config) {\n // Update the contents of the static entitlements object\n if (!config.ios) {\n config.ios = {};\n }\n config.ios.entitlements = config.modResults;\n\n // Return early without writing, in introspection mode.\n if (config.modRequest.introspect) {\n return;\n }\n\n await writeFile(filePath, plist.build(sortObject(config.modResults)));\n },\n }),\n\n // Append a rule to supply Podfile.properties.json data to mods on `mods.ios.podfileProperties`\n podfileProperties: provider<Record<string, JSONValue>>({\n isIntrospective: true,\n\n getFilePath({ modRequest: { platformProjectRoot } }) {\n return path.resolve(platformProjectRoot, 'Podfile.properties.json');\n },\n async read(filePath) {\n let results: Record<string, JSONValue> = {};\n try {\n results = await JsonFile.readAsync(filePath);\n } catch {}\n return results;\n },\n async write(filePath, { modResults, modRequest: { introspect } }) {\n if (introspect) {\n return;\n }\n await JsonFile.writeAsync(filePath, modResults);\n },\n }),\n};\n\ntype IosDefaultProviders = typeof defaultProviders;\n\nexport function withIosBaseMods(\n config: ExportedConfig,\n {\n providers,\n ...props\n }: ForwardedBaseModOptions & { providers?: Partial<IosDefaultProviders> } = {}\n): ExportedConfig {\n return withGeneratedBaseMods<IosModName>(config, {\n ...props,\n platform: 'ios',\n providers: providers ?? getIosModFileProviders(),\n });\n}\n\nexport function getIosModFileProviders() {\n return defaultProviders;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withPlugins.js","names":["_assert","data","_interopRequireDefault","require","_withStaticPlugin","obj","__esModule","default","withPlugins","config","plugins","assert","Array","isArray","reduce","prev","plugin","withStaticPlugin","exports"],"sources":["../../src/plugins/withPlugins.ts"],"sourcesContent":["import assert from 'assert';\n\nimport {
|
|
1
|
+
{"version":3,"file":"withPlugins.js","names":["_assert","data","_interopRequireDefault","require","_withStaticPlugin","obj","__esModule","default","withPlugins","config","plugins","assert","Array","isArray","reduce","prev","plugin","withStaticPlugin","exports"],"sources":["../../src/plugins/withPlugins.ts"],"sourcesContent":["import assert from 'assert';\n\nimport { withStaticPlugin } from './withStaticPlugin';\nimport { ConfigPlugin, StaticPlugin } from '../Plugin.types';\n\n/**\n * Resolves a list of plugins.\n *\n * @param config exported config\n * @param plugins list of config config plugins to apply to the exported config\n */\nexport const withPlugins: ConfigPlugin<(StaticPlugin | ConfigPlugin | string)[]> = (\n config,\n plugins\n) => {\n assert(\n Array.isArray(plugins),\n 'withPlugins expected a valid array of plugins or plugin module paths'\n );\n return plugins.reduce((prev, plugin) => withStaticPlugin(prev, { plugin }), config);\n};\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,kBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,iBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsD,SAAAC,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGtD;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,WAAmE,GAAGA,CACjFC,MAAM,EACNC,OAAO,KACJ;EACH,IAAAC,iBAAM,EACJC,KAAK,CAACC,OAAO,CAACH,OAAO,CAAC,EACtB,sEAAsE,CACvE;EACD,OAAOA,OAAO,CAACI,MAAM,CAAC,CAACC,IAAI,EAAEC,MAAM,KAAK,IAAAC,oCAAgB,EAACF,IAAI,EAAE;IAAEC;EAAO,CAAC,CAAC,EAAEP,MAAM,CAAC;AACrF,CAAC;AAACS,OAAA,CAAAV,WAAA,GAAAA,WAAA"}
|
package/build/utils/Updates.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Android, ExpoConfig, IOS } from '@expo/config-types';
|
|
2
2
|
export type ExpoConfigUpdates = Pick<ExpoConfig, 'sdkVersion' | 'owner' | 'runtimeVersion' | 'updates' | 'slug'>;
|
|
3
3
|
export declare function getExpoUpdatesPackageVersion(projectRoot: string): string | null;
|
|
4
|
-
export declare function getUpdateUrl(config: Pick<ExpoConfigUpdates, '
|
|
4
|
+
export declare function getUpdateUrl(config: Pick<ExpoConfigUpdates, 'updates'>): string | null;
|
|
5
5
|
export declare function getAppVersion(config: Pick<ExpoConfig, 'version'>): string;
|
|
6
6
|
export declare function getNativeVersion(config: Pick<ExpoConfig, 'version'> & {
|
|
7
7
|
android?: Pick<Android, 'versionCode'>;
|
|
@@ -18,7 +18,7 @@ export declare function getRuntimeVersion(config: Pick<ExpoConfig, 'version' | '
|
|
|
18
18
|
ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;
|
|
19
19
|
}, platform: 'android' | 'ios'): string | null;
|
|
20
20
|
export declare function getSDKVersion(config: Pick<ExpoConfigUpdates, 'sdkVersion'>): string | null;
|
|
21
|
-
export declare function getUpdatesEnabled(config: Pick<ExpoConfigUpdates, '
|
|
21
|
+
export declare function getUpdatesEnabled(config: Pick<ExpoConfigUpdates, 'updates'>): boolean;
|
|
22
22
|
export declare function getUpdatesTimeout(config: Pick<ExpoConfigUpdates, 'updates'>): number;
|
|
23
23
|
export declare function getUpdatesCheckOnLaunch(config: Pick<ExpoConfigUpdates, 'updates'>, expoUpdatesPackageVersion?: string | null): 'NEVER' | 'ERROR_RECOVERY_ONLY' | 'ALWAYS' | 'WIFI_ONLY';
|
|
24
24
|
export declare function getUpdatesCodeSigningCertificate(projectRoot: string, config: Pick<ExpoConfigUpdates, 'updates'>): string | undefined;
|
package/build/utils/Updates.js
CHANGED
|
@@ -77,24 +77,9 @@ function getExpoUpdatesPackageVersion(projectRoot) {
|
|
|
77
77
|
const packageJson = JSON.parse(_fs().default.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));
|
|
78
78
|
return packageJson.version;
|
|
79
79
|
}
|
|
80
|
-
function
|
|
81
|
-
var _config$updates;
|
|
82
|
-
return
|
|
83
|
-
}
|
|
84
|
-
function getUpdateUrl(config, username) {
|
|
85
|
-
var _config$updates2;
|
|
86
|
-
if ((_config$updates2 = config.updates) !== null && _config$updates2 !== void 0 && _config$updates2.url) {
|
|
87
|
-
var _config$updates3;
|
|
88
|
-
return (_config$updates3 = config.updates) === null || _config$updates3 === void 0 ? void 0 : _config$updates3.url;
|
|
89
|
-
}
|
|
90
|
-
if (!shouldDefaultToClassicUpdates(config)) {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
const user = typeof config.owner === 'string' ? config.owner : username;
|
|
94
|
-
if (!user) {
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
return `https://exp.host/@${user}/${config.slug}`;
|
|
80
|
+
function getUpdateUrl(config) {
|
|
81
|
+
var _config$updates$url, _config$updates;
|
|
82
|
+
return (_config$updates$url = (_config$updates = config.updates) === null || _config$updates === void 0 ? void 0 : _config$updates.url) !== null && _config$updates$url !== void 0 ? _config$updates$url : null;
|
|
98
83
|
}
|
|
99
84
|
function getAppVersion(config) {
|
|
100
85
|
var _config$version;
|
|
@@ -181,40 +166,38 @@ function getRuntimeVersion(config, platform) {
|
|
|
181
166
|
function getSDKVersion(config) {
|
|
182
167
|
return typeof config.sdkVersion === 'string' ? config.sdkVersion : null;
|
|
183
168
|
}
|
|
184
|
-
function getUpdatesEnabled(config
|
|
185
|
-
var _config$
|
|
169
|
+
function getUpdatesEnabled(config) {
|
|
170
|
+
var _config$updates2;
|
|
186
171
|
// allow override of enabled property
|
|
187
|
-
if (((_config$
|
|
172
|
+
if (((_config$updates2 = config.updates) === null || _config$updates2 === void 0 ? void 0 : _config$updates2.enabled) !== undefined) {
|
|
188
173
|
return config.updates.enabled;
|
|
189
174
|
}
|
|
190
|
-
|
|
191
|
-
// enable if URL is set (which respects shouldDefaultToClassicUpdates)
|
|
192
|
-
return getUpdateUrl(config, username) !== null;
|
|
175
|
+
return getUpdateUrl(config) !== null;
|
|
193
176
|
}
|
|
194
177
|
function getUpdatesTimeout(config) {
|
|
195
|
-
var _config$updates$fallb, _config$
|
|
196
|
-
return (_config$updates$fallb = (_config$
|
|
178
|
+
var _config$updates$fallb, _config$updates3;
|
|
179
|
+
return (_config$updates$fallb = (_config$updates3 = config.updates) === null || _config$updates3 === void 0 ? void 0 : _config$updates3.fallbackToCacheTimeout) !== null && _config$updates$fallb !== void 0 ? _config$updates$fallb : 0;
|
|
197
180
|
}
|
|
198
181
|
function getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion) {
|
|
199
|
-
var _config$
|
|
200
|
-
if (((_config$
|
|
182
|
+
var _config$updates4, _config$updates5, _config$updates6, _config$updates7;
|
|
183
|
+
if (((_config$updates4 = config.updates) === null || _config$updates4 === void 0 ? void 0 : _config$updates4.checkAutomatically) === 'ON_ERROR_RECOVERY') {
|
|
201
184
|
// native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x
|
|
202
185
|
if (expoUpdatesPackageVersion && _semver().default.gte(expoUpdatesPackageVersion, '0.11.0')) {
|
|
203
186
|
return 'ERROR_RECOVERY_ONLY';
|
|
204
187
|
}
|
|
205
188
|
return 'NEVER';
|
|
206
|
-
} else if (((_config$
|
|
189
|
+
} else if (((_config$updates5 = config.updates) === null || _config$updates5 === void 0 ? void 0 : _config$updates5.checkAutomatically) === 'ON_LOAD') {
|
|
207
190
|
return 'ALWAYS';
|
|
208
|
-
} else if (((_config$
|
|
191
|
+
} else if (((_config$updates6 = config.updates) === null || _config$updates6 === void 0 ? void 0 : _config$updates6.checkAutomatically) === 'WIFI_ONLY') {
|
|
209
192
|
return 'WIFI_ONLY';
|
|
210
|
-
} else if (((_config$
|
|
193
|
+
} else if (((_config$updates7 = config.updates) === null || _config$updates7 === void 0 ? void 0 : _config$updates7.checkAutomatically) === 'NEVER') {
|
|
211
194
|
return 'NEVER';
|
|
212
195
|
}
|
|
213
196
|
return 'ALWAYS';
|
|
214
197
|
}
|
|
215
198
|
function getUpdatesCodeSigningCertificate(projectRoot, config) {
|
|
216
|
-
var _config$
|
|
217
|
-
const codeSigningCertificatePath = (_config$
|
|
199
|
+
var _config$updates8;
|
|
200
|
+
const codeSigningCertificatePath = (_config$updates8 = config.updates) === null || _config$updates8 === void 0 ? void 0 : _config$updates8.codeSigningCertificate;
|
|
218
201
|
if (!codeSigningCertificatePath) {
|
|
219
202
|
return undefined;
|
|
220
203
|
}
|
|
@@ -225,8 +208,8 @@ function getUpdatesCodeSigningCertificate(projectRoot, config) {
|
|
|
225
208
|
return _fs().default.readFileSync(finalPath, 'utf8');
|
|
226
209
|
}
|
|
227
210
|
function getUpdatesCodeSigningMetadata(config) {
|
|
228
|
-
var _config$
|
|
229
|
-
return (_config$
|
|
211
|
+
var _config$updates9;
|
|
212
|
+
return (_config$updates9 = config.updates) === null || _config$updates9 === void 0 ? void 0 : _config$updates9.codeSigningMetadata;
|
|
230
213
|
}
|
|
231
214
|
function getUpdatesCodeSigningMetadataStringified(config) {
|
|
232
215
|
const metadata = getUpdatesCodeSigningMetadata(config);
|
|
@@ -236,8 +219,8 @@ function getUpdatesCodeSigningMetadataStringified(config) {
|
|
|
236
219
|
return JSON.stringify(metadata);
|
|
237
220
|
}
|
|
238
221
|
function getUpdatesRequestHeaders(config) {
|
|
239
|
-
var _config$
|
|
240
|
-
return (_config$
|
|
222
|
+
var _config$updates10;
|
|
223
|
+
return (_config$updates10 = config.updates) === null || _config$updates10 === void 0 ? void 0 : _config$updates10.requestHeaders;
|
|
241
224
|
}
|
|
242
225
|
function getUpdatesRequestHeadersStringified(config) {
|
|
243
226
|
const metadata = getUpdatesRequestHeaders(config);
|