From 19df58f1efa1fbeda09c28d8ecf61b046b7463e4 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 10 Apr 2026 09:49:41 -0700 Subject: [PATCH] Remove direct dependency on `@expo/config-plugins` (#10152) --- package.json | 1 - plugins/notificationsExtension/withAppEntitlements.js | 3 +-- .../notificationsExtension/withExtensionEntitlements.js | 3 +-- plugins/notificationsExtension/withExtensionInfoPlist.js | 3 +-- .../notificationsExtension/withExtensionViewController.js | 3 +-- .../notificationsExtension/withNotificationsExtension.js | 2 +- plugins/notificationsExtension/withSounds.js | 3 +-- plugins/notificationsExtension/withXcodeTarget.js | 5 +---- plugins/shareExtension/withAppEntitlements.js | 3 +-- plugins/shareExtension/withExtensionEntitlements.js | 3 +-- plugins/shareExtension/withExtensionInfoPlist.js | 3 +-- plugins/shareExtension/withExtensionViewController.js | 3 +-- plugins/shareExtension/withIntentFilters.js | 3 +-- plugins/shareExtension/withShareExtensions.js | 2 +- plugins/shareExtension/withXcodeTarget.js | 3 +-- plugins/starterPackAppClipExtension/withAppEntitlements.js | 3 +-- .../starterPackAppClipExtension/withClipEntitlements.js | 3 +-- plugins/starterPackAppClipExtension/withClipInfoPlist.js | 3 +-- plugins/starterPackAppClipExtension/withFiles.js | 3 +-- .../starterPackAppClipExtension/withStarterPackAppClip.js | 2 +- plugins/starterPackAppClipExtension/withXcodeTarget.js | 3 +-- plugins/withAndroidManifestIntentQueriesPlugin.js | 3 +-- plugins/withAndroidNoJitpackPlugin.js | 2 +- plugins/withAndroidStylesAccentColorPlugin.js | 2 +- plugins/withAppDelegateReferrer.js | 7 +++---- 25 files changed, 26 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index f92fe3fcfe..492fa566a5 100644 --- a/package.json +++ b/package.json @@ -245,7 +245,6 @@ "@babel/runtime": "^7.26.0", "@crowdin/cli": "^4.14.1", "@eslint/js": "^9.39.2", - "@expo/config-plugins": "~54.0.4", "@lingui/babel-plugin-lingui-macro": "^5.9.2", "@lingui/cli": "^5.9.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", diff --git a/plugins/notificationsExtension/withAppEntitlements.js b/plugins/notificationsExtension/withAppEntitlements.js index 4ce81ea611..d7dad99945 100644 --- a/plugins/notificationsExtension/withAppEntitlements.js +++ b/plugins/notificationsExtension/withAppEntitlements.js @@ -1,7 +1,6 @@ -const {withEntitlementsPlist} = require('@expo/config-plugins') +const {withEntitlementsPlist} = require('expo/config-plugins') const withAppEntitlements = config => { - // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ `group.app.bsky`, diff --git a/plugins/notificationsExtension/withExtensionEntitlements.js b/plugins/notificationsExtension/withExtensionEntitlements.js index 0cc1c4ca8c..29614ab091 100644 --- a/plugins/notificationsExtension/withExtensionEntitlements.js +++ b/plugins/notificationsExtension/withExtensionEntitlements.js @@ -1,10 +1,9 @@ -const {withInfoPlist} = require('@expo/config-plugins') +const {withInfoPlist} = require('expo/config-plugins') const plist = require('@expo/plist') const path = require('path') const fs = require('fs') const withExtensionEntitlements = (config, {extensionName}) => { - // eslint-disable-next-line no-shadow return withInfoPlist(config, config => { const extensionEntitlementsPath = path.join( config.modRequest.platformProjectRoot, diff --git a/plugins/notificationsExtension/withExtensionInfoPlist.js b/plugins/notificationsExtension/withExtensionInfoPlist.js index b0c6cfa89a..8de8c9910f 100644 --- a/plugins/notificationsExtension/withExtensionInfoPlist.js +++ b/plugins/notificationsExtension/withExtensionInfoPlist.js @@ -1,10 +1,9 @@ -const {withInfoPlist} = require('@expo/config-plugins') +const {withInfoPlist} = require('expo/config-plugins') const plist = require('@expo/plist') const path = require('path') const fs = require('fs') const withExtensionInfoPlist = (config, {extensionName}) => { - // eslint-disable-next-line no-shadow return withInfoPlist(config, config => { const plistPath = path.join( config.modRequest.projectRoot, diff --git a/plugins/notificationsExtension/withExtensionViewController.js b/plugins/notificationsExtension/withExtensionViewController.js index cd29bea7da..07aedcf345 100644 --- a/plugins/notificationsExtension/withExtensionViewController.js +++ b/plugins/notificationsExtension/withExtensionViewController.js @@ -1,4 +1,4 @@ -const {withXcodeProject} = require('@expo/config-plugins') +const {withXcodeProject} = require('expo/config-plugins') const path = require('path') const fs = require('fs') @@ -6,7 +6,6 @@ const withExtensionViewController = ( config, {controllerName, extensionName}, ) => { - // eslint-disable-next-line no-shadow return withXcodeProject(config, config => { const controllerPath = path.join( config.modRequest.projectRoot, diff --git a/plugins/notificationsExtension/withNotificationsExtension.js b/plugins/notificationsExtension/withNotificationsExtension.js index 6a00cfd231..a6b4fa8e50 100644 --- a/plugins/notificationsExtension/withNotificationsExtension.js +++ b/plugins/notificationsExtension/withNotificationsExtension.js @@ -1,4 +1,4 @@ -const {withPlugins} = require('@expo/config-plugins') +const {withPlugins} = require('expo/config-plugins') const {withAppEntitlements} = require('./withAppEntitlements') const {withXcodeTarget} = require('./withXcodeTarget') const {withExtensionEntitlements} = require('./withExtensionEntitlements') diff --git a/plugins/notificationsExtension/withSounds.js b/plugins/notificationsExtension/withSounds.js index 652afd5458..a626c13e8e 100644 --- a/plugins/notificationsExtension/withSounds.js +++ b/plugins/notificationsExtension/withSounds.js @@ -1,9 +1,8 @@ -const {withXcodeProject} = require('@expo/config-plugins') +const {withXcodeProject} = require('expo/config-plugins') const path = require('path') const fs = require('fs') const withSounds = (config, {extensionName, soundFiles}) => { - // eslint-disable-next-line no-shadow return withXcodeProject(config, config => { for (const file of soundFiles) { const soundPath = path.join(config.modRequest.projectRoot, 'assets', file) diff --git a/plugins/notificationsExtension/withXcodeTarget.js b/plugins/notificationsExtension/withXcodeTarget.js index e9c7dae39a..3307875c61 100644 --- a/plugins/notificationsExtension/withXcodeTarget.js +++ b/plugins/notificationsExtension/withXcodeTarget.js @@ -1,12 +1,9 @@ -const {withXcodeProject, IOSConfig} = require('@expo/config-plugins') -const path = require('path') -const PBXFile = require('xcode/lib/pbxFile') +const {withXcodeProject} = require('expo/config-plugins') const withXcodeTarget = ( config, {extensionName, controllerName, soundFiles}, ) => { - // eslint-disable-next-line no-shadow return withXcodeProject(config, config => { let pbxProject = config.modResults diff --git a/plugins/shareExtension/withAppEntitlements.js b/plugins/shareExtension/withAppEntitlements.js index 4ce81ea611..d7dad99945 100644 --- a/plugins/shareExtension/withAppEntitlements.js +++ b/plugins/shareExtension/withAppEntitlements.js @@ -1,7 +1,6 @@ -const {withEntitlementsPlist} = require('@expo/config-plugins') +const {withEntitlementsPlist} = require('expo/config-plugins') const withAppEntitlements = config => { - // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ `group.app.bsky`, diff --git a/plugins/shareExtension/withExtensionEntitlements.js b/plugins/shareExtension/withExtensionEntitlements.js index 7bee79d1a6..9123d22969 100644 --- a/plugins/shareExtension/withExtensionEntitlements.js +++ b/plugins/shareExtension/withExtensionEntitlements.js @@ -1,10 +1,9 @@ -const {withInfoPlist} = require('@expo/config-plugins') +const {withInfoPlist} = require('expo/config-plugins') const plist = require('@expo/plist') const path = require('path') const fs = require('fs') const withExtensionEntitlements = (config, {extensionName}) => { - // eslint-disable-next-line no-shadow return withInfoPlist(config, config => { const extensionEntitlementsPath = path.join( config.modRequest.platformProjectRoot, diff --git a/plugins/shareExtension/withExtensionInfoPlist.js b/plugins/shareExtension/withExtensionInfoPlist.js index 9afc4d5f92..4e1c299b32 100644 --- a/plugins/shareExtension/withExtensionInfoPlist.js +++ b/plugins/shareExtension/withExtensionInfoPlist.js @@ -1,10 +1,9 @@ -const {withInfoPlist} = require('@expo/config-plugins') +const {withInfoPlist} = require('expo/config-plugins') const plist = require('@expo/plist') const path = require('path') const fs = require('fs') const withExtensionInfoPlist = (config, {extensionName}) => { - // eslint-disable-next-line no-shadow return withInfoPlist(config, config => { const plistPath = path.join( config.modRequest.projectRoot, diff --git a/plugins/shareExtension/withExtensionViewController.js b/plugins/shareExtension/withExtensionViewController.js index cd29bea7da..07aedcf345 100644 --- a/plugins/shareExtension/withExtensionViewController.js +++ b/plugins/shareExtension/withExtensionViewController.js @@ -1,4 +1,4 @@ -const {withXcodeProject} = require('@expo/config-plugins') +const {withXcodeProject} = require('expo/config-plugins') const path = require('path') const fs = require('fs') @@ -6,7 +6,6 @@ const withExtensionViewController = ( config, {controllerName, extensionName}, ) => { - // eslint-disable-next-line no-shadow return withXcodeProject(config, config => { const controllerPath = path.join( config.modRequest.projectRoot, diff --git a/plugins/shareExtension/withIntentFilters.js b/plugins/shareExtension/withIntentFilters.js index 16494893bb..9eda8ce842 100644 --- a/plugins/shareExtension/withIntentFilters.js +++ b/plugins/shareExtension/withIntentFilters.js @@ -1,7 +1,6 @@ -const {withAndroidManifest} = require('@expo/config-plugins') +const {withAndroidManifest} = require('expo/config-plugins') const withIntentFilters = config => { - // eslint-disable-next-line no-shadow return withAndroidManifest(config, config => { const intents = [ { diff --git a/plugins/shareExtension/withShareExtensions.js b/plugins/shareExtension/withShareExtensions.js index 55a26c75eb..1662f587fc 100644 --- a/plugins/shareExtension/withShareExtensions.js +++ b/plugins/shareExtension/withShareExtensions.js @@ -1,4 +1,4 @@ -const {withPlugins} = require('@expo/config-plugins') +const {withPlugins} = require('expo/config-plugins') const {withAppEntitlements} = require('./withAppEntitlements') const {withXcodeTarget} = require('./withXcodeTarget') const {withExtensionEntitlements} = require('./withExtensionEntitlements') diff --git a/plugins/shareExtension/withXcodeTarget.js b/plugins/shareExtension/withXcodeTarget.js index ce70b392d4..5a11566861 100644 --- a/plugins/shareExtension/withXcodeTarget.js +++ b/plugins/shareExtension/withXcodeTarget.js @@ -1,7 +1,6 @@ -const {withXcodeProject} = require('@expo/config-plugins') +const {withXcodeProject} = require('expo/config-plugins') const withXcodeTarget = (config, {extensionName, controllerName}) => { - // eslint-disable-next-line no-shadow return withXcodeProject(config, config => { const pbxProject = config.modResults diff --git a/plugins/starterPackAppClipExtension/withAppEntitlements.js b/plugins/starterPackAppClipExtension/withAppEntitlements.js index 1bffd82080..c0361ab8d6 100644 --- a/plugins/starterPackAppClipExtension/withAppEntitlements.js +++ b/plugins/starterPackAppClipExtension/withAppEntitlements.js @@ -1,7 +1,6 @@ -const {withEntitlementsPlist} = require('@expo/config-plugins') +const {withEntitlementsPlist} = require('expo/config-plugins') const withAppEntitlements = config => { - // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ `group.app.bsky`, diff --git a/plugins/starterPackAppClipExtension/withClipEntitlements.js b/plugins/starterPackAppClipExtension/withClipEntitlements.js index 77636b5c94..3ba1d944c4 100644 --- a/plugins/starterPackAppClipExtension/withClipEntitlements.js +++ b/plugins/starterPackAppClipExtension/withClipEntitlements.js @@ -1,10 +1,9 @@ -const {withInfoPlist} = require('@expo/config-plugins') +const {withInfoPlist} = require('expo/config-plugins') const plist = require('@expo/plist') const path = require('path') const fs = require('fs') const withClipEntitlements = (config, {targetName}) => { - // eslint-disable-next-line no-shadow return withInfoPlist(config, config => { const entitlementsPath = path.join( config.modRequest.platformProjectRoot, diff --git a/plugins/starterPackAppClipExtension/withClipInfoPlist.js b/plugins/starterPackAppClipExtension/withClipInfoPlist.js index 4f104a6543..e5034cef31 100644 --- a/plugins/starterPackAppClipExtension/withClipInfoPlist.js +++ b/plugins/starterPackAppClipExtension/withClipInfoPlist.js @@ -1,10 +1,9 @@ -const {withInfoPlist} = require('@expo/config-plugins') +const {withInfoPlist} = require('expo/config-plugins') const plist = require('@expo/plist') const path = require('path') const fs = require('fs') const withClipInfoPlist = (config, {targetName}) => { - // eslint-disable-next-line no-shadow return withInfoPlist(config, config => { const targetPath = path.join( config.modRequest.platformProjectRoot, diff --git a/plugins/starterPackAppClipExtension/withFiles.js b/plugins/starterPackAppClipExtension/withFiles.js index ad99f5ae41..c010a52f78 100644 --- a/plugins/starterPackAppClipExtension/withFiles.js +++ b/plugins/starterPackAppClipExtension/withFiles.js @@ -1,11 +1,10 @@ -const {withXcodeProject} = require('@expo/config-plugins') +const {withXcodeProject} = require('expo/config-plugins') const path = require('path') const fs = require('fs') const FILES = ['AppDelegate.swift', 'ViewController.swift'] const withFiles = (config, {targetName}) => { - // eslint-disable-next-line no-shadow return withXcodeProject(config, config => { const basePath = path.join( config.modRequest.projectRoot, diff --git a/plugins/starterPackAppClipExtension/withStarterPackAppClip.js b/plugins/starterPackAppClipExtension/withStarterPackAppClip.js index 1e3f0b7029..a194ca34be 100644 --- a/plugins/starterPackAppClipExtension/withStarterPackAppClip.js +++ b/plugins/starterPackAppClipExtension/withStarterPackAppClip.js @@ -1,4 +1,4 @@ -const {withPlugins} = require('@expo/config-plugins') +const {withPlugins} = require('expo/config-plugins') const {withAppEntitlements} = require('./withAppEntitlements') const {withClipEntitlements} = require('./withClipEntitlements') const {withClipInfoPlist} = require('./withClipInfoPlist') diff --git a/plugins/starterPackAppClipExtension/withXcodeTarget.js b/plugins/starterPackAppClipExtension/withXcodeTarget.js index c14d27291a..0f96fa33f7 100644 --- a/plugins/starterPackAppClipExtension/withXcodeTarget.js +++ b/plugins/starterPackAppClipExtension/withXcodeTarget.js @@ -1,9 +1,8 @@ -const {withXcodeProject} = require('@expo/config-plugins') +const {withXcodeProject} = require('expo/config-plugins') const BUILD_PHASE_FILES = ['AppDelegate.swift', 'ViewController.swift'] const withXcodeTarget = (config, {targetName}) => { - // eslint-disable-next-line no-shadow return withXcodeProject(config, config => { const pbxProject = config.modResults diff --git a/plugins/withAndroidManifestIntentQueriesPlugin.js b/plugins/withAndroidManifestIntentQueriesPlugin.js index 04237b059e..4c53a8a018 100644 --- a/plugins/withAndroidManifestIntentQueriesPlugin.js +++ b/plugins/withAndroidManifestIntentQueriesPlugin.js @@ -1,7 +1,6 @@ -const {withAndroidManifest} = require('@expo/config-plugins') +const {withAndroidManifest} = require('expo/config-plugins') const withProcessTextQuery = config => - // eslint-disable-next-line no-shadow withAndroidManifest(config, config => { const manifest = config.modResults.manifest diff --git a/plugins/withAndroidNoJitpackPlugin.js b/plugins/withAndroidNoJitpackPlugin.js index 959eb10282..94755897db 100644 --- a/plugins/withAndroidNoJitpackPlugin.js +++ b/plugins/withAndroidNoJitpackPlugin.js @@ -1,4 +1,4 @@ -const {withProjectBuildGradle} = require('@expo/config-plugins') +const {withProjectBuildGradle} = require('expo/config-plugins') const jitpackRepository = "maven { url 'https://www.jitpack.io' }" diff --git a/plugins/withAndroidStylesAccentColorPlugin.js b/plugins/withAndroidStylesAccentColorPlugin.js index 51dd44f358..3f97fac298 100644 --- a/plugins/withAndroidStylesAccentColorPlugin.js +++ b/plugins/withAndroidStylesAccentColorPlugin.js @@ -3,7 +3,7 @@ * This way we get a sane default color for spinners, text inputs, etc. */ -const {withAndroidStyles, AndroidConfig} = require('@expo/config-plugins') +const {withAndroidStyles, AndroidConfig} = require('expo/config-plugins') module.exports = function withAndroidStylesAccentColorPlugin(appConfig) { return withAndroidStyles(appConfig, function (decoratedAppConfig) { diff --git a/plugins/withAppDelegateReferrer.js b/plugins/withAppDelegateReferrer.js index 69feec57d7..ca14875e17 100644 --- a/plugins/withAppDelegateReferrer.js +++ b/plugins/withAppDelegateReferrer.js @@ -1,11 +1,10 @@ -const {withAppDelegate} = require('@expo/config-plugins') -const {mergeContents} = require('@expo/config-plugins/build/utils/generateCode') +const {withAppDelegate, CodeGenerator} = require('expo/config-plugins') module.exports = config => withAppDelegate(config, config => { let contents = config.modResults.contents - contents = mergeContents({ + contents = CodeGenerator.mergeContents({ src: contents, anchor: '// Linking API', newSrc: ` @@ -22,7 +21,7 @@ module.exports = config => comment: '//', }).contents - contents = mergeContents({ + contents = CodeGenerator.mergeContents({ src: contents, anchor: '// Universal Links', newSrc: `