{"version":3,"sources":["jsdelivr-header.js","/npm/@expo/metro-config@55.0.9/build/ExpoMetroConfig.js"],"names":[],"mappings":"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","file":"/npm/@expo/metro-config@55.0.9/build/ExpoMetroConfig.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@expo/metro-config@55.0.9/build/ExpoMetroConfig.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EXPO_DEBUG = exports.INTERNAL_CALLSITES_REGEX = exports.internal_supervisingTransformerPath = exports.unstable_transformerPath = void 0;\nexports.createStableModuleIdFactory = createStableModuleIdFactory;\nexports.getDefaultConfig = getDefaultConfig;\n// Copyright 2023-present 650 Industries (Expo). All rights reserved.\nconst config_1 = require(\"@expo/config\");\nconst paths_1 = require(\"@expo/config/paths\");\nconst json_file_1 = __importDefault(require(\"@expo/json-file\"));\nconst metro_cache_1 = require(\"@expo/metro/metro-cache\");\nconst chalk_1 = __importDefault(require(\"chalk\"));\nconst os_1 = __importDefault(require(\"os\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst resolve_from_1 = __importDefault(require(\"resolve-from\"));\nconst customizeFrame_1 = require(\"./customizeFrame\");\nObject.defineProperty(exports, \"INTERNAL_CALLSITES_REGEX\", { enumerable: true, get: function () { return customizeFrame_1.INTERNAL_CALLSITES_REGEX; } });\nconst env_1 = require(\"./env\");\nconst file_store_1 = require(\"./file-store\");\nconst getModulesPaths_1 = require(\"./getModulesPaths\");\nconst getWatchFolders_1 = require(\"./getWatchFolders\");\nconst rewriteRequestUrl_1 = require(\"./rewriteRequestUrl\");\nconst sideEffects_1 = require(\"./serializer/sideEffects\");\nconst withExpoSerializers_1 = require(\"./serializer/withExpoSerializers\");\nconst postcss_1 = require(\"./transform-worker/postcss\");\nconst filePath_1 = require(\"./utils/filePath\");\nconst setOnReadonly_1 = require(\"./utils/setOnReadonly\");\nconst debug = require('debug')('expo:metro:config');\nlet hasWarnedAboutExotic = false;\nlet hasWarnedAboutReactNative = false;\n// Patch Metro's graph to support always parsing certain modules. This enables\n// things like Tailwind CSS which update based on their own heuristics.\nfunction patchMetroGraphToSupportUncachedModules() {\n    const { Graph, } = require('@expo/metro/metro/DeltaBundler/Graph');\n    const original_traverseDependencies = Graph.prototype\n        .traverseDependencies;\n    if (!original_traverseDependencies.__patched) {\n        original_traverseDependencies.__patched = true;\n        // eslint-disable-next-line no-inner-declarations\n        function traverseDependencies(paths, options) {\n            this.dependencies.forEach((dependency) => {\n                // Find any dependencies that have been marked as `skipCache` and ensure they are invalidated.\n                // `skipCache` is set when a CSS module is found by PostCSS.\n                if (dependency.output.find((file) => file.data.css?.skipCache) &&\n                    !paths.includes(dependency.path)) {\n                    // Ensure we invalidate the `unstable_transformResultKey` (input hash) so the module isn't removed in\n                    // the Graph._processModule method.\n                    (0, setOnReadonly_1.setOnReadonly)(dependency, 'unstable_transformResultKey', dependency.unstable_transformResultKey + '.');\n                    // Add the path to the list of modified paths so it gets run through the transformer again,\n                    // this will ensure it is passed to PostCSS -> Tailwind.\n                    paths.push(dependency.path);\n                }\n            });\n            // Invoke the original method with the new paths to ensure the standard behavior is preserved.\n            return original_traverseDependencies.call(this, paths, options);\n        }\n        // Ensure we don't patch the method twice.\n        Graph.prototype.traverseDependencies = traverseDependencies;\n        traverseDependencies.__patched = true;\n    }\n}\nfunction createNumericModuleIdFactory() {\n    const fileToIdMap = new Map();\n    let nextId = 0;\n    return (modulePath) => {\n        let id = fileToIdMap.get(modulePath);\n        if (typeof id !== 'number') {\n            id = nextId++;\n            fileToIdMap.set(modulePath, id);\n        }\n        return id;\n    };\n}\nfunction memoize(fn) {\n    const cache = new Map();\n    return ((...args) => {\n        const key = JSON.stringify(args);\n        if (cache.has(key)) {\n            return cache.get(key);\n        }\n        const result = fn(...args);\n        cache.set(key, result);\n        return result;\n    });\n}\nfunction asMetroConfigInput(config) {\n    return config;\n}\nfunction createStableModuleIdFactory(root) {\n    const getModulePath = (modulePath, scope) => {\n        // NOTE: Metro allows this but it can lead to confusing errors when dynamic requires cannot be resolved, e.g. `module 456 cannot be found`.\n        if (modulePath == null) {\n            return 'MODULE_NOT_FOUND';\n        }\n        else if ((0, sideEffects_1.isVirtualModule)(modulePath)) {\n            // Virtual modules should be stable.\n            return modulePath;\n        }\n        else if (path_1.default.isAbsolute(modulePath)) {\n            return (0, filePath_1.toPosixPath)(path_1.default.relative(root, modulePath)) + scope;\n        }\n        else {\n            return (0, filePath_1.toPosixPath)(modulePath) + scope;\n        }\n    };\n    const memoizedGetModulePath = memoize(getModulePath);\n    // This is an absolute file path.\n    // TODO: We may want a hashed version for production builds in the future.\n    return (modulePath, context) => {\n        const env = context?.environment ?? 'client';\n        if (env === 'client') {\n            // Only need scope for server bundles where multiple dimensions could run simultaneously.\n            // @ts-expect-error: we patch this to support being a string.\n            return memoizedGetModulePath(modulePath, '');\n        }\n        // Helps find missing parts to the patch.\n        if (!context?.platform) {\n            // context = { platform: 'web' };\n            throw new Error('createStableModuleIdFactory: `context.platform` is required');\n        }\n        // Only need scope for server bundles where multiple dimensions could run simultaneously.\n        const scope = env !== 'client' ? `?platform=${context?.platform}&env=${env}` : '';\n        // @ts-expect-error: we patch this to support being a string.\n        return memoizedGetModulePath(modulePath, scope);\n    };\n}\nfunction getDefaultConfig(projectRoot, { mode, isCSSEnabled = true, unstable_beforeAssetSerializationPlugins } = {}) {\n    const { getDefaultConfig: getDefaultMetroConfig, mergeConfig, } = require('@expo/metro/metro-config');\n    if (isCSSEnabled) {\n        patchMetroGraphToSupportUncachedModules();\n    }\n    const isExotic = mode === 'exotic' || env_1.env.EXPO_USE_EXOTIC;\n    if (isExotic && !hasWarnedAboutExotic) {\n        hasWarnedAboutExotic = true;\n        console.log(chalk_1.default.gray(`\\u203A Feature ${chalk_1.default.bold `EXPO_USE_EXOTIC`} has been removed in favor of the default transformer.`));\n    }\n    const reactNativePath = path_1.default.dirname(resolve_from_1.default.silent(projectRoot, 'react-native/package.json') ?? 'react-native/package.json');\n    if (reactNativePath === 'react-native' && !hasWarnedAboutReactNative) {\n        hasWarnedAboutReactNative = true;\n        console.log(chalk_1.default.yellow(`\\u203A Could not resolve react-native! Is it installed and a project dependency?`));\n    }\n    const sourceExtsConfig = { isTS: true, isReact: true, isModern: true };\n    const sourceExts = (0, paths_1.getBareExtensions)([], sourceExtsConfig);\n    // Add support for cjs (without platform extensions).\n    sourceExts.push('cjs');\n    const reanimatedVersion = getPkgVersion(projectRoot, 'react-native-reanimated');\n    const workletsVersion = getPkgVersion(projectRoot, 'react-native-worklets');\n    const babelRuntimeVersion = getPkgVersion(projectRoot, '@babel/runtime');\n    let sassVersion = null;\n    if (isCSSEnabled) {\n        sassVersion = getPkgVersion(projectRoot, 'sass');\n        // Enable SCSS by default so we can provide a better error message\n        // when sass isn't installed.\n        sourceExts.push('scss', 'sass', 'css');\n    }\n    let pkg;\n    try {\n        pkg = (0, config_1.getPackageJson)(projectRoot);\n    }\n    catch (error) {\n        if (error && error.name === 'ConfigError') {\n            console.log(chalk_1.default.yellow(`\\u203A Could not find a package.json at the project root! (\"${projectRoot}\")`));\n        }\n        else {\n            throw error;\n        }\n    }\n    const watchFolders = (0, getWatchFolders_1.getWatchFolders)(projectRoot);\n    const nodeModulesPaths = (0, getModulesPaths_1.getModulesPaths)(projectRoot);\n    if (env_1.env.EXPO_DEBUG) {\n        console.log();\n        console.log(`Expo Metro config:`);\n        try {\n            console.log(`- Version: ${require('../package.json').version}`);\n        }\n        catch { }\n        console.log(`- Extensions: ${sourceExts.join(', ')}`);\n        console.log(`- React Native: ${reactNativePath}`);\n        console.log(`- Watch Folders: ${watchFolders.join(', ')}`);\n        console.log(`- Node Module Paths: ${nodeModulesPaths.join(', ')}`);\n        console.log(`- Sass: ${sassVersion}`);\n        console.log(`- Reanimated: ${reanimatedVersion}`);\n        console.log(`- Worklets: ${workletsVersion}`);\n        console.log(`- Babel Runtime: ${babelRuntimeVersion}`);\n        console.log();\n    }\n    const metroDefaultValues = getDefaultMetroConfig.getDefaultValues(projectRoot);\n    const cacheStore = new file_store_1.FileStore({\n        root: path_1.default.join(os_1.default.tmpdir(), 'metro-cache'),\n    });\n    const serverRoot = (0, paths_1.getMetroServerRoot)(projectRoot);\n    const routerPackageRoot = resolve_from_1.default.silent(projectRoot, 'expo-router');\n    const expoMetroConfig = asMetroConfigInput({\n        reporter: {\n            // Remove the default reporter which metro always resolves to be the react-native-community/cli reporter.\n            // This prints a giant React logo which is less accessible to users on smaller terminals.\n            update() {\n                /*noop*/\n            },\n        },\n        watchFolders,\n        resolver: {\n            unstable_conditionsByPlatform: {\n                ios: ['react-native'],\n                android: ['react-native'],\n                // This is removed for server platforms.\n                web: ['browser'],\n            },\n            resolverMainFields: ['react-native', 'browser', 'main'],\n            platforms: ['ios', 'android'],\n            assetExts: metroDefaultValues.resolver.assetExts\n                .concat(\n            // Add default support for `expo-image` file types.\n            ['heic', 'avif'], \n            // Add default support for `expo-sqlite` file types.\n            ['db'])\n                .filter((assetExt) => !sourceExts.includes(assetExt)),\n            sourceExts,\n            nodeModulesPaths,\n            blockList: [\n                // .expo/types contains generated declaration files which are not and should not be processed by Metro.\n                // This prevents unwanted fast refresh on the declaration files changes.\n                /\\.expo[\\\\/]types/,\n            ].concat(metroDefaultValues.resolver.blockList ?? []),\n        },\n        cacheStores: [cacheStore],\n        watcher: {\n            unstable_workerThreads: false,\n            // strip starting dot from env files. We only support watching development variants of env files as production is inlined using a different system.\n            additionalExts: ['env', 'local', 'development'],\n        },\n        serializer: {\n            isThirdPartyModule(module) {\n                // Block virtual modules from appearing in the source maps.\n                if ((0, sideEffects_1.isVirtualModule)(module.path))\n                    return true;\n                // Generally block node modules\n                if (/(?:^|[/\\\\])node_modules[/\\\\]/.test(module.path)) {\n                    // Allow the expo-router/entry and expo/AppEntry modules to be considered first party so the root of the app appears in the trace.\n                    return !module.path.match(/[/\\\\](expo-router[/\\\\]entry|expo[/\\\\]AppEntry)/);\n                }\n                return false;\n            },\n            createModuleIdFactory: env_1.env.EXPO_USE_METRO_REQUIRE\n                ? createStableModuleIdFactory.bind(null, serverRoot)\n                : createNumericModuleIdFactory,\n            getModulesRunBeforeMainModule: () => {\n                const preModules = [\n                    // MUST be first\n                    require.resolve(path_1.default.join(reactNativePath, 'Libraries/Core/InitializeCore')),\n                ];\n                const stdRuntime = resolve_from_1.default.silent(projectRoot, 'expo/src/winter/index.ts');\n                if (stdRuntime) {\n                    preModules.push(stdRuntime);\n                }\n                else {\n                    debug('\"expo/src/winter\" not found, this may cause issues');\n                }\n                // We need to shift this to be the first module so web Fast Refresh works as expected.\n                // This will only be applied if the module is installed and imported somewhere in the bundle already.\n                const metroRuntime = getExpoMetroRuntimeOptional(projectRoot);\n                if (metroRuntime) {\n                    preModules.push(metroRuntime);\n                }\n                else {\n                    debug('\"@expo/metro-runtime\" not found, this may cause issues');\n                }\n                return preModules;\n            },\n            getPolyfills: ({ platform }) => {\n                // Do nothing for nullish platforms.\n                if (!platform) {\n                    return [];\n                }\n                // Native behavior.\n                return require(path_1.default.join(reactNativePath, 'rn-get-polyfills'))();\n            },\n        },\n        server: {\n            rewriteRequestUrl: (0, rewriteRequestUrl_1.getRewriteRequestUrl)(projectRoot),\n            port: Number(env_1.env.RCT_METRO_PORT) || 8081,\n            // NOTE(EvanBacon): Moves the server root down to the monorepo root.\n            // This enables proper monorepo support for web.\n            unstable_serverRoot: serverRoot,\n        },\n        symbolicator: {\n            customizeFrame: (0, customizeFrame_1.getDefaultCustomizeFrame)(),\n        },\n        transformerPath: require.resolve('./transform-worker/transform-worker'),\n        // NOTE: All of these values are used in the cache key. They should not contain any absolute paths.\n        transformer: {\n            unstable_workerThreads: true,\n            // Custom: These are passed to `getCacheKey` and ensure invalidation when the version changes.\n            unstable_renameRequire: false,\n            _expoRouterPath: routerPackageRoot ? path_1.default.relative(serverRoot, routerPackageRoot) : undefined,\n            postcssHash: (0, postcss_1.getPostcssConfigHash)(projectRoot),\n            browserslistHash: pkg?.browserslist\n                ? (0, metro_cache_1.stableHash)(JSON.stringify(pkg?.browserslist)).toString('hex')\n                : null,\n            sassVersion,\n            // Ensure invalidation when the version changes due to the Reanimated and Worklets Babel plugins.\n            reanimatedVersion,\n            workletsVersion,\n            // Ensure invalidation when using identical projects in monorepos\n            _expoRelativeProjectRoot: path_1.default.relative(serverRoot, projectRoot),\n            // `require.context` support\n            unstable_allowRequireContext: true,\n            allowOptionalDependencies: true,\n            babelTransformerPath: require.resolve('./babel-transformer'),\n            // Only apply expo internal asyncRequireModulePath when `expo` is installed\n            // This must be a module request, rather than an absolute path to keep the cache clean\n            asyncRequireModulePath: getExpoOptional(projectRoot, 'internal/async-require-module')\n                ? 'expo/internal/async-require-module'\n                : metroDefaultValues.transformer.asyncRequireModulePath,\n            assetRegistryPath: '@react-native/assets-registry/registry',\n            // Determines the minimum version of `@babel/runtime`, so we default it to the project's installed version of `@babel/runtime`\n            enableBabelRuntime: babelRuntimeVersion ?? undefined,\n            // hermesParser: true,\n            getTransformOptions: async () => ({\n                transform: {\n                    experimentalImportSupport: true,\n                    inlineRequires: false,\n                },\n            }),\n        },\n    });\n    // Merge in the default config from Metro here, even though loadConfig uses it as defaults.\n    // This is a convenience for getDefaultConfig use in metro.config.js, e.g. to modify assetExts.\n    const metroConfig = mergeConfig(\n    // NOTE(@kitten): We neither want ConfigT/MetroConfig here, which is mostly marked as readonly,\n    // nor InputConfigT which is inexact and partial. Instead, we want an exact type combination of\n    // the default config and Expo's config\n    metroDefaultValues, expoMetroConfig);\n    return (0, withExpoSerializers_1.withExpoSerializers)(metroConfig, { unstable_beforeAssetSerializationPlugins });\n}\n/** Use to access the Expo Metro transformer path */\nexports.unstable_transformerPath = require.resolve('./transform-worker/transform-worker');\nexports.internal_supervisingTransformerPath = require.resolve('./transform-worker/supervising-transform-worker');\n// re-export for legacy cases.\nexports.EXPO_DEBUG = env_1.env.EXPO_DEBUG;\nfunction getPkgVersion(projectRoot, pkgName) {\n    const targetPkg = resolve_from_1.default.silent(projectRoot, pkgName);\n    if (!targetPkg)\n        return null;\n    const targetPkgJson = findUpPackageJson(targetPkg);\n    if (!targetPkgJson)\n        return null;\n    const pkg = json_file_1.default.read(targetPkgJson);\n    debug(`${pkgName} package.json:`, targetPkgJson);\n    const pkgVersion = pkg.version;\n    if (typeof pkgVersion === 'string') {\n        return pkgVersion;\n    }\n    return null;\n}\nfunction findUpPackageJson(cwd) {\n    if (['.', path_1.default.sep].includes(cwd))\n        return null;\n    const found = resolve_from_1.default.silent(cwd, './package.json');\n    if (found) {\n        return found;\n    }\n    return findUpPackageJson(path_1.default.dirname(cwd));\n}\nfunction getExpoOptional(projectRoot, subModule = 'package.json') {\n    return resolve_from_1.default.silent(projectRoot, `expo/${subModule}`);\n}\nfunction getExpoMetroRuntimeOptional(projectRoot) {\n    const EXPO_METRO_RUNTIME = '@expo/metro-runtime';\n    const metroRuntime = resolve_from_1.default.silent(projectRoot, EXPO_METRO_RUNTIME);\n    if (metroRuntime) {\n        return metroRuntime;\n    }\n    // NOTE(@kitten): While `@expo/metro-runtime` is a peer, auto-installing this peer is valid and expected\n    // When it's auto-installed it may not be hoisted or not accessible from the project root, so we need to\n    // try to also resolve it via `expo-router`, where it's a required peer\n    const baseExpoRouter = resolve_from_1.default.silent(projectRoot, 'expo-router/package.json');\n    if (baseExpoRouter) {\n        return resolve_from_1.default.silent(baseExpoRouter, EXPO_METRO_RUNTIME);\n    }\n    // When expo-router isn't installed, however, we instead try to resolve it from `expo`, where it's an\n    // optional peer dependency\n    const baseExpo = getExpoOptional(projectRoot);\n    return baseExpo ? resolve_from_1.default.silent(baseExpo, EXPO_METRO_RUNTIME) : undefined;\n}\n"]}