@expo/config-plugins 4.0.7 → 4.0.11
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/build/Plugin.types.js +6 -6
- package/build/android/AllowBackup.js +1 -1
- package/build/android/Colors.js +3 -3
- package/build/android/EasBuild.js +1 -1
- package/build/android/GoogleServices.js +3 -3
- package/build/android/IntentFilters.d.ts +3 -3
- package/build/android/IntentFilters.js +45 -49
- package/build/android/IntentFilters.js.map +1 -1
- package/build/android/JsEngine.js +2 -1
- package/build/android/JsEngine.js.map +1 -1
- package/build/android/Manifest.d.ts +5 -1
- package/build/android/Manifest.js +10 -10
- package/build/android/Manifest.js.map +1 -1
- package/build/android/Name.d.ts +2 -1
- package/build/android/Name.js +7 -4
- package/build/android/Name.js.map +1 -1
- package/build/android/Orientation.js +2 -1
- package/build/android/Orientation.js.map +1 -1
- package/build/android/Package.js +4 -4
- package/build/android/Package.js.map +1 -1
- package/build/android/Paths.js +9 -9
- package/build/android/Permissions.js +6 -6
- package/build/android/Resources.js +5 -5
- package/build/android/Scheme.js +3 -3
- package/build/android/StatusBar.js +3 -3
- package/build/android/Strings.js +1 -1
- package/build/android/Styles.js +5 -5
- package/build/android/Updates.d.ts +2 -7
- package/build/android/Updates.js +34 -27
- package/build/android/Updates.js.map +1 -1
- package/build/android/Version.d.ts +9 -0
- package/build/android/Version.js +39 -3
- package/build/android/Version.js.map +1 -1
- package/build/android/WindowSoftInputMode.js +1 -1
- package/build/android/codeMod.js +2 -2
- package/build/index.d.ts +1 -1
- package/build/index.js +57 -49
- package/build/index.js.map +1 -1
- package/build/ios/Bitcode.js +1 -1
- package/build/ios/BuildScheme.js +2 -2
- package/build/ios/BundleIdentifier.js +14 -4
- package/build/ios/BundleIdentifier.js.map +1 -1
- package/build/ios/DeviceFamily.js +3 -3
- package/build/ios/Entitlements.js +2 -2
- package/build/ios/Entitlements.js.map +1 -1
- package/build/ios/Google.js +2 -2
- package/build/ios/JsEngine.d.ts +2 -1
- package/build/ios/JsEngine.js +2 -1
- package/build/ios/JsEngine.js.map +1 -1
- package/build/ios/Locales.js +1 -1
- package/build/ios/Maps.js +32 -18
- package/build/ios/Maps.js.map +1 -1
- package/build/ios/Orientation.js +2 -1
- package/build/ios/Orientation.js.map +1 -1
- package/build/ios/Paths.js +14 -14
- package/build/ios/Paths.js.map +1 -1
- package/build/ios/Permissions.js +1 -1
- package/build/ios/Permissions.js.map +1 -1
- package/build/ios/ProvisioningProfile.js +11 -2
- package/build/ios/ProvisioningProfile.js.map +1 -1
- package/build/ios/Scheme.js +4 -4
- package/build/ios/Swift.js +2 -2
- package/build/ios/Target.js +34 -15
- package/build/ios/Target.js.map +1 -1
- package/build/ios/Updates.d.ts +2 -7
- package/build/ios/Updates.js +34 -27
- package/build/ios/Updates.js.map +1 -1
- package/build/ios/Version.js +3 -3
- package/build/ios/codeMod.js +2 -2
- package/build/ios/index.js +3 -1
- package/build/ios/index.js.map +1 -1
- package/build/ios/utils/Xcodeproj.js +9 -9
- package/build/ios/utils/string.d.ts +1 -0
- package/build/ios/utils/string.js +11 -0
- package/build/ios/utils/string.js.map +1 -0
- package/build/plugins/android-plugins.js +1 -1
- package/build/plugins/createBaseMod.js +2 -2
- package/build/plugins/createBaseMod.js.map +1 -1
- package/build/plugins/ios-plugins.d.ts +2 -2
- package/build/plugins/ios-plugins.js +2 -2
- package/build/plugins/ios-plugins.js.map +1 -1
- package/build/plugins/mod-compiler.js +3 -3
- package/build/plugins/mod-compiler.js.map +1 -1
- package/build/plugins/withAndroidBaseMods.js +1 -1
- package/build/plugins/withIosBaseMods.d.ts +3 -3
- package/build/plugins/withIosBaseMods.js +1 -1
- package/build/plugins/withIosBaseMods.js.map +1 -1
- package/build/utils/Updates.d.ts +2 -0
- package/build/utils/Updates.js +58 -1
- package/build/utils/Updates.js.map +1 -1
- package/build/utils/XML.d.ts +6 -0
- package/build/utils/XML.js +57 -10
- package/build/utils/XML.js.map +1 -1
- package/build/utils/errors.js +1 -1
- package/build/utils/generateCode.js +2 -2
- package/build/utils/history.js +1 -1
- package/build/utils/modules.js +1 -1
- package/build/utils/plugin-resolver.js +4 -4
- package/build/utils/sortObject.js +2 -2
- package/build/utils/warnings.js +1 -1
- package/package.json +4 -3
- package/build/utils/resolvePackageRootFolder.d.ts +0 -1
- package/build/utils/resolvePackageRootFolder.js +0 -57
- package/build/utils/resolvePackageRootFolder.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/withIosBaseMods.ts"],"names":["readFile","writeFile","promises","getEntitlementsPlistTemplate","getInfoPlistTemplate","CFBundleDevelopmentRegion","CFBundleExecutable","CFBundleIdentifier","CFBundleName","CFBundlePackageType","CFBundleInfoDictionaryVersion","CFBundleSignature","LSRequiresIPhoneOS","NSAppTransportSecurity","NSAllowsArbitraryLoads","NSExceptionDomains","localhost","NSExceptionAllowsInsecureHTTPLoads","UILaunchStoryboardName","UIRequiredDeviceCapabilities","UIViewControllerBasedStatusBarAppearance","UIStatusBarStyle","defaultProviders","dangerous","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","xcodeproj","getPBXProjectPath","project","xcode","parseSync","writeSync","infoPlist","config","infoPlistBuildProperty","infoPlistPath","getInfoPlistPath","ios","entitlements","Entitlements","getEntitlementsPath","podfileProperties","results","JsonFile","readAsync","e","writeAsync","withIosBaseMods","providers","props","platform","getIosModFileProviders"],"mappings":"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","sourcesContent":["import JsonFile, { JSONObject } from '@expo/json-file';\nimport plist from '@expo/plist';\nimport assert from 'assert';\nimport { 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 { 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 };\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 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 // Fallback on glob...\n return await 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 const contents = await readFile(filePath, 'utf8');\n assert(contents, 'Entitlements plist is empty');\n modResults = plist.parse(contents);\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, string>>({\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, string> = {};\n try {\n results = await JsonFile.readAsync(filePath);\n } catch (e) {}\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"],"file":"withIosBaseMods.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/withIosBaseMods.ts"],"names":["readFile","writeFile","promises","getEntitlementsPlistTemplate","getInfoPlistTemplate","CFBundleDevelopmentRegion","CFBundleExecutable","CFBundleIdentifier","CFBundleName","CFBundlePackageType","CFBundleInfoDictionaryVersion","CFBundleSignature","LSRequiresIPhoneOS","NSAppTransportSecurity","NSAllowsArbitraryLoads","NSExceptionDomains","localhost","NSExceptionAllowsInsecureHTTPLoads","UILaunchStoryboardName","UIRequiredDeviceCapabilities","UIViewControllerBasedStatusBarAppearance","UIStatusBarStyle","defaultProviders","dangerous","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","xcodeproj","getPBXProjectPath","project","xcode","parseSync","writeSync","infoPlist","config","infoPlistBuildProperty","infoPlistPath","getInfoPlistPath","ios","entitlements","Entitlements","getEntitlementsPath","podfileProperties","results","JsonFile","readAsync","e","writeAsync","withIosBaseMods","providers","props","platform","getIosModFileProviders"],"mappings":"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","sourcesContent":["import JsonFile, { JSONObject, JSONValue } from '@expo/json-file';\nimport plist from '@expo/plist';\nimport assert from 'assert';\nimport { 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 { 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 };\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 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 // Fallback on glob...\n return await 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 const contents = await readFile(filePath, 'utf8');\n assert(contents, 'Entitlements plist is empty');\n modResults = plist.parse(contents);\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 (e) {}\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"],"file":"withIosBaseMods.js"}
|
package/build/utils/Updates.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Android, ExpoConfig, IOS } from '@expo/config-types';
|
|
2
2
|
export declare type ExpoConfigUpdates = Pick<ExpoConfig, 'sdkVersion' | 'owner' | 'runtimeVersion' | 'updates' | 'slug'>;
|
|
3
|
+
export declare function getExpoUpdatesPackageVersion(projectRoot: string): string | null;
|
|
3
4
|
export declare function getUpdateUrl(config: Pick<ExpoConfigUpdates, 'owner' | 'slug' | 'updates'>, username: string | null): string | null;
|
|
4
5
|
export declare function getNativeVersion(config: Pick<ExpoConfig, 'version'> & {
|
|
5
6
|
android?: Pick<Android, 'versionCode'>;
|
|
@@ -10,6 +11,7 @@ export declare function getNativeVersion(config: Pick<ExpoConfig, 'version'> & {
|
|
|
10
11
|
* @return an expoConfig with only string valued platform specific runtime versions.
|
|
11
12
|
*/
|
|
12
13
|
export declare const withRuntimeVersion: (config: ExpoConfig) => ExpoConfig;
|
|
14
|
+
export declare function getRuntimeVersionNullable(...[config, platform]: Parameters<typeof getRuntimeVersion>): string | null;
|
|
13
15
|
export declare function getRuntimeVersion(config: Pick<ExpoConfig, 'version' | 'runtimeVersion' | 'sdkVersion'> & {
|
|
14
16
|
android?: Pick<Android, 'versionCode' | 'runtimeVersion'>;
|
|
15
17
|
ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;
|
package/build/utils/Updates.js
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.getExpoUpdatesPackageVersion = getExpoUpdatesPackageVersion;
|
|
7
7
|
exports.getNativeVersion = getNativeVersion;
|
|
8
8
|
exports.getRuntimeVersion = getRuntimeVersion;
|
|
9
|
+
exports.getRuntimeVersionNullable = getRuntimeVersionNullable;
|
|
10
|
+
exports.getUpdateUrl = getUpdateUrl;
|
|
9
11
|
exports.withRuntimeVersion = void 0;
|
|
10
12
|
|
|
11
13
|
function _sdkRuntimeVersions() {
|
|
@@ -18,6 +20,36 @@ function _sdkRuntimeVersions() {
|
|
|
18
20
|
return data;
|
|
19
21
|
}
|
|
20
22
|
|
|
23
|
+
function _fs() {
|
|
24
|
+
const data = _interopRequireDefault(require("fs"));
|
|
25
|
+
|
|
26
|
+
_fs = function () {
|
|
27
|
+
return data;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
return data;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function _getenv() {
|
|
34
|
+
const data = require("getenv");
|
|
35
|
+
|
|
36
|
+
_getenv = function () {
|
|
37
|
+
return data;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function _resolveFrom() {
|
|
44
|
+
const data = _interopRequireDefault(require("resolve-from"));
|
|
45
|
+
|
|
46
|
+
_resolveFrom = function () {
|
|
47
|
+
return data;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
return data;
|
|
51
|
+
}
|
|
52
|
+
|
|
21
53
|
function _() {
|
|
22
54
|
const data = require("..");
|
|
23
55
|
|
|
@@ -28,6 +60,19 @@ function _() {
|
|
|
28
60
|
return data;
|
|
29
61
|
}
|
|
30
62
|
|
|
63
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
64
|
+
|
|
65
|
+
function getExpoUpdatesPackageVersion(projectRoot) {
|
|
66
|
+
const expoUpdatesPackageJsonPath = _resolveFrom().default.silent(projectRoot, 'expo-updates/package.json');
|
|
67
|
+
|
|
68
|
+
if (!expoUpdatesPackageJsonPath || !_fs().default.existsSync(expoUpdatesPackageJsonPath)) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const packageJson = JSON.parse(_fs().default.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));
|
|
73
|
+
return packageJson.version;
|
|
74
|
+
}
|
|
75
|
+
|
|
31
76
|
function getUpdateUrl(config, username) {
|
|
32
77
|
var _config$updates;
|
|
33
78
|
|
|
@@ -97,6 +142,18 @@ const withRuntimeVersion = config => {
|
|
|
97
142
|
|
|
98
143
|
exports.withRuntimeVersion = withRuntimeVersion;
|
|
99
144
|
|
|
145
|
+
function getRuntimeVersionNullable(...[config, platform]) {
|
|
146
|
+
try {
|
|
147
|
+
return getRuntimeVersion(config, platform);
|
|
148
|
+
} catch (e) {
|
|
149
|
+
if ((0, _getenv().boolish)('EXPO_DEBUG', false)) {
|
|
150
|
+
console.log(e);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
100
157
|
function getRuntimeVersion(config, platform) {
|
|
101
158
|
var _config$platform$runt, _config$platform;
|
|
102
159
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/Updates.ts"],"names":["getUpdateUrl","config","username","updates","url","user","owner","slug","getNativeVersion","platform","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/Updates.ts"],"names":["getExpoUpdatesPackageVersion","projectRoot","expoUpdatesPackageJsonPath","resolveFrom","silent","fs","existsSync","packageJson","JSON","parse","readFileSync","version","getUpdateUrl","config","username","updates","url","user","owner","slug","getNativeVersion","platform","IOSConfig","Version","getVersion","buildNumber","getBuildNumber","versionCode","AndroidConfig","getVersionCode","Error","withRuntimeVersion","ios","runtimeVersion","getRuntimeVersion","android","getRuntimeVersionNullable","e","console","log","policy","sdkVersion","stringify"],"mappings":"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","sourcesContent":["import { Android, ExpoConfig, IOS } from '@expo/config-types';\nimport { getRuntimeVersionForSDKVersion } from '@expo/sdk-runtime-versions';\nimport fs from 'fs';\nimport { boolish } from 'getenv';\nimport resolveFrom from 'resolve-from';\n\nimport { AndroidConfig, IOSConfig } from '..';\n\nexport type ExpoConfigUpdates = Pick<\n ExpoConfig,\n 'sdkVersion' | 'owner' | 'runtimeVersion' | 'updates' | 'slug'\n>;\n\nexport function getExpoUpdatesPackageVersion(projectRoot: string): string | null {\n const expoUpdatesPackageJsonPath = resolveFrom.silent(projectRoot, 'expo-updates/package.json');\n if (!expoUpdatesPackageJsonPath || !fs.existsSync(expoUpdatesPackageJsonPath)) {\n return null;\n }\n const packageJson = JSON.parse(fs.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));\n return packageJson.version;\n}\n\nexport function getUpdateUrl(\n config: Pick<ExpoConfigUpdates, 'owner' | 'slug' | 'updates'>,\n username: string | null\n): string | null {\n if (config.updates?.url) {\n return config.updates?.url;\n }\n\n const user = typeof config.owner === 'string' ? config.owner : username;\n if (!user) {\n return null;\n }\n return `https://exp.host/@${user}/${config.slug}`;\n}\n\nexport function getNativeVersion(\n config: Pick<ExpoConfig, 'version'> & {\n android?: Pick<Android, 'versionCode'>;\n ios?: Pick<IOS, 'buildNumber'>;\n },\n platform: 'android' | 'ios'\n): string {\n const version = IOSConfig.Version.getVersion(config);\n switch (platform) {\n case 'ios': {\n const buildNumber = IOSConfig.Version.getBuildNumber(config);\n return `${version}(${buildNumber})`;\n }\n case 'android': {\n const versionCode = AndroidConfig.Version.getVersionCode(config);\n return `${version}(${versionCode})`;\n }\n default: {\n throw new Error(\n `\"${platform}\" is not a supported platform. Choose either \"ios\" or \"android\".`\n );\n }\n }\n}\n\n/**\n * Compute runtime version policies.\n * @return an expoConfig with only string valued platform specific runtime versions.\n */\nexport const withRuntimeVersion: (config: ExpoConfig) => ExpoConfig = config => {\n if (config.ios?.runtimeVersion || config.runtimeVersion) {\n config.ios = {\n ...config.ios,\n runtimeVersion: getRuntimeVersion(config, 'ios'),\n };\n }\n if (config.android?.runtimeVersion || config.runtimeVersion) {\n config.android = {\n ...config.android,\n runtimeVersion: getRuntimeVersion(config, 'android'),\n };\n }\n delete config.runtimeVersion;\n return config;\n};\n\nexport function getRuntimeVersionNullable(\n ...[config, platform]: Parameters<typeof getRuntimeVersion>\n): string | null {\n try {\n return getRuntimeVersion(config, platform);\n } catch (e) {\n if (boolish('EXPO_DEBUG', false)) {\n console.log(e);\n }\n return null;\n }\n}\n\nexport function getRuntimeVersion(\n config: Pick<ExpoConfig, 'version' | 'runtimeVersion' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode' | 'runtimeVersion'>;\n ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;\n },\n platform: 'android' | 'ios'\n): string {\n const runtimeVersion = config[platform]?.runtimeVersion ?? config.runtimeVersion;\n if (!runtimeVersion) {\n throw new Error(\n `There is neither a value or a policy set for the runtime version on \"${platform}\"`\n );\n }\n\n if (typeof runtimeVersion === 'string') {\n return runtimeVersion;\n } else if (runtimeVersion.policy === 'nativeVersion') {\n return getNativeVersion(config, platform);\n } else if (runtimeVersion.policy === 'sdkVersion') {\n if (!config.sdkVersion) {\n throw new Error(\"An SDK version must be defined when using the 'sdkVersion' runtime policy.\");\n }\n return getRuntimeVersionForSDKVersion(config.sdkVersion);\n }\n\n throw new Error(\n `\"${\n typeof runtimeVersion === 'object' ? JSON.stringify(runtimeVersion) : runtimeVersion\n }\" is not a valid runtime version. getRuntimeVersion only supports a string, \"sdkVersion\", or \"nativeVersion\" policy.`\n );\n}\n"],"file":"Updates.js"}
|
package/build/utils/XML.d.ts
CHANGED
|
@@ -17,3 +17,9 @@ export declare function format(manifest: any, { indentLevel, newline }?: {
|
|
|
17
17
|
indentLevel?: number | undefined;
|
|
18
18
|
newline?: string | undefined;
|
|
19
19
|
}): string;
|
|
20
|
+
/**
|
|
21
|
+
* Escapes Android string literals, specifically characters `"`, `'`, `\`, `\n`, `\r`, `\t`
|
|
22
|
+
*
|
|
23
|
+
* @param value unescaped Android XML string literal.
|
|
24
|
+
*/
|
|
25
|
+
export declare function escapeAndroidString(value: string): string;
|
package/build/utils/XML.js
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.readXMLAsync = readXMLAsync;
|
|
8
|
-
exports.parseXMLAsync = parseXMLAsync;
|
|
6
|
+
exports.escapeAndroidString = escapeAndroidString;
|
|
9
7
|
exports.format = format;
|
|
8
|
+
exports.parseXMLAsync = parseXMLAsync;
|
|
9
|
+
exports.readXMLAsync = readXMLAsync;
|
|
10
|
+
exports.writeXMLAsync = writeXMLAsync;
|
|
10
11
|
|
|
11
12
|
function _fsExtra() {
|
|
12
13
|
const data = _interopRequireDefault(require("fs-extra"));
|
|
@@ -51,7 +52,7 @@ function _xml2js() {
|
|
|
51
52
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
52
53
|
|
|
53
54
|
async function writeXMLAsync(options) {
|
|
54
|
-
const xml =
|
|
55
|
+
const xml = format(options.xml);
|
|
55
56
|
await _fsExtra().default.ensureDir(_path().default.dirname(options.path));
|
|
56
57
|
await _fsExtra().default.writeFile(options.path, xml);
|
|
57
58
|
}
|
|
@@ -88,9 +89,24 @@ function format(manifest, {
|
|
|
88
89
|
if (typeof manifest === 'string') {
|
|
89
90
|
xmlInput = manifest;
|
|
90
91
|
} else if (manifest.toString) {
|
|
92
|
+
var _manifest$resources;
|
|
93
|
+
|
|
91
94
|
const builder = new (_xml2js().Builder)({
|
|
92
95
|
headless: true
|
|
93
|
-
});
|
|
96
|
+
}); // For strings.xml
|
|
97
|
+
|
|
98
|
+
if (Array.isArray(manifest === null || manifest === void 0 ? void 0 : (_manifest$resources = manifest.resources) === null || _manifest$resources === void 0 ? void 0 : _manifest$resources.string)) {
|
|
99
|
+
for (const string of manifest === null || manifest === void 0 ? void 0 : (_manifest$resources2 = manifest.resources) === null || _manifest$resources2 === void 0 ? void 0 : _manifest$resources2.string) {
|
|
100
|
+
var _manifest$resources2;
|
|
101
|
+
|
|
102
|
+
if (string.$.translatable === 'false' || string.$.translatable === false) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
string._ = escapeAndroidString(string._);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
94
110
|
xmlInput = builder.buildObject(manifest);
|
|
95
111
|
return xmlInput;
|
|
96
112
|
} else {
|
|
@@ -108,9 +124,6 @@ function format(manifest, {
|
|
|
108
124
|
if (line.match(/.+<\/\w[^>]*>$/)) {
|
|
109
125
|
indent = 0;
|
|
110
126
|
} else if (line.match(/^<\/\w/)) {
|
|
111
|
-
// Somehow istanbul doesn't see the else case as covered, although it is. Skip it.
|
|
112
|
-
|
|
113
|
-
/* istanbul ignore else */
|
|
114
127
|
if (pad !== 0) {
|
|
115
128
|
pad -= 1;
|
|
116
129
|
}
|
|
@@ -121,10 +134,44 @@ function format(manifest, {
|
|
|
121
134
|
}
|
|
122
135
|
|
|
123
136
|
const padding = stringTimesN(pad, indentString);
|
|
124
|
-
formatted += padding + line + newline;
|
|
125
|
-
|
|
137
|
+
formatted += padding + line + newline;
|
|
126
138
|
pad += indent;
|
|
127
139
|
});
|
|
128
140
|
return formatted.trim();
|
|
129
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Escapes Android string literals, specifically characters `"`, `'`, `\`, `\n`, `\r`, `\t`
|
|
144
|
+
*
|
|
145
|
+
* @param value unescaped Android XML string literal.
|
|
146
|
+
*/
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
function escapeAndroidString(value) {
|
|
150
|
+
value = value.replace(/[\n\r\t'"@]/g, m => {
|
|
151
|
+
switch (m) {
|
|
152
|
+
case '"':
|
|
153
|
+
case "'":
|
|
154
|
+
case '@':
|
|
155
|
+
return '\\' + m;
|
|
156
|
+
|
|
157
|
+
case '\n':
|
|
158
|
+
return '\\n';
|
|
159
|
+
|
|
160
|
+
case '\r':
|
|
161
|
+
return '\\r';
|
|
162
|
+
|
|
163
|
+
case '\t':
|
|
164
|
+
return '\\t';
|
|
165
|
+
|
|
166
|
+
default:
|
|
167
|
+
throw new Error(`Cannot escape unhandled XML character: ${m}`);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
if (value.match(/(^\s|\s$)/)) {
|
|
172
|
+
value = '"' + value + '"';
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return value;
|
|
176
|
+
}
|
|
130
177
|
//# sourceMappingURL=XML.js.map
|
package/build/utils/XML.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/XML.ts"],"names":["writeXMLAsync","options","xml","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/XML.ts"],"names":["writeXMLAsync","options","xml","format","fs","ensureDir","path","dirname","writeFile","readXMLAsync","contents","readFile","encoding","flag","parser","Parser","manifest","parseStringPromise","fallback","parseXMLAsync","stringTimesN","n","char","Array","join","indentLevel","newline","EOL","xmlInput","toString","builder","Builder","headless","isArray","resources","string","$","translatable","_","escapeAndroidString","buildObject","Error","indentString","formatted","regex","replace","pad","split","map","line","trim","forEach","indent","match","padding","value","m"],"mappings":"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","sourcesContent":["import fs from 'fs-extra';\nimport { EOL } from 'os';\nimport path from 'path';\nimport { Builder, Parser } from 'xml2js';\n\nexport type XMLValue = boolean | number | string | null | XMLArray | XMLObject;\n\nexport interface XMLArray extends Array<XMLValue> {}\n\nexport interface XMLObject {\n [key: string]: XMLValue | undefined;\n}\n\nexport async function writeXMLAsync(options: { path: string; xml: any }): Promise<void> {\n const xml = format(options.xml);\n await fs.ensureDir(path.dirname(options.path));\n await fs.writeFile(options.path, xml);\n}\n\nexport async function readXMLAsync(options: {\n path: string;\n fallback?: string | null;\n}): Promise<XMLObject> {\n let contents: string = '';\n try {\n contents = await fs.readFile(options.path, { encoding: 'utf8', flag: 'r' });\n } catch {\n // catch and use fallback\n }\n const parser = new Parser();\n const manifest = await parser.parseStringPromise(contents || options.fallback || '');\n return manifest;\n}\n\nexport async function parseXMLAsync(contents: string): Promise<XMLObject> {\n const xml = await new Parser().parseStringPromise(contents);\n return xml;\n}\n\nconst stringTimesN = (n: number, char: string) => Array(n + 1).join(char);\n\nexport function format(manifest: any, { indentLevel = 2, newline = EOL } = {}): string {\n let xmlInput: string;\n if (typeof manifest === 'string') {\n xmlInput = manifest;\n } else if (manifest.toString) {\n const builder = new Builder({\n headless: true,\n });\n\n // For strings.xml\n if (Array.isArray(manifest?.resources?.string)) {\n for (const string of manifest?.resources?.string) {\n if (string.$.translatable === 'false' || string.$.translatable === false) {\n continue;\n }\n string._ = escapeAndroidString(string._);\n }\n }\n\n xmlInput = builder.buildObject(manifest);\n\n return xmlInput;\n } else {\n throw new Error(`Invalid XML value passed in: ${manifest}`);\n }\n const indentString = stringTimesN(indentLevel, ' ');\n\n let formatted = '';\n const regex = /(>)(<)(\\/*)/g;\n const xml = xmlInput.replace(regex, `$1${newline}$2$3`);\n let pad = 0;\n xml\n .split(/\\r?\\n/)\n .map((line: string) => line.trim())\n .forEach((line: string) => {\n let indent = 0;\n if (line.match(/.+<\\/\\w[^>]*>$/)) {\n indent = 0;\n } else if (line.match(/^<\\/\\w/)) {\n if (pad !== 0) {\n pad -= 1;\n }\n } else if (line.match(/^<\\w([^>]*[^/])?>.*$/)) {\n indent = 1;\n } else {\n indent = 0;\n }\n\n const padding = stringTimesN(pad, indentString);\n formatted += padding + line + newline;\n pad += indent;\n });\n\n return formatted.trim();\n}\n\n/**\n * Escapes Android string literals, specifically characters `\"`, `'`, `\\`, `\\n`, `\\r`, `\\t`\n *\n * @param value unescaped Android XML string literal.\n */\nexport function escapeAndroidString(value: string): string {\n value = value.replace(/[\\n\\r\\t'\"@]/g, m => {\n switch (m) {\n case '\"':\n case \"'\":\n case '@':\n return '\\\\' + m;\n case '\\n':\n return '\\\\n';\n case '\\r':\n return '\\\\r';\n case '\\t':\n return '\\\\t';\n default:\n throw new Error(`Cannot escape unhandled XML character: ${m}`);\n }\n });\n if (value.match(/(^\\s|\\s$)/)) {\n value = '\"' + value + '\"';\n }\n return value;\n}\n"],"file":"XML.js"}
|
package/build/utils/errors.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.UnexpectedError = exports.PluginError = void 0;
|
|
7
7
|
|
|
8
8
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
9
|
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.createGeneratedHeaderComment = createGeneratedHeaderComment;
|
|
7
|
+
exports.createHash = createHash;
|
|
6
8
|
exports.mergeContents = mergeContents;
|
|
7
9
|
exports.removeContents = removeContents;
|
|
8
10
|
exports.removeGeneratedContents = removeGeneratedContents;
|
|
9
|
-
exports.createGeneratedHeaderComment = createGeneratedHeaderComment;
|
|
10
|
-
exports.createHash = createHash;
|
|
11
11
|
|
|
12
12
|
function _crypto() {
|
|
13
13
|
const data = _interopRequireDefault(require("crypto"));
|
package/build/utils/history.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getHistoryItem = getHistoryItem;
|
|
7
6
|
exports.addHistoryItem = addHistoryItem;
|
|
7
|
+
exports.getHistoryItem = getHistoryItem;
|
|
8
8
|
|
|
9
9
|
function getHistoryItem(config, name) {
|
|
10
10
|
var _config$_internal$plu, _config$_internal, _config$_internal$plu2;
|
package/build/utils/modules.js
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.fileExistsAsync = fileExistsAsync;
|
|
7
6
|
exports.directoryExistsAsync = directoryExistsAsync;
|
|
8
7
|
exports.fileExists = fileExists;
|
|
8
|
+
exports.fileExistsAsync = fileExistsAsync;
|
|
9
9
|
|
|
10
10
|
function _fs() {
|
|
11
11
|
const data = _interopRequireDefault(require("fs"));
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.assertInternalProjectRoot = assertInternalProjectRoot;
|
|
7
7
|
exports.moduleNameIsDirectFileReference = moduleNameIsDirectFileReference;
|
|
8
8
|
exports.normalizeStaticPlugin = normalizeStaticPlugin;
|
|
9
|
-
exports.
|
|
9
|
+
exports.pluginFileName = void 0;
|
|
10
|
+
exports.resolveConfigPluginExport = resolveConfigPluginExport;
|
|
10
11
|
exports.resolveConfigPluginFunction = resolveConfigPluginFunction;
|
|
11
12
|
exports.resolveConfigPluginFunctionWithInfo = resolveConfigPluginFunctionWithInfo;
|
|
12
|
-
exports.
|
|
13
|
-
exports.pluginFileName = void 0;
|
|
13
|
+
exports.resolvePluginForModule = resolvePluginForModule;
|
|
14
14
|
|
|
15
15
|
function _assert() {
|
|
16
16
|
const data = _interopRequireDefault(require("assert"));
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.reverseSortString = void 0;
|
|
7
7
|
exports.sortObjWithOrder = sortObjWithOrder;
|
|
8
|
+
exports.sortObject = sortObject;
|
|
8
9
|
exports.sortWithOrder = sortWithOrder;
|
|
9
|
-
exports.reverseSortString = void 0;
|
|
10
10
|
|
|
11
11
|
function sortObject(obj, compareFn) {
|
|
12
12
|
return Object.keys(obj).sort(compareFn).reduce((acc, key) => ({ ...acc,
|
package/build/utils/warnings.js
CHANGED
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.addWarningAndroid = addWarningAndroid;
|
|
7
|
-
exports.addWarningIOS = addWarningIOS;
|
|
8
7
|
exports.addWarningForPlatform = addWarningForPlatform;
|
|
8
|
+
exports.addWarningIOS = addWarningIOS;
|
|
9
9
|
|
|
10
10
|
function _chalk() {
|
|
11
11
|
const data = _interopRequireDefault(require("chalk"));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/config-plugins",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.11",
|
|
4
4
|
"description": "A library for Expo config plugins",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -33,8 +33,9 @@
|
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@expo/config-types": "^43.0.1",
|
|
36
|
-
"@expo/json-file": "8.2.
|
|
37
|
-
"@expo/plist": "0.0.
|
|
36
|
+
"@expo/json-file": "8.2.34",
|
|
37
|
+
"@expo/plist": "0.0.16",
|
|
38
|
+
"@expo/sdk-runtime-versions": "^1.0.0",
|
|
38
39
|
"@react-native/normalize-color": "^2.0.0",
|
|
39
40
|
"chalk": "^4.1.2",
|
|
40
41
|
"debug": "^4.3.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function resolvePackageRootFolder(fromDirectory: string, moduleId: string): string | null;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.resolvePackageRootFolder = resolvePackageRootFolder;
|
|
7
|
-
|
|
8
|
-
function _findUp() {
|
|
9
|
-
const data = _interopRequireDefault(require("find-up"));
|
|
10
|
-
|
|
11
|
-
_findUp = function () {
|
|
12
|
-
return data;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
return data;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function path() {
|
|
19
|
-
const data = _interopRequireWildcard(require("path"));
|
|
20
|
-
|
|
21
|
-
path = function () {
|
|
22
|
-
return data;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
return data;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function _resolveFrom() {
|
|
29
|
-
const data = _interopRequireDefault(require("resolve-from"));
|
|
30
|
-
|
|
31
|
-
_resolveFrom = function () {
|
|
32
|
-
return data;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
return data;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
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); }
|
|
39
|
-
|
|
40
|
-
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; }
|
|
41
|
-
|
|
42
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
43
|
-
|
|
44
|
-
function resolvePackageRootFolder(fromDirectory, moduleId) {
|
|
45
|
-
const resolved = _resolveFrom().default.silent(fromDirectory, moduleId);
|
|
46
|
-
|
|
47
|
-
if (!resolved) return null; // Get the closest package.json to the node module
|
|
48
|
-
|
|
49
|
-
const packageJson = _findUp().default.sync('package.json', {
|
|
50
|
-
cwd: resolved
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
if (!packageJson) return null; // resolve the root folder for the node module
|
|
54
|
-
|
|
55
|
-
return path().dirname(packageJson);
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=resolvePackageRootFolder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/resolvePackageRootFolder.ts"],"names":["resolvePackageRootFolder","fromDirectory","moduleId","resolved","resolveFrom","silent","packageJson","findUp","sync","cwd","path","dirname"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;AAEO,SAASA,wBAAT,CAAkCC,aAAlC,EAAyDC,QAAzD,EAA0F;AAC/F,QAAMC,QAAQ,GAAGC,uBAAYC,MAAZ,CAAmBJ,aAAnB,EAAkCC,QAAlC,CAAjB;;AACA,MAAI,CAACC,QAAL,EAAe,OAAO,IAAP,CAFgF,CAG/F;;AACA,QAAMG,WAAW,GAAGC,kBAAOC,IAAP,CAAY,cAAZ,EAA4B;AAAEC,IAAAA,GAAG,EAAEN;AAAP,GAA5B,CAApB;;AACA,MAAI,CAACG,WAAL,EAAkB,OAAO,IAAP,CAL6E,CAM/F;;AACA,SAAOI,IAAI,GAACC,OAAL,CAAaL,WAAb,CAAP;AACD","sourcesContent":["import findUp from 'find-up';\nimport * as path from 'path';\nimport resolveFrom from 'resolve-from';\n\nexport function resolvePackageRootFolder(fromDirectory: string, moduleId: string): string | null {\n const resolved = resolveFrom.silent(fromDirectory, moduleId);\n if (!resolved) return null;\n // Get the closest package.json to the node module\n const packageJson = findUp.sync('package.json', { cwd: resolved });\n if (!packageJson) return null;\n // resolve the root folder for the node module\n return path.dirname(packageJson);\n}\n"],"file":"resolvePackageRootFolder.js"}
|