1{"version":3,"file":"withStaticPlugin.js","names":["_assert","data","_interopRequireDefault","require","_getenv","_errors","_pluginResolver","obj","__esModule","default","EXPO_DEBUG","boolish","EXPO_CONFIG_PLUGIN_VERBOSE_ERRORS","EXPO_USE_UNVERSIONED_PLUGINS","isModuleMissingError","name","error","includes","code","message","isUnexpectedTokenError","SyntaxError","PluginError","match","withStaticPlugin","config","props","_pluginProps","projectRoot","_config$_internal","_internal","assertInternalProjectRoot","pluginResolve","pluginProps","normalizeStaticPlugin","plugin","assert","_resolverError","withPlugin","resolveConfigPluginFunction","_isLegacyPlugin","fallback","console","log","shouldMuteWarning","exports"],"sources":["../../src/plugins/withStaticPlugin.ts"],"sourcesContent":["import assert from 'assert';\nimport { boolish } from 'getenv';\n\nimport { ConfigPlugin, StaticPlugin } from '../Plugin.types';\nimport { PluginError } from '../utils/errors';\nimport {\n assertInternalProjectRoot,\n normalizeStaticPlugin,\n resolveConfigPluginFunction,\n} from '../utils/plugin-resolver';\n\nconst EXPO_DEBUG = boolish('EXPO_DEBUG', false);\n\n// Show all error info related to plugin resolution.\nconst EXPO_CONFIG_PLUGIN_VERBOSE_ERRORS = boolish('EXPO_CONFIG_PLUGIN_VERBOSE_ERRORS', false);\n// Force using the fallback unversioned plugin instead of a local versioned copy,\n// this should only be used for testing the CLI.\nconst EXPO_USE_UNVERSIONED_PLUGINS = boolish('EXPO_USE_UNVERSIONED_PLUGINS', false);\n\nfunction isModuleMissingError(name: string, error: Error): boolean {\n // @ts-ignore\n if (['MODULE_NOT_FOUND', 'PLUGIN_NOT_FOUND'].includes(error.code)) {\n return true;\n }\n return error.message.includes(`Cannot find module '${name}'`);\n}\n\nfunction isUnexpectedTokenError(error: Error): boolean {\n if (\n error instanceof SyntaxError ||\n (error instanceof PluginError && error.code === 'INVALID_PLUGIN_IMPORT')\n ) {\n return (\n // These are the most common errors that'll be thrown when a package isn't transpiled correctly.\n !!error.message.match(/Unexpected token/) ||\n !!error.message.match(/Cannot use import statement/)\n );\n }\n return false;\n}\n\n/**\n * Resolves static module plugin and potentially falls back on a provided plugin if the module cannot be resolved\n *\n * @param config\n * @param fallback Plugin with `_resolverError` explaining why the module couldn't be used\n * @param projectRoot optional project root, fallback to _internal.projectRoot. Used for testing.\n * @param _isLegacyPlugin Used to suppress errors thrown by plugins that are applied automatically\n */\nexport const withStaticPlugin: ConfigPlugin<{\n plugin: StaticPlugin | ConfigPlugin | string;\n fallback?: ConfigPlugin<{ _resolverError: Error } & any>;\n projectRoot?: string;\n _isLegacyPlugin?: boolean;\n}> = (config, props) => {\n let projectRoot = props.projectRoot;\n if (!projectRoot) {\n projectRoot = config._internal?.projectRoot;\n assertInternalProjectRoot(projectRoot);\n }\n\n let [pluginResolve, pluginProps] = normalizeStaticPlugin(props.plugin);\n // Ensure no one uses this property by accident.\n assert(\n !pluginProps?._resolverError,\n `Plugin property '_resolverError' is a reserved property of \\`withStaticPlugin\\``\n );\n\n let withPlugin: ConfigPlugin<unknown>;\n\n if (\n // Function was provided, no need to resolve: [withPlugin, {}]\n typeof pluginResolve === 'function'\n ) {\n withPlugin = pluginResolve;\n } else if (typeof pluginResolve === 'string') {\n try {\n // Resolve and evaluate plugins.\n withPlugin = resolveConfigPluginFunction(projectRoot, pluginResolve);\n\n // Only force if the project has the versioned plugin, otherwise use default behavior.\n // This helps see which plugins are being skipped.\n if (\n EXPO_USE_UNVERSIONED_PLUGINS &&\n !!withPlugin &&\n !!props._isLegacyPlugin &&\n !!props.fallback\n ) {\n console.log(`Force \"${pluginResolve}\" to unversioned plugin`);\n withPlugin = props.fallback;\n }\n } catch (error: any) {\n if (EXPO_DEBUG) {\n if (EXPO_CONFIG_PLUGIN_VERBOSE_ERRORS) {\n // Log the error in debug mode for plugins with fallbacks (like the Expo managed plugins).\n console.log(`Error resolving plugin \"${pluginResolve}\"`);\n console.log(error);\n console.log();\n } else {\n const shouldMuteWarning =\n props._isLegacyPlugin &&\n (isModuleMissingError(pluginResolve, error) || isUnexpectedTokenError(error));\n if (!shouldMuteWarning) {\n if (isModuleMissingError(pluginResolve, error)) {\n // Prevent causing log spew for basic resolution errors.\n console.log(`Could not find plugin \"${pluginResolve}\"`);\n } else {\n // Log the error in debug mode for plugins with fallbacks (like the Expo managed plugins).\n console.log(`Error resolving plugin \"${pluginResolve}\"`);\n console.log(error);\n console.log();\n }\n }\n }\n }\n // TODO: Maybe allow for `PluginError`s to be thrown so external plugins can assert invalid options.\n\n // If the static module failed to resolve, attempt to use a fallback.\n // This enables support for built-in plugins with versioned variations living in other packages.\n if (props.fallback) {\n if (!pluginProps) pluginProps = {};\n // Pass this to the fallback plugin for potential warnings about needing to install a versioned package.\n pluginProps._resolverError = error;\n withPlugin = props.fallback;\n } else {\n // If no fallback, throw the resolution error.\n throw error;\n }\n }\n } else {\n throw new PluginError(\n `Plugin is an unexpected type: ${typeof pluginResolve}`,\n 'INVALID_PLUGIN_TYPE'\n );\n }\n\n // Execute the plugin.\n config = withPlugin(config, pluginProps);\n return config;\n};\n"],"mappings":"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"}